diff options
author | Ruchira Sasanka <sasanka@students.uiuc.edu> | 2001-10-24 22:05:34 +0000 |
---|---|---|
committer | Ruchira Sasanka <sasanka@students.uiuc.edu> | 2001-10-24 22:05:34 +0000 |
commit | 7dcd61209a1575e82ea23430cf9099a8b8086dbb (patch) | |
tree | d8eca39fc99a00ccefddc90af0e66c8e084db395 | |
parent | 4a822714510711f7ca16a57b6db7002685f0c366 (diff) |
Fixed load syntax in EmitAssembly
Fixed cpReg2Mem (store) operand oreder in SparcRegInfo.cpp
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@984 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/SparcV9/SparcV9AsmPrinter.cpp | 39 | ||||
-rw-r--r-- | lib/Target/SparcV9/SparcV9RegInfo.cpp | 18 |
2 files changed, 47 insertions, 10 deletions
diff --git a/lib/Target/SparcV9/SparcV9AsmPrinter.cpp b/lib/Target/SparcV9/SparcV9AsmPrinter.cpp index aadc790210..59cd52ab84 100644 --- a/lib/Target/SparcV9/SparcV9AsmPrinter.cpp +++ b/lib/Target/SparcV9/SparcV9AsmPrinter.cpp @@ -182,10 +182,47 @@ void SparcAsmPrinter::emitMachineInst(const MachineInstr *MI) { printOperand(MI->getOperand(1)); Out << endl; return; - + default: break; } + if( Target.getInstrInfo().isLoad(Opcode) ) { // if Load + assert(MI->getNumOperands() == 3 && "Loads must have 3 operands"); + Out << "["; + printOperand(MI->getOperand(0)); + + const MachineOperand& ImmOp = MI->getOperand(1); + if( ImmOp.getImmedValue() >= 0) + Out << "+"; + printOperand(ImmOp); + Out << "]"; + Out << ", "; + + printOperand(MI->getOperand(2)); + Out << endl; + return; + + } + + if( Target.getInstrInfo().isStore(Opcode) ) { // if Store + assert(MI->getNumOperands() == 3 && "Stores must have 3 operands"); + printOperand(MI->getOperand(0)); + Out << ", "; + Out << "["; + printOperand(MI->getOperand(1)); + + const MachineOperand& ImmOp = MI->getOperand(2); + if( ImmOp.getImmedValue() >= 0) + Out << "+"; + printOperand(ImmOp); + Out << "]"; + Out << endl; + return; + + } + + + unsigned Mask = getOperandMask(Opcode); bool NeedComma = false; diff --git a/lib/Target/SparcV9/SparcV9RegInfo.cpp b/lib/Target/SparcV9/SparcV9RegInfo.cpp index 54cfb3caab..dfb5517696 100644 --- a/lib/Target/SparcV9/SparcV9RegInfo.cpp +++ b/lib/Target/SparcV9/SparcV9RegInfo.cpp @@ -775,8 +775,8 @@ MachineInstr * UltraSparcRegInfo::cpReg2RegMI(const unsigned SrcReg, //--------------------------------------------------------------------------- -// Copy from a register to memory. Register number must be the unified -// register number +// Copy from a register to memory (i.e., Store). Register number must +// be the unified register number //--------------------------------------------------------------------------- @@ -794,24 +794,24 @@ MachineInstr * UltraSparcRegInfo::cpReg2MemMI(const unsigned SrcReg, case IntCCRegType: case FloatCCRegType: MI = new MachineInstr(STX, 3); - MI->SetMachineOperand(0, DestPtrReg, false); - MI->SetMachineOperand(1, SrcReg, false); + MI->SetMachineOperand(0, SrcReg, false); + MI->SetMachineOperand(1, DestPtrReg, false); MI->SetMachineOperand(2, MachineOperand:: MO_SignExtendedImmed, (int64_t) Offset, false); break; case FPSingleRegType: MI = new MachineInstr(ST, 3); - MI->SetMachineOperand(0, DestPtrReg, false); - MI->SetMachineOperand(1, SrcReg, false); + MI->SetMachineOperand(0, SrcReg, false); + MI->SetMachineOperand(1, DestPtrReg, false); MI->SetMachineOperand(2, MachineOperand:: MO_SignExtendedImmed, (int64_t) Offset, false); break; case FPDoubleRegType: MI = new MachineInstr(STD, 3); - MI->SetMachineOperand(0, DestPtrReg, false); - MI->SetMachineOperand(1, SrcReg, false); + MI->SetMachineOperand(0, SrcReg, false); + MI->SetMachineOperand(1, DestPtrReg, false); MI->SetMachineOperand(2, MachineOperand:: MO_SignExtendedImmed, (int64_t) Offset, false); break; @@ -825,7 +825,7 @@ MachineInstr * UltraSparcRegInfo::cpReg2MemMI(const unsigned SrcReg, //--------------------------------------------------------------------------- -// Copy from memory to a reg. Register number must be the unified +// Copy from memory to a reg (i.e., Load) Register number must be the unified // register number //--------------------------------------------------------------------------- |