diff options
| author | Chris Lattner <sabre@nondot.org> | 2002-12-28 20:26:58 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2002-12-28 20:26:58 +0000 |
| commit | ef5a8f912c4e2606b1190a01737fd3642d60d9c3 (patch) | |
| tree | 5f9dc50f8bbf5b26b76943d6084e73fbf00c4089 /llvm/lib/Target | |
| parent | 4937643df980cbf52d432c052d238097f690d981 (diff) | |
| download | bcm5719-llvm-ef5a8f912c4e2606b1190a01737fd3642d60d9c3.tar.gz bcm5719-llvm-ef5a8f912c4e2606b1190a01737fd3642d60d9c3.zip | |
New addFrameReference function
llvm-svn: 5182
Diffstat (limited to 'llvm/lib/Target')
| -rw-r--r-- | llvm/lib/Target/X86/X86InstrBuilder.h | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/llvm/lib/Target/X86/X86InstrBuilder.h b/llvm/lib/Target/X86/X86InstrBuilder.h index af3b5221673..9f2e49921d0 100644 --- a/llvm/lib/Target/X86/X86InstrBuilder.h +++ b/llvm/lib/Target/X86/X86InstrBuilder.h @@ -20,8 +20,9 @@ #include "llvm/CodeGen/MachineInstrBuilder.h" /// addDirectMem - This function is used to add a direct memory reference to the -/// current instruction -- that is, a dereference of an address in a register, with -/// no scale, index or displacement. An example is: DWORD PTR [EAX]. +/// current instruction -- that is, a dereference of an address in a register, +/// with no scale, index or displacement. An example is: DWORD PTR [EAX]. +/// inline const MachineInstrBuilder &addDirectMem(const MachineInstrBuilder &MIB, unsigned Reg) { // Because memory references are always represented with four @@ -30,12 +31,23 @@ inline const MachineInstrBuilder &addDirectMem(const MachineInstrBuilder &MIB, } -/// addRegOffset - This function is used to add a memory reference of -/// the form [Reg + Offset], i.e., one with no scale or index, but -/// with a displacement. An example is: DWORD PTR [EAX + 4]. +/// addRegOffset - This function is used to add a memory reference of the form +/// [Reg + Offset], i.e., one with no scale or index, but with a +/// displacement. An example is: DWORD PTR [EAX + 4]. +/// inline const MachineInstrBuilder &addRegOffset(const MachineInstrBuilder &MIB, - unsigned Reg, unsigned Offset) { + unsigned Reg, int Offset) { return MIB.addReg(Reg).addZImm(1).addMReg(0).addSImm(Offset); } +/// addFrameReference - This function is used to add a reference to the base of +/// an abstract object on the stack frame of the current function. This +/// reference has base register <noreg> and a FrameIndex offset until it is +/// resolved. +/// +inline const MachineInstrBuilder & +addFrameReference(const MachineInstrBuilder &MIB, int FI) { + return MIB.addReg(0).addZImm(1).addMReg(0).addFrameIndex(FI); +} + #endif |

