]>
Commit | Line | Data |
---|---|---|
223e47cc LB |
1 | //===-- PPCInstrBuilder.h - Aides for building PPC insts --------*- C++ -*-===// |
2 | // | |
3 | // The LLVM Compiler Infrastructure | |
4 | // | |
5 | // This file is distributed under the University of Illinois Open Source | |
6 | // License. See LICENSE.TXT for details. | |
7 | // | |
8 | //===----------------------------------------------------------------------===// | |
9 | // | |
10 | // This file exposes functions that may be used with BuildMI from the | |
11 | // MachineInstrBuilder.h file to simplify generating frame and constant pool | |
12 | // references. | |
13 | // | |
14 | // For reference, the order of operands for memory references is: | |
15 | // (Operand), Dest Reg, Base Reg, and either Reg Index or Immediate | |
16 | // Displacement. | |
17 | // | |
18 | //===----------------------------------------------------------------------===// | |
19 | ||
1a4d82fc JJ |
20 | #ifndef LLVM_LIB_TARGET_POWERPC_PPCINSTRBUILDER_H |
21 | #define LLVM_LIB_TARGET_POWERPC_PPCINSTRBUILDER_H | |
223e47cc LB |
22 | |
23 | #include "llvm/CodeGen/MachineInstrBuilder.h" | |
24 | ||
25 | namespace llvm { | |
26 | ||
27 | /// addFrameReference - This function is used to add a reference to the base of | |
28 | /// an abstract object on the stack frame of the current function. This | |
29 | /// reference has base register as the FrameIndex offset until it is resolved. | |
30 | /// This allows a constant offset to be specified as well... | |
31 | /// | |
32 | static inline const MachineInstrBuilder& | |
33 | addFrameReference(const MachineInstrBuilder &MIB, int FI, int Offset = 0, | |
34 | bool mem = true) { | |
35 | if (mem) | |
36 | return MIB.addImm(Offset).addFrameIndex(FI); | |
37 | else | |
38 | return MIB.addFrameIndex(FI).addImm(Offset); | |
39 | } | |
40 | ||
41 | } // End llvm namespace | |
42 | ||
43 | #endif |