[llvm-commits] CVS: llvm/lib/Target/Alpha/AlphaRegisterInfo.cpp
Andrew Lenharth
alenhar2 at cs.uiuc.edu
Sun Jan 1 14:14:05 PST 2006
Changes in directory llvm/lib/Target/Alpha:
AlphaRegisterInfo.cpp updated: 1.30 -> 1.31
---
Log message:
clean this function up some
---
Diffs of the changes: (+26 -37)
AlphaRegisterInfo.cpp | 63 ++++++++++++++++++++------------------------------
1 files changed, 26 insertions(+), 37 deletions(-)
Index: llvm/lib/Target/Alpha/AlphaRegisterInfo.cpp
diff -u llvm/lib/Target/Alpha/AlphaRegisterInfo.cpp:1.30 llvm/lib/Target/Alpha/AlphaRegisterInfo.cpp:1.31
--- llvm/lib/Target/Alpha/AlphaRegisterInfo.cpp:1.30 Wed Nov 9 13:17:08 2005
+++ llvm/lib/Target/Alpha/AlphaRegisterInfo.cpp Sun Jan 1 16:13:54 2006
@@ -126,43 +126,32 @@
MachineInstr *AlphaRegisterInfo::foldMemoryOperand(MachineInstr *MI,
unsigned OpNum,
int FrameIndex) const {
- // Make sure this is a reg-reg copy.
- unsigned Opc = MI->getOpcode();
-
- if ((Opc == Alpha::BIS &&
- MI->getOperand(1).getReg() == MI->getOperand(2).getReg())) {
- if (OpNum == 0) { // move -> store
- unsigned InReg = MI->getOperand(1).getReg();
- return BuildMI(Alpha::STQ, 3).addReg(InReg).addFrameIndex(FrameIndex)
- .addReg(Alpha::F31);
- } else { // load -> move
- unsigned OutReg = MI->getOperand(0).getReg();
- return BuildMI(Alpha::LDQ, 2, OutReg).addFrameIndex(FrameIndex)
- .addReg(Alpha::F31);
- }
- } else if ((Opc == Alpha::CPYSS &&
- MI->getOperand(1).getReg() == MI->getOperand(2).getReg())) {
- if (OpNum == 0) { // move -> store
- unsigned InReg = MI->getOperand(1).getReg();
- return BuildMI(Alpha::STS, 3).addReg(InReg).addFrameIndex(FrameIndex)
- .addReg(Alpha::F31);
- } else { // load -> move
- unsigned OutReg = MI->getOperand(0).getReg();
- return BuildMI(Alpha::LDS, 2, OutReg).addFrameIndex(FrameIndex)
- .addReg(Alpha::F31);
- }
- } else if ((Opc == Alpha::CPYST &&
- MI->getOperand(1).getReg() == MI->getOperand(2).getReg())) {
- if (OpNum == 0) { // move -> store
- unsigned InReg = MI->getOperand(1).getReg();
- return BuildMI(Alpha::STT, 3).addReg(InReg).addFrameIndex(FrameIndex)
- .addReg(Alpha::F31);
- } else { // load -> move
- unsigned OutReg = MI->getOperand(0).getReg();
- return BuildMI(Alpha::LDT, 2, OutReg).addFrameIndex(FrameIndex)
- .addReg(Alpha::F31);
- }
- }
+ // Make sure this is a reg-reg copy.
+ unsigned Opc = MI->getOpcode();
+
+ switch(Opc) {
+ default:
+ break;
+ case Alpha::BIS:
+ case Alpha::CPYSS:
+ case Alpha::CPYST:
+ if (MI->getOperand(1).getReg() == MI->getOperand(2).getReg()) {
+ if (OpNum == 0) { // move -> store
+ unsigned InReg = MI->getOperand(1).getReg();
+ Opc = (Opc == Alpha::BIS) ? Alpha::STQ :
+ ((Opc == Alpha::CPYSS) ? Alpha::STS : Alpha::STT);
+ return BuildMI(Opc, 3).addReg(InReg).addFrameIndex(FrameIndex)
+ .addReg(Alpha::F31);
+ } else { // load -> move
+ unsigned OutReg = MI->getOperand(0).getReg();
+ Opc = (Opc == Alpha::BIS) ? Alpha::LDQ :
+ ((Opc == Alpha::CPYSS) ? Alpha::LDS : Alpha::LDT);
+ return BuildMI(Opc, 2, OutReg).addFrameIndex(FrameIndex)
+ .addReg(Alpha::F31);
+ }
+ }
+ break;
+ }
return 0;
}
More information about the llvm-commits
mailing list