diff options
author | Sean Callanan <scallanan@apple.com> | 2010-04-10 00:48:10 +0000 |
---|---|---|
committer | Sean Callanan <scallanan@apple.com> | 2010-04-10 00:48:10 +0000 |
commit | 35a3d3f8cd935817b0fead23dc250706cbb2b071 (patch) | |
tree | dc2bf06f40b31041d06a221c51e775cd19d517d7 /tools/edis | |
parent | 2c8a9f8ad99f9d3777ea82bb44f8bbf6c983642c (diff) |
Updated the edis build mechanism to allow for builds
that do not build some (or all) of the targets that
edis supports.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@100910 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'tools/edis')
-rw-r--r-- | tools/edis/EDDisassembler.cpp | 17 | ||||
-rw-r--r-- | tools/edis/Makefile | 13 |
2 files changed, 30 insertions, 0 deletions
diff --git a/tools/edis/EDDisassembler.cpp b/tools/edis/EDDisassembler.cpp index ed7dfb1a41..a766d2fc2b 100644 --- a/tools/edis/EDDisassembler.cpp +++ b/tools/edis/EDDisassembler.cpp @@ -39,8 +39,13 @@ #include "llvm/Target/TargetRegisterInfo.h" #include "llvm/Target/TargetSelect.h" +#ifdef EDIS_X86 #include "../../lib/Target/X86/X86GenEDInfo.inc" +#endif + +#ifdef EDIS_ARM #include "../../lib/Target/ARM/ARMGenEDInfo.inc" +#endif using namespace llvm; @@ -54,10 +59,14 @@ struct InfoMap { }; static struct InfoMap infomap[] = { +#ifdef EDIS_X86 { Triple::x86, "i386-unknown-unknown", instInfoX86 }, { Triple::x86_64, "x86_64-unknown-unknown", instInfoX86 }, +#endif +#ifdef EDIS_ARM { Triple::arm, "arm-unknown-unknown", instInfoARM }, { Triple::thumb, "thumb-unknown-unknown", instInfoARM }, +#endif { Triple::InvalidArch, NULL, NULL } }; @@ -119,8 +128,12 @@ void EDDisassembler::initialize() { sInitialized = true; +#ifdef EDIS_X86 BRINGUP_TARGET(X86) +#endif +#ifdef EDIS_ARM BRINGUP_TARGET(ARM) +#endif } #undef BRINGUP_TARGET @@ -295,6 +308,7 @@ void EDDisassembler::initMaps(const TargetRegisterInfo ®isterInfo) { switch (Key.Arch) { default: break; +#ifdef EDIS_X86 case Triple::x86: case Triple::x86_64: stackPointers.insert(registerIDWithName("SP")); @@ -305,12 +319,15 @@ void EDDisassembler::initMaps(const TargetRegisterInfo ®isterInfo) { programCounters.insert(registerIDWithName("EIP")); programCounters.insert(registerIDWithName("RIP")); break; +#endif +#ifdef EDIS_ARM case Triple::arm: case Triple::thumb: stackPointers.insert(registerIDWithName("SP")); programCounters.insert(registerIDWithName("PC")); break; +#endif } } diff --git a/tools/edis/Makefile b/tools/edis/Makefile index 7f7b097e2c..a5ec82ba7e 100644 --- a/tools/edis/Makefile +++ b/tools/edis/Makefile @@ -45,6 +45,19 @@ ifeq ($(HOST_OS),Darwin) endif endif +EDIS_DEFINES = + +ifneq (,$(findstring X86,$(TARGETS_TO_BUILD))) + EDIS_DEFINES := $(EDIS_DEFINES) -DEDIS_X86 +endif + +ifneq (,$(findstring ARM,$(TARGETS_TO_BUILD))) + EDIS_DEFINES := $(EDIS_DEFINES) -DEDIS_ARM +endif + +CXXFLAGS := $(CXXFLAGS) +#$(EDIS_DEFINES) + EDInfo.inc: $(TBLGEN) $(Echo) "Building semantic information header" $(Verb) $(TableGen) -o $(call SYSPATH, $@) -gen-enhanced-disassembly-header /dev/null |