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 | a1826c2ecd9de572f137f11efffc35c8bbac3dd5 (patch) | |
tree | 5afb78b6ba8d310a4dc7c5fa2c55bb964927e153 | |
parent | f2ab4124e39b6427054bc149475262bd9a110431 (diff) |
New addFrameReference function
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@5182 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/X86/X86InstrBuilder.h | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/lib/Target/X86/X86InstrBuilder.h b/lib/Target/X86/X86InstrBuilder.h index af3b522167..9f2e49921d 100644 --- a/lib/Target/X86/X86InstrBuilder.h +++ b/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 |