diff options
author | David Goodwin <david_goodwin@apple.com> | 2009-07-23 17:06:46 +0000 |
---|---|---|
committer | David Goodwin <david_goodwin@apple.com> | 2009-07-23 17:06:46 +0000 |
commit | b53cc014d0f47b898c9daca34566c16dda6c4c1e (patch) | |
tree | ef76f8a93008a2a0a10870625f92dd7528a084ad /lib/Target/ARM/ARMInstrInfo.h | |
parent | 0dcde10f5eac406c3897b4ca9d944f1ebd7aaf49 (diff) | |
download | external_llvm-b53cc014d0f47b898c9daca34566c16dda6c4c1e.zip external_llvm-b53cc014d0f47b898c9daca34566c16dda6c4c1e.tar.gz external_llvm-b53cc014d0f47b898c9daca34566c16dda6c4c1e.tar.bz2 |
Fix frame index elimination to correctly handle thumb-2 addressing modes that don't allow negative offsets. During frame elimination convert *i12 opcode to a *i8 when necessary due to a negative offset.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76883 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMInstrInfo.h')
-rw-r--r-- | lib/Target/ARM/ARMInstrInfo.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/lib/Target/ARM/ARMInstrInfo.h b/lib/Target/ARM/ARMInstrInfo.h index 3e9f020..8ff0912 100644 --- a/lib/Target/ARM/ARMInstrInfo.h +++ b/lib/Target/ARM/ARMInstrInfo.h @@ -35,6 +35,13 @@ public: // Return the opcode that implements 'Op', or 0 if no opcode unsigned getOpcode(ARMII::Op Op) const; + // If 'opcode' is an instruction with an unsigned offset that also + // has a version with a signed offset, return the opcode for the + // version with the signed offset. In 'NumBits' return the number of + // bits for the signed offset. + unsigned unsignedOffsetOpcodeToSigned(unsigned opcode, + unsigned *NumBits) const; + // Return true if the block does not fall through. bool BlockHasNoFallThrough(const MachineBasicBlock &MBB) const; |