1#ifndef BCC_CONFIG_H
2#define BCC_CONFIG_H
3
4#include "ConfigFromMk.h"
5
6//---------------------------------------------------------------------------
7// Configuration for JIT & MC Assembler
8//---------------------------------------------------------------------------
9#if !USE_OLD_JIT && !USE_MCJIT
10#error "You should choose at least one code generation method."
11#endif
12
13//---------------------------------------------------------------------------
14// Configuration for Disassembler
15//---------------------------------------------------------------------------
16
17#if !USE_OLD_JIT
18#undef DEBUG_OLD_JIT_DISASSEMBLER
19#define DEBUG_OLD_JIT_DISASSEMBLER 0
20#endif
21
22#if !USE_MCJIT
23#undef DEBUG_MCJIT_DISASSEMBLER
24#define DEBUG_MCJIT_DISASSEMBLER 0
25#endif
26
27#if DEBUG_OLD_JIT_DISASSEMBLER || DEBUG_MCJIT_DISASSEMBLER
28#define USE_DISASSEMBLER 1
29#else
30#define USE_DISASSEMBLER 0
31#endif
32
33#define DEBUG_OLD_JIT_DISASSEMBLER_FILE "/data/local/tmp/oldjit-dis.s"
34#define DEBUG_MCJIT_DISASSEMBLER_FILE "/data/local/tmp/mcjit-dis.s"
35
36//---------------------------------------------------------------------------
37// Configuration for ContextManager
38//---------------------------------------------------------------------------
39
40// Note: Most of the code should NOT use these constants.  Use the public
41// static member of ContextManager instead, which is type-safe.  For example,
42// if you need BCC_CONTEXT_FIXED_ADDR_, then you should write:
43// ContextManager::ContextFixedAddr
44
45#define BCC_CONTEXT_FIXED_ADDR_ reinterpret_cast<char *>(0x7e000000)
46
47#define BCC_CONTEXT_SLOT_COUNT_ 8
48
49#define BCC_CONTEXT_CODE_SIZE_ (128 * 1024)
50
51#define BCC_CONTEXT_DATA_SIZE_ (128 * 1024)
52
53//---------------------------------------------------------------------------
54// Configuration for CodeGen and CompilerRT
55//---------------------------------------------------------------------------
56
57#if defined(FORCE_ARM_CODEGEN)
58  #define PROVIDE_ARM_CODEGEN
59  #define DEFAULT_ARM_CODEGEN
60
61#elif defined(FORCE_X86_CODEGEN)
62  #define PROVIDE_X86_CODEGEN
63
64  #if defined(__i386__)
65    #define DEFAULT_X86_CODEGEN
66  #elif defined(__x86_64__)
67    #define DEFAULT_X86_64_CODEGEN
68  #endif
69
70#else
71  #define PROVIDE_ARM_CODEGEN
72  #define PROVIDE_X86_CODEGEN
73
74  #if defined(__arm__)
75    #define DEFAULT_ARM_CODEGEN
76  #elif defined(__i386__)
77    #define DEFAULT_X86_CODEGEN
78  #elif defined(__x86_64__)
79    #define DEFAULT_X86_64_CODEGEN
80  #endif
81#endif
82
83#if defined(DEFAULT_ARM_CODEGEN)
84  #define TARGET_TRIPLE_STRING "armv7-none-linux-gnueabi"
85#elif defined(DEFAULT_X86_CODEGEN)
86  #define TARGET_TRIPLE_STRING "i686-unknown-linux"
87#elif defined(DEFAULT_X86_64_CODEGEN)
88  #define TARGET_TRIPLE_STRING "x86_64-unknown-linux"
89#endif
90
91#if (defined(__VFP_FP__) && !defined(__SOFTFP__))
92  #define ARM_USE_VFP
93#endif
94
95//---------------------------------------------------------------------------
96
97#endif // BCC_CONFIG_H
98