Commit Graph

61 Commits

Author SHA1 Message Date
Kirill Smelkov
ab24aaeca3 i386: We can change 'lea 0(%ebp),r' to 'mov %ebp,r'
Because that mov is 1 byte shorter, look:

    int *func()
    {
        return __builtin_frame_address(0);
    }

before patch:

00000000 <func>:
   0:   55                      push   %ebp
   1:   89 e5                   mov    %esp,%ebp
   3:   81 ec 00 00 00 00       sub    $0x0,%esp
   9:   8d 45 00                lea    0x0(%ebp),%eax   // <- here
   c:   e9 00 00 00 00          jmp    11 <func+0x11>
  11:   c9                      leave
  12:   c3                      ret

after patch:

00000000 <func>:
   0:   55                      push   %ebp
   1:   89 e5                   mov    %esp,%ebp
   3:   81 ec 00 00 00 00       sub    $0x0,%esp
   9:   89 e8                   mov    %ebp,%eax        // <- here
   b:   e9 00 00 00 00          jmp    10 <func+0x10>
  10:   c9                      leave
  11:   c3                      ret
2012-11-16 10:22:45 +04:00
Daniel Glöckner
9527c4949f i386: fix loading of LLOCAL floats
These loads clobbered ebx as TinyCC wanted to load the address into st0.
2012-01-23 01:45:11 +01:00
Thomas Preud'homme
9c25ed13b4 s/derefencing/dereferencing/ in i386-gen.c 2012-01-08 18:03:17 +01:00
grischka
bf374a5f23 rename error/warning -> tcc_(error/warning) 2011-08-11 17:07:56 +02:00
Kirill Smelkov
87db8b637e chmod a-x i386-gen.c
No need to keep executable bit on plain C source.
2010-06-16 14:37:30 +04:00
U-UNIT1\dennis
d3c432244c generate inc and dec for smaller code 2010-04-03 21:20:34 +03:00
grischka
2341ee5142 tccpe: improve dllimport/export and use for tcc_add_symbol 2010-01-14 20:59:42 +01:00
grischka
88a3ccab9f allow tcc be build from separate objects
If you want that, run: make NOTALLINONE=1
2009-12-20 01:53:49 +01:00
grischka
7fa712e00c win32: enable bounds checker & exception handler
exception handler borrowed from k1w1. Thanks.
2009-12-19 22:22:43 +01:00
grischka
41e112360f fix uninitialized warnings with 'type.ref' 2009-12-19 22:16:22 +01:00
grischka
94bf4d2c22 tccpe: improve dllimport 2009-12-19 22:16:21 +01:00
grischka
1308e8ebcf integrate x86_64-asm.c into i386-asm.c
Also, disable 16bit support for now as it causes bugs
in 32bit mode.  #define I386_ASM_16 if you want it.
2009-12-19 22:16:20 +01:00
grischka
5b113f3ee3 win32: handle __declspec(dllimport) 2009-11-13 18:04:56 +01:00
Shinichiro Hamaji
5dadff3de5 x86-64: Fix stab debug information.
We need 32bit relocations for code and 64bit for debug info.
Introduce a new macro R_DATA_PTR to distinguish the two usages.
2009-08-24 13:30:03 +02:00
grischka
c998985c74 cleanup: constify some global data 2009-07-18 22:07:42 +02:00
grischka
610fd47510 win32: structure return GCC compatible (ret 4 with cdecl) 2009-06-17 02:11:13 +02:00
grischka
f9181416f6 move some global variables into TCCState 2009-05-11 18:45:44 +02:00
Daniel Glöckner
2c657f6608 Set VT_LVAL_xxx flags for function arguments in gfunc_prolog (Daniel Glöckner) 2008-09-12 02:36:32 +02:00
grischka
5342b32eef Switch to newer tccpe.c (includes support for resources) 2007-12-19 17:36:42 +00:00
bellard
38d2e8b9d8 Bug fix: A long long value used as a test expression ignores the upper 32 bits at runtime (Dave Dodge) 2006-10-28 14:10:07 +00:00
bellard
e9c64e3f47 windows style fastcall (Filip Navara) 2005-09-03 22:21:22 +00:00
bellard
09f4ce9857 _Bool type fix 2005-04-17 13:15:31 +00:00
bellard
9825011ced __chkstk support 2005-04-10 22:15:08 +00:00
bellard
c9c05ca5f0 copyright update 2004-10-27 21:38:03 +00:00
bellard
72a88fbab0 primitive fastcall functions support 2004-10-18 00:14:40 +00:00
bellard
3bd3c71fd1 faster (Daniel Glöckner) 2004-10-04 22:06:22 +00:00
bellard
79c72b2419 initial TMS320C67xx support (TK) 2004-10-04 21:57:35 +00:00
bellard
4df5bd2eb0 ARM target support (Daniel Glockner) - allow unsigned char as default on ARM (Daniel Glockner) - fixed small ld script support (Daniel Glockner) 2003-10-14 22:15:56 +00:00
bellard
8f5e44a439 changed license to LGPL 2003-05-24 14:11:17 +00:00
bellard
214ccccea7 simpler function call API 2003-04-16 21:16:20 +00:00
bellard
b5259da4f2 renamed registers 2002-12-08 14:34:48 +00:00
bellard
d1e7e264a5 added MAX_ALIGN 2002-11-24 15:58:50 +00:00
bellard
9620fd18e4 added CType structure for type storage - supressed define hash table - added time dump in bench 2002-11-18 21:46:44 +00:00
bellard
fde824b7cd handle computed gotos 2002-11-03 00:43:01 +00:00
bellard
3748975feb trivial jump size optimization 2002-09-08 22:06:11 +00:00
bellard
431d648096 fixed PC32 relocation if constant address 2002-08-31 12:42:16 +00:00
bellard
d2115bfb27 added symbol + relocation handling 2002-08-29 23:05:59 +00:00
bellard
4891761bc9 realloc text section in code generation 2002-08-18 13:19:18 +00:00
bellard
4c9c0ab114 added size info 2002-07-27 23:08:29 +00:00
bellard
a42941b1f0 use data_offset in sections instead of pointer to ease section reallocation 2002-07-27 14:06:11 +00:00
bellard
58af3a6cd2 moved bcheck.c outside of tcc - optimized add sp code 2002-07-24 22:11:30 +00:00
bellard
6cdecbe4e6 added runtime library - fixed more relocations 2002-07-22 23:37:39 +00:00
bellard
3d902af1a9 moved relocation handling to elf generator 2002-07-22 00:20:57 +00:00
bellard
be44fce9cd added GOT support 2002-07-18 00:51:27 +00:00
bellard
82695ae971 fixed PC32 relocation 2002-07-14 23:00:53 +00:00
bellard
6cd36b1285 added better relocation support (needed for file output) 2002-07-14 14:38:33 +00:00
bellard
264dbcfed2 fixed floating poing compare - use LVAL type - optimized bound checking 2002-07-13 15:55:16 +00:00
bellard
14fb0c49d8 added arg to save_regs() 2002-05-13 23:00:39 +00:00
bellard
4226681d36 added optionnal bound check compile - fixed error reporting 2002-03-03 22:45:55 +00:00
bellard
421911f921 moved i368 specific code 2002-02-10 16:13:14 +00:00