Commit Graph

48 Commits

Author SHA1 Message Date
46e2dd7c32 tcctok.h: fix ifdef target/host confusion 2011-04-12 00:11:47 -07:00
ace0f7f259 re-apply VLA by Thomas Preud'homme 2011-04-06 09:17:03 -07:00
c93eca4fe4 tccgen: handle __attribute((alias("target"))) 2011-03-03 01:58:45 -08:00
c1b7267a2f Revert "Make TOK_alloca available for x86-64"
This reverts commit af26ac56bf.
2011-02-05 02:33:45 +01:00
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
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
8eb86ab78d Add nan, snan and inf float constants 2010-05-06 02:20:35 +02:00
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
558258a301 tccasm: Detect (but ignore) .size directive
--
By by ... Detlef
2010-04-05 12:43:51 +02:00
6825c5db72 tccasm: Support .type directive (only name,@function)
--
By by ... Detlef
2010-04-05 12:31:45 +02:00
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
95b9a477b6 weak function symbols 2010-02-27 17:37:59 +01:00
a975008ae7 Add support for the __mode__ attribute
--
By by ... Detlef
2010-01-26 22:56:22 +01:00
7fa712e00c win32: enable bounds checker & exception handler
exception handler borrowed from k1w1. Thanks.
2009-12-19 22:22:43 +01:00
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
ae23c46ce2 fixed and added missing file for x86_64 assembly 2009-11-13 18:09:01 +01:00
526c464504 first support of x86_64 assembly 2009-11-13 18:08:59 +01:00
0d768b9713 added 16-bit x86 assembly support 2009-11-13 18:08:58 +01:00
5b113f3ee3 win32: handle __declspec(dllimport) 2009-11-13 18:04:56 +01:00
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
9a8b2912ed TOK_builtin_malloc: alternative solution 2009-04-18 15:08:02 +02:00
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
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
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
f99d3de221 Import 409,410: ARM EABI by Daniel Glckner 2007-12-04 20:38:09 +00:00
d778bde7f9 Import more changesets from Rob Landley's fork (part 2) 2007-11-21 17:16:31 +00:00
8ba48f84fe fastcall keywords 2005-09-04 09:18:02 +00:00
0bca832c18 #pragma pack support (grischka) 2005-04-13 21:30:51 +00:00
8f2d519203 #include_next support (Bernhard Fischer) 2005-04-10 22:18:53 +00:00
9825011ced __chkstk support 2005-04-10 22:15:08 +00:00
2c538d7a2b initial PE format support 2005-04-10 21:46:58 +00:00
1e1d3ff687 packed attribute support 2004-10-29 23:55:13 +00:00
e657dfb491 added .quad asm directive 2004-10-25 18:54:29 +00:00
bb07bf31aa update 2004-10-23 22:52:58 +00:00
807321efba update 2004-10-18 00:20:41 +00:00
ec7d36326d C67 COFF executable format support (TK) 2004-10-05 22:33:55 +00:00
6e5b1cc43a ARM fixes (Daniel Glockner) 2004-10-04 22:19:21 +00:00
8da6027e73 both .globl and .global directives are accepted by as 2004-10-02 14:01:26 +00:00
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
71f119fe25 various asm directives - char support (Dave Long) 2003-04-28 21:23:53 +00:00
7828683e60 added __builtin_constant_p() and __builtin_types_compatible_p() support 2003-04-26 21:28:09 +00:00
65092b7d85 added asm tokens - suppressed synonims (avoid potential bugs in preprocessing) 2003-01-06 20:23:26 +00:00
122198a8c2 update 2002-11-24 15:58:28 +00:00
b8772fc99a all keywords are now in tcctok.h 2002-11-02 20:46:19 +00:00
540d31895c added alloca 2002-08-31 12:44:05 +00:00
5e85ad260d fixed strlen - added __FUNCTION__ 2002-08-29 21:15:05 +00:00
e9315f499b added bound check symbols 2002-07-24 22:12:47 +00:00
6cdecbe4e6 added runtime library - fixed more relocations 2002-07-22 23:37:39 +00:00