mirror of
https://github.com/RPCS3/llvm-mirror.git
synced 2024-11-22 18:54:02 +01:00
92dfdbb7d5
On SystemZ there are a set of "access registers" that can be copied in and out of 32-bit GPRs with special instructions. These instructions can only perform the copy using low 32-bit parts of the 64-bit GPRs. However, the default register class for 32-bit integers is GRX32, which also contains the high 32-bit part registers. In order to never end up with a case of such a COPY into a high reg, this patch adds a new simple pre-RA pass that selects such COPYs into target instructions. This pass also handles COPYs from CC (Condition Code register), and COPYs to CC can now also be emitted from a high reg in copyPhysReg(). Fixes: https://bugs.llvm.org/show_bug.cgi?id=44254 Review: Ulrich Weigand. Differential Revision: https://reviews.llvm.org/D75014
45 lines
1.3 KiB
CMake
45 lines
1.3 KiB
CMake
set(LLVM_TARGET_DEFINITIONS SystemZ.td)
|
|
|
|
tablegen(LLVM SystemZGenAsmMatcher.inc -gen-asm-matcher)
|
|
tablegen(LLVM SystemZGenAsmWriter.inc -gen-asm-writer)
|
|
tablegen(LLVM SystemZGenCallingConv.inc -gen-callingconv)
|
|
tablegen(LLVM SystemZGenDAGISel.inc -gen-dag-isel)
|
|
tablegen(LLVM SystemZGenDisassemblerTables.inc -gen-disassembler)
|
|
tablegen(LLVM SystemZGenInstrInfo.inc -gen-instr-info)
|
|
tablegen(LLVM SystemZGenMCCodeEmitter.inc -gen-emitter)
|
|
tablegen(LLVM SystemZGenRegisterInfo.inc -gen-register-info)
|
|
tablegen(LLVM SystemZGenSubtargetInfo.inc -gen-subtarget)
|
|
|
|
add_public_tablegen_target(SystemZCommonTableGen)
|
|
|
|
add_llvm_target(SystemZCodeGen
|
|
SystemZAsmPrinter.cpp
|
|
SystemZCallingConv.cpp
|
|
SystemZConstantPoolValue.cpp
|
|
SystemZCopyPhysRegs.cpp
|
|
SystemZElimCompare.cpp
|
|
SystemZFrameLowering.cpp
|
|
SystemZHazardRecognizer.cpp
|
|
SystemZISelDAGToDAG.cpp
|
|
SystemZISelLowering.cpp
|
|
SystemZInstrInfo.cpp
|
|
SystemZLDCleanup.cpp
|
|
SystemZLongBranch.cpp
|
|
SystemZMachineFunctionInfo.cpp
|
|
SystemZMachineScheduler.cpp
|
|
SystemZMCInstLower.cpp
|
|
SystemZPostRewrite.cpp
|
|
SystemZRegisterInfo.cpp
|
|
SystemZSelectionDAGInfo.cpp
|
|
SystemZShortenInst.cpp
|
|
SystemZSubtarget.cpp
|
|
SystemZTargetMachine.cpp
|
|
SystemZTargetTransformInfo.cpp
|
|
SystemZTDC.cpp
|
|
)
|
|
|
|
add_subdirectory(AsmParser)
|
|
add_subdirectory(Disassembler)
|
|
add_subdirectory(MCTargetDesc)
|
|
add_subdirectory(TargetInfo)
|