summaryrefslogtreecommitdiff
path: root/tools/edis
diff options
context:
space:
mode:
authorSean Callanan <scallanan@apple.com>2010-04-10 00:48:10 +0000
committerSean Callanan <scallanan@apple.com>2010-04-10 00:48:10 +0000
commit35a3d3f8cd935817b0fead23dc250706cbb2b071 (patch)
treedc2bf06f40b31041d06a221c51e775cd19d517d7 /tools/edis
parent2c8a9f8ad99f9d3777ea82bb44f8bbf6c983642c (diff)
downloadllvm-35a3d3f8cd935817b0fead23dc250706cbb2b071.tar.gz
llvm-35a3d3f8cd935817b0fead23dc250706cbb2b071.tar.bz2
llvm-35a3d3f8cd935817b0fead23dc250706cbb2b071.tar.xz
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.cpp17
-rw-r--r--tools/edis/Makefile13
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 &registerInfo) {
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 &registerInfo) {
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