Home | History | Annotate | Download | only in libbcc
      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