Distinquish stack slots from other stack objects. They (and fixed objects) get FixedS...
[oota-llvm.git] / lib / Target / X86 / X86InstrBuilder.h
index c475b56d12f457cd0ecbf824807761fca83da9aa..8cbdfec87dd84c2a2ecf64643275ca8ac89201c3 100644 (file)
@@ -143,8 +143,11 @@ addFrameReference(const MachineInstrBuilder &MIB, int FI, int Offset = 0) {
     Flags |= MachineMemOperand::MOLoad;
   if (TID.mayStore())
     Flags |= MachineMemOperand::MOStore;
+  const Value *SV = (MFI.isFixedObjectIndex(FI) ||
+                     MFI.isSpillSlotObjectIndex(FI))
+    ? PseudoSourceValue::getFixedStack(FI) : PseudoSourceValue::getStack();
   MachineMemOperand *MMO =
-    MF.getMachineMemOperand(PseudoSourceValue::getFixedStack(FI),
+    MF.getMachineMemOperand(SV,
                             Flags, Offset,
                             MFI.getObjectSize(FI),
                             MFI.getObjectAlignment(FI));