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.
#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;
};
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 }
};
sInitialized = true;
+#ifdef EDIS_X86
BRINGUP_TARGET(X86)
+#endif
+#ifdef EDIS_ARM
BRINGUP_TARGET(ARM)
+#endif
}
#undef BRINGUP_TARGET
switch (Key.Arch) {
default:
break;
+#ifdef EDIS_X86
case Triple::x86:
case Triple::x86_64:
stackPointers.insert(registerIDWithName("SP"));
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
}
}
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