diff options
Diffstat (limited to 'utils')
-rw-r--r-- | utils/TableGen/Android.mk | 64 | ||||
-rw-r--r-- | utils/TableGen/CodeEmitterGen.cpp | 7 |
2 files changed, 69 insertions, 2 deletions
diff --git a/utils/TableGen/Android.mk b/utils/TableGen/Android.mk new file mode 100644 index 0000000..ac5e162 --- /dev/null +++ b/utils/TableGen/Android.mk @@ -0,0 +1,64 @@ +LOCAL_PATH:= $(call my-dir) +include $(CLEAR_VARS) + +LOCAL_SRC_FILES := \ + ARMDecoderEmitter.cpp \ + AsmMatcherEmitter.cpp \ + AsmWriterEmitter.cpp \ + AsmWriterInst.cpp \ + CallingConvEmitter.cpp \ + ClangASTNodesEmitter.cpp \ + ClangAttrEmitter.cpp \ + ClangDiagnosticsEmitter.cpp \ + ClangSACheckersEmitter.cpp \ + CodeEmitterGen.cpp \ + CodeGenDAGPatterns.cpp \ + CodeGenInstruction.cpp \ + CodeGenTarget.cpp \ + CodeGenRegisters.cpp \ + DAGISelEmitter.cpp \ + DAGISelMatcher.cpp \ + DAGISelMatcherEmitter.cpp \ + DAGISelMatcherGen.cpp \ + DAGISelMatcherOpt.cpp \ + DisassemblerEmitter.cpp \ + EDEmitter.cpp \ + Error.cpp \ + FastISelEmitter.cpp \ + FixedLenDecoderEmitter.cpp \ + InstrEnumEmitter.cpp \ + InstrInfoEmitter.cpp \ + IntrinsicEmitter.cpp \ + LLVMCConfigurationEmitter.cpp \ + NeonEmitter.cpp \ + OptParserEmitter.cpp \ + PseudoLoweringEmitter.cpp \ + Record.cpp \ + RegisterInfoEmitter.cpp \ + SetTheory.cpp \ + StringMatcher.cpp \ + SubtargetEmitter.cpp \ + TGLexer.cpp \ + TGParser.cpp \ + TGValueTypes.cpp \ + TableGen.cpp \ + TableGenBackend.cpp \ + X86DisassemblerTables.cpp \ + X86RecognizableInstr.cpp + +REQUIRES_EH := 1 +REQUIRES_RTTI := 1 + +LOCAL_STATIC_LIBRARIES := libLLVMSupport +LOCAL_MODULE := tblgen +LOCAL_LDLIBS += -lm +ifeq ($(HOST_OS),windows) + LOCAL_LDLIBS += -limagehlp -lpsapi +else + LOCAL_LDLIBS += -lpthread -ldl +endif + +LOCAL_MODULE_TAGS := optional + +include $(LLVM_HOST_BUILD_MK) +include $(BUILD_HOST_EXECUTABLE) diff --git a/utils/TableGen/CodeEmitterGen.cpp b/utils/TableGen/CodeEmitterGen.cpp index c5a1526..a106fc8 100644 --- a/utils/TableGen/CodeEmitterGen.cpp +++ b/utils/TableGen/CodeEmitterGen.cpp @@ -262,11 +262,14 @@ void CodeEmitterGen::run(raw_ostream &o) { IC != EC; ++IC) { Record *R = *IC; if (R->getValueAsString("Namespace") == "TargetOpcode" || - R->getValueAsBit("isPseudo")) + (R->getValueAsBit("isPseudo") && MCEmitter)) continue; const std::string &InstName = R->getValueAsString("Namespace") + "::" + R->getName(); - std::string Case = getInstructionCase(R, Target); + std::string Case; + if (!R->getValueAsBit("isPseudo")) { + Case = getInstructionCase(R, Target); + } CaseMap[Case].push_back(InstName); } |