blob: ebe0044938e16ddc2b46486f3489eb4c5ffdcf93 [file] [log] [blame]
#ifndef BCC_CONFIG_H
#define BCC_CONFIG_H
#include "ConfigFromMk.h"
//---------------------------------------------------------------------------
// Configuration for JIT & MC Assembler
//---------------------------------------------------------------------------
#if !USE_OLD_JIT && !USE_MCJIT
#error "You should choose at least one code generation method."
#endif
//---------------------------------------------------------------------------
// Configuration for Disassembler
//---------------------------------------------------------------------------
#if !USE_OLD_JIT
#undef DEBUG_OLD_JIT_DISASSEMBLER
#define DEBUG_OLD_JIT_DISASSEMBLER 0
#endif
#if !USE_MCJIT
#undef DEBUG_MCJIT_DISASSEMBLER
#define DEBUG_MCJIT_DISASSEMBLER 0
#endif
#if DEBUG_OLD_JIT_DISASSEMBLER || DEBUG_MCJIT_DISASSEMBLER
#define USE_DISASSEMBLER 1
#else
#define USE_DISASSEMBLER 0
#endif
#if defined(__HOST__)
#define DEBUG_OLD_JIT_DISASSEMBLER_FILE "/tmp/oldjit-dis.s"
#define DEBUG_MCJIT_DISASSEMBLER_FILE "/tmp/mcjit-dis.s"
#else
#define DEBUG_OLD_JIT_DISASSEMBLER_FILE "/data/local/tmp/oldjit-dis.s"
#define DEBUG_MCJIT_DISASSEMBLER_FILE "/data/local/tmp/mcjit-dis.s"
#endif // defined(__HOST__)
//---------------------------------------------------------------------------
// Configuration for ContextManager
//---------------------------------------------------------------------------
#if USE_OLD_JIT
// Note: Most of the code should NOT use these constants. Use the public
// static member of ContextManager instead, which is type-safe. For example,
// if you need BCC_CONTEXT_FIXED_ADDR_, then you should write:
// ContextManager::ContextFixedAddr
#define BCC_CONTEXT_FIXED_ADDR_ reinterpret_cast<char *>(0x7e000000)
#define BCC_CONTEXT_SLOT_COUNT_ 8
#define BCC_CONTEXT_CODE_SIZE_ (128 * 1024)
#define BCC_CONTEXT_DATA_SIZE_ (128 * 1024)
#endif // USE_OLD_JIT
//---------------------------------------------------------------------------
// Configuration for CodeGen and CompilerRT
//---------------------------------------------------------------------------
#if defined(FORCE_ARM_CODEGEN)
#define PROVIDE_ARM_CODEGEN
#define DEFAULT_ARM_CODEGEN
#elif defined(FORCE_MIPS_CODEGEN)
#define PROVIDE_MIPS_CODEGEN
#define DEFAULT_MIPS_CODEGEN
#elif defined(FORCE_X86_CODEGEN)
#define PROVIDE_X86_CODEGEN
#if defined(__i386__)
#define DEFAULT_X86_CODEGEN
#elif defined(__x86_64__)
#define DEFAULT_X86_64_CODEGEN
#endif
#else
#define PROVIDE_ARM_CODEGEN
#define PROVIDE_MIPS_CODEGEN
#define PROVIDE_X86_CODEGEN
#if defined(__arm__)
#define DEFAULT_ARM_CODEGEN
#elif defined(__mips__)
#define DEFAULT_MIPS_CODEGEN
#elif defined(__i386__)
#define DEFAULT_X86_CODEGEN
#elif defined(__x86_64__)
#define DEFAULT_X86_64_CODEGEN
#endif
#endif
#if defined(DEFAULT_ARM_CODEGEN)
#define DEFAULT_TARGET_TRIPLE_STRING "armv7-none-linux-gnueabi"
#elif defined(DEFAULT_MIPS_CODEGEN)
#define DEFAULT_TARGET_TRIPLE_STRING "mipsel-none-linux-gnueabi"
#elif defined(DEFAULT_X86_CODEGEN)
#define DEFAULT_TARGET_TRIPLE_STRING "i686-unknown-linux"
#elif defined(DEFAULT_X86_64_CODEGEN)
#define DEFAULT_TARGET_TRIPLE_STRING "x86_64-unknown-linux"
#endif
#if (defined(__VFP_FP__) && !defined(__SOFTFP__))
#define ARM_USE_VFP
#endif
//---------------------------------------------------------------------------
#endif // BCC_CONFIG_H