|
@@ -638,7 +638,7 @@ bool llvm::rewriteT2FrameIndex(MachineInstr &MI, unsigned FrameRegIdx,
|
|
|
// Replace the FrameIndex with fp/sp
|
|
|
MI.getOperand(FrameRegIdx).ChangeToRegister(FrameReg, false);
|
|
|
if (isSub) {
|
|
|
- if (AddrMode == ARMII::AddrMode5)
|
|
|
+ if (AddrMode == ARMII::AddrMode5 || AddrMode == ARMII::AddrMode5FP16)
|
|
|
// FIXME: Not consistent.
|
|
|
ImmedOffset |= 1 << NumBits;
|
|
|
else
|
|
@@ -652,7 +652,7 @@ bool llvm::rewriteT2FrameIndex(MachineInstr &MI, unsigned FrameRegIdx,
|
|
|
// Otherwise, offset doesn't fit. Pull in what we can to simplify
|
|
|
ImmedOffset = ImmedOffset & Mask;
|
|
|
if (isSub) {
|
|
|
- if (AddrMode == ARMII::AddrMode5)
|
|
|
+ if (AddrMode == ARMII::AddrMode5 || AddrMode == ARMII::AddrMode5FP16)
|
|
|
// FIXME: Not consistent.
|
|
|
ImmedOffset |= 1 << NumBits;
|
|
|
else {
|