aboutsummaryrefslogtreecommitdiff
path: root/lib/libtcc1.c
diff options
context:
space:
mode:
authorJames Lyon <jamesly0n@hotmail.com>2013-04-25 22:30:53 +0100
committerJames Lyon <jamesly0n@hotmail.com>2013-04-25 22:30:53 +0100
commit1caee8ab3b6c3cf3ceb06d1ec4a5e09e2d90c543 (patch)
tree8030bbd2960b6951864d1bc21d634d6a95379196 /lib/libtcc1.c
parente7a7efed11792e0dbc14a66b02fa7b25886f69d8 (diff)
downloadtinycc-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/libtcc1.c')
-rw-r--r--lib/libtcc1.c7
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