1 #ifndef BCC_CONFIG_CONFIG_H 2 #define BCC_CONFIG_CONFIG_H 3 4 //--------------------------------------------------------------------------- 5 // Configuration for Disassembler 6 //--------------------------------------------------------------------------- 7 8 #if DEBUG_MC_DISASSEMBLER 9 #define USE_DISASSEMBLER 1 10 #else 11 #define USE_DISASSEMBLER 0 12 #endif 13 14 #if defined(__HOST__) 15 #define DEBUG_DISASSEMBLER_FILE "/tmp/mc-dis.s" 16 #else 17 #define DEBUG_DISASSEMBLER_FILE "/data/local/tmp/mc-dis.s" 18 #endif // defined(__HOST__) 19 20 //--------------------------------------------------------------------------- 21 // Configuration for CodeGen and CompilerRT 22 //--------------------------------------------------------------------------- 23 24 #if defined(FORCE_ARM_CODEGEN) 25 #define PROVIDE_ARM_CODEGEN 26 #define DEFAULT_ARM_CODEGEN 27 28 #elif defined(FORCE_ARM64_CODEGEN) 29 #define PROVIDE_ARM_CODEGEN 30 #define PROVIDE_ARM64_CODEGEN 31 #define DEFAULT_ARM64_CODEGEN 32 33 #elif defined(FORCE_MIPS_CODEGEN) 34 #define PROVIDE_MIPS_CODEGEN 35 #define DEFAULT_MIPS_CODEGEN 36 37 #elif defined(FORCE_MIPS64_CODEGEN) 38 #define PROVIDE_MIPS_CODEGEN 39 #define PROVIDE_MIPS64_CODEGEN 40 #define DEFAULT_MIPS64_CODEGEN 41 42 #elif defined(FORCE_X86_CODEGEN) 43 #define PROVIDE_X86_CODEGEN 44 #define DEFAULT_X86_CODEGEN 45 46 #elif defined(FORCE_X86_64_CODEGEN) 47 // There is no separate X86_64 code generation target. It is all part of X86. 48 #define PROVIDE_X86_CODEGEN 49 #define DEFAULT_X86_64_CODEGEN 50 51 #else 52 #define PROVIDE_ARM_CODEGEN 53 #define PROVIDE_ARM64_CODEGEN 54 #define PROVIDE_MIPS_CODEGEN 55 #define PROVIDE_MIPS64_CODEGEN 56 #define PROVIDE_X86_CODEGEN 57 #define PROVIDE_X86_64_CODEGEN 58 59 #if defined(__arm__) 60 #define DEFAULT_ARM_CODEGEN 61 #elif defined(__aarch64__) 62 #define DEFAULT_ARM64_CODEGEN 63 #elif defined(__mips__) 64 #if defined(__LP64__) 65 #define DEFAULT_MIPS64_CODEGEN 66 #else 67 #define DEFAULT_MIPS_CODEGEN 68 #endif 69 #elif defined(__i386__) 70 #define DEFAULT_X86_CODEGEN 71 #elif defined(__x86_64__) 72 #define DEFAULT_X86_64_CODEGEN 73 #endif 74 #endif 75 76 #define DEFAULT_ARM_TRIPLE_STRING "armv7-none-linux-gnueabi" 77 #define DEFAULT_THUMB_TRIPLE_STRING "thumbv7-none-linux-gnueabi" 78 #define DEFAULT_ARM64_TRIPLE_STRING "aarch64-none-linux-gnueabi" 79 #define DEFAULT_MIPS_TRIPLE_STRING "mipsel-none-linux-gnueabi" 80 #define DEFAULT_MIPS64_TRIPLE_STRING "mips64el-none-linux-gnueabi" 81 #define DEFAULT_X86_TRIPLE_STRING "i686-unknown-linux" 82 #define DEFAULT_X86_64_TRIPLE_STRING "x86_64-unknown-linux" 83 84 // Custom DataLayout string for X86 with i64 and f64 set to match the ARM32 85 // alignment requirement of 64-bits. 86 #define X86_CUSTOM_DL_STRING "e-m:e-p:32:32-i64:64-f64:64:64-f80:32-n8:16:32-S128" 87 // Default DataLayout string for X86. Present to detect future LLVM datalayout 88 // changes so X86_CUSTOM_DL_STRING above can be modified appropriately. 89 #define X86_DEFAULT_DL_STRING "e-m:e-p:32:32-f64:32:64-f80:32-n8:16:32-S128" 90 91 #if defined(DEFAULT_ARM_CODEGEN) 92 #define DEFAULT_TARGET_TRIPLE_STRING DEFAULT_ARM_TRIPLE_STRING 93 #elif defined(DEFAULT_ARM64_CODEGEN) 94 #define DEFAULT_TARGET_TRIPLE_STRING DEFAULT_ARM64_TRIPLE_STRING 95 #elif defined(DEFAULT_MIPS_CODEGEN) 96 #define DEFAULT_TARGET_TRIPLE_STRING DEFAULT_MIPS_TRIPLE_STRING 97 #elif defined(DEFAULT_MIPS64_CODEGEN) 98 #define DEFAULT_TARGET_TRIPLE_STRING DEFAULT_MIPS64_TRIPLE_STRING 99 #elif defined(DEFAULT_X86_CODEGEN) 100 #define DEFAULT_TARGET_TRIPLE_STRING DEFAULT_X86_TRIPLE_STRING 101 #elif defined(DEFAULT_X86_64_CODEGEN) 102 #define DEFAULT_TARGET_TRIPLE_STRING DEFAULT_X86_64_TRIPLE_STRING 103 #endif 104 105 #if (defined(__VFP_FP__) && !defined(__SOFTFP__)) 106 #define ARM_USE_VFP 107 #endif 108 109 //--------------------------------------------------------------------------- 110 111 #endif // BCC_CONFIG_CONFIG_H 112