blob: 410d01196e57e042be8270eac697389b83fab23c [file] [log] [blame]
Logan35849002011-01-15 07:30:43 +08001#ifndef BCC_CONFIG_H
2#define BCC_CONFIG_H
3
4//---------------------------------------------------------------------------
Shih-wei Liao898c5a92011-05-18 07:02:39 -07005// Configuration for JIT & MC Assembler
6//---------------------------------------------------------------------------
7#define CLASSIC_JIT 1
8#define MC_ASSEMBLER 0
9
10//---------------------------------------------------------------------------
Logan1dc63142011-02-25 17:14:51 +080011// Configuration for libbcc
12//---------------------------------------------------------------------------
Logan35849002011-01-15 07:30:43 +080013
14#define USE_CACHE 1
15
16#define USE_DISASSEMBLER 1
17
18#define USE_DISASSEMBLER_FILE 0
19
Shih-wei Liaobb5adc72011-03-17 22:22:57 -070020#define USE_LIBBCC_SHA1SUM 1
Logan35849002011-01-15 07:30:43 +080021
Logan4dcd6792011-02-28 05:12:00 +080022#define USE_LOGGER 1
23
24#define USE_FUNC_LOGGER 0
25
Logan35849002011-01-15 07:30:43 +080026//---------------------------------------------------------------------------
Logan1dc63142011-02-25 17:14:51 +080027// Configuration for ContextManager
28//---------------------------------------------------------------------------
29
30// Note: Most of the code should NOT use these constants. Use the public
31// static member of ContextManager instead, which is type-safe. For example,
32// if you need BCC_CONTEXT_FIXED_ADDR_, then you should write:
33// ContextManager::ContextFixedAddr
34
35#define BCC_CONTEXT_FIXED_ADDR_ reinterpret_cast<char *>(0x7e000000)
36
37#define BCC_CONTEXT_SLOT_COUNT_ 8
38
39#define BCC_CONTEXT_CODE_SIZE_ (128 * 1024)
40
41#define BCC_CONTEXT_DATA_SIZE_ (128 * 1024)
42
43//---------------------------------------------------------------------------
44// Configuration for CodeGen and CompilerRT
45//---------------------------------------------------------------------------
Logan35849002011-01-15 07:30:43 +080046
47#if defined(__arm__)
48 #define DEFAULT_ARM_CODEGEN
49 #define PROVIDE_ARM_CODEGEN
50#elif defined(__i386__)
51 #define DEFAULT_X86_CODEGEN
52 #define PROVIDE_X86_CODEGEN
53#elif defined(__x86_64__)
54 #define DEFAULT_X64_CODEGEN
55 #define PROVIDE_X64_CODEGEN
56#endif
57
58#if defined(FORCE_ARM_CODEGEN)
59 #define DEFAULT_ARM_CODEGEN
60 #undef DEFAULT_X86_CODEGEN
61 #undef DEFAULT_X64_CODEGEN
62 #define PROVIDE_ARM_CODEGEN
63 #undef PROVIDE_X86_CODEGEN
64 #undef PROVIDE_X64_CODEGEN
65#elif defined(FORCE_X86_CODEGEN)
66 #undef DEFAULT_ARM_CODEGEN
67 #define DEFAULT_X86_CODEGEN
68 #undef DEFAULT_X64_CODEGEN
69 #undef PROVIDE_ARM_CODEGEN
70 #define PROVIDE_X86_CODEGEN
71 #undef PROVIDE_X64_CODEGEN
72#elif defined(FORCE_X64_CODEGEN)
73 #undef DEFAULT_ARM_CODEGEN
74 #undef DEFAULT_X86_CODEGEN
75 #define DEFAULT_X64_CODEGEN
76 #undef PROVIDE_ARM_CODEGEN
77 #undef PROVIDE_X86_CODEGEN
78 #define PROVIDE_X64_CODEGEN
79#endif
80
81#if defined(DEFAULT_ARM_CODEGEN)
82 #define TARGET_TRIPLE_STRING "armv7-none-linux-gnueabi"
83#elif defined(DEFAULT_X86_CODEGEN)
84 #define TARGET_TRIPLE_STRING "i686-unknown-linux"
85#elif defined(DEFAULT_X64_CODEGEN)
86 #define TARGET_TRIPLE_STRING "x86_64-unknown-linux"
87#endif
88
89#if (defined(__VFP_FP__) && !defined(__SOFTFP__))
90 #define ARM_USE_VFP
91#endif
92
93//---------------------------------------------------------------------------
94
95#endif // BCC_CONFIG_H