[llvm-commits] CVS: llvm/lib/Target/X86/X86RegisterInfo.cpp

Evan Cheng evan.cheng at apple.com
Fri Sep 8 14:08:28 PDT 2006



Changes in directory llvm/lib/Target/X86:

X86RegisterInfo.cpp updated: 1.168 -> 1.169
---
Log message:

Fixed a FuseTwoAddrInst() bug: consider GlobalAddress and JumpTableIndex
in addition to immediate operands.


---
Diffs of the changes:  (+11 -6)

 X86RegisterInfo.cpp |   17 +++++++++++------
 1 files changed, 11 insertions(+), 6 deletions(-)


Index: llvm/lib/Target/X86/X86RegisterInfo.cpp
diff -u llvm/lib/Target/X86/X86RegisterInfo.cpp:1.168 llvm/lib/Target/X86/X86RegisterInfo.cpp:1.169
--- llvm/lib/Target/X86/X86RegisterInfo.cpp:1.168	Fri Sep  8 01:48:29 2006
+++ llvm/lib/Target/X86/X86RegisterInfo.cpp	Fri Sep  8 16:08:13 2006
@@ -169,12 +169,17 @@
   
   // Loop over the rest of the ri operands, converting them over.
   for (unsigned i = 0; i != NumOps; ++i) {
-    if (MI->getOperand(i+2).isReg())
-      MIB = MIB.addReg(MI->getOperand(i+2).getReg());
-    else {
-      assert(MI->getOperand(i+2).isImm() && "Unknown operand type!");
-      MIB = MIB.addImm(MI->getOperand(i+2).getImm());
-    }
+    MachineOperand &MO = MI->getOperand(i+2);
+    if (MO.isReg())
+      MIB = MIB.addReg(MO.getReg());
+    else if (MO.isImm())
+      MIB = MIB.addImm(MO.getImm());
+    else if (MO.isGlobalAddress())
+      MIB = MIB.addGlobalAddress(MO.getGlobal(), MO.getOffset());
+    else if (MO.isJumpTableIndex())
+      MIB = MIB.addJumpTableIndex(MO.getJumpTableIndex());
+    else
+      assert(0 && "Unknown operand type!");
   }
   return MIB;
 }






More information about the llvm-commits mailing list