mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2025-10-17 17:20:42 +00:00
Thumb1 register to register MOV instruction is predicable.
Fix a FIXME and allow predication (in Thumb2) for the T1 register to register MOV instructions. This allows some better codegen with if-conversion (as seen in the test updates), plus it lays the groundwork for pseudo-izing the tMOVCC instructions. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@134197 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
@@ -1223,6 +1223,9 @@ void ARMAsmPrinter::EmitInstruction(const MachineInstr *MI) {
|
||||
TmpInst.setOpcode(ARM::tMOVr);
|
||||
TmpInst.addOperand(MCOperand::CreateReg(ARM::LR));
|
||||
TmpInst.addOperand(MCOperand::CreateReg(ARM::PC));
|
||||
// Add predicate operands.
|
||||
TmpInst.addOperand(MCOperand::CreateImm(ARMCC::AL));
|
||||
TmpInst.addOperand(MCOperand::CreateReg(0));
|
||||
OutStreamer.EmitInstruction(TmpInst);
|
||||
}
|
||||
{
|
||||
@@ -1610,8 +1613,9 @@ void ARMAsmPrinter::EmitInstruction(const MachineInstr *MI) {
|
||||
TmpInst.setOpcode(ARM::tMOVgpr2tgpr);
|
||||
TmpInst.addOperand(MCOperand::CreateReg(ValReg));
|
||||
TmpInst.addOperand(MCOperand::CreateReg(ARM::PC));
|
||||
// 's' bit operand
|
||||
TmpInst.addOperand(MCOperand::CreateReg(ARM::CPSR));
|
||||
// Predicate.
|
||||
TmpInst.addOperand(MCOperand::CreateImm(ARMCC::AL));
|
||||
TmpInst.addOperand(MCOperand::CreateReg(0));
|
||||
OutStreamer.AddComment("eh_setjmp begin");
|
||||
OutStreamer.EmitInstruction(TmpInst);
|
||||
}
|
||||
|
Reference in New Issue
Block a user