#ifndef BCC_CONFIG_CONFIG_H #define BCC_CONFIG_CONFIG_H //--------------------------------------------------------------------------- // Configuration for Disassembler //--------------------------------------------------------------------------- #if DEBUG_MC_DISASSEMBLER #define USE_DISASSEMBLER 1 #else #define USE_DISASSEMBLER 0 #endif #if defined(__HOST__) #define DEBUG_DISASSEMBLER_FILE "/tmp/mc-dis.s" #else #define DEBUG_DISASSEMBLER_FILE "/data/local/tmp/mc-dis.s" #endif // defined(__HOST__) //--------------------------------------------------------------------------- // Configuration for CodeGen and CompilerRT //--------------------------------------------------------------------------- #if defined(FORCE_ARM_CODEGEN) #define PROVIDE_ARM_CODEGEN 1 #define DEFAULT_ARM_CODEGEN 1 #elif defined(FORCE_ARM64_CODEGEN) #define PROVIDE_ARM_CODEGEN 1 #define PROVIDE_ARM64_CODEGEN 1 #define DEFAULT_ARM64_CODEGEN 1 #elif defined(FORCE_MIPS_CODEGEN) #define PROVIDE_MIPS_CODEGEN 1 #define DEFAULT_MIPS_CODEGEN 1 #elif defined(FORCE_MIPS64_CODEGEN) #define PROVIDE_MIPS_CODEGEN 1 #define PROVIDE_MIPS64_CODEGEN 1 #define DEFAULT_MIPS64_CODEGEN 1 #elif defined(FORCE_X86_CODEGEN) #define PROVIDE_X86_CODEGEN 1 #define DEFAULT_X86_CODEGEN 1 #elif defined(FORCE_X86_64_CODEGEN) // There is no separate X86_64 code generation target. It is all part of X86. #define PROVIDE_X86_CODEGEN 1 #define DEFAULT_X86_64_CODEGEN 1 #else #define PROVIDE_ARM_CODEGEN 1 #define PROVIDE_ARM64_CODEGEN 1 #define PROVIDE_MIPS_CODEGEN 1 #define PROVIDE_MIPS64_CODEGEN 1 #define PROVIDE_X86_CODEGEN 1 #define PROVIDE_X86_64_CODEGEN 1 #if defined(__arm__) #define DEFAULT_ARM_CODEGEN 1 #elif defined(__aarch64__) #define DEFAULT_ARM64_CODEGEN 1 #elif defined(__mips__) #if defined(__LP64__) #define DEFAULT_MIPS64_CODEGEN 1 #else #define DEFAULT_MIPS_CODEGEN 1 #endif #elif defined(__i386__) #define DEFAULT_X86_CODEGEN 1 #elif defined(__x86_64__) #define DEFAULT_X86_64_CODEGEN 1 #endif #endif #define DEFAULT_ARM_TRIPLE_STRING "armv7-none-linux-gnueabi" #define DEFAULT_THUMB_TRIPLE_STRING "thumbv7-none-linux-gnueabi" #define DEFAULT_ARM64_TRIPLE_STRING "aarch64-none-linux-gnueabi" #define DEFAULT_MIPS_TRIPLE_STRING "mipsel-none-linux-gnueabi" #define DEFAULT_MIPS64_TRIPLE_STRING "mips64el-none-linux-gnueabi" #define DEFAULT_X86_TRIPLE_STRING "i686-unknown-linux" #define DEFAULT_X86_64_TRIPLE_STRING "x86_64-unknown-linux" // Custom DataLayout string for X86 with i64 and f64 set to match the ARM32 // alignment requirement of 64-bits. #define X86_CUSTOM_DL_STRING "e-m:e-p:32:32-i64:64-f64:64:64-f80:32-n8:16:32-S128" // Default DataLayout string for X86. Present to detect future LLVM datalayout // changes so X86_CUSTOM_DL_STRING above can be modified appropriately. #define X86_DEFAULT_DL_STRING "e-m:e-p:32:32-f64:32:64-f80:32-n8:16:32-S128" #if defined(DEFAULT_ARM_CODEGEN) #define DEFAULT_TARGET_TRIPLE_STRING DEFAULT_ARM_TRIPLE_STRING #elif defined(DEFAULT_ARM64_CODEGEN) #define DEFAULT_TARGET_TRIPLE_STRING DEFAULT_ARM64_TRIPLE_STRING #elif defined(DEFAULT_MIPS_CODEGEN) #define DEFAULT_TARGET_TRIPLE_STRING DEFAULT_MIPS_TRIPLE_STRING #elif defined(DEFAULT_MIPS64_CODEGEN) #define DEFAULT_TARGET_TRIPLE_STRING DEFAULT_MIPS64_TRIPLE_STRING #elif defined(DEFAULT_X86_CODEGEN) #define DEFAULT_TARGET_TRIPLE_STRING DEFAULT_X86_TRIPLE_STRING #elif defined(DEFAULT_X86_64_CODEGEN) #define DEFAULT_TARGET_TRIPLE_STRING DEFAULT_X86_64_TRIPLE_STRING #endif #if (defined(__VFP_FP__) && !defined(__SOFTFP__)) #define ARM_USE_VFP #endif //--------------------------------------------------------------------------- #endif // BCC_CONFIG_CONFIG_H