1c72c4ddfcd79c74f70713da91a69569451b5c19eZonr Chang#ifndef BCC_CONFIG_CONFIG_H 2c72c4ddfcd79c74f70713da91a69569451b5c19eZonr Chang#define BCC_CONFIG_CONFIG_H 3358490082d8435aa36feaff8107aa55c3cf363adLogan 4358490082d8435aa36feaff8107aa55c3cf363adLogan//--------------------------------------------------------------------------- 54885cf8889f2290ecd04a02e067cb2f44c3cdf6cLogan Chien// Configuration for Disassembler 61dc6314a03b320f9ba5431834c2deeba13f5f065Logan//--------------------------------------------------------------------------- 7358490082d8435aa36feaff8107aa55c3cf363adLogan 8369996246f0e2a33bb1a0aae2a8d9f91a8ffa671Stephen Hines#if DEBUG_MC_DISASSEMBLER 94885cf8889f2290ecd04a02e067cb2f44c3cdf6cLogan Chien#define USE_DISASSEMBLER 1 104885cf8889f2290ecd04a02e067cb2f44c3cdf6cLogan Chien#else 114885cf8889f2290ecd04a02e067cb2f44c3cdf6cLogan Chien#define USE_DISASSEMBLER 0 124885cf8889f2290ecd04a02e067cb2f44c3cdf6cLogan Chien#endif 134885cf8889f2290ecd04a02e067cb2f44c3cdf6cLogan Chien 141704c7400346f4e2405d8703fc866f73f243a104Andrew Hsieh#if defined(__HOST__) 15d7f1bd6a5b27212522a59ce94537ac4431a94794Shih-wei Liao#define DEBUG_DISASSEMBLER_FILE "/tmp/mc-dis.s" 161704c7400346f4e2405d8703fc866f73f243a104Andrew Hsieh#else 17d7f1bd6a5b27212522a59ce94537ac4431a94794Shih-wei Liao#define DEBUG_DISASSEMBLER_FILE "/data/local/tmp/mc-dis.s" 181704c7400346f4e2405d8703fc866f73f243a104Andrew Hsieh#endif // defined(__HOST__) 19358490082d8435aa36feaff8107aa55c3cf363adLogan 20358490082d8435aa36feaff8107aa55c3cf363adLogan//--------------------------------------------------------------------------- 211dc6314a03b320f9ba5431834c2deeba13f5f065Logan// Configuration for CodeGen and CompilerRT 221dc6314a03b320f9ba5431834c2deeba13f5f065Logan//--------------------------------------------------------------------------- 23358490082d8435aa36feaff8107aa55c3cf363adLogan 243bb77072f4dd09c26d7397f92b7eb8b5d0f79de7Logan Chien#if defined(FORCE_ARM_CODEGEN) 25358490082d8435aa36feaff8107aa55c3cf363adLogan #define PROVIDE_ARM_CODEGEN 263bb77072f4dd09c26d7397f92b7eb8b5d0f79de7Logan Chien #define DEFAULT_ARM_CODEGEN 273bb77072f4dd09c26d7397f92b7eb8b5d0f79de7Logan Chien 28c2074caf075818abb6d3689ad924ca09f4a5ba1fTim Murray#elif defined(FORCE_ARM64_CODEGEN) 291e3247531134c0f578d0df7ad7f02905bf9e0415Stephen Hines #define PROVIDE_ARM_CODEGEN 30c2074caf075818abb6d3689ad924ca09f4a5ba1fTim Murray #define PROVIDE_ARM64_CODEGEN 31c2074caf075818abb6d3689ad924ca09f4a5ba1fTim Murray #define DEFAULT_ARM64_CODEGEN 32c2074caf075818abb6d3689ad924ca09f4a5ba1fTim Murray 3321392f0642029bb5c41e3255ae7a302a337ecd6bLogan Chien#elif defined(FORCE_MIPS_CODEGEN) 3421392f0642029bb5c41e3255ae7a302a337ecd6bLogan Chien #define PROVIDE_MIPS_CODEGEN 3521392f0642029bb5c41e3255ae7a302a337ecd6bLogan Chien #define DEFAULT_MIPS_CODEGEN 3621392f0642029bb5c41e3255ae7a302a337ecd6bLogan Chien 37d5a4204de2cd1fd1601904f044137309ff6b7285Dragoslav Sicarov#elif defined(FORCE_MIPS64_CODEGEN) 38d5a4204de2cd1fd1601904f044137309ff6b7285Dragoslav Sicarov #define PROVIDE_MIPS_CODEGEN 39d5a4204de2cd1fd1601904f044137309ff6b7285Dragoslav Sicarov #define PROVIDE_MIPS64_CODEGEN 40d5a4204de2cd1fd1601904f044137309ff6b7285Dragoslav Sicarov #define DEFAULT_MIPS64_CODEGEN 41d5a4204de2cd1fd1601904f044137309ff6b7285Dragoslav Sicarov 423bb77072f4dd09c26d7397f92b7eb8b5d0f79de7Logan Chien#elif defined(FORCE_X86_CODEGEN) 43358490082d8435aa36feaff8107aa55c3cf363adLogan #define PROVIDE_X86_CODEGEN 440467bc47bf4dd48796ede4f4a4f8ca02dddc33d7Stephen Hines #define DEFAULT_X86_CODEGEN 45358490082d8435aa36feaff8107aa55c3cf363adLogan 460467bc47bf4dd48796ede4f4a4f8ca02dddc33d7Stephen Hines#elif defined(FORCE_X86_64_CODEGEN) 470467bc47bf4dd48796ede4f4a4f8ca02dddc33d7Stephen Hines // There is no separate X86_64 code generation target. It is all part of X86. 480467bc47bf4dd48796ede4f4a4f8ca02dddc33d7Stephen Hines #define PROVIDE_X86_CODEGEN 490467bc47bf4dd48796ede4f4a4f8ca02dddc33d7Stephen Hines #define DEFAULT_X86_64_CODEGEN 503bb77072f4dd09c26d7397f92b7eb8b5d0f79de7Logan Chien 513bb77072f4dd09c26d7397f92b7eb8b5d0f79de7Logan Chien#else 52358490082d8435aa36feaff8107aa55c3cf363adLogan #define PROVIDE_ARM_CODEGEN 53c2074caf075818abb6d3689ad924ca09f4a5ba1fTim Murray #define PROVIDE_ARM64_CODEGEN 5421392f0642029bb5c41e3255ae7a302a337ecd6bLogan Chien #define PROVIDE_MIPS_CODEGEN 55d5a4204de2cd1fd1601904f044137309ff6b7285Dragoslav Sicarov #define PROVIDE_MIPS64_CODEGEN 56358490082d8435aa36feaff8107aa55c3cf363adLogan #define PROVIDE_X86_CODEGEN 570467bc47bf4dd48796ede4f4a4f8ca02dddc33d7Stephen Hines #define PROVIDE_X86_64_CODEGEN 583bb77072f4dd09c26d7397f92b7eb8b5d0f79de7Logan Chien 593bb77072f4dd09c26d7397f92b7eb8b5d0f79de7Logan Chien #if defined(__arm__) 603bb77072f4dd09c26d7397f92b7eb8b5d0f79de7Logan Chien #define DEFAULT_ARM_CODEGEN 61867e8ddd05452a10fbfbf1c7340ef8ea3dd44df8Logan Chien #elif defined(__aarch64__) 62c2074caf075818abb6d3689ad924ca09f4a5ba1fTim Murray #define DEFAULT_ARM64_CODEGEN 6321392f0642029bb5c41e3255ae7a302a337ecd6bLogan Chien #elif defined(__mips__) 64d5a4204de2cd1fd1601904f044137309ff6b7285Dragoslav Sicarov #if defined(__LP64__) 65d5a4204de2cd1fd1601904f044137309ff6b7285Dragoslav Sicarov #define DEFAULT_MIPS64_CODEGEN 66d5a4204de2cd1fd1601904f044137309ff6b7285Dragoslav Sicarov #else 67d5a4204de2cd1fd1601904f044137309ff6b7285Dragoslav Sicarov #define DEFAULT_MIPS_CODEGEN 68d5a4204de2cd1fd1601904f044137309ff6b7285Dragoslav Sicarov #endif 693bb77072f4dd09c26d7397f92b7eb8b5d0f79de7Logan Chien #elif defined(__i386__) 703bb77072f4dd09c26d7397f92b7eb8b5d0f79de7Logan Chien #define DEFAULT_X86_CODEGEN 713bb77072f4dd09c26d7397f92b7eb8b5d0f79de7Logan Chien #elif defined(__x86_64__) 723bb77072f4dd09c26d7397f92b7eb8b5d0f79de7Logan Chien #define DEFAULT_X86_64_CODEGEN 733bb77072f4dd09c26d7397f92b7eb8b5d0f79de7Logan Chien #endif 74358490082d8435aa36feaff8107aa55c3cf363adLogan#endif 75358490082d8435aa36feaff8107aa55c3cf363adLogan 76f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang#define DEFAULT_ARM_TRIPLE_STRING "armv7-none-linux-gnueabi" 7799c8a6be8147edece2d052cbf3c52e1d48237cbbShih-wei Liao#define DEFAULT_THUMB_TRIPLE_STRING "thumbv7-none-linux-gnueabi" 78c2074caf075818abb6d3689ad924ca09f4a5ba1fTim Murray#define DEFAULT_ARM64_TRIPLE_STRING "aarch64-none-linux-gnueabi" 79f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang#define DEFAULT_MIPS_TRIPLE_STRING "mipsel-none-linux-gnueabi" 80d5a4204de2cd1fd1601904f044137309ff6b7285Dragoslav Sicarov#define DEFAULT_MIPS64_TRIPLE_STRING "mips64el-none-linux-gnueabi" 81f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang#define DEFAULT_X86_TRIPLE_STRING "i686-unknown-linux" 82f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang#define DEFAULT_X86_64_TRIPLE_STRING "x86_64-unknown-linux" 83f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang 84f039d98d346006442b61255a2889b8513a8cd56fYong Chen// Custom DataLayout string for X86 with i64 and f64 set to match the ARM32 85f039d98d346006442b61255a2889b8513a8cd56fYong Chen// alignment requirement of 64-bits. 86f039d98d346006442b61255a2889b8513a8cd56fYong Chen#define X86_CUSTOM_DL_STRING "e-m:e-p:32:32-i64:64-f64:64:64-f80:32-n8:16:32-S128" 87d2d5ee3893220cec256c829a4740a718232f84acPirama Arumuga Nainar// Default DataLayout string for X86. Present to detect future LLVM datalayout 88d2d5ee3893220cec256c829a4740a718232f84acPirama Arumuga Nainar// changes so X86_CUSTOM_DL_STRING above can be modified appropriately. 89d2d5ee3893220cec256c829a4740a718232f84acPirama Arumuga Nainar#define X86_DEFAULT_DL_STRING "e-m:e-p:32:32-f64:32:64-f80:32-n8:16:32-S128" 90f039d98d346006442b61255a2889b8513a8cd56fYong Chen 91358490082d8435aa36feaff8107aa55c3cf363adLogan#if defined(DEFAULT_ARM_CODEGEN) 92f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang #define DEFAULT_TARGET_TRIPLE_STRING DEFAULT_ARM_TRIPLE_STRING 93c2074caf075818abb6d3689ad924ca09f4a5ba1fTim Murray#elif defined(DEFAULT_ARM64_CODEGEN) 94c2074caf075818abb6d3689ad924ca09f4a5ba1fTim Murray #define DEFAULT_TARGET_TRIPLE_STRING DEFAULT_ARM64_TRIPLE_STRING 9521392f0642029bb5c41e3255ae7a302a337ecd6bLogan Chien#elif defined(DEFAULT_MIPS_CODEGEN) 96f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang #define DEFAULT_TARGET_TRIPLE_STRING DEFAULT_MIPS_TRIPLE_STRING 97d5a4204de2cd1fd1601904f044137309ff6b7285Dragoslav Sicarov#elif defined(DEFAULT_MIPS64_CODEGEN) 98d5a4204de2cd1fd1601904f044137309ff6b7285Dragoslav Sicarov #define DEFAULT_TARGET_TRIPLE_STRING DEFAULT_MIPS64_TRIPLE_STRING 99358490082d8435aa36feaff8107aa55c3cf363adLogan#elif defined(DEFAULT_X86_CODEGEN) 100f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang #define DEFAULT_TARGET_TRIPLE_STRING DEFAULT_X86_TRIPLE_STRING 1013bb77072f4dd09c26d7397f92b7eb8b5d0f79de7Logan Chien#elif defined(DEFAULT_X86_64_CODEGEN) 102f74ee1940ac8e01c862e90de49eb10982648f6a1Zonr Chang #define DEFAULT_TARGET_TRIPLE_STRING DEFAULT_X86_64_TRIPLE_STRING 103358490082d8435aa36feaff8107aa55c3cf363adLogan#endif 104358490082d8435aa36feaff8107aa55c3cf363adLogan 105358490082d8435aa36feaff8107aa55c3cf363adLogan#if (defined(__VFP_FP__) && !defined(__SOFTFP__)) 106358490082d8435aa36feaff8107aa55c3cf363adLogan #define ARM_USE_VFP 107358490082d8435aa36feaff8107aa55c3cf363adLogan#endif 108358490082d8435aa36feaff8107aa55c3cf363adLogan 109358490082d8435aa36feaff8107aa55c3cf363adLogan//--------------------------------------------------------------------------- 110358490082d8435aa36feaff8107aa55c3cf363adLogan 111c72c4ddfcd79c74f70713da91a69569451b5c19eZonr Chang#endif // BCC_CONFIG_CONFIG_H 112