Commit Graph

94 Commits (meesbs)

Author SHA1 Message Date
Thomas Preud'homme af26ac56bf Make TOK_alloca available for x86-64
TOK_alloca is now available on x86-64 so make put definition of
TOK_alloca outside the BCHECK conditional macro definition but test if
arch is i386 or x86-64. This makes C99 VLA works (understand compile) on
x86-64.
2011-02-04 13:25:38 +01:00
Shinichiro Hamaji 0ed7ba3f5e Support struct arguments with stdarg.h
- add __builtin_va_arg_types to check how arguments were passed
- move most code of stdarg into libtcc1.c
- remove __builtin_malloc and __builtin_free
- add a test case based on the bug report
  (http://www.mail-archive.com/tinycc-devel@nongnu.org/msg03036.html)
2010-12-28 19:32:40 +09:00
Thomas Preud'homme 8eb86ab78d Add nan, snan and inf float constants 2010-05-06 02:20:35 +02:00
Detlef Riekenberg a135dd50c6 tccasm: Detect (but ignore) .ident directive
tcc is now able to compile many asm files generated by gcc

--
By by ... Detlef
2010-04-05 12:45:52 +02:00
Detlef Riekenberg 558258a301 tccasm: Detect (but ignore) .size directive
--
By by ... Detlef
2010-04-05 12:43:51 +02:00
Detlef Riekenberg 6825c5db72 tccasm: Support .type directive (only name,@function)
--
By by ... Detlef
2010-04-05 12:31:45 +02:00
Detlef Riekenberg 9ff7a0bc98 tccasm: Detect (but ignore) the .file directive
Some patches, to allow tcc to compile asm sources generated by gcc
and help tcc with the autoconf stuff used in Wine
( http://source.winehq.org/git/wine.git/ )

--
By by ... Detlef
2010-04-05 12:19:49 +02:00
Manuel Simoni 95b9a477b6 weak function symbols 2010-02-27 17:37:59 +01:00
Detlef Riekenberg a975008ae7 Add support for the __mode__ attribute
--
By by ... Detlef
2010-01-26 22:56:22 +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 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
Frederic Feret ae23c46ce2 fixed and added missing file for x86_64 assembly 2009-11-13 18:09:01 +01:00
Frederic Feret 526c464504 first support of x86_64 assembly 2009-11-13 18:08:59 +01:00
Frederic Feret 0d768b9713 added 16-bit x86 assembly support 2009-11-13 18:08:58 +01:00
grischka 5b113f3ee3 win32: handle __declspec(dllimport) 2009-11-13 18:04:56 +01:00
grischka 110a4edc15 drop alloca #define
(Because GNU's alloca.h unconditionally #undef's alloca)

Also, remove gcc specific sections in headers. and
instead change tests such that gcc does not use them.
2009-05-16 22:30:13 +02:00
grischka 9a8b2912ed TOK_builtin_malloc: alternative solution 2009-04-18 15:08:02 +02:00
Shinichiro Hamaji ebb874e216 Remove multiple definition error caused by combination of x86-64 and va_list.
We need malloc and free to implement va_start and va_end.
Since malloc and free may be replaced by #define, we add __builtin_malloc and __builtin_free.
2009-04-18 15:07:09 +02:00
Shinichiro Hamaji d6072d3703 Add __builtin_frame_address(0)
Adding the GCC extension __builtin_frame_address(). We support only zero as the argument for now.
With this functionality, we can implement GCC compatible stdarg by macros in x86-64.
2008-12-02 02:25:59 +01:00
Daniel Glöckner 12265da6cd Runtime lib functions
Yesterday I felt the urge to change a few things in TinyCC.
This is the first and biggest change of all of them.

- use __aeabi_*divmod functions in ARM EABI to make binaries depend
  solely on standardized library functions

- refactor ARM floating point <-> integer conversion a bit

- rename long long->float and shift library functions to correspond to
  the names used by GCC

- compile more tokens conditionally to reduce the size of TinyCC

The intention is primarily to allow users of the ARM target to use
libgcc (which is usually available as a shared library) instead of
libtcc1 (which can't be compiled for ARM due to lack of an inline
assembler).

Changing the EABI target to use the divmod functions in theory allows
to use it without libtcc1 on any (not necessarily GCC based) ARM EABI
system.

  Daniel
2008-09-12 22:22:36 +02:00
grischka f99d3de221 Import 409,410: ARM EABI by Daniel Glckner 2007-12-04 20:38:09 +00:00
grischka d778bde7f9 Import more changesets from Rob Landley's fork (part 2) 2007-11-21 17:16:31 +00:00
bellard 8ba48f84fe fastcall keywords 2005-09-04 09:18:02 +00:00
bellard 0bca832c18 #pragma pack support (grischka) 2005-04-13 21:30:51 +00:00
bellard 8f2d519203 #include_next support (Bernhard Fischer) 2005-04-10 22:18:53 +00:00
bellard 9825011ced __chkstk support 2005-04-10 22:15:08 +00:00
bellard 2c538d7a2b initial PE format support 2005-04-10 21:46:58 +00:00
bellard 1e1d3ff687 packed attribute support 2004-10-29 23:55:13 +00:00
bellard e657dfb491 added .quad asm directive 2004-10-25 18:54:29 +00:00
bellard bb07bf31aa update 2004-10-23 22:52:58 +00:00
bellard 807321efba update 2004-10-18 00:20:41 +00:00
bellard ec7d36326d C67 COFF executable format support (TK) 2004-10-05 22:33:55 +00:00
bellard 6e5b1cc43a ARM fixes (Daniel Glockner) 2004-10-04 22:19:21 +00:00
bellard 8da6027e73 both .globl and .global directives are accepted by as 2004-10-02 14:01:26 +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 71f119fe25 various asm directives - char support (Dave Long) 2003-04-28 21:23:53 +00:00
bellard 7828683e60 added __builtin_constant_p() and __builtin_types_compatible_p() support 2003-04-26 21:28:09 +00:00
bellard 65092b7d85 added asm tokens - suppressed synonims (avoid potential bugs in preprocessing) 2003-01-06 20:23:26 +00:00
bellard 122198a8c2 update 2002-11-24 15:58:28 +00:00
bellard b8772fc99a all keywords are now in tcctok.h 2002-11-02 20:46:19 +00:00
bellard 540d31895c added alloca 2002-08-31 12:44:05 +00:00
bellard 5e85ad260d fixed strlen - added __FUNCTION__ 2002-08-29 21:15:05 +00:00
bellard e9315f499b added bound check symbols 2002-07-24 22:12:47 +00:00
bellard 6cdecbe4e6 added runtime library - fixed more relocations 2002-07-22 23:37:39 +00:00