diff options
author | David Goodwin <david_goodwin@apple.com> | 2009-07-24 00:16:18 +0000 |
---|---|---|
committer | David Goodwin <david_goodwin@apple.com> | 2009-07-24 00:16:18 +0000 |
commit | 7938afc0b087519f71c2cbba499057c523948cb3 (patch) | |
tree | 587c9b878c6b0b74b4c23ae18c86c6a0cc7e9595 /lib/Target/ARM/ARMBaseRegisterInfo.h | |
parent | f94a0540376cd0c39f1f14ecac6009f1a92113b2 (diff) | |
download | external_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.h | 11 |
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; |