1set(LLVM_TARGET_DEFINITIONS X86.td)
2
3tablegen(LLVM X86GenRegisterInfo.inc -gen-register-info)
4tablegen(LLVM X86GenDisassemblerTables.inc -gen-disassembler)
5tablegen(LLVM X86GenInstrInfo.inc -gen-instr-info)
6tablegen(LLVM X86GenAsmWriter.inc -gen-asm-writer)
7tablegen(LLVM X86GenAsmWriter1.inc -gen-asm-writer -asmwriternum=1)
8tablegen(LLVM X86GenAsmMatcher.inc -gen-asm-matcher)
9tablegen(LLVM X86GenDAGISel.inc -gen-dag-isel)
10tablegen(LLVM X86GenFastISel.inc -gen-fast-isel)
11tablegen(LLVM X86GenCallingConv.inc -gen-callingconv)
12tablegen(LLVM X86GenSubtargetInfo.inc -gen-subtarget)
13add_public_tablegen_target(X86CommonTableGen)
14
15set(sources
16  X86AsmPrinter.cpp
17  X86COFFMachineModuleInfo.cpp
18  X86CodeEmitter.cpp
19  X86FastISel.cpp
20  X86FloatingPoint.cpp
21  X86FrameLowering.cpp
22  X86ISelDAGToDAG.cpp
23  X86ISelLowering.cpp
24  X86InstrInfo.cpp
25  X86JITInfo.cpp
26  X86MCInstLower.cpp
27  X86MachineFunctionInfo.cpp
28  X86PadShortFunction.cpp
29  X86RegisterInfo.cpp
30  X86SelectionDAGInfo.cpp
31  X86Subtarget.cpp
32  X86TargetMachine.cpp
33  X86TargetObjectFile.cpp
34  X86TargetTransformInfo.cpp
35  X86VZeroUpper.cpp
36  X86FixupLEAs.cpp
37  )
38
39if( CMAKE_CL_64 )
40  # A workaround for a bug in cmake 2.8.3. See PR 8885.
41  if( CMAKE_VERSION STREQUAL "2.8.3" )
42    include(CMakeDetermineCompilerId)
43  endif()
44  # end of workaround.
45  enable_language(ASM_MASM)
46  ADD_CUSTOM_COMMAND(
47    OUTPUT ${CMAKE_CURRENT_BINARY_DIR}/X86CompilationCallback_Win64.obj
48    MAIN_DEPENDENCY X86CompilationCallback_Win64.asm
49    COMMAND ${CMAKE_ASM_MASM_COMPILER} /Fo ${CMAKE_CURRENT_BINARY_DIR}/X86CompilationCallback_Win64.obj /c ${CMAKE_CURRENT_SOURCE_DIR}/X86CompilationCallback_Win64.asm
50   )
51   set(sources ${sources} ${CMAKE_CURRENT_BINARY_DIR}/X86CompilationCallback_Win64.obj)
52endif()
53
54add_llvm_target(X86CodeGen ${sources})
55
56add_dependencies(LLVMX86CodeGen X86CommonTableGen intrinsics_gen)
57
58add_subdirectory(AsmParser)
59add_subdirectory(Disassembler)
60add_subdirectory(InstPrinter)
61add_subdirectory(MCTargetDesc)
62add_subdirectory(TargetInfo)
63add_subdirectory(Utils)
64