diff options
| author | James Lyon <jamesly0n@hotmail.com> | 2013-04-25 22:30:53 +0100 |
|---|---|---|
| committer | James Lyon <jamesly0n@hotmail.com> | 2013-04-25 22:30:53 +0100 |
| commit | 1caee8ab3b6c3cf3ceb06d1ec4a5e09e2d90c543 (patch) | |
| tree | 8030bbd2960b6951864d1bc21d634d6a95379196 /lib | |
| parent | e7a7efed11792e0dbc14a66b02fa7b25886f69d8 (diff) | |
| download | tinycc-1caee8ab3b6c3cf3ceb06d1ec4a5e09e2d90c543.tar.gz tinycc-1caee8ab3b6c3cf3ceb06d1ec4a5e09e2d90c543.tar.bz2 | |
Sorted out CMake on x86-64 and fixed silly XMM# bug introduced when working on Win64 stdargs.
I removed the XMM6/7 registers from the register list because they are not used
on Win64 however they are necessary for parameter passing on x86-64. I have now
restored them but not marked them with RC_FLOAT so they will not be used except
for parameter passing.
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/libtcc1.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/libtcc1.c b/lib/libtcc1.c index 1f246be..159c401 100644 --- a/lib/libtcc1.c +++ b/lib/libtcc1.c @@ -607,9 +607,16 @@ unsigned long long __fixunsxfdi (long double a1) #if defined(__x86_64__) && !defined(_WIN64) +#ifndef __TINYC__ +#include <stdlib.h> +#include <stdio.h> +#else /* Avoid including stdlib.h because it is not easily available when cross compiling */ extern void *malloc(unsigned long long); +extern void free(void*); +extern void abort(void); +#endif enum __va_arg_type { __va_gen_reg, __va_float_reg, __va_stack |
