From b53cc014d0f47b898c9daca34566c16dda6c4c1e Mon Sep 17 00:00:00 2001 From: David Goodwin Date: Thu, 23 Jul 2009 17:06:46 +0000 Subject: 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 --- lib/Target/ARM/Thumb1InstrInfo.h | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'lib/Target/ARM/Thumb1InstrInfo.h') diff --git a/lib/Target/ARM/Thumb1InstrInfo.h b/lib/Target/ARM/Thumb1InstrInfo.h index 67b78fbedf..a1c9f04ef7 100644 --- a/lib/Target/ARM/Thumb1InstrInfo.h +++ b/lib/Target/ARM/Thumb1InstrInfo.h @@ -34,6 +34,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; -- cgit v1.2.3