aboutsummaryrefslogtreecommitdiff
path: root/tcc.h
diff options
context:
space:
mode:
authorThomas Preud'homme <robotux@celest.fr>2014-01-07 15:23:54 +0800
committerThomas Preud'homme <robotux@celest.fr>2014-01-08 15:00:52 +0800
commitb6247d1f3c34e93e8603fddf5fc6da8dc6b81d00 (patch)
tree6515756dee0c2310d59990968675e145c5243651 /tcc.h
parent70a088af874076d8db5d7c2067afd8f2bcde0592 (diff)
downloadtinycc-b6247d1f3c34e93e8603fddf5fc6da8dc6b81d00.tar.gz
tinycc-b6247d1f3c34e93e8603fddf5fc6da8dc6b81d00.tar.bz2
Add support for runtime selection of float ABI
Diffstat (limited to 'tcc.h')
-rw-r--r--tcc.h21
1 files changed, 15 insertions, 6 deletions
diff --git a/tcc.h b/tcc.h
index f3d868f..73285ae 100644
--- a/tcc.h
+++ b/tcc.h
@@ -221,21 +221,24 @@
# endif
# elif defined __GNU__
# define CONFIG_TCC_ELFINTERP "/lib/ld.so"
-# elif defined TCC_ARM_HARDFLOAT
-# define CONFIG_TCC_ELFINTERP "/lib/ld-linux-armhf.so.3"
-# elif defined TCC_ARM_EABI
-# define CONFIG_TCC_ELFINTERP "/lib/ld-linux.so.3"
# elif defined(TCC_TARGET_X86_64)
# define CONFIG_TCC_ELFINTERP "/lib64/ld-linux-x86-64.so.2"
# elif defined(TCC_UCLIBC)
# define CONFIG_TCC_ELFINTERP "/lib/ld-uClibc.so.0"
# elif defined(TCC_TARGET_PE)
# define CONFIG_TCC_ELFINTERP "-"
-# else
+# elif !defined(TCC_ARM_EABI)
# define CONFIG_TCC_ELFINTERP "/lib/ld-linux.so.2"
# endif
#endif
+/* var elf_interp dans *-gen.c */
+#ifdef CONFIG_TCC_ELFINTERP
+# define DEFAULT_ELFINTERP(s) CONFIG_TCC_ELFINTERP
+#else
+# define DEFAULT_ELFINTERP(s) default_elfinterp(s)
+#endif
+
/* library to use with CONFIG_USE_LIBGCC instead of libtcc1.a */
#define TCC_LIBGCC USE_MUADIR(CONFIG_SYSROOT "/" CONFIG_LDDIR) "/libgcc_s.so.1"
@@ -561,6 +564,9 @@ struct TCCState {
/* compile with built-in memory and bounds checker */
int do_bounds_check;
#endif
+#ifdef TCC_TARGET_ARM
+ enum float_abi float_abi; /* float ABI of the generated code*/
+#endif
addr_t text_addr; /* address of text section */
int has_text_addr;
@@ -1329,7 +1335,10 @@ ST_FUNC void gen_opl(int op);
/* ------------ arm-gen.c ------------ */
#ifdef TCC_TARGET_ARM
-ST_FUNC void arm_init_types(void);
+#ifdef TCC_ARM_EABI
+ST_FUNC char *default_elfinterp(struct TCCState *s);
+#endif
+ST_FUNC void arm_init(struct TCCState *s);
ST_FUNC uint32_t encbranch(int pos, int addr, int fail);
ST_FUNC void gen_cvt_itof1(int t);
#endif