diff options
Diffstat (limited to 'lib/Target/ARM/ARMBaseInstrInfo.cpp')
-rw-r--r-- | lib/Target/ARM/ARMBaseInstrInfo.cpp | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/lib/Target/ARM/ARMBaseInstrInfo.cpp b/lib/Target/ARM/ARMBaseInstrInfo.cpp index ecdf5a0be6..271e0a92c0 100644 --- a/lib/Target/ARM/ARMBaseInstrInfo.cpp +++ b/lib/Target/ARM/ARMBaseInstrInfo.cpp @@ -670,8 +670,11 @@ storeRegToStackSlot(MachineBasicBlock &MBB, MachineBasicBlock::iterator I, MachineFunction &MF = *MBB.getParent(); MachineFrameInfo &MFI = *MF.getFrameInfo(); + const Value *SV = (MFI.isFixedObjectIndex(FI) || + MFI.isSpillSlotObjectIndex(FI)) + ? PseudoSourceValue::getFixedStack(FI) : PseudoSourceValue::getStack(); MachineMemOperand *MMO = - MF.getMachineMemOperand(PseudoSourceValue::getFixedStack(FI), + MF.getMachineMemOperand(SV, MachineMemOperand::MOStore, 0, MFI.getObjectSize(FI), MFI.getObjectAlignment(FI)); @@ -708,8 +711,11 @@ loadRegFromStackSlot(MachineBasicBlock &MBB, MachineBasicBlock::iterator I, MachineFunction &MF = *MBB.getParent(); MachineFrameInfo &MFI = *MF.getFrameInfo(); + const Value *SV = (MFI.isFixedObjectIndex(FI) || + MFI.isSpillSlotObjectIndex(FI)) + ? PseudoSourceValue::getFixedStack(FI) : PseudoSourceValue::getStack(); MachineMemOperand *MMO = - MF.getMachineMemOperand(PseudoSourceValue::getFixedStack(FI), + MF.getMachineMemOperand(SV, MachineMemOperand::MOLoad, 0, MFI.getObjectSize(FI), MFI.getObjectAlignment(FI)); |