aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Target/ARM/ARMBaseRegisterInfo.h
diff options
context:
space:
mode:
authorDavid Goodwin <david_goodwin@apple.com>2009-07-24 00:16:18 +0000
committerDavid Goodwin <david_goodwin@apple.com>2009-07-24 00:16:18 +0000
commit7938afc0b087519f71c2cbba499057c523948cb3 (patch)
tree587c9b878c6b0b74b4c23ae18c86c6a0cc7e9595 /lib/Target/ARM/ARMBaseRegisterInfo.h
parentf94a0540376cd0c39f1f14ecac6009f1a92113b2 (diff)
downloadexternal_llvm-7938afc0b087519f71c2cbba499057c523948cb3.zip
external_llvm-7938afc0b087519f71c2cbba499057c523948cb3.tar.gz
external_llvm-7938afc0b087519f71c2cbba499057c523948cb3.tar.bz2
Correctly handle the Thumb-2 imm8 addrmode. Specialize frame index elimination more exactly for Thumb-2 to get better code gen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@76919 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/ARM/ARMBaseRegisterInfo.h')
-rw-r--r--lib/Target/ARM/ARMBaseRegisterInfo.h11
1 files changed, 4 insertions, 7 deletions
diff --git a/lib/Target/ARM/ARMBaseRegisterInfo.h b/lib/Target/ARM/ARMBaseRegisterInfo.h
index ac5e6b6..b725ee6 100644
--- a/lib/Target/ARM/ARMBaseRegisterInfo.h
+++ b/lib/Target/ARM/ARMBaseRegisterInfo.h
@@ -59,13 +59,6 @@ protected:
// Return the opcode that implements 'Op', or 0 if no opcode
unsigned getOpcode(int 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;
-
public:
/// getRegisterNumbering - Given the enum value for some register, e.g.
/// ARM::LR, return the number that it corresponds to (e.g. 14). It
@@ -133,6 +126,10 @@ public:
MachineBasicBlock &MBB,
MachineBasicBlock::iterator I) const;
+ // rewrite MI to access 'Offset' bytes from the FP. Return the offset that
+ // could not be handled directly in MI.
+ virtual int rewriteFrameIndex(MachineInstr &MI, unsigned FrameRegIdx,
+ unsigned FrameReg, int Offset) const;
virtual void eliminateFrameIndex(MachineBasicBlock::iterator II,
int SPAdj, RegScavenger *RS = NULL) const;