Re-land "[WinEH] Add an EH registration and state insertion pass for 32-bit x86"
[oota-llvm.git] / lib / Target / X86 / CMakeLists.txt
index de8ff2cd5d7d37b2c076cda882d7809512f34115..be8e7f6b7c59cbcb215b0a460a8c1e639f3b3122 100644 (file)
@@ -1,56 +1,55 @@
-macro(x86tgen ofn)
-  add_custom_command(OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/${ofn}
-    COMMAND tblgen ${ARGN} -I ${CMAKE_CURRENT_SOURCE_DIR} -I ${CMAKE_SOURCE_DIR}/lib/Target -I ${llvm_include_path} ${CMAKE_CURRENT_SOURCE_DIR}/X86.td -o ${ofn}
-    DEPENDS tblgen ${CMAKE_CURRENT_SOURCE_DIR}/X86.td
-    COMMENT "Building ${ofn}..."
-    )
-endmacro(x86tgen)
+set(LLVM_TARGET_DEFINITIONS X86.td)
 
-x86tgen(X86GenRegisterInfo.h.inc -gen-register-desc-header)
-x86tgen(X86GenRegisterNames.inc -gen-register-enums)
-x86tgen(X86GenRegisterInfo.inc -gen-register-desc)
-x86tgen(X86GenInstrNames.inc -gen-instr-enums)
-x86tgen(X86GenInstrInfo.inc -gen-instr-desc)
-x86tgen(X86GenAsmWriter.inc -gen-asm-writer)
-x86tgen(X86GenAsmWriter1.inc -gen-asm-writer -asmwriternum=1)
-x86tgen(X86GenDAGISel.inc -gen-dag-isel)
-x86tgen(X86GenFastISel.inc -gen-fast-isel)
-x86tgen(X86GenCallingConv.inc -gen-callingconv)
-x86tgen(X86GenSubtarget.inc -gen-subtarget)
+tablegen(LLVM X86GenRegisterInfo.inc -gen-register-info)
+tablegen(LLVM X86GenDisassemblerTables.inc -gen-disassembler)
+tablegen(LLVM X86GenInstrInfo.inc -gen-instr-info)
+tablegen(LLVM X86GenAsmWriter.inc -gen-asm-writer)
+tablegen(LLVM X86GenAsmWriter1.inc -gen-asm-writer -asmwriternum=1)
+tablegen(LLVM X86GenAsmMatcher.inc -gen-asm-matcher)
+tablegen(LLVM X86GenDAGISel.inc -gen-dag-isel)
+tablegen(LLVM X86GenFastISel.inc -gen-fast-isel)
+tablegen(LLVM X86GenCallingConv.inc -gen-callingconv)
+tablegen(LLVM X86GenSubtargetInfo.inc -gen-subtarget)
+add_public_tablegen_target(X86CommonTableGen)
 
-add_custom_target(X86Table_gen echo Tablegenning
-  DEPENDS
-  ${llvm_builded_incs_dir}/Intrinsics.gen
-  ${CMAKE_CURRENT_BINARY_DIR}/X86GenRegisterInfo.h.inc
-  ${CMAKE_CURRENT_BINARY_DIR}/X86GenRegisterNames.inc
-  ${CMAKE_CURRENT_BINARY_DIR}/X86GenRegisterInfo.inc
-  ${CMAKE_CURRENT_BINARY_DIR}/X86GenInstrNames.inc
-  ${CMAKE_CURRENT_BINARY_DIR}/X86GenInstrInfo.inc
-  ${CMAKE_CURRENT_BINARY_DIR}/X86GenAsmWriter.inc
-  ${CMAKE_CURRENT_BINARY_DIR}/X86GenAsmWriter1.inc
-  ${CMAKE_CURRENT_BINARY_DIR}/X86GenDAGISel.inc
-  ${CMAKE_CURRENT_BINARY_DIR}/X86GenFastISel.inc
-  ${CMAKE_CURRENT_BINARY_DIR}/X86GenCallingConv.inc
-  ${CMAKE_CURRENT_BINARY_DIR}/X86GenSubtarget.inc
-  )
-
-include_directories(BEFORE ${CMAKE_CURRENT_BINARY_DIR})
-
-add_partially_linked_object(LLVMX86CodeGen
-  X86CodeEmitter.cpp
-  X86ELFWriterInfo.cpp
+set(sources
+  X86AsmPrinter.cpp
+  X86CallFrameOptimization.cpp
+  X86FastISel.cpp
   X86FloatingPoint.cpp
+  X86FrameLowering.cpp
   X86ISelDAGToDAG.cpp
   X86ISelLowering.cpp
   X86InstrInfo.cpp
-  X86JITInfo.cpp
+  X86MCInstLower.cpp
+  X86MachineFunctionInfo.cpp
+  X86PadShortFunction.cpp
   X86RegisterInfo.cpp
+  X86SelectionDAGInfo.cpp
   X86Subtarget.cpp
-  X86TargetAsmInfo.cpp
   X86TargetMachine.cpp
-  X86FastISel.cpp
+  X86TargetObjectFile.cpp
+  X86TargetTransformInfo.cpp
+  X86VZeroUpper.cpp
+  X86FixupLEAs.cpp
+  X86WinEHState.cpp
   )
 
-add_dependencies(LLVMX86CodeGen
-  X86Table_gen
-)
+if( CMAKE_CL_64 )
+  enable_language(ASM_MASM)
+  ADD_CUSTOM_COMMAND(
+    OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/X86CompilationCallback_Win64.obj
+    MAIN_DEPENDENCY X86CompilationCallback_Win64.asm
+    COMMAND ${CMAKE_ASM_MASM_COMPILER} /nologo /Fo ${CMAKE_CURRENT_BINARY_DIR}/X86CompilationCallback_Win64.obj /c ${CMAKE_CURRENT_SOURCE_DIR}/X86CompilationCallback_Win64.asm
+   )
+   set(sources ${sources} ${CMAKE_CURRENT_BINARY_DIR}/X86CompilationCallback_Win64.obj)
+endif()
+
+add_llvm_target(X86CodeGen ${sources})
+
+add_subdirectory(AsmParser)
+add_subdirectory(Disassembler)
+add_subdirectory(InstPrinter)
+add_subdirectory(MCTargetDesc)
+add_subdirectory(TargetInfo)
+add_subdirectory(Utils)