blob: d7bfd723dbbfaae1da6388a3b09a769a976d7121 [file] [log] [blame]
Logan35849002011-01-15 07:30:43 +08001#ifndef BCC_CONFIG_H
2#define BCC_CONFIG_H
3
Logan Chieneb567842011-07-14 19:58:42 +08004#include "ConfigFromMk.h"
5
Logan35849002011-01-15 07:30:43 +08006//---------------------------------------------------------------------------
Shih-wei Liao898c5a92011-05-18 07:02:39 -07007// Configuration for JIT & MC Assembler
8//---------------------------------------------------------------------------
Logan Chienb0ceca22011-06-12 13:34:49 +08009#if !USE_OLD_JIT && !USE_MCJIT
10#error "You should choose at least one code generation method."
11#endif
Shih-wei Liao898c5a92011-05-18 07:02:39 -070012
13//---------------------------------------------------------------------------
Logan1dc63142011-02-25 17:14:51 +080014// Configuration for libbcc
15//---------------------------------------------------------------------------
Logan35849002011-01-15 07:30:43 +080016
Logan Chien9347e0b2011-07-07 19:51:47 +080017#define DEBUG_OLD_JIT_DISASSEMBLER_FILE "/data/local/tmp/oldjit-dis.s"
18#define DEBUG_MCJIT_DISASSEMBLER_FILE "/data/local/tmp/mcjit-dis.s"
Logan35849002011-01-15 07:30:43 +080019
Logan35849002011-01-15 07:30:43 +080020//---------------------------------------------------------------------------
Logan1dc63142011-02-25 17:14:51 +080021// Configuration for ContextManager
22//---------------------------------------------------------------------------
23
24// Note: Most of the code should NOT use these constants. Use the public
25// static member of ContextManager instead, which is type-safe. For example,
26// if you need BCC_CONTEXT_FIXED_ADDR_, then you should write:
27// ContextManager::ContextFixedAddr
28
29#define BCC_CONTEXT_FIXED_ADDR_ reinterpret_cast<char *>(0x7e000000)
30
31#define BCC_CONTEXT_SLOT_COUNT_ 8
32
33#define BCC_CONTEXT_CODE_SIZE_ (128 * 1024)
34
35#define BCC_CONTEXT_DATA_SIZE_ (128 * 1024)
36
37//---------------------------------------------------------------------------
38// Configuration for CodeGen and CompilerRT
39//---------------------------------------------------------------------------
Logan35849002011-01-15 07:30:43 +080040
41#if defined(__arm__)
42 #define DEFAULT_ARM_CODEGEN
43 #define PROVIDE_ARM_CODEGEN
44#elif defined(__i386__)
45 #define DEFAULT_X86_CODEGEN
46 #define PROVIDE_X86_CODEGEN
47#elif defined(__x86_64__)
48 #define DEFAULT_X64_CODEGEN
49 #define PROVIDE_X64_CODEGEN
50#endif
51
52#if defined(FORCE_ARM_CODEGEN)
53 #define DEFAULT_ARM_CODEGEN
54 #undef DEFAULT_X86_CODEGEN
55 #undef DEFAULT_X64_CODEGEN
56 #define PROVIDE_ARM_CODEGEN
57 #undef PROVIDE_X86_CODEGEN
58 #undef PROVIDE_X64_CODEGEN
59#elif defined(FORCE_X86_CODEGEN)
60 #undef DEFAULT_ARM_CODEGEN
61 #define DEFAULT_X86_CODEGEN
62 #undef DEFAULT_X64_CODEGEN
63 #undef PROVIDE_ARM_CODEGEN
64 #define PROVIDE_X86_CODEGEN
65 #undef PROVIDE_X64_CODEGEN
66#elif defined(FORCE_X64_CODEGEN)
67 #undef DEFAULT_ARM_CODEGEN
68 #undef DEFAULT_X86_CODEGEN
69 #define DEFAULT_X64_CODEGEN
70 #undef PROVIDE_ARM_CODEGEN
71 #undef PROVIDE_X86_CODEGEN
72 #define PROVIDE_X64_CODEGEN
73#endif
74
75#if defined(DEFAULT_ARM_CODEGEN)
76 #define TARGET_TRIPLE_STRING "armv7-none-linux-gnueabi"
77#elif defined(DEFAULT_X86_CODEGEN)
78 #define TARGET_TRIPLE_STRING "i686-unknown-linux"
79#elif defined(DEFAULT_X64_CODEGEN)
80 #define TARGET_TRIPLE_STRING "x86_64-unknown-linux"
81#endif
82
83#if (defined(__VFP_FP__) && !defined(__SOFTFP__))
84 #define ARM_USE_VFP
85#endif
86
87//---------------------------------------------------------------------------
88
89#endif // BCC_CONFIG_H