aboutsummaryrefslogtreecommitdiff
path: root/tcctok.h
diff options
context:
space:
mode:
authorgrischka <grischka>2014-01-06 19:07:08 +0100
committergrischka <grischka>2014-01-06 19:07:08 +0100
commit4ad186c5ef61477030ca37372f9d6c6d03681015 (patch)
tree027dc0291eeb4bf77d521ac7a69cf40e23f2ae4d /tcctok.h
parent8efaa711904b897f9a4821656ac10f980c5ae9fe (diff)
downloadtinycc-4ad186c5ef61477030ca37372f9d6c6d03681015.tar.gz
tinycc-4ad186c5ef61477030ca37372f9d6c6d03681015.tar.bz2
i386: use __fixdfdi instead of __tcc_cvt_ftol
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
Diffstat (limited to 'tcctok.h')
-rw-r--r--tcctok.h89
1 files changed, 46 insertions, 43 deletions
diff --git a/tcctok.h b/tcctok.h
index 9b47a60..73b0cf9 100644
--- a/tcctok.h
+++ b/tcctok.h
@@ -143,23 +143,34 @@
#endif
/* builtin functions or variables */
-#ifdef TCC_ARM_EABI
- DEF(TOK_memcpy, "__aeabi_memcpy")
- DEF(TOK_memcpy4, "__aeabi_memcpy4")
- DEF(TOK_memcpy8, "__aeabi_memcpy8")
- DEF(TOK_memset, "__aeabi_memset")
- DEF(TOK___aeabi_ldivmod, "__aeabi_ldivmod")
- DEF(TOK___aeabi_uldivmod, "__aeabi_uldivmod")
-#else
+#ifndef TCC_ARM_EABI
DEF(TOK_memcpy, "memcpy")
DEF(TOK_memset, "memset")
DEF(TOK___divdi3, "__divdi3")
DEF(TOK___moddi3, "__moddi3")
DEF(TOK___udivdi3, "__udivdi3")
DEF(TOK___umoddi3, "__umoddi3")
+ DEF(TOK___ashrdi3, "__ashrdi3")
+ DEF(TOK___lshrdi3, "__lshrdi3")
+ DEF(TOK___ashldi3, "__ashldi3")
+ DEF(TOK___floatundisf, "__floatundisf")
+ DEF(TOK___floatundidf, "__floatundidf")
+# ifndef TCC_ARM_VFP
+ DEF(TOK___floatundixf, "__floatundixf")
+ DEF(TOK___fixunsxfdi, "__fixunsxfdi")
+# endif
+ DEF(TOK___fixunssfdi, "__fixunssfdi")
+ DEF(TOK___fixunsdfdi, "__fixunsdfdi")
#endif
-#if defined(TCC_TARGET_ARM)
-#ifdef TCC_ARM_EABI
+
+#if defined TCC_TARGET_ARM
+# ifdef TCC_ARM_EABI
+ DEF(TOK_memcpy, "__aeabi_memcpy")
+ DEF(TOK_memcpy4, "__aeabi_memcpy4")
+ DEF(TOK_memcpy8, "__aeabi_memcpy8")
+ DEF(TOK_memset, "__aeabi_memset")
+ DEF(TOK___aeabi_ldivmod, "__aeabi_ldivmod")
+ DEF(TOK___aeabi_uldivmod, "__aeabi_uldivmod")
DEF(TOK___aeabi_idivmod, "__aeabi_idivmod")
DEF(TOK___aeabi_uidivmod, "__aeabi_uidivmod")
DEF(TOK___divsi3, "__aeabi_idiv")
@@ -168,24 +179,33 @@
DEF(TOK___floatdidf, "__aeabi_l2d")
DEF(TOK___fixsfdi, "__aeabi_f2lz")
DEF(TOK___fixdfdi, "__aeabi_d2lz")
-#else
+ DEF(TOK___ashrdi3, "__aeabi_lasr")
+ DEF(TOK___lshrdi3, "__aeabi_llsr")
+ DEF(TOK___ashldi3, "__aeabi_llsl")
+ DEF(TOK___floatundisf, "__aeabi_ul2f")
+ DEF(TOK___floatundidf, "__aeabi_ul2d")
+ DEF(TOK___fixunssfdi, "__aeabi_f2ulz")
+ DEF(TOK___fixunsdfdi, "__aeabi_d2ulz")
+# else
DEF(TOK___modsi3, "__modsi3")
DEF(TOK___umodsi3, "__umodsi3")
DEF(TOK___divsi3, "__divsi3")
DEF(TOK___udivsi3, "__udivsi3")
DEF(TOK___floatdisf, "__floatdisf")
DEF(TOK___floatdidf, "__floatdidf")
-#ifndef TCC_ARM_VFP
+# ifndef TCC_ARM_VFP
DEF(TOK___floatdixf, "__floatdixf")
DEF(TOK___fixunssfsi, "__fixunssfsi")
DEF(TOK___fixunsdfsi, "__fixunsdfsi")
DEF(TOK___fixunsxfsi, "__fixunsxfsi")
DEF(TOK___fixxfdi, "__fixxfdi")
-#endif
+# endif
DEF(TOK___fixsfdi, "__fixsfdi")
DEF(TOK___fixdfdi, "__fixdfdi")
+# endif
#endif
-#elif defined(TCC_TARGET_C67)
+
+#if defined TCC_TARGET_C67
DEF(TOK__divi, "_divi")
DEF(TOK__divu, "_divu")
DEF(TOK__divf, "_divf")
@@ -193,32 +213,18 @@
DEF(TOK__remi, "_remi")
DEF(TOK__remu, "_remu")
#endif
-#ifdef TCC_TARGET_I386
- DEF(TOK___tcc_fpinit, "__tcc_fpinit")
- DEF(TOK___tcc_cvt_ftol, "__tcc_cvt_ftol")
-#endif
-#ifdef TCC_ARM_EABI
- DEF(TOK___ashrdi3, "__aeabi_lasr")
- DEF(TOK___lshrdi3, "__aeabi_llsr")
- DEF(TOK___ashldi3, "__aeabi_llsl")
- DEF(TOK___floatundisf, "__aeabi_ul2f")
- DEF(TOK___floatundidf, "__aeabi_ul2d")
- DEF(TOK___fixunssfdi, "__aeabi_f2ulz")
- DEF(TOK___fixunsdfdi, "__aeabi_d2ulz")
-#else
- DEF(TOK___ashrdi3, "__ashrdi3")
- DEF(TOK___lshrdi3, "__lshrdi3")
- DEF(TOK___ashldi3, "__ashldi3")
- DEF(TOK___floatundisf, "__floatundisf")
- DEF(TOK___floatundidf, "__floatundidf")
-#ifndef TCC_ARM_VFP
- DEF(TOK___floatundixf, "__floatundixf")
- DEF(TOK___fixunsxfdi, "__fixunsxfdi")
+
+#if defined TCC_TARGET_I386
+ DEF(TOK___fixsfdi, "__fixsfdi")
+ DEF(TOK___fixdfdi, "__fixdfdi")
+ DEF(TOK___fixxfdi, "__fixxfdi")
#endif
- DEF(TOK___fixunssfdi, "__fixunssfdi")
- DEF(TOK___fixunsdfdi, "__fixunsdfdi")
+
+#if defined TCC_TARGET_I386 || defined TCC_TARGET_X86_64
+ DEF(TOK_alloca, "alloca")
#endif
-#ifdef TCC_TARGET_PE
+
+#if defined TCC_TARGET_PE
DEF(TOK___chkstk, "__chkstk")
#endif
@@ -233,20 +239,17 @@
DEF(TOK___bound_ptr_indir16, "__bound_ptr_indir16")
DEF(TOK___bound_local_new, "__bound_local_new")
DEF(TOK___bound_local_delete, "__bound_local_delete")
-#ifdef TCC_TARGET_PE
+# ifdef TCC_TARGET_PE
DEF(TOK_malloc, "malloc")
DEF(TOK_free, "free")
DEF(TOK_realloc, "realloc")
DEF(TOK_memalign, "memalign")
DEF(TOK_calloc, "calloc")
-#endif
+# endif
DEF(TOK_memmove, "memmove")
DEF(TOK_strlen, "strlen")
DEF(TOK_strcpy, "strcpy")
#endif
-#if defined TCC_TARGET_I386 || defined TCC_TARGET_X86_64
- DEF(TOK_alloca, "alloca")
-#endif
/* Tiny Assembler */
DEF_ASM(byte)