aboutsummaryrefslogtreecommitdiff
path: root/tcctok.h
Commit message (Collapse)AuthorAgeFilesLines
* arm64: Implement __clear_cache.Edmund Grimley Evans2015-03-081-0/+1
| | | | | | __clear_cache is defined in lib-arm64.c with a single call to __arm64_clear_cache, which is the real built-in function and is turned into inline assembler by gen_clear_cache in arm64-gen.c
* Add __builtin_return_address.Edmund Grimley Evans2015-03-061-0/+1
| | | | | | Implementation is mostly shared with __builtin_frame_address. It seems to work on arm64, i386 and x86_64. It may need to be adapted for other targets.
* partial revert of the commit 4ad186c5ef61seyko2015-03-041-0/+4
| | | | | | | | | | | | | | | A test program: /* result of the new version inroduced in 4ad186c5ef61: t2a = 44100312 */ #include<stdio.h> int main() { int t1 = 176401255; float f = 0.25f; int t2a = (int)(t1 * f); // must be 44100313 int t2b = (int)(t1 * (float)0.25f); printf("t2a=%d t2b=%d \n",t2a,t2b); return 0; }
* Add arm64 (AArch64) as a target architecture.Edmund Grimley Evans2015-02-231-0/+33
|
* Add support for .p2align asm directive.Reimar Döffinger2015-01-201-0/+1
| | | | Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
* Parse assembler .hidden directiveMichael Matz2014-04-141-0/+1
| | | | | This makes TCCs assembler understand the '.hidden symbol' directive (and emits a STV_HIDDEN ELF symbol then).
* Parse and emit hidden visibilityMichael Matz2014-04-141-0/+2
| | | | | | | This adds parsing of (GCC compatible) visibility attribute in order to mark selected global symbols as hidden. The generated .o files contain hidden symbols already, the TCC linker doesn't yet do the right thing.
* Create bcheck region for argv and arge argumentThomas Preud'homme2014-03-291-0/+1
| | | | | | | | | | | For program manipulating argv or arge as pointer with construct such as: (while *argv++) { do_something_with_argv; } it is necessary to have argv and arge inside a region. This patch create regions argv and arge) if main is declared with those parameters.
* i386: use __fixdfdi instead of __tcc_cvt_ftolgrischka2014-01-061-43/+46
| | | | | | | | | | | | Variants __fixsfdi/__fixxfdi are not needed for now because the value is converted to double always. Also: - remove __tcc_fpinit for unix as it seems redundant by the __setfpucw call in the startup code - avoid reference to s->runtime_main in cross compilers - configure: fix --with-libgcc help - tcctok.h: cleanup
* Revert "Add support for thread-local storage variables"Thomas Preud'homme2013-11-031-1/+0
| | | | | | | | | | TLS support in tinyCC is absolutely not ready: - segment register not select in load and store - no relocation added for computing offset of per-thread symbol - no support for TLS-specific relocations - no program header added as per Drepper document about TLS This reverts commit 1c4afd13501f07a673aed5f130166f2ee0f30927.
* Add support for thread-local storage variablesThomas Preud'homme2013-10-291-0/+1
|
* i386-gen: preserve fp control word in gen_cvt_ftoigrischka2013-08-281-2/+2
| | | | | | | | | | | | | | | | | | | | | | | - Use runtime function for conversion - Also initialize fp with tcc -run on windows This fixes a bug where double x = 1.0; double y = 1.0000000000000001; double z = x < y ? 0 : sqrt (x*x - y*y); caused a bad sqrt because rounding precision for the x < y comparison was different to the one used within the sqrt function. This also fixes a bug where printf("%d, %d", (int)pow(10, 2), (int)pow(10, 2)); would print 100, 99 Unrelated: win32: document relative include & lib lookup win32: normalize_slashes: do not mirror silly gcc behavior This reverts part of commit 8a81f9e1036637e21a47e14fb56bf64133546890 winapi: add missing WINAPI decl. for some functions
* 64-bit tests now pass (well, nearly).James Lyon2013-04-241-0/+4
| | | | | tcctest1-3 fail, but this appears to be due to bugs in GCC rather than TCC (from manual inspection of the output).
* tcctok.h: fix ifdef target/host confusionJoe Soroka2011-04-121-1/+1
|
* re-apply VLA by Thomas Preud'hommeJoe Soroka2011-04-061-0/+2
|
* tccgen: handle __attribute((alias("target")))Joe Soroka2011-03-031-0/+2
|
* Revert "Make TOK_alloca available for x86-64"Thomas Preud'homme2011-02-051-2/+0
| | | | This reverts commit af26ac56bfc584b70e20158e67f7035024076ec8.
* Make TOK_alloca available for x86-64Thomas Preud'homme2011-02-041-0/+2
| | | | | | | 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.
* Support struct arguments with stdarg.hShinichiro Hamaji2010-12-281-6/+1
| | | | | | | | - 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)
* Add nan, snan and inf float constantsThomas Preud'homme2010-05-061-2/+7
|
* tccasm: Detect (but ignore) .ident directiveDetlef Riekenberg2010-04-051-0/+1
| | | | | | | tcc is now able to compile many asm files generated by gcc -- By by ... Detlef
* tccasm: Detect (but ignore) .size directiveDetlef Riekenberg2010-04-051-0/+1
| | | | | -- By by ... Detlef
* tccasm: Support .type directive (only name,@function)Detlef Riekenberg2010-04-051-0/+1
| | | | | -- By by ... Detlef
* tccasm: Detect (but ignore) the .file directiveDetlef Riekenberg2010-04-051-0/+1
| | | | | | | | | 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
* weak function symbolsManuel Simoni2010-02-271-0/+2
|
* Add support for the __mode__ attributeDetlef Riekenberg2010-01-261-0/+4
| | | | | -- By by ... Detlef
* win32: enable bounds checker & exception handlergrischka2009-12-191-1/+3
| | | | exception handler borrowed from k1w1. Thanks.
* integrate x86_64-asm.c into i386-asm.cgrischka2009-12-191-5/+1
| | | | | Also, disable 16bit support for now as it causes bugs in 32bit mode. #define I386_ASM_16 if you want it.
* fixed and added missing file for x86_64 assemblyFrederic Feret2009-11-131-1/+1
|
* first support of x86_64 assemblyFrederic Feret2009-11-131-215/+6
|
* added 16-bit x86 assembly supportFrederic Feret2009-11-131-0/+5
|
* win32: handle __declspec(dllimport)grischka2009-11-131-0/+1
|
* drop alloca #definegrischka2009-05-161-1/+1
| | | | | | | (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.
* TOK_builtin_malloc: alternative solutiongrischka2009-04-181-0/+4
|
* Remove multiple definition error caused by combination of x86-64 and va_list.Shinichiro Hamaji2009-04-181-0/+4
| | | | | 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.
* Add __builtin_frame_address(0)Shinichiro Hamaji2008-12-021-0/+1
| | | | | 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.
* Runtime lib functionsDaniel Glöckner2008-09-121-30/+33
| | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Import 409,410: ARM EABI by Daniel Glöcknergrischka2007-12-041-2/+31
|
* Import more changesets from Rob Landley's fork (part 2)grischka2007-11-211-1/+1
|
* fastcall keywordsbellard2005-09-041-0/+3
|
* #pragma pack support (grischka)bellard2005-04-131-0/+8
|
* #include_next support (Bernhard Fischer)bellard2005-04-101-0/+1
|
* __chkstk supportbellard2005-04-101-0/+1
|
* initial PE format supportbellard2005-04-101-0/+1
|
* packed attribute supportbellard2004-10-291-0/+2
|
* added .quad asm directivebellard2004-10-251-0/+1
|
* updatebellard2004-10-231-0/+2
|
* updatebellard2004-10-181-0/+5
|
* C67 COFF executable format support (TK)bellard2004-10-051-1/+11
|
* ARM fixes (Daniel Glockner)bellard2004-10-041-0/+7
|