Changes in directory llvm/lib/Target/ARM:
ARMInstrThumb.td updated: 1.8 -> 1.9 ARMISelDAGToDAG.cpp updated: 1.103 -> 1.104 ARMAsmPrinter.cpp updated: 1.51 -> 1.52 --- Log message: Change the operand orders to t_addrmode_s* to make it easier to morph instructions that use these address modes to instructions that use t_addrmode_sp. --- Diffs of the changes: (+26 -32) ARMAsmPrinter.cpp | 22 ++++++++-------------- ARMISelDAGToDAG.cpp | 30 +++++++++++++++--------------- ARMInstrThumb.td | 6 +++--- 3 files changed, 26 insertions(+), 32 deletions(-) Index: llvm/lib/Target/ARM/ARMInstrThumb.td diff -u llvm/lib/Target/ARM/ARMInstrThumb.td:1.8 llvm/lib/Target/ARM/ARMInstrThumb.td:1.9 --- llvm/lib/Target/ARM/ARMInstrThumb.td:1.8 Mon Jan 29 19:13:37 2007 +++ llvm/lib/Target/ARM/ARMInstrThumb.td Mon Jan 29 20:35:32 2007 @@ -124,7 +124,7 @@ def t_addrmode_s4 : Operand<i32>, ComplexPattern<i32, 3, "SelectThumbAddrModeS4", []> { let PrintMethod = "printThumbAddrModeS4Operand"; - let MIOperandInfo = (ops GPR:$base, GPR:$offsreg, i32imm:$offsimm); + let MIOperandInfo = (ops GPR:$base, i32imm:$offsimm, GPR:$offsreg); } // t_addrmode_s2 := reg + reg @@ -133,7 +133,7 @@ def t_addrmode_s2 : Operand<i32>, ComplexPattern<i32, 3, "SelectThumbAddrModeS2", []> { let PrintMethod = "printThumbAddrModeS2Operand"; - let MIOperandInfo = (ops GPR:$base, GPR:$offsreg, i32imm:$offsimm); + let MIOperandInfo = (ops GPR:$base, i32imm:$offsimm, GPR:$offsreg); } // t_addrmode_s1 := reg + reg @@ -142,7 +142,7 @@ def t_addrmode_s1 : Operand<i32>, ComplexPattern<i32, 3, "SelectThumbAddrModeS1", []> { let PrintMethod = "printThumbAddrModeS1Operand"; - let MIOperandInfo = (ops GPR:$base, GPR:$offsreg, i32imm:$offsimm); + let MIOperandInfo = (ops GPR:$base, i32imm:$offsimm, GPR:$offsreg); } // t_addrmode_sp := sp + imm8 * 4 Index: llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp diff -u llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:1.103 llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:1.104 --- llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp:1.103 Wed Jan 24 02:53:17 2007 +++ llvm/lib/Target/ARM/ARMISelDAGToDAG.cpp Mon Jan 29 20:35:32 2007 @@ -72,14 +72,14 @@ bool SelectThumbAddrModeRR(SDOperand Op, SDOperand N, SDOperand &Base, SDOperand &Offset); bool SelectThumbAddrModeRI5(SDOperand Op, SDOperand N, unsigned Scale, - SDOperand &Base, SDOperand &Offset, - SDOperand &OffImm); + SDOperand &Base, SDOperand &OffImm, + SDOperand &Offset); bool SelectThumbAddrModeS1(SDOperand Op, SDOperand N, SDOperand &Base, - SDOperand &Offset, SDOperand &OffImm); + SDOperand &OffImm, SDOperand &Offset); bool SelectThumbAddrModeS2(SDOperand Op, SDOperand N, SDOperand &Base, - SDOperand &Offset, SDOperand &OffImm); + SDOperand &OffImm, SDOperand &Offset); bool SelectThumbAddrModeS4(SDOperand Op, SDOperand N, SDOperand &Base, - SDOperand &Offset, SDOperand &OffImm); + SDOperand &OffImm, SDOperand &Offset); bool SelectThumbAddrModeSP(SDOperand Op, SDOperand N, SDOperand &Base, SDOperand &OffImm); @@ -375,7 +375,7 @@ bool ARMDAGToDAGISel::SelectThumbAddrModeRI5(SDOperand Op, SDOperand N, unsigned Scale, SDOperand &Base, - SDOperand &Offset, SDOperand &OffImm) { + SDOperand &OffImm, SDOperand &Offset) { if (Scale == 4) { SDOperand TmpBase, TmpOffImm; if (SelectThumbAddrModeSP(Op, N, TmpBase, TmpOffImm)) @@ -413,21 +413,21 @@ } bool ARMDAGToDAGISel::SelectThumbAddrModeS1(SDOperand Op, SDOperand N, - SDOperand &Base, SDOperand &Offset, - SDOperand &OffImm) { - return SelectThumbAddrModeRI5(Op, N, 1, Base, Offset, OffImm); + SDOperand &Base, SDOperand &OffImm, + SDOperand &Offset) { + return SelectThumbAddrModeRI5(Op, N, 1, Base, OffImm, Offset); } bool ARMDAGToDAGISel::SelectThumbAddrModeS2(SDOperand Op, SDOperand N, - SDOperand &Base, SDOperand &Offset, - SDOperand &OffImm) { - return SelectThumbAddrModeRI5(Op, N, 2, Base, Offset, OffImm); + SDOperand &Base, SDOperand &OffImm, + SDOperand &Offset) { + return SelectThumbAddrModeRI5(Op, N, 2, Base, OffImm, Offset); } bool ARMDAGToDAGISel::SelectThumbAddrModeS4(SDOperand Op, SDOperand N, - SDOperand &Base, SDOperand &Offset, - SDOperand &OffImm) { - return SelectThumbAddrModeRI5(Op, N, 4, Base, Offset, OffImm); + SDOperand &Base, SDOperand &OffImm, + SDOperand &Offset) { + return SelectThumbAddrModeRI5(Op, N, 4, Base, OffImm, Offset); } bool ARMDAGToDAGISel::SelectThumbAddrModeSP(SDOperand Op, SDOperand N, Index: llvm/lib/Target/ARM/ARMAsmPrinter.cpp diff -u llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.51 llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.52 --- llvm/lib/Target/ARM/ARMAsmPrinter.cpp:1.51 Fri Jan 26 20:29:44 2007 +++ llvm/lib/Target/ARM/ARMAsmPrinter.cpp Mon Jan 29 20:35:32 2007 @@ -523,7 +523,8 @@ ARMAsmPrinter::printThumbAddrModeRI5Operand(const MachineInstr *MI, int Op, unsigned Scale) { const MachineOperand &MO1 = MI->getOperand(Op); - const MachineOperand &MO2 = MI->getOperand(Op+2); + const MachineOperand &MO2 = MI->getOperand(Op+1); + const MachineOperand &MO3 = MI->getOperand(Op+2); if (!MO1.isRegister()) { // FIXME: This is for CP entries, but isn't right. printOperand(MI, Op); @@ -531,7 +532,9 @@ } O << "[" << TM.getRegisterInfo()->get(MO1.getReg()).Name; - if (unsigned ImmOffs = MO2.getImm()) { + if (MO3.getReg()) + O << ", " << TM.getRegisterInfo()->get(MO3.getReg()).Name; + else if (unsigned ImmOffs = MO2.getImm()) { O << ", #" << ImmOffs; if (Scale > 1) O << " * " << Scale; @@ -541,24 +544,15 @@ void ARMAsmPrinter::printThumbAddrModeS1Operand(const MachineInstr *MI, int Op) { - if (MI->getOperand(Op+1).getReg()) - printThumbAddrModeRROperand(MI, Op); - else - printThumbAddrModeRI5Operand(MI, Op, 1); + printThumbAddrModeRI5Operand(MI, Op, 1); } void ARMAsmPrinter::printThumbAddrModeS2Operand(const MachineInstr *MI, int Op) { - if (MI->getOperand(Op+1).getReg()) - printThumbAddrModeRROperand(MI, Op); - else - printThumbAddrModeRI5Operand(MI, Op, 2); + printThumbAddrModeRI5Operand(MI, Op, 2); } void ARMAsmPrinter::printThumbAddrModeS4Operand(const MachineInstr *MI, int Op) { - if (MI->getOperand(Op+1).getReg()) - printThumbAddrModeRROperand(MI, Op); - else - printThumbAddrModeRI5Operand(MI, Op, 4); + printThumbAddrModeRI5Operand(MI, Op, 4); } void ARMAsmPrinter::printThumbAddrModeSPOperand(const MachineInstr *MI,int Op) { _______________________________________________ llvm-commits mailing list llvm-commits@cs.uiuc.edu http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits