=========================================================== .___ __ __ _________________ __ __ __| _/|__|/ |_ / ___\_` __ \__ \ | | \/ __ | | \\_ __\ / /_/ > | \// __ \| | / /_/ | | || | \___ /|__| (____ /____/\____ | |__||__| /_____/ \/ \/ grep rough audit - static analysis tool v2.8 written by @Wireghoul =================================[justanotherhacker.com]=== tcc-0.9.27+git20200814.62c30a4a/Changelog-67-- C99 variable length arrays (Thomas Preud'homme & Joe Soroka) tcc-0.9.27+git20200814.62c30a4a/Changelog:68:- Asm labels for variables and functions (Thomas Preud'homme) tcc-0.9.27+git20200814.62c30a4a/Changelog-69-- STT_GNU_IFUNC (Indirect functions as externals) (Thomas Preud'homme) ############################################## tcc-0.9.27+git20200814.62c30a4a/Changelog-146-- windows style fastcall (Filip Navara) tcc-0.9.27+git20200814.62c30a4a/Changelog:147:- support for empty input register section in asm (Filip Navara) tcc-0.9.27+git20200814.62c30a4a/Changelog-148-- anonymous union/struct support (Filip Navara) ############################################## tcc-0.9.27+git20200814.62c30a4a/Changelog-215-- chars support in assembler (Dave Long) tcc-0.9.27+git20200814.62c30a4a/Changelog:216:- .string, .globl, .section, .text, .data and .bss asm directive tcc-0.9.27+git20200814.62c30a4a/Changelog-217- support (Dave Long) ############################################## tcc-0.9.27+git20200814.62c30a4a/Changelog-226-- header fix (time.h) tcc-0.9.27+git20200814.62c30a4a/Changelog:227:- fixed inline asm without operand case tcc-0.9.27+git20200814.62c30a4a/Changelog-228-- fixed 'default:' or 'case x:' with '}' after (incorrect C construct accepted tcc-0.9.27+git20200814.62c30a4a/Changelog-229- by gcc) tcc-0.9.27+git20200814.62c30a4a/Changelog:230:- added 'A' inline asm constraint. tcc-0.9.27+git20200814.62c30a4a/Changelog-231- ############################################## tcc-0.9.27+git20200814.62c30a4a/TODO-48- tcc-0.9.27+git20200814.62c30a4a/TODO:49:- disable-asm and disable-bcheck options tcc-0.9.27+git20200814.62c30a4a/TODO-50-- __builtin_expect() ############################################## tcc-0.9.27+git20200814.62c30a4a/arm-asm.c-23-{ tcc-0.9.27+git20200814.62c30a4a/arm-asm.c:24: tcc_error("ARM asm not implemented."); tcc-0.9.27+git20200814.62c30a4a/arm-asm.c-25-} ############################################## tcc-0.9.27+git20200814.62c30a4a/arm-asm.c-66- tcc-0.9.27+git20200814.62c30a4a/arm-asm.c:67:/* generate prolog and epilog code for asm statement */ tcc-0.9.27+git20200814.62c30a4a/arm-asm.c-68-ST_FUNC void asm_gen_code(ASMOperand *operands, int nb_operands, ############################################## tcc-0.9.27+git20200814.62c30a4a/arm-gen.c-381-/* output a symbol and patch all calls to it */ tcc-0.9.27+git20200814.62c30a4a/arm-gen.c:382:void gsym_addr(int t, int a) tcc-0.9.27+git20200814.62c30a4a/arm-gen.c-383-{ ############################################## tcc-0.9.27+git20200814.62c30a4a/arm-gen.c-424- tcc-0.9.27+git20200814.62c30a4a/arm-gen.c:425:static void calcaddr(uint32_t *base, int *off, int *sgn, int maxoff, unsigned shift) tcc-0.9.27+git20200814.62c30a4a/arm-gen.c-426-{ ############################################## tcc-0.9.27+git20200814.62c30a4a/arm-gen.c-562- if(is_float(ft)) { tcc-0.9.27+git20200814.62c30a4a/arm-gen.c:563: calcaddr(&base,&fc,&sign,1020,2); tcc-0.9.27+git20200814.62c30a4a/arm-gen.c-564-#ifdef TCC_ARM_VFP ############################################## tcc-0.9.27+git20200814.62c30a4a/arm-gen.c-587- || (ft & VT_BTYPE) == VT_SHORT) { tcc-0.9.27+git20200814.62c30a4a/arm-gen.c:588: calcaddr(&base,&fc,&sign,255,0); tcc-0.9.27+git20200814.62c30a4a/arm-gen.c-589- op=0xE1500090; ############################################## tcc-0.9.27+git20200814.62c30a4a/arm-gen.c-597- } else { tcc-0.9.27+git20200814.62c30a4a/arm-gen.c:598: calcaddr(&base,&fc,&sign,4095,0); tcc-0.9.27+git20200814.62c30a4a/arm-gen.c-599- op=0xE5100000; ############################################## tcc-0.9.27+git20200814.62c30a4a/arm-gen.c-695- if(is_float(ft)) { tcc-0.9.27+git20200814.62c30a4a/arm-gen.c:696: calcaddr(&base,&fc,&sign,1020,2); tcc-0.9.27+git20200814.62c30a4a/arm-gen.c-697-#ifdef TCC_ARM_VFP ############################################## tcc-0.9.27+git20200814.62c30a4a/arm-gen.c-720- } else if((ft & VT_BTYPE) == VT_SHORT) { tcc-0.9.27+git20200814.62c30a4a/arm-gen.c:721: calcaddr(&base,&fc,&sign,255,0); tcc-0.9.27+git20200814.62c30a4a/arm-gen.c-722- op=0xE14000B0; ############################################## tcc-0.9.27+git20200814.62c30a4a/arm-gen.c-726- } else { tcc-0.9.27+git20200814.62c30a4a/arm-gen.c:727: calcaddr(&base,&fc,&sign,4095,0); tcc-0.9.27+git20200814.62c30a4a/arm-gen.c-728- op=0xE5000000; ############################################## tcc-0.9.27+git20200814.62c30a4a/arm-gen.c-1519-/* generate a jump to a fixed address */ tcc-0.9.27+git20200814.62c30a4a/arm-gen.c:1520:ST_FUNC void gjmp_addr(int a) tcc-0.9.27+git20200814.62c30a4a/arm-gen.c-1521-{ ############################################## tcc-0.9.27+git20200814.62c30a4a/arm64-gen.c-233-// Patch all branches in list pointed to by t to branch to a: tcc-0.9.27+git20200814.62c30a4a/arm64-gen.c:234:ST_FUNC void gsym_addr(int t_, int a_) tcc-0.9.27+git20200814.62c30a4a/arm64-gen.c-235-{ ############################################## tcc-0.9.27+git20200814.62c30a4a/arm64-gen.c-1447-// Generate branch to known address: tcc-0.9.27+git20200814.62c30a4a/arm64-gen.c:1448:ST_FUNC void gjmp_addr(int a) tcc-0.9.27+git20200814.62c30a4a/arm64-gen.c-1449-{ ############################################## tcc-0.9.27+git20200814.62c30a4a/c67-gen.c-202-/* output a symbol and patch all calls to it */ tcc-0.9.27+git20200814.62c30a4a/c67-gen.c:203:void gsym_addr(int t, int a) tcc-0.9.27+git20200814.62c30a4a/c67-gen.c-204-{ ############################################## tcc-0.9.27+git20200814.62c30a4a/c67-gen.c-2057-/* generate a jump to a fixed address */ tcc-0.9.27+git20200814.62c30a4a/c67-gen.c:2058:void gjmp_addr(int a) tcc-0.9.27+git20200814.62c30a4a/c67-gen.c-2059-{ ############################################## tcc-0.9.27+git20200814.62c30a4a/configure-59- cc=`which cc` tcc-0.9.27+git20200814.62c30a4a/configure:60: cc=`readlink $cc` tcc-0.9.27+git20200814.62c30a4a/configure-61- tcc_usrinclude="`xcrun --show-sdk-path`/usr/include" ############################################## tcc-0.9.27+git20200814.62c30a4a/configure-85- case "$opt" in tcc-0.9.27+git20200814.62c30a4a/configure:86: --prefix=*) prefix=`echo $opt | cut -d '=' -f 2` tcc-0.9.27+git20200814.62c30a4a/configure-87- ;; tcc-0.9.27+git20200814.62c30a4a/configure:88: --exec-prefix=*) execprefix=`echo $opt | cut -d '=' -f 2` tcc-0.9.27+git20200814.62c30a4a/configure-89- ;; tcc-0.9.27+git20200814.62c30a4a/configure:90: --tccdir=*) tccdir=`echo $opt | cut -d '=' -f 2` tcc-0.9.27+git20200814.62c30a4a/configure-91- ;; tcc-0.9.27+git20200814.62c30a4a/configure:92: --bindir=*) bindir=`echo $opt | cut -d '=' -f 2` tcc-0.9.27+git20200814.62c30a4a/configure-93- ;; tcc-0.9.27+git20200814.62c30a4a/configure:94: --libdir=*) libdir=`echo $opt | cut -d '=' -f 2` tcc-0.9.27+git20200814.62c30a4a/configure-95- ;; tcc-0.9.27+git20200814.62c30a4a/configure:96: --includedir=*) includedir=`echo $opt | cut -d '=' -f 2` tcc-0.9.27+git20200814.62c30a4a/configure-97- ;; tcc-0.9.27+git20200814.62c30a4a/configure:98: --sharedir=*) sharedir=`echo $opt | cut -d '=' -f 2` tcc-0.9.27+git20200814.62c30a4a/configure-99- ;; tcc-0.9.27+git20200814.62c30a4a/configure:100: --mandir=*) mandir=`echo $opt | cut -d '=' -f 2` tcc-0.9.27+git20200814.62c30a4a/configure-101- ;; tcc-0.9.27+git20200814.62c30a4a/configure:102: --infodir=*) infodir=`echo $opt | cut -d '=' -f 2` tcc-0.9.27+git20200814.62c30a4a/configure-103- ;; tcc-0.9.27+git20200814.62c30a4a/configure:104: --docdir=*) docdir=`echo $opt | cut -d '=' -f 2` tcc-0.9.27+git20200814.62c30a4a/configure-105- ;; tcc-0.9.27+git20200814.62c30a4a/configure:106: --sysroot=*) sysroot=`echo $opt | cut -d '=' -f 2` tcc-0.9.27+git20200814.62c30a4a/configure-107- ;; tcc-0.9.27+git20200814.62c30a4a/configure:108: --source-path=*) source_path=`echo $opt | cut -d '=' -f 2` tcc-0.9.27+git20200814.62c30a4a/configure-109- ;; tcc-0.9.27+git20200814.62c30a4a/configure:110: --cross-prefix=*) cross_prefix=`echo $opt | cut -d '=' -f 2` tcc-0.9.27+git20200814.62c30a4a/configure-111- ;; tcc-0.9.27+git20200814.62c30a4a/configure:112: --cc=*) cc=`echo $opt | cut -d '=' -f 2` tcc-0.9.27+git20200814.62c30a4a/configure-113- ;; tcc-0.9.27+git20200814.62c30a4a/configure:114: --ar=*) ar=`echo $opt | cut -d '=' -f 2` ; ar_set="yes" tcc-0.9.27+git20200814.62c30a4a/configure-115- ;; ############################################## tcc-0.9.27+git20200814.62c30a4a/configure-121- ;; tcc-0.9.27+git20200814.62c30a4a/configure:122: --sysincludepaths=*) tcc_sysincludepaths=`echo $opt | cut -d '=' -f 2` tcc-0.9.27+git20200814.62c30a4a/configure-123- ;; tcc-0.9.27+git20200814.62c30a4a/configure:124: --libpaths=*) tcc_libpaths=`echo $opt | cut -d '=' -f 2` tcc-0.9.27+git20200814.62c30a4a/configure-125- ;; tcc-0.9.27+git20200814.62c30a4a/configure:126: --crtprefix=*) tcc_crtprefix=`echo $opt | cut -d '=' -f 2` tcc-0.9.27+git20200814.62c30a4a/configure-127- ;; tcc-0.9.27+git20200814.62c30a4a/configure:128: --elfinterp=*) tcc_elfinterp=`echo $opt | cut -d '=' -f 2` tcc-0.9.27+git20200814.62c30a4a/configure-129- ;; tcc-0.9.27+git20200814.62c30a4a/configure:130: --triplet=*) triplet=`echo $opt | cut -d '=' -f 2` tcc-0.9.27+git20200814.62c30a4a/configure-131- ;; tcc-0.9.27+git20200814.62c30a4a/configure:132: --cpu=*) cpu=`echo $opt | cut -d '=' -f 2` tcc-0.9.27+git20200814.62c30a4a/configure-133- ;; ############################################## tcc-0.9.27+git20200814.62c30a4a/configure-494- tcc-0.9.27+git20200814.62c30a4a/configure:495:version=`head $source_path/VERSION` tcc-0.9.27+git20200814.62c30a4a/configure-496-echo "VERSION = $version" >> config.mak ############################################## tcc-0.9.27+git20200814.62c30a4a/elf.h-1223-#define R_386_TLS_GD_CALL 26 /* Relocation for call to tcc-0.9.27+git20200814.62c30a4a/elf.h:1224: __tls_get_addr() */ tcc-0.9.27+git20200814.62c30a4a/elf.h-1225-#define R_386_TLS_GD_POP 27 /* Tag for popl in GD TLS code */ ############################################## tcc-0.9.27+git20200814.62c30a4a/elf.h-1229-#define R_386_TLS_LDM_CALL 30 /* Relocation for call to tcc-0.9.27+git20200814.62c30a4a/elf.h:1230: __tls_get_addr() in LDM code */ tcc-0.9.27+git20200814.62c30a4a/elf.h-1231-#define R_386_TLS_LDM_POP 31 /* Tag for popl in LDM TLS code */ ############################################## tcc-0.9.27+git20200814.62c30a4a/i386-asm.c-122-#define OP_DX (1 << OPT_DX) tcc-0.9.27+git20200814.62c30a4a/i386-asm.c:123:#define OP_ADDR (1 << OPT_ADDR) tcc-0.9.27+git20200814.62c30a4a/i386-asm.c-124-#define OP_INDIR (1 << OPT_INDIR) ############################################## tcc-0.9.27+git20200814.62c30a4a/i386-asm.c-1298- tcc-0.9.27+git20200814.62c30a4a/i386-asm.c:1299: /* allocate registers and generate corresponding asm moves */ tcc-0.9.27+git20200814.62c30a4a/i386-asm.c-1300- for(i=0;i<nb_operands;i++) { ############################################## tcc-0.9.27+git20200814.62c30a4a/i386-asm.c-1316- if (is_reg_allocated(op->reg)) tcc-0.9.27+git20200814.62c30a4a/i386-asm.c:1317: tcc_error("asm regvar requests register that's taken already"); tcc-0.9.27+git20200814.62c30a4a/i386-asm.c-1318- reg = op->reg; ############################################## tcc-0.9.27+git20200814.62c30a4a/i386-asm.c-1424- default: tcc-0.9.27+git20200814.62c30a4a/i386-asm.c:1425: tcc_error("asm constraint %d ('%s') could not be satisfied", tcc-0.9.27+git20200814.62c30a4a/i386-asm.c-1426- j, op->constraint); ############################################## tcc-0.9.27+git20200814.62c30a4a/i386-asm.c-1488- in the C symbol table when later looking up tcc-0.9.27+git20200814.62c30a4a/i386-asm.c:1489: this name. So enter them now into the asm label tcc-0.9.27+git20200814.62c30a4a/i386-asm.c-1490- list when we still know the symbol. */ ############################################## tcc-0.9.27+git20200814.62c30a4a/i386-asm.c-1592- tcc-0.9.27+git20200814.62c30a4a/i386-asm.c:1593:/* generate prolog and epilog code for asm statement */ tcc-0.9.27+git20200814.62c30a4a/i386-asm.c-1594-ST_FUNC void asm_gen_code(ASMOperand *operands, int nb_operands, ############################################## tcc-0.9.27+git20200814.62c30a4a/i386-gen.c-140-/* output a symbol and patch all calls to it */ tcc-0.9.27+git20200814.62c30a4a/i386-gen.c:141:ST_FUNC void gsym_addr(int t, int a) tcc-0.9.27+git20200814.62c30a4a/i386-gen.c-142-{ ############################################## tcc-0.9.27+git20200814.62c30a4a/i386-gen.c-653-/* generate a jump to a fixed address */ tcc-0.9.27+git20200814.62c30a4a/i386-gen.c:654:ST_FUNC void gjmp_addr(int a) tcc-0.9.27+git20200814.62c30a4a/i386-gen.c-655-{ ############################################## tcc-0.9.27+git20200814.62c30a4a/i386-gen.c-667-/* generate a jump to a fixed address */ tcc-0.9.27+git20200814.62c30a4a/i386-gen.c:668:ST_FUNC void gjmp_cond_addr(int a, int op) tcc-0.9.27+git20200814.62c30a4a/i386-gen.c-669-{ ############################################## tcc-0.9.27+git20200814.62c30a4a/i386-gen.c-1078-ST_FUNC void gen_vla_sp_save(int addr) { tcc-0.9.27+git20200814.62c30a4a/i386-gen.c:1079: /* mov %esp,addr(%ebp)*/ tcc-0.9.27+git20200814.62c30a4a/i386-gen.c-1080- o(0x89); ############################################## tcc-0.9.27+git20200814.62c30a4a/i386-tok.h-229- tcc-0.9.27+git20200814.62c30a4a/i386-tok.h:230: /* generic asm ops */ tcc-0.9.27+git20200814.62c30a4a/i386-tok.h-231-#define ALT(x) ############################################## tcc-0.9.27+git20200814.62c30a4a/il-gen.c-235-/* output a symbol and patch all calls to it */ tcc-0.9.27+git20200814.62c30a4a/il-gen.c:236:void gsym_addr(t, a) tcc-0.9.27+git20200814.62c30a4a/il-gen.c-237-{ ############################################## tcc-0.9.27+git20200814.62c30a4a/il-gen.c-473-/* generate a jump to a fixed address */ tcc-0.9.27+git20200814.62c30a4a/il-gen.c:474:void gjmp_addr(int a) tcc-0.9.27+git20200814.62c30a4a/il-gen.c-475-{ ############################################## tcc-0.9.27+git20200814.62c30a4a/lib/armflush.c-11- tcc-0.9.27+git20200814.62c30a4a/lib/armflush.c:12:/* arm-tcc supports only fake asm currently */ tcc-0.9.27+git20200814.62c30a4a/lib/armflush.c-13-__asm__( ############################################## tcc-0.9.27+git20200814.62c30a4a/lib/armflush.c-48-/* __ARM_NR_cacheflush is kernel private and should not be used in user space. tcc-0.9.27+git20200814.62c30a4a/lib/armflush.c:49: * However, there is no ARM asm parser in tcc so we use it for now */ tcc-0.9.27+git20200814.62c30a4a/lib/armflush.c-50-#if 1 ############################################## tcc-0.9.27+git20200814.62c30a4a/libtcc.c-727- tcc_preprocess(s1); tcc-0.9.27+git20200814.62c30a4a/libtcc.c:728: } else if (filetype & (AFF_TYPE_ASM | AFF_TYPE_ASMPP)) { tcc-0.9.27+git20200814.62c30a4a/libtcc.c-729-#ifdef CONFIG_TCC_ASM ############################################## tcc-0.9.27+git20200814.62c30a4a/libtcc.c-731-#else tcc-0.9.27+git20200814.62c30a4a/libtcc.c:732: tcc_error_noabort("asm not supported"); tcc-0.9.27+git20200814.62c30a4a/libtcc.c-733-#endif ############################################## tcc-0.9.27+git20200814.62c30a4a/libtcc.c-943- /* Some GCC builtins that are simple to express as macros. */ tcc-0.9.27+git20200814.62c30a4a/libtcc.c:944: tcc_define_symbol(s, "__builtin_extract_return_addr(x)", "x"); tcc-0.9.27+git20200814.62c30a4a/libtcc.c-945-#endif /* ndef TCC_TARGET_PE */ ############################################## tcc-0.9.27+git20200814.62c30a4a/riscv64-asm.c-23-{ tcc-0.9.27+git20200814.62c30a4a/riscv64-asm.c:24: tcc_error("RISCV64 asm not implemented."); tcc-0.9.27+git20200814.62c30a4a/riscv64-asm.c-25-} ############################################## tcc-0.9.27+git20200814.62c30a4a/riscv64-asm.c-66- tcc-0.9.27+git20200814.62c30a4a/riscv64-asm.c:67:/* generate prolog and epilog code for asm statement */ tcc-0.9.27+git20200814.62c30a4a/riscv64-asm.c-68-ST_FUNC void asm_gen_code(ASMOperand *operands, int nb_operands, ############################################## tcc-0.9.27+git20200814.62c30a4a/riscv64-gen.c-136-// Patch all branches in list pointed to by t to branch to a: tcc-0.9.27+git20200814.62c30a4a/riscv64-gen.c:137:ST_FUNC void gsym_addr(int t_, int a_) tcc-0.9.27+git20200814.62c30a4a/riscv64-gen.c-138-{ ############################################## tcc-0.9.27+git20200814.62c30a4a/riscv64-gen.c-340- EI(0x13, 0, rr, 0, t); // addi RR, x0, t tcc-0.9.27+git20200814.62c30a4a/riscv64-gen.c:341: gjmp_addr(ind + 8); tcc-0.9.27+git20200814.62c30a4a/riscv64-gen.c-342- gsym(fc); ############################################## tcc-0.9.27+git20200814.62c30a4a/riscv64-gen.c-776- assert(i == 1 && regcount == 2 && !(addr & 7)); tcc-0.9.27+git20200814.62c30a4a/riscv64-gen.c:777: EI(0x03, 3, 5, 8, addr); // ld t0, addr(s0) tcc-0.9.27+git20200814.62c30a4a/riscv64-gen.c-778- addr += 8; ############################################## tcc-0.9.27+git20200814.62c30a4a/riscv64-gen.c-867- ER(0x33, 0, 2, 2, 5, 0x20); // sub sp, sp, t0 tcc-0.9.27+git20200814.62c30a4a/riscv64-gen.c:868: gjmp_addr(func_sub_sp_offset + 5*4); tcc-0.9.27+git20200814.62c30a4a/riscv64-gen.c-869- } ############################################## tcc-0.9.27+git20200814.62c30a4a/riscv64-gen.c-878- else tcc-0.9.27+git20200814.62c30a4a/riscv64-gen.c:879: gjmp_addr(large_ofs_ind); tcc-0.9.27+git20200814.62c30a4a/riscv64-gen.c-880- if ((ind - func_sub_sp_offset) != 5*4) ############################################## tcc-0.9.27+git20200814.62c30a4a/riscv64-gen.c-910-// Generate branch to known address: tcc-0.9.27+git20200814.62c30a4a/riscv64-gen.c:911:ST_FUNC void gjmp_addr(int a) tcc-0.9.27+git20200814.62c30a4a/riscv64-gen.c-912-{ ############################################## tcc-0.9.27+git20200814.62c30a4a/tcc-doc.texi-640- tcc-0.9.27+git20200814.62c30a4a/tcc-doc.texi:641:@item Inline assembly with asm instruction: tcc-0.9.27+git20200814.62c30a4a/tcc-doc.texi-642-@cindex inline assembly ############################################## tcc-0.9.27+git20200814.62c30a4a/tcc.h-534- struct Sym *cleanupstate; /* in defined labels */ tcc-0.9.27+git20200814.62c30a4a/tcc.h:535: int asm_label; /* associated asm label */ tcc-0.9.27+git20200814.62c30a4a/tcc.h-536- }; ############################################## tcc-0.9.27+git20200814.62c30a4a/tcc.h-646- Sym *cleanup_func; tcc-0.9.27+git20200814.62c30a4a/tcc.h:647: int asm_label; /* associated asm label */ tcc-0.9.27+git20200814.62c30a4a/tcc.h-648- char attr_mode; /* __attribute__((__mode__(...))) */ ############################################## tcc-0.9.27+git20200814.62c30a4a/tcc.h-679- char *constraint; tcc-0.9.27+git20200814.62c30a4a/tcc.h:680: char asm_str[16]; /* computed asm string for operand */ tcc-0.9.27+git20200814.62c30a4a/tcc.h-681- SValue *vt; /* C value of the expression */ ############################################## tcc-0.9.27+git20200814.62c30a4a/tcc.h-1012-/* symbol was created by tccasm.c first */ tcc-0.9.27+git20200814.62c30a4a/tcc.h:1013:#define VT_ASM (VT_VOID | VT_UNSIGNED) tcc-0.9.27+git20200814.62c30a4a/tcc.h-1014-#define IS_ASM_SYM(sym) (((sym)->type.t & (VT_BTYPE | VT_ASM)) == VT_ASM) ############################################## tcc-0.9.27+git20200814.62c30a4a/tcc.h-1025-#define TOK_LOR 0x91 tcc-0.9.27+git20200814.62c30a4a/tcc.h:1026:/* warning: the following compare tokens depend on i386 asm code */ tcc-0.9.27+git20200814.62c30a4a/tcc.h-1027-#define TOK_ULT 0x92 ############################################## tcc-0.9.27+git20200814.62c30a4a/tcc.h-1112-#if defined TCC_TARGET_I386 || defined TCC_TARGET_X86_64 tcc-0.9.27+git20200814.62c30a4a/tcc.h:1113:/* only used for i386 asm opcodes definitions */ tcc-0.9.27+git20200814.62c30a4a/tcc.h-1114-#define DEF_BWL(x) \ ############################################## tcc-0.9.27+git20200814.62c30a4a/tcc.h-1272-#define AFF_TYPE_C 1 tcc-0.9.27+git20200814.62c30a4a/tcc.h:1273:#define AFF_TYPE_ASM 2 tcc-0.9.27+git20200814.62c30a4a/tcc.h-1274-#define AFF_TYPE_ASMPP 4 ############################################## tcc-0.9.27+git20200814.62c30a4a/tcc.h-1336- returned at eof */ tcc-0.9.27+git20200814.62c30a4a/tcc.h:1337:#define PARSE_FLAG_ASM_FILE 0x0008 /* we processing an asm file: '#' can be used for line comment, etc. */ tcc-0.9.27+git20200814.62c30a4a/tcc.h-1338-#define PARSE_FLAG_SPACES 0x0010 /* next() returns space tokens (for -E) */ ############################################## tcc-0.9.27+git20200814.62c30a4a/tcc.h-1547- tcc-0.9.27+git20200814.62c30a4a/tcc.h:1548:ST_FUNC addr_t get_sym_addr(TCCState *s, const char *name, int err, int forc); tcc-0.9.27+git20200814.62c30a4a/tcc.h-1549-ST_FUNC void list_elf_symbols(TCCState *s, void *ctx, ############################################## tcc-0.9.27+git20200814.62c30a4a/tcc.h-1591- tcc-0.9.27+git20200814.62c30a4a/tcc.h:1592:ST_FUNC void gsym_addr(int t, int a); tcc-0.9.27+git20200814.62c30a4a/tcc.h-1593-ST_FUNC void gsym(int t); ############################################## tcc-0.9.27+git20200814.62c30a4a/tcc.h-1601-ST_FUNC int gjmp(int t); tcc-0.9.27+git20200814.62c30a4a/tcc.h:1602:ST_FUNC void gjmp_addr(int a); tcc-0.9.27+git20200814.62c30a4a/tcc.h-1603-ST_FUNC int gjmp_cond(int op, int t); ############################################## tcc-0.9.27+git20200814.62c30a4a/tccasm.c-24- tcc-0.9.27+git20200814.62c30a4a/tccasm.c:25:static Section *last_text_section; /* to handle .previous asm directive */ tcc-0.9.27+git20200814.62c30a4a/tccasm.c-26- ############################################## tcc-0.9.27+git20200814.62c30a4a/tccasm.c-40- tcc-0.9.27+git20200814.62c30a4a/tccasm.c:41:/* If a C name has an _ prepended then only asm labels that start tcc-0.9.27+git20200814.62c30a4a/tccasm.c:42: with _ are representable in C, by removing the first _. ASM names tcc-0.9.27+git20200814.62c30a4a/tccasm.c-43- without _ at the beginning don't correspond to C names, but we use tcc-0.9.27+git20200814.62c30a4a/tccasm.c:44: the global C symbol table to track ASM names as well, so we need to tcc-0.9.27+git20200814.62c30a4a/tccasm.c-45- transform those into ones that don't conflict with a C name, tcc-0.9.27+git20200814.62c30a4a/tccasm.c:46: so prepend a '.' for them, but force the ELF asm name to be set. */ tcc-0.9.27+git20200814.62c30a4a/tccasm.c-47-static int asm2cname(int v, int *addeddot) ############################################## tcc-0.9.27+git20200814.62c30a4a/tccasm.c-84- as is. */ tcc-0.9.27+git20200814.62c30a4a/tccasm.c:85: Sym *sym = global_identifier_push(v2, VT_ASM | VT_EXTERN | VT_STATIC, 0); tcc-0.9.27+git20200814.62c30a4a/tccasm.c-86- if (addeddot) ############################################## tcc-0.9.27+git20200814.62c30a4a/tccasm.c-91-/* Return a symbol we can use inside the assembler, having name NAME. tcc-0.9.27+git20200814.62c30a4a/tccasm.c:92: Symbols from asm and C source share a namespace. If we generate tcc-0.9.27+git20200814.62c30a4a/tccasm.c:93: an asm symbol it's also a (file-global) C symbol, but it's tcc-0.9.27+git20200814.62c30a4a/tccasm.c-94- either not accessible by name (like "L.123"), or its type information ############################################## tcc-0.9.27+git20200814.62c30a4a/tccasm.c-99- all information from that symbol to the (possibly newly created) tcc-0.9.27+git20200814.62c30a4a/tccasm.c:100: asm symbol. */ tcc-0.9.27+git20200814.62c30a4a/tccasm.c-101-ST_FUNC Sym* get_asm_sym(int name, Sym *csym) ############################################## tcc-0.9.27+git20200814.62c30a4a/tccasm.c-1013-/********************************************************************/ tcc-0.9.27+git20200814.62c30a4a/tccasm.c:1014:/* GCC inline asm support */ tcc-0.9.27+git20200814.62c30a4a/tccasm.c-1015- ############################################## tcc-0.9.27+git20200814.62c30a4a/tccasm.c-1133- if (nb_operands >= MAX_ASM_OPERANDS) tcc-0.9.27+git20200814.62c30a4a/tccasm.c:1134: tcc_error("too many asm operands"); tcc-0.9.27+git20200814.62c30a4a/tccasm.c-1135- op = &operands[nb_operands++]; ############################################## tcc-0.9.27+git20200814.62c30a4a/tccasm.c-1239- tcc-0.9.27+git20200814.62c30a4a/tccasm.c:1240: /* substitute the operands in the asm string. No substitution is tcc-0.9.27+git20200814.62c30a4a/tccasm.c-1241- done if no operands (GCC behaviour) */ ############################################## tcc-0.9.27+git20200814.62c30a4a/tccasm.c-1258- tcc-0.9.27+git20200814.62c30a4a/tccasm.c:1259: /* We don't allow switching section within inline asm to tcc-0.9.27+git20200814.62c30a4a/tccasm.c-1260- bleed out to surrounding code. */ ############################################## tcc-0.9.27+git20200814.62c30a4a/tccasm.c-1264- if (sec != cur_text_section) { tcc-0.9.27+git20200814.62c30a4a/tccasm.c:1265: tcc_warning("inline asm tries to change current section"); tcc-0.9.27+git20200814.62c30a4a/tccasm.c-1266- use_section1(tcc_state, sec); ############################################## tcc-0.9.27+git20200814.62c30a4a/tccasm.c-1290- tcc-0.9.27+git20200814.62c30a4a/tccasm.c:1291: /* Global asm blocks are always emitted. */ tcc-0.9.27+git20200814.62c30a4a/tccasm.c-1292- nocode_wanted = 0; ############################################## tcc-0.9.27+git20200814.62c30a4a/tccasm.c-1317-} tcc-0.9.27+git20200814.62c30a4a/tccasm.c:1318:#endif /* CONFIG_TCC_ASM */ ############################################## tcc-0.9.27+git20200814.62c30a4a/tccgen.c-64-/* Clear 'nocode_wanted' at label if it was used */ tcc-0.9.27+git20200814.62c30a4a/tccgen.c:65:ST_FUNC void gsym(int t) { if (t) { gsym_addr(t, ind); CODE_ON(); }} tcc-0.9.27+git20200814.62c30a4a/tccgen.c-66-static int gind(void) { CODE_ON(); return ind; } ############################################## tcc-0.9.27+git20200814.62c30a4a/tccgen.c-68-/* Set 'nocode_wanted' after unconditional jumps */ tcc-0.9.27+git20200814.62c30a4a/tccgen.c:69:static void gjmp_addr_acs(int t) { gjmp_addr(t); CODE_OFF(); } tcc-0.9.27+git20200814.62c30a4a/tccgen.c-70-static int gjmp_acs(int t) { t = gjmp(t); CODE_OFF(); return t; } ############################################## tcc-0.9.27+git20200814.62c30a4a/tccgen.c-1134- /* modify the top most local identifier, so that sym_identifier will tcc-0.9.27+git20200814.62c30a4a/tccgen.c:1135: point to 's' when popped; happens when called from inline asm */ tcc-0.9.27+git20200814.62c30a4a/tccgen.c-1136- while (*ps != NULL && (*ps)->sym_scope) ############################################## tcc-0.9.27+git20200814.62c30a4a/tccgen.c-5051- tcc-0.9.27+git20200814.62c30a4a/tccgen.c:5052:/* Parse an asm label and return the token */ tcc-0.9.27+git20200814.62c30a4a/tccgen.c-5053-static int asm_label_instr(void) ############################################## tcc-0.9.27+git20200814.62c30a4a/tccgen.c-6009- /* Point to s as backpointer (even without r&VT_SYM). tcc-0.9.27+git20200814.62c30a4a/tccgen.c:6010: Will be used by at least the x86 inline asm parser for tcc-0.9.27+git20200814.62c30a4a/tccgen.c-6011- regvars. */ ############################################## tcc-0.9.27+git20200814.62c30a4a/tccgen.c-6715- tcc-0.9.27+git20200814.62c30a4a/tccgen.c:6716:static void gtst_addr(int t, int a) tcc-0.9.27+git20200814.62c30a4a/tccgen.c-6717-{ tcc-0.9.27+git20200814.62c30a4a/tccgen.c:6718: gsym_addr(gvtst(0, t), a); tcc-0.9.27+git20200814.62c30a4a/tccgen.c-6719-} ############################################## tcc-0.9.27+git20200814.62c30a4a/tccgen.c-6741- gen_op(TOK_GE); tcc-0.9.27+git20200814.62c30a4a/tccgen.c:6742: gtst_addr(0, p->sym); /* v1 <= x <= v2 */ tcc-0.9.27+git20200814.62c30a4a/tccgen.c-6743- /* x < v1 */ ############################################## tcc-0.9.27+git20200814.62c30a4a/tccgen.c-6759- gen_op(TOK_EQ); tcc-0.9.27+git20200814.62c30a4a/tccgen.c:6760: gtst_addr(0, p->sym); tcc-0.9.27+git20200814.62c30a4a/tccgen.c-6761- } else { ############################################## tcc-0.9.27+git20200814.62c30a4a/tccgen.c-6769- gen_op(TOK_GE); tcc-0.9.27+git20200814.62c30a4a/tccgen.c:6770: gtst_addr(0, p->sym); tcc-0.9.27+git20200814.62c30a4a/tccgen.c-6771- gsym(e); ############################################## tcc-0.9.27+git20200814.62c30a4a/tccgen.c-6973- lblock(&a, &b); tcc-0.9.27+git20200814.62c30a4a/tccgen.c:6974: gjmp_addr(d); tcc-0.9.27+git20200814.62c30a4a/tccgen.c:6975: gsym_addr(b, d); tcc-0.9.27+git20200814.62c30a4a/tccgen.c-6976- gsym(a); ############################################## tcc-0.9.27+git20200814.62c30a4a/tccgen.c-7075- vpop(); tcc-0.9.27+git20200814.62c30a4a/tccgen.c:7076: gjmp_addr(c); tcc-0.9.27+git20200814.62c30a4a/tccgen.c-7077- gsym(e); ############################################## tcc-0.9.27+git20200814.62c30a4a/tccgen.c-7080- lblock(&a, &b); tcc-0.9.27+git20200814.62c30a4a/tccgen.c:7081: gjmp_addr(d); tcc-0.9.27+git20200814.62c30a4a/tccgen.c:7082: gsym_addr(b, d); tcc-0.9.27+git20200814.62c30a4a/tccgen.c-7083- gsym(a); ############################################## tcc-0.9.27+git20200814.62c30a4a/tccgen.c-7096- c = gvtst(0, 0); tcc-0.9.27+git20200814.62c30a4a/tccgen.c:7097: gsym_addr(c, d); tcc-0.9.27+git20200814.62c30a4a/tccgen.c-7098- gsym(a); ############################################## tcc-0.9.27+git20200814.62c30a4a/tccgen.c-7134- if (sw->def_sym) tcc-0.9.27+git20200814.62c30a4a/tccgen.c:7135: gsym_addr(d, sw->def_sym); tcc-0.9.27+git20200814.62c30a4a/tccgen.c-7136- else ############################################## tcc-0.9.27+git20200814.62c30a4a/tccgen.c-7200- try_call_cleanup_goto(s->cleanupstate); tcc-0.9.27+git20200814.62c30a4a/tccgen.c:7201: gjmp_addr(s->jnext); tcc-0.9.27+git20200814.62c30a4a/tccgen.c-7202- } ############################################## tcc-0.9.27+git20200814.62c30a4a/tccgen.c-8264- if (tok == TOK_ASM1 || tok == TOK_ASM2 || tok == TOK_ASM3) { tcc-0.9.27+git20200814.62c30a4a/tccgen.c:8265: /* global asm block */ tcc-0.9.27+git20200814.62c30a4a/tccgen.c-8266- asm_global_instr(); ############################################## tcc-0.9.27+git20200814.62c30a4a/tccgen.c-8337- ad.asm_label = asm_label_instr(); tcc-0.9.27+git20200814.62c30a4a/tccgen.c:8338: /* parse one last attribute list, after asm label */ tcc-0.9.27+git20200814.62c30a4a/tccgen.c-8339- parse_attribute(&ad); ############################################## tcc-0.9.27+git20200814.62c30a4a/tccmacho.c-815- relocate_syms(s1, s1->symtab, 0); tcc-0.9.27+git20200814.62c30a4a/tccmacho.c:816: mo.ep->entryoff = get_sym_addr(s1, "main", 1, 1) tcc-0.9.27+git20200814.62c30a4a/tccmacho.c-817- - get_segment(&mo, 1)->vmaddr; ############################################## tcc-0.9.27+git20200814.62c30a4a/tccpe.c-2022- pe.start_addr = (DWORD) tcc-0.9.27+git20200814.62c30a4a/tccpe.c:2023: (get_sym_addr(s1, pe.start_symbol, 1, 1) - pe.imagebase); tcc-0.9.27+git20200814.62c30a4a/tccpe.c-2024- if (s1->nb_errors) ############################################## tcc-0.9.27+git20200814.62c30a4a/tccpp.c-1518- t = MACRO_OBJ; tcc-0.9.27+git20200814.62c30a4a/tccpp.c:1519: /* We have to parse the whole define as if not in asm mode, in particular tcc-0.9.27+git20200814.62c30a4a/tccpp.c-1520- no line comment with '#' must be ignored. Also for function ############################################## tcc-0.9.27+git20200814.62c30a4a/tccpp.c-1564- are parsed like the file mode determines (i.e. with '.' being an tcc-0.9.27+git20200814.62c30a4a/tccpp.c:1565: ID character in asm mode). But '#' should be retained instead of tcc-0.9.27+git20200814.62c30a4a/tccpp.c-1566- regarded as line comment leader, so still don't set ASM_FILE ############################################## tcc-0.9.27+git20200814.62c30a4a/tccpp.c-2714- tcc-0.9.27+git20200814.62c30a4a/tccpp.c:2715: /* dollar is allowed to start identifiers when not parsing asm */ tcc-0.9.27+git20200814.62c30a4a/tccpp.c-2716- case '$': ############################################## tcc-0.9.27+git20200814.62c30a4a/tccpp.c-2809- && !(parse_flags & PARSE_FLAG_ASM_FILE tcc-0.9.27+git20200814.62c30a4a/tccpp.c:2810: /* 0xe+1 is 3 tokens in asm */ tcc-0.9.27+git20200814.62c30a4a/tccpp.c-2811- && ((char*)tokcstr.data)[0] == '0' ############################################## tcc-0.9.27+git20200814.62c30a4a/tccpp.c-3733-{ tcc-0.9.27+git20200814.62c30a4a/tccpp.c:3734: int is_asm = !!(filetype & (AFF_TYPE_ASM|AFF_TYPE_ASMPP)); tcc-0.9.27+git20200814.62c30a4a/tccpp.c-3735- CString cstr; ############################################## tcc-0.9.27+git20200814.62c30a4a/tccpp.c-3748- tcc-0.9.27+git20200814.62c30a4a/tccpp.c:3749: set_idnum('$', !is_asm && s1->dollars_in_identifiers ? IS_ID : 0); tcc-0.9.27+git20200814.62c30a4a/tccpp.c:3750: set_idnum('.', is_asm ? IS_ID : 0); tcc-0.9.27+git20200814.62c30a4a/tccpp.c-3751- ############################################## tcc-0.9.27+git20200814.62c30a4a/tccpp.c-3760- cstr_printf(&cstr, "#define __TCC_RUN__ 1\n"); tcc-0.9.27+git20200814.62c30a4a/tccpp.c:3761: if (!is_asm && s1->output_type != TCC_OUTPUT_PREPROCESS) tcc-0.9.27+git20200814.62c30a4a/tccpp.c-3762- tcc_predefs(&cstr); ############################################## tcc-0.9.27+git20200814.62c30a4a/tccpp.c-3771- tcc-0.9.27+git20200814.62c30a4a/tccpp.c:3772: parse_flags = is_asm ? PARSE_FLAG_ASM_FILE : 0; tcc-0.9.27+git20200814.62c30a4a/tccpp.c-3773- tok_flags = TOK_FLAG_BOL | TOK_FLAG_BOF; ############################################## tcc-0.9.27+git20200814.62c30a4a/tccrun.c-129-{ tcc-0.9.27+git20200814.62c30a4a/tccrun.c:130: void **a = (void **)get_sym_addr(s1, start, 0, 0); tcc-0.9.27+git20200814.62c30a4a/tccrun.c:131: void **b = (void **)get_sym_addr(s1, end, 0, 0); tcc-0.9.27+git20200814.62c30a4a/tccrun.c-132- while (a != b) ############################################## tcc-0.9.27+git20200814.62c30a4a/tccrun.c-149- s1->runtime_main = s1->nostdlib ? "_start" : "main"; tcc-0.9.27+git20200814.62c30a4a/tccrun.c:150: if ((s1->dflag & 16) && (addr_t)-1 == get_sym_addr(s1, s1->runtime_main, 0, 1)) tcc-0.9.27+git20200814.62c30a4a/tccrun.c-151- return 0; ############################################## tcc-0.9.27+git20200814.62c30a4a/tccrun.c-157- return -1; tcc-0.9.27+git20200814.62c30a4a/tccrun.c:158: prog_main = (void*)get_sym_addr(s1, s1->runtime_main, 1, 1); tcc-0.9.27+git20200814.62c30a4a/tccrun.c-159- ############################################## tcc-0.9.27+git20200814.62c30a4a/tests/Makefile-241- objdump -D asmtest.o > asmtest.out tcc-0.9.27+git20200814.62c30a4a/tests/Makefile:242: @if diff -u --ignore-matching-lines="file format" asmtest.ref asmtest.out ; then echo "ASM Auto Test OK"; fi tcc-0.9.27+git20200814.62c30a4a/tests/Makefile-243- ############################################## tcc-0.9.27+git20200814.62c30a4a/tests/asmtest.S-19-/* Macro expansion should work like with C, the #n shouldn't be parsed tcc-0.9.27+git20200814.62c30a4a/tests/asmtest.S:20: as asm line comment */ tcc-0.9.27+git20200814.62c30a4a/tests/asmtest.S-21-#define __stringify(n) #n ############################################## tcc-0.9.27+git20200814.62c30a4a/tests/asmtest.S-27-# 28 "asmtest.S" # a line directive (and a line comment) tcc-0.9.27+git20200814.62c30a4a/tests/asmtest.S:28: movl %eax, %ebx # some more asm comment tcc-0.9.27+git20200814.62c30a4a/tests/asmtest.S-29-/* some label tests */ ############################################## tcc-0.9.27+git20200814.62c30a4a/tests/tests2/117_gcc_test.c-26- tcc-0.9.27+git20200814.62c30a4a/tests/tests2/117_gcc_test.c:27:void tst_const_addr(void) tcc-0.9.27+git20200814.62c30a4a/tests/tests2/117_gcc_test.c-28-{ ############################################## tcc-0.9.27+git20200814.62c30a4a/tests/tests2/117_gcc_test.c-149-#if !defined(_WIN32) tcc-0.9.27+git20200814.62c30a4a/tests/tests2/117_gcc_test.c:150: tst_const_addr(); tcc-0.9.27+git20200814.62c30a4a/tests/tests2/117_gcc_test.c-151-#endif ############################################## tcc-0.9.27+git20200814.62c30a4a/tests/tests2/98_al_ax_extend.c-2-#include <stdlib.h> tcc-0.9.27+git20200814.62c30a4a/tests/tests2/98_al_ax_extend.c:3:asm ( tcc-0.9.27+git20200814.62c30a4a/tests/tests2/98_al_ax_extend.c-4- ".text;" ############################################## tcc-0.9.27+git20200814.62c30a4a/tests/tests2/99_fastcall.c-25-extern unsigned char SYMBOL(trap)[]; tcc-0.9.27+git20200814.62c30a4a/tests/tests2/99_fastcall.c:26:asm ( tcc-0.9.27+git20200814.62c30a4a/tests/tests2/99_fastcall.c-27- ".text;" ############################################## tcc-0.9.27+git20200814.62c30a4a/tests/tests2/99_fastcall.c-102-extern unsigned char SYMBOL(safecall)[]; tcc-0.9.27+git20200814.62c30a4a/tests/tests2/99_fastcall.c:103:asm ( tcc-0.9.27+git20200814.62c30a4a/tests/tests2/99_fastcall.c-104- ".text;" ############################################## tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3140-#ifndef __APPLE__ tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:3141:/* clang's inline asm is uncapable of 'xchgb %b0,%h0' */ tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3142-static __inline__ __const__ unsigned int swab32(unsigned int x) ############################################## tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3221-#ifndef _WIN32 tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:3222:/* Test global asm blocks playing with aliases. */ tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3223-void base_func(void) ############################################## tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3249- resolving to a local label. That check is overly zealous as the code tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:3250: within the asm makes sure to use it only in PIC-possible contexts, tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3251- but all GCC versions behave like so. We arrange for PIC to be disabled ############################################## tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3262- extern int some_symbol; tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:3263: asm volatile (".globl some_symbol\n" tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3264- "jmp .+6\n" ############################################## tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3317-{ tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:3318: asm volatile ("" : "=r" (*out) : "0" (*in)); tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3319-} ############################################## tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3322-{ tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:3323: asm volatile ("mov %0,(%1)" : : "r" (*in), "r" (out) : "memory"); tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3324-} ############################################## tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3328-{ tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:3329: asm volatile("mov $1, %%r12" ::: "r12"); tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3330-} ############################################## tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3337- long val2; tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:3338: /* This tests if asm clobbers correctly save/restore callee saved tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3339- registers if they are clobbered and if it's the high 8 x86-64 ############################################## tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3341- correctly capture the data flow, but good enough for us. */ tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:3342: asm volatile("mov $0x4542, %%r12" : "=r" (val):: "memory"); tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3343- clobber_r12(); tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:3344: asm volatile("mov %%r12, %0" : "=r" (val2) : "r" (val): "memory"); tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3345- printf("asmhc: 0x%x\n", val2); ############################################## tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3352- long x1, x2; tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:3353: asm volatile("mov %%r12,%0" :: "m" (x1)); /* save r12 */ tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3354- test_high_clobbers_really(); tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:3355: asm volatile("mov %%r12,%0" :: "m" (x2)); /* new r12 */ tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:3356: asm volatile("mov %0,%%r12" :: "m" (x1)); /* restore r12 */ tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3357- /* should be 0 but tcc doesn't save r12 automatically, which has ############################################## tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3419- /* Try to make sure that xdi contains a zero, and hence will tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:3420: lead to a segfault if the next asm is evaluated without tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3421- arguments being set up. */ tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:3422: asm volatile ("" : "=D" (rdi) : "0" (0)); tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3423- (void)sizeof (({ ############################################## tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3425- /* This shouldn't trigger a segfault, either the argument tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:3426: registers need to be set up and the asm emitted despite tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3427- this being in an unevaluated context, or both the argument tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:3428: setup _and_ the asm emission need to be suppressed. The latter tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:3429: is better. Disabling asm code gen when suppression is on tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3430- also fixes the above trace_console bug, but that came earlier tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:3431: than asm suppression. */ tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:3432: asm volatile ("movl $0,(%0)" : : "D" (&var) : "memory"); tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3433- var; ############################################## tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3449- /* two pushes so stack remains aligned */ tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:3450: asm volatile ("push %%rdi; push %%rdi; mov %0, %%rdi;" tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3451-#if 1 && !defined(__TINYC__) && (defined(__PIC__) || defined(__PIE__)) && !defined(__APPLE__) ############################################## tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3521- /* Hide the outer base_func, but check later that the inline tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:3522: asm block gets the outer one. */ tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3523- int base_func = 42; ############################################## tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3530- tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:3531: // parse 0x1E-1 as 3 tokens in asm mode tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:3532: asm volatile ("mov $0x1E-1,%eax"); tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3533- tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3534- /* test the no operand case */ tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:3535: asm volatile ("xorl %eax, %eax"); tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3536- ############################################## tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3557- /* NOTE: we test here if C labels are correctly restored after the tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:3558: asm statement */ tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3559- goto label1; ############################################## tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3570- override_func2(); tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:3571: /* The base_func ref from the following inline asm should find tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3572- the global one, not the local decl from this function. */ tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:3573: asm volatile(".weak override_func3\n.set override_func3, base_func"); tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3574- override_func3(); ############################################## tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3585- into registers. */ tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:3586: asm volatile("" : "=r" (asmret) : "0"(s2)); tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3587- if (asmret != s2.addr) ############################################## tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3592- 8 bit. */ tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:3593: asm volatile("cmp %1,%2; sete %0" : "=a"(somebool) : "r"(1), "r"(2)); tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3594- if (!somebool) ############################################## tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3602- printf ("fancycpy2(%d)=%d\n", val, val2); tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:3603: asm volatile ("mov $0x4243, %%esi" : "=r" (regvar)); tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3604- printf ("regvar=%x\n", regvar); ############################################## tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3679- tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c:3680: //printf("bera: %p\n", __builtin_extract_return_addr((void*)43)); tcc-0.9.27+git20200814.62c30a4a/tests/tcctest.c-3681-} ############################################## tcc-0.9.27+git20200814.62c30a4a/win32/include/process.h-107- int __cdecl _unloaddll(intptr_t _Handle); tcc-0.9.27+git20200814.62c30a4a/win32/include/process.h:108: int (__cdecl *__cdecl _getdllprocaddr(intptr_t _Handle,char *_ProcedureName,intptr_t _Ordinal))(void); tcc-0.9.27+git20200814.62c30a4a/win32/include/process.h-109- ############################################## tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/qos.h-54-#define QOS_OBJECT_SHAPING_RATE (0x00000003 + QOS_GENERAL_ID_BASE) tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/qos.h:55:#define QOS_OBJECT_DESTADDR (0x00000004 + QOS_GENERAL_ID_BASE) tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/qos.h-56- ############################################## tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winsock2.h-1303- WINSOCK_API_LINKAGE u_short WSAAPI htons(u_short hostshort); tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winsock2.h:1304: WINSOCK_API_LINKAGE unsigned long WSAAPI inet_addr(const char *cp); tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winsock2.h-1305- WINSOCK_API_LINKAGE char *WSAAPI inet_ntoa(struct in_addr in); ############################################## tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winsock2.h-1316- WINSOCK_API_LINKAGE SOCKET WSAAPI socket(int af,int type,int protocol); tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winsock2.h:1317: WINSOCK_API_LINKAGE struct hostent *WSAAPI gethostbyaddr(const char *addr,int len,int type); tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winsock2.h-1318- WINSOCK_API_LINKAGE struct hostent *WSAAPI gethostbyname(const char *name); ############################################## tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winsock2.h-1336- WINSOCK_API_LINKAGE HANDLE WSAAPI WSAAsyncGetHostByName(HWND hWnd,u_int wMsg,const char *name,char *buf,int buflen); tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winsock2.h:1337: WINSOCK_API_LINKAGE HANDLE WSAAPI WSAAsyncGetHostByAddr(HWND hWnd,u_int wMsg,const char *addr,int len,int type,char *buf,int buflen); tcc-0.9.27+git20200814.62c30a4a/win32/include/winapi/winsock2.h-1338- WINSOCK_API_LINKAGE int WSAAPI WSACancelAsyncRequest(HANDLE hAsyncTaskHandle); ############################################## tcc-0.9.27+git20200814.62c30a4a/win32/tcc-win32.txt-164- A nice RAD tool to create windows resources (dialog boxes etc.) is tcc-0.9.27+git20200814.62c30a4a/win32/tcc-win32.txt:165: "ResEd", available at the RadASM website. tcc-0.9.27+git20200814.62c30a4a/win32/tcc-win32.txt-166- ############################################## tcc-0.9.27+git20200814.62c30a4a/win32/tccwin32.sh-2- tcc-0.9.27+git20200814.62c30a4a/win32/tccwin32.sh:3:RTCC=$(cd `dirname $0`/../; pwd) tcc-0.9.27+git20200814.62c30a4a/win32/tccwin32.sh-4-echo RTCC=$RTCC ############################################## tcc-0.9.27+git20200814.62c30a4a/win32/tccwin64.sh-2- tcc-0.9.27+git20200814.62c30a4a/win32/tccwin64.sh:3:RTCC=$(cd `dirname $0`/../; pwd) tcc-0.9.27+git20200814.62c30a4a/win32/tccwin64.sh-4-echo RTCC=$RTCC ############################################## tcc-0.9.27+git20200814.62c30a4a/win32/tccwin_build.sh-7-R_=$(pwd) tcc-0.9.27+git20200814.62c30a4a/win32/tccwin_build.sh:8:#RTCC=$(cd `dirname $0`; pwd) tcc-0.9.27+git20200814.62c30a4a/win32/tccwin_build.sh:9:RTCC=$(cd `dirname $0`/../; pwd) tcc-0.9.27+git20200814.62c30a4a/win32/tccwin_build.sh-10-cd $RTCC ############################################## tcc-0.9.27+git20200814.62c30a4a/x86_64-gen.c-217-/* output a symbol and patch all calls to it */ tcc-0.9.27+git20200814.62c30a4a/x86_64-gen.c:218:ST_FUNC void gsym_addr(int t, int a) tcc-0.9.27+git20200814.62c30a4a/x86_64-gen.c-219-{ ############################################## tcc-0.9.27+git20200814.62c30a4a/x86_64-gen.c-1036- /* add the "func_scratch" area after each alloca seen */ tcc-0.9.27+git20200814.62c30a4a/x86_64-gen.c:1037: gsym_addr(func_alloca, -func_scratch); tcc-0.9.27+git20200814.62c30a4a/x86_64-gen.c-1038- ############################################## tcc-0.9.27+git20200814.62c30a4a/x86_64-gen.c-1623-/* generate a jump to a fixed address */ tcc-0.9.27+git20200814.62c30a4a/x86_64-gen.c:1624:void gjmp_addr(int a) tcc-0.9.27+git20200814.62c30a4a/x86_64-gen.c-1625-{ ############################################## tcc-0.9.27+git20200814.62c30a4a/x86_64-gen.c-2178-ST_FUNC void gen_vla_sp_save(int addr) { tcc-0.9.27+git20200814.62c30a4a/x86_64-gen.c:2179: /* mov %rsp,addr(%rbp)*/ tcc-0.9.27+git20200814.62c30a4a/x86_64-gen.c-2180- gen_modrm64(0x89, TREG_RSP, VT_LOCAL, NULL, addr); ############################################## tcc-0.9.27+git20200814.62c30a4a/x86_64-gen.c-2190-ST_FUNC void gen_vla_result(int addr) { tcc-0.9.27+git20200814.62c30a4a/x86_64-gen.c:2191: /* mov %rax,addr(%rbp)*/ tcc-0.9.27+git20200814.62c30a4a/x86_64-gen.c-2192- gen_modrm64(0x89, TREG_RAX, VT_LOCAL, NULL, addr); ############################################## tcc-0.9.27+git20200814.62c30a4a/debian/patches/0001-Disable-test-not-working-on-i386.patch-38- the global one, not the local decl from this function. */ tcc-0.9.27+git20200814.62c30a4a/debian/patches/0001-Disable-test-not-working-on-i386.patch:39: asm volatile(".weak override_func3\n.set override_func3, base_func"); tcc-0.9.27+git20200814.62c30a4a/debian/patches/0001-Disable-test-not-working-on-i386.patch-40- override_func3(); ############################################## tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3140-#ifndef __APPLE__ tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c:3141:/* clang's inline asm is uncapable of 'xchgb %b0,%h0' */ tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3142-static __inline__ __const__ unsigned int swab32(unsigned int x) ############################################## tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3221-#ifndef _WIN32 tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c:3222:/* Test global asm blocks playing with aliases. */ tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3223-void base_func(void) ############################################## tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3248- resolving to a local label. That check is overly zealous as the code tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c:3249: within the asm makes sure to use it only in PIC-possible contexts, tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3250- but all GCC versions behave like so. We arrange for PIC to be disabled ############################################## tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3261- extern int some_symbol; tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c:3262: asm volatile (".globl some_symbol\n" tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3263- "jmp .+6\n" ############################################## tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3315-{ tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c:3316: asm volatile ("" : "=r" (*out) : "0" (*in)); tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3317-} ############################################## tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3320-{ tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c:3321: asm volatile ("mov %0,(%1)" : : "r" (*in), "r" (out) : "memory"); tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3322-} ############################################## tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3326-{ tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c:3327: asm volatile("mov $1, %%r12" ::: "r12"); tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3328-} ############################################## tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3335- long val2; tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c:3336: /* This tests if asm clobbers correctly save/restore callee saved tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3337- registers if they are clobbered and if it's the high 8 x86-64 ############################################## tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3339- correctly capture the data flow, but good enough for us. */ tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c:3340: asm volatile("mov $0x4542, %%r12" : "=r" (val):: "memory"); tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3341- clobber_r12(); tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c:3342: asm volatile("mov %%r12, %0" : "=r" (val2) : "r" (val): "memory"); tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3343- printf("asmhc: 0x%x\n", val2); ############################################## tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3350- long x1, x2; tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c:3351: asm volatile("mov %%r12,%0" :: "m" (x1)); /* save r12 */ tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3352- test_high_clobbers_really(); tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c:3353: asm volatile("mov %%r12,%0" :: "m" (x2)); /* new r12 */ tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c:3354: asm volatile("mov %0,%%r12" :: "m" (x1)); /* restore r12 */ tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3355- /* should be 0 but tcc doesn't save r12 automatically, which has ############################################## tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3417- /* Try to make sure that xdi contains a zero, and hence will tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c:3418: lead to a segfault if the next asm is evaluated without tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3419- arguments being set up. */ tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c:3420: asm volatile ("" : "=D" (rdi) : "0" (0)); tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3421- (void)sizeof (({ ############################################## tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3423- /* This shouldn't trigger a segfault, either the argument tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c:3424: registers need to be set up and the asm emitted despite tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3425- this being in an unevaluated context, or both the argument tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c:3426: setup _and_ the asm emission need to be suppressed. The latter tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c:3427: is better. Disabling asm code gen when suppression is on tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3428- also fixes the above trace_console bug, but that came earlier tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c:3429: than asm suppression. */ tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c:3430: asm volatile ("movl $0,(%0)" : : "D" (&var) : "memory"); tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3431- var; ############################################## tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3447- /* two pushes so stack remains aligned */ tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c:3448: asm volatile ("push %%rdi; push %%rdi; mov %0, %%rdi;" tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3449-#if 1 && !defined(__TINYC__) && (defined(__PIC__) || defined(__PIE__)) && !defined(__APPLE__) ############################################## tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3519- /* Hide the outer base_func, but check later that the inline tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c:3520: asm block gets the outer one. */ tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3521- int base_func = 42; ############################################## tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3528- tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c:3529: // parse 0x1E-1 as 3 tokens in asm mode tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c:3530: asm volatile ("mov $0x1E-1,%eax"); tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3531- tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3532- /* test the no operand case */ tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c:3533: asm volatile ("xorl %eax, %eax"); tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3534- ############################################## tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3555- /* NOTE: we test here if C labels are correctly restored after the tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c:3556: asm statement */ tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3557- goto label1; ############################################## tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3568- override_func2(); tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c:3569: /* The base_func ref from the following inline asm should find tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3570- the global one, not the local decl from this function. */ tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c:3571: asm volatile(".weak override_func3\n.set override_func3, base_func"); tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3572- override_func3(); ############################################## tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3581- into registers. */ tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c:3582: asm volatile("" : "=r" (asmret) : "0"(s2)); tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3583- if (asmret != s2.addr) ############################################## tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3588- 8 bit. */ tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c:3589: asm volatile("cmp %1,%2; sete %0" : "=a"(somebool) : "r"(1), "r"(2)); tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3590- if (!somebool) ############################################## tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3598- printf ("fancycpy2(%d)=%d\n", val, val2); tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c:3599: asm volatile ("mov $0x4243, %%esi" : "=r" (regvar)); tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3600- printf ("regvar=%x\n", regvar); ############################################## tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3675- tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c:3676: //printf("bera: %p\n", __builtin_extract_return_addr((void*)43)); tcc-0.9.27+git20200814.62c30a4a/.pc/0001-Disable-test-not-working-on-i386.patch/tests/tcctest.c-3677-} ############################################## tcc-0.9.27+git20200814.62c30a4a/.pc/0003-Prevent-dead-code-on-x86-in-prepare_dynamic_rel.patch/tccelf.c-485- name if FORC */ tcc-0.9.27+git20200814.62c30a4a/.pc/0003-Prevent-dead-code-on-x86-in-prepare_dynamic_rel.patch/tccelf.c:486:ST_FUNC addr_t get_sym_addr(TCCState *s1, const char *name, int err, int forc) tcc-0.9.27+git20200814.62c30a4a/.pc/0003-Prevent-dead-code-on-x86-in-prepare_dynamic_rel.patch/tccelf.c-487-{ ############################################## tcc-0.9.27+git20200814.62c30a4a/.pc/0003-Prevent-dead-code-on-x86-in-prepare_dynamic_rel.patch/tccelf.c-513-{ tcc-0.9.27+git20200814.62c30a4a/.pc/0003-Prevent-dead-code-on-x86-in-prepare_dynamic_rel.patch/tccelf.c:514: addr_t addr = get_sym_addr(s, name, 0, 1); tcc-0.9.27+git20200814.62c30a4a/.pc/0003-Prevent-dead-code-on-x86-in-prepare_dynamic_rel.patch/tccelf.c-515- return addr == -1 ? NULL : (void*)(uintptr_t)addr; ############################################## tcc-0.9.27+git20200814.62c30a4a/.pc/0003-Prevent-dead-code-on-x86-in-prepare_dynamic_rel.patch/tccelf.c-693- } else if (esym->st_other & ST_ASM_SET) { tcc-0.9.27+git20200814.62c30a4a/.pc/0003-Prevent-dead-code-on-x86-in-prepare_dynamic_rel.patch/tccelf.c:694: /* If the existing symbol came from an asm .set tcc-0.9.27+git20200814.62c30a4a/.pc/0003-Prevent-dead-code-on-x86-in-prepare_dynamic_rel.patch/tccelf.c-695- we can override. */ ############################################## tcc-0.9.27+git20200814.62c30a4a/.pc/0003-Prevent-dead-code-on-x86-in-prepare_dynamic_rel.patch/tccelf.c-2211- ehdr.e_type = ET_EXEC; tcc-0.9.27+git20200814.62c30a4a/.pc/0003-Prevent-dead-code-on-x86-in-prepare_dynamic_rel.patch/tccelf.c:2212: ehdr.e_entry = get_sym_addr(s1, "_start", 1, 0); tcc-0.9.27+git20200814.62c30a4a/.pc/0003-Prevent-dead-code-on-x86-in-prepare_dynamic_rel.patch/tccelf.c-2213- break; ############################################## tcc-0.9.27+git20200814.62c30a4a/tccelf.c-485- name if FORC */ tcc-0.9.27+git20200814.62c30a4a/tccelf.c:486:ST_FUNC addr_t get_sym_addr(TCCState *s1, const char *name, int err, int forc) tcc-0.9.27+git20200814.62c30a4a/tccelf.c-487-{ ############################################## tcc-0.9.27+git20200814.62c30a4a/tccelf.c-513-{ tcc-0.9.27+git20200814.62c30a4a/tccelf.c:514: addr_t addr = get_sym_addr(s, name, 0, 1); tcc-0.9.27+git20200814.62c30a4a/tccelf.c-515- return addr == -1 ? NULL : (void*)(uintptr_t)addr; ############################################## tcc-0.9.27+git20200814.62c30a4a/tccelf.c-693- } else if (esym->st_other & ST_ASM_SET) { tcc-0.9.27+git20200814.62c30a4a/tccelf.c:694: /* If the existing symbol came from an asm .set tcc-0.9.27+git20200814.62c30a4a/tccelf.c-695- we can override. */ ############################################## tcc-0.9.27+git20200814.62c30a4a/tccelf.c-2213- ehdr.e_type = ET_EXEC; tcc-0.9.27+git20200814.62c30a4a/tccelf.c:2214: ehdr.e_entry = get_sym_addr(s1, "_start", 1, 0); tcc-0.9.27+git20200814.62c30a4a/tccelf.c-2215- break;