[llvm-commits] [llvm] r50007 - /llvm/trunk/lib/Target/X86/X86InstrInfo.cpp

Nicolas Geoffray nicolas.geoffray at lip6.fr
Sun Apr 20 16:36:47 PDT 2008


Author: geoffray
Date: Sun Apr 20 18:36:47 2008
New Revision: 50007

URL: http://llvm.org/viewvc/llvm-project?rev=50007&view=rev
Log:
Don't forget to update the current operand when getting the size of an instruction.


Modified:
    llvm/trunk/lib/Target/X86/X86InstrInfo.cpp

Modified: llvm/trunk/lib/Target/X86/X86InstrInfo.cpp
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/X86InstrInfo.cpp?rev=50007&r1=50006&r2=50007&view=diff

==============================================================================
--- llvm/trunk/lib/Target/X86/X86InstrInfo.cpp (original)
+++ llvm/trunk/lib/Target/X86/X86InstrInfo.cpp Sun Apr 20 18:36:47 2008
@@ -2670,6 +2670,7 @@
 
   case X86II::AddRegFrm:
     ++FinalSize;
+    ++CurOp;
     
     if (CurOp != NumOps) {
       const MachineOperand &MO1 = MI.getOperand(CurOp++);
@@ -2696,16 +2697,20 @@
     ++FinalSize; 
     FinalSize += sizeRegModRMByte();
     CurOp += 2;
-    if (CurOp != NumOps)
+    if (CurOp != NumOps) {
+      ++CurOp;
       FinalSize += sizeConstant(X86InstrInfo::sizeOfImm(Desc));
+    }
     break;
   }
   case X86II::MRMDestMem: {
     ++FinalSize;
     FinalSize += getMemModRMByteSize(MI, CurOp, IsPIC, Is64BitMode);
     CurOp += 5;
-    if (CurOp != NumOps)
+    if (CurOp != NumOps) {
+      ++CurOp;
       FinalSize += sizeConstant(X86InstrInfo::sizeOfImm(Desc));
+    }
     break;
   }
 
@@ -2713,8 +2718,10 @@
     ++FinalSize;
     FinalSize += sizeRegModRMByte();
     CurOp += 2;
-    if (CurOp != NumOps)
+    if (CurOp != NumOps) {
+      ++CurOp;
       FinalSize += sizeConstant(X86InstrInfo::sizeOfImm(Desc));
+    }
     break;
 
   case X86II::MRMSrcMem: {
@@ -2722,8 +2729,10 @@
     ++FinalSize;
     FinalSize += getMemModRMByteSize(MI, CurOp+1, IsPIC, Is64BitMode);
     CurOp += 5;
-    if (CurOp != NumOps)
+    if (CurOp != NumOps) {
+      ++CurOp;
       FinalSize += sizeConstant(X86InstrInfo::sizeOfImm(Desc));
+    }
     break;
   }
 
@@ -2732,6 +2741,7 @@
   case X86II::MRM4r: case X86II::MRM5r:
   case X86II::MRM6r: case X86II::MRM7r:
     ++FinalSize;
+    ++CurOp;
     FinalSize += sizeRegModRMByte();
 
     if (CurOp != NumOps) {





More information about the llvm-commits mailing list