diff options
author | Evan Cheng <evan.cheng@apple.com> | 2007-10-05 01:32:41 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2007-10-05 01:32:41 +0000 |
commit | f4cf5dcdd24affa0fa9a878744002fdce4b4674f (patch) | |
tree | 64765b849aab8466033bb7f2d0d567182ad812bc /llvm/lib/Target/Alpha/AlphaRegisterInfo.h | |
parent | 4852303bdb58ac32afa60e76b4d0ed4a07eed121 (diff) | |
download | bcm5719-llvm-f4cf5dcdd24affa0fa9a878744002fdce4b4674f.tar.gz bcm5719-llvm-f4cf5dcdd24affa0fa9a878744002fdce4b4674f.zip |
- Added a few target hooks to generate load / store instructions from / to any
address (not just from / to frameindexes).
- Added target hooks to unfold load / store instructions / SDNodes into separate
load, data processing, store instructions / SDNodes.
llvm-svn: 42621
Diffstat (limited to 'llvm/lib/Target/Alpha/AlphaRegisterInfo.h')
-rw-r--r-- | llvm/lib/Target/Alpha/AlphaRegisterInfo.h | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/llvm/lib/Target/Alpha/AlphaRegisterInfo.h b/llvm/lib/Target/Alpha/AlphaRegisterInfo.h index 573d6eb54da..c9bb2dd5393 100644 --- a/llvm/lib/Target/Alpha/AlphaRegisterInfo.h +++ b/llvm/lib/Target/Alpha/AlphaRegisterInfo.h @@ -33,11 +33,21 @@ struct AlphaRegisterInfo : public AlphaGenRegisterInfo { unsigned SrcReg, int FrameIndex, const TargetRegisterClass *RC) const; + void storeRegToAddr(MachineFunction &MF, unsigned SrcReg, + SmallVector<MachineOperand,4> Addr, + const TargetRegisterClass *RC, + SmallVector<MachineInstr*, 4> &NewMIs) const; + void loadRegFromStackSlot(MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, unsigned DestReg, int FrameIndex, const TargetRegisterClass *RC) const; + void loadRegFromAddr(MachineFunction &MF, unsigned DestReg, + SmallVector<MachineOperand,4> Addr, + const TargetRegisterClass *RC, + SmallVector<MachineInstr*, 4> &NewMIs) const; + MachineInstr* foldMemoryOperand(MachineInstr *MI, unsigned OpNum, int FrameIndex) const; |