Skip to content

Commit 0b9d0d8

Browse files
committed
[X86] Use Register in X86InstrBuilder.h. NFC
I had to give the X86AddressMode Base union a name and a constructor so it would default to Register. This means the Base.Reg = 0 in the X86AddressMode constructor is no longer needed.
1 parent 74ca579 commit 0b9d0d8

File tree

1 file changed

+33
-33
lines changed

1 file changed

+33
-33
lines changed

llvm/lib/Target/X86/X86InstrBuilder.h

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -40,27 +40,20 @@ namespace llvm {
4040
/// with BP or SP and Disp being offsetted accordingly. The displacement may
4141
/// also include the offset of a global value.
4242
struct X86AddressMode {
43-
enum {
44-
RegBase,
45-
FrameIndexBase
46-
} BaseType;
43+
enum { RegBase, FrameIndexBase } BaseType = RegBase;
4744

48-
union {
49-
unsigned Reg;
45+
union BaseUnion {
46+
Register Reg;
5047
int FrameIndex;
51-
} Base;
5248

53-
unsigned Scale;
54-
unsigned IndexReg;
55-
int Disp;
56-
const GlobalValue *GV;
57-
unsigned GVOpFlags;
49+
BaseUnion() : Reg() {}
50+
} Base;
5851

59-
X86AddressMode()
60-
: BaseType(RegBase), Scale(1), IndexReg(0), Disp(0), GV(nullptr),
61-
GVOpFlags(0) {
62-
Base.Reg = 0;
63-
}
52+
unsigned Scale = 1;
53+
Register IndexReg;
54+
int Disp = 0;
55+
const GlobalValue *GV = nullptr;
56+
unsigned GVOpFlags = 0;
6457

6558
void getFullAddress(SmallVectorImpl<MachineOperand> &MO) {
6659
assert(Scale == 1 || Scale == 2 || Scale == 4 || Scale == 8);
@@ -121,54 +114,58 @@ static inline X86AddressMode getAddressFromInstr(const MachineInstr *MI,
121114
/// with no scale, index or displacement. An example is: DWORD PTR [EAX].
122115
///
123116
static inline const MachineInstrBuilder &
124-
addDirectMem(const MachineInstrBuilder &MIB, unsigned Reg) {
117+
addDirectMem(const MachineInstrBuilder &MIB, Register Reg) {
125118
// Because memory references are always represented with five
126119
// values, this adds: Reg, 1, NoReg, 0, NoReg to the instruction.
127-
return MIB.addReg(Reg).addImm(1).addReg(0).addImm(0).addReg(0);
120+
return MIB.addReg(Reg)
121+
.addImm(1)
122+
.addReg(Register())
123+
.addImm(0)
124+
.addReg(Register());
128125
}
129126

130127
/// Replace the address used in the instruction with the direct memory
131128
/// reference.
132129
static inline void setDirectAddressInInstr(MachineInstr *MI, unsigned Operand,
133-
unsigned Reg) {
130+
Register Reg) {
134131
// Direct memory address is in a form of: Reg/FI, 1 (Scale), NoReg, 0, NoReg.
135132
MI->getOperand(Operand).ChangeToRegister(Reg, /*isDef=*/false);
136133
MI->getOperand(Operand + 1).setImm(1);
137-
MI->getOperand(Operand + 2).setReg(0);
134+
MI->getOperand(Operand + 2).setReg(Register());
138135
MI->getOperand(Operand + 3).ChangeToImmediate(0);
139-
MI->getOperand(Operand + 4).setReg(0);
136+
MI->getOperand(Operand + 4).setReg(Register());
140137
}
141138

142139
static inline const MachineInstrBuilder &
143140
addOffset(const MachineInstrBuilder &MIB, int Offset) {
144-
return MIB.addImm(1).addReg(0).addImm(Offset).addReg(0);
141+
return MIB.addImm(1).addReg(Register()).addImm(Offset).addReg(Register());
145142
}
146143

147144
static inline const MachineInstrBuilder &
148145
addOffset(const MachineInstrBuilder &MIB, const MachineOperand& Offset) {
149-
return MIB.addImm(1).addReg(0).add(Offset).addReg(0);
146+
return MIB.addImm(1).addReg(Register()).add(Offset).addReg(Register());
150147
}
151148

152149
/// addRegOffset - This function is used to add a memory reference of the form
153150
/// [Reg + Offset], i.e., one with no scale or index, but with a
154151
/// displacement. An example is: DWORD PTR [EAX + 4].
155152
///
156153
static inline const MachineInstrBuilder &
157-
addRegOffset(const MachineInstrBuilder &MIB,
158-
unsigned Reg, bool isKill, int Offset) {
154+
addRegOffset(const MachineInstrBuilder &MIB, Register Reg, bool isKill,
155+
int Offset) {
159156
return addOffset(MIB.addReg(Reg, getKillRegState(isKill)), Offset);
160157
}
161158

162159
/// addRegReg - This function is used to add a memory reference of the form:
163160
/// [Reg + Reg].
164161
static inline const MachineInstrBuilder &
165-
addRegReg(const MachineInstrBuilder &MIB, unsigned Reg1, bool isKill1,
166-
unsigned SubReg1, unsigned Reg2, bool isKill2, unsigned SubReg2) {
162+
addRegReg(const MachineInstrBuilder &MIB, Register Reg1, bool isKill1,
163+
unsigned SubReg1, Register Reg2, bool isKill2, unsigned SubReg2) {
167164
return MIB.addReg(Reg1, getKillRegState(isKill1), SubReg1)
168165
.addImm(1)
169166
.addReg(Reg2, getKillRegState(isKill2), SubReg2)
170167
.addImm(0)
171-
.addReg(0);
168+
.addReg(Register());
172169
}
173170

174171
static inline const MachineInstrBuilder &
@@ -189,7 +186,7 @@ addFullAddress(const MachineInstrBuilder &MIB,
189186
else
190187
MIB.addImm(AM.Disp);
191188

192-
return MIB.addReg(0);
189+
return MIB.addReg(Register());
193190
}
194191

195192
/// addFrameReference - This function is used to add a reference to the base of
@@ -224,10 +221,13 @@ addFrameReference(const MachineInstrBuilder &MIB, int FI, int Offset = 0) {
224221
///
225222
static inline const MachineInstrBuilder &
226223
addConstantPoolReference(const MachineInstrBuilder &MIB, unsigned CPI,
227-
unsigned GlobalBaseReg, unsigned char OpFlags) {
224+
Register GlobalBaseReg, unsigned char OpFlags) {
228225
//FIXME: factor this
229-
return MIB.addReg(GlobalBaseReg).addImm(1).addReg(0)
230-
.addConstantPoolIndex(CPI, 0, OpFlags).addReg(0);
226+
return MIB.addReg(GlobalBaseReg)
227+
.addImm(1)
228+
.addReg(Register())
229+
.addConstantPoolIndex(CPI, 0, OpFlags)
230+
.addReg(Register());
231231
}
232232

233233
} // end namespace llvm

0 commit comments

Comments
 (0)