Updated the edis build mechanism to allow for builds
authorSean Callanan <scallanan@apple.com>
Sat, 10 Apr 2010 00:48:10 +0000 (00:48 +0000)
committerSean Callanan <scallanan@apple.com>
Sat, 10 Apr 2010 00:48:10 +0000 (00:48 +0000)
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

tools/Makefile
tools/edis/EDDisassembler.cpp
tools/edis/Makefile

index e124422cd6de023ebbcfdf0103f9e44d00dd282b..8205568c2f5828beca3e4321021f144037efb036 100644 (file)
@@ -36,7 +36,7 @@ include $(LEVEL)/Makefile.config
 ifeq ($(ENABLE_PIC),1)
   # No support for dynamic libraries on windows targets.
   ifneq ($(TARGET_OS), $(filter $(TARGET_OS), Cygwin MingW))
-    PARALLEL_DIRS += edis
+    DIRS += edis
 
     # gold only builds if binutils is around.  It requires "lto" to build before
     # it so it is added to DIRS.
index ed7dfb1a4120cb2ef9104004b6a1a6f134a6b71d..a766d2fc2b4eb6657b3e953c8530fcc588afcbe9 100644 (file)
 #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
   }
 }
 
index 7f7b097e2ce37c440347a6dfbc8b39359d6de436..a5ec82ba7e4151814a8c4795b2d1c70549f92799 100644 (file)
@@ -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