13
13
14
14
#include " AArch64MCInstLower.h"
15
15
#include " AArch64MachineFunctionInfo.h"
16
- #include " MCTargetDesc/AArch64MCExpr .h"
16
+ #include " MCTargetDesc/AArch64MCAsmInfo .h"
17
17
#include " Utils/AArch64BaseInfo.h"
18
18
#include " llvm/CodeGen/AsmPrinter.h"
19
19
#include " llvm/CodeGen/MachineBasicBlock.h"
@@ -147,29 +147,29 @@ MCOperand AArch64MCInstLower::lowerSymbolOperandMachO(const MachineOperand &MO,
147
147
MCSymbol *Sym) const {
148
148
// FIXME: We would like an efficient form for this, so we don't have to do a
149
149
// lot of extra uniquing.
150
- auto Spec = AArch64MCExpr::None ;
150
+ auto Spec = AArch64::S_None ;
151
151
if ((MO.getTargetFlags () & AArch64II::MO_GOT) != 0 ) {
152
152
if ((MO.getTargetFlags () & AArch64II::MO_FRAGMENT) == AArch64II::MO_PAGE)
153
- Spec = AArch64MCExpr::M_GOTPAGE ;
153
+ Spec = AArch64::S_MACHO_GOTPAGE ;
154
154
else if ((MO.getTargetFlags () & AArch64II::MO_FRAGMENT) ==
155
155
AArch64II::MO_PAGEOFF)
156
- Spec = AArch64MCExpr::M_GOTPAGEOFF ;
156
+ Spec = AArch64::S_MACHO_GOTPAGEOFF ;
157
157
else
158
158
llvm_unreachable (" Unexpected target flags with MO_GOT on GV operand" );
159
159
} else if ((MO.getTargetFlags () & AArch64II::MO_TLS) != 0 ) {
160
160
if ((MO.getTargetFlags () & AArch64II::MO_FRAGMENT) == AArch64II::MO_PAGE)
161
- Spec = AArch64MCExpr::M_TLVPPAGE ;
161
+ Spec = AArch64::S_MACHO_TLVPPAGE ;
162
162
else if ((MO.getTargetFlags () & AArch64II::MO_FRAGMENT) ==
163
163
AArch64II::MO_PAGEOFF)
164
- Spec = AArch64MCExpr::M_TLVPPAGEOFF ;
164
+ Spec = AArch64::S_MACHO_TLVPPAGEOFF ;
165
165
else
166
166
llvm_unreachable (" Unexpected target flags with MO_TLS on GV operand" );
167
167
} else {
168
168
if ((MO.getTargetFlags () & AArch64II::MO_FRAGMENT) == AArch64II::MO_PAGE)
169
- Spec = AArch64MCExpr::M_PAGE ;
169
+ Spec = AArch64::S_MACHO_PAGE ;
170
170
else if ((MO.getTargetFlags () & AArch64II::MO_FRAGMENT) ==
171
171
AArch64II::MO_PAGEOFF)
172
- Spec = AArch64MCExpr::M_PAGEOFF ;
172
+ Spec = AArch64::S_MACHO_PAGEOFF ;
173
173
}
174
174
// TODO: Migrate to MCSpecifierExpr::create like ELF.
175
175
const MCExpr *Expr = MCSymbolRefExpr::create (Sym, Spec, Ctx);
@@ -186,8 +186,8 @@ MCOperand AArch64MCInstLower::lowerSymbolOperandELF(const MachineOperand &MO,
186
186
if (MO.getTargetFlags () & AArch64II::MO_GOT) {
187
187
const MachineFunction *MF = MO.getParent ()->getParent ()->getParent ();
188
188
RefFlags |= (MF->getInfo <AArch64FunctionInfo>()->hasELFSignedGOT ()
189
- ? AArch64MCExpr::VK_GOT_AUTH
190
- : AArch64MCExpr::VK_GOT );
189
+ ? AArch64::S_GOT_AUTH
190
+ : AArch64::S_GOT );
191
191
} else if (MO.getTargetFlags () & AArch64II::MO_TLS) {
192
192
TLSModel::Model Model;
193
193
if (MO.isGlobal ()) {
@@ -211,13 +211,13 @@ MCOperand AArch64MCInstLower::lowerSymbolOperandELF(const MachineOperand &MO,
211
211
}
212
212
switch (Model) {
213
213
case TLSModel::InitialExec:
214
- RefFlags |= AArch64MCExpr::VK_GOTTPREL ;
214
+ RefFlags |= AArch64::S_GOTTPREL ;
215
215
break ;
216
216
case TLSModel::LocalExec:
217
- RefFlags |= AArch64MCExpr::VK_TPREL ;
217
+ RefFlags |= AArch64::S_TPREL ;
218
218
break ;
219
219
case TLSModel::LocalDynamic:
220
- RefFlags |= AArch64MCExpr::VK_DTPREL ;
220
+ RefFlags |= AArch64::S_DTPREL ;
221
221
break ;
222
222
case TLSModel::GeneralDynamic: {
223
223
// TODO: it's probably better to introduce MO_TLS_AUTH or smth and avoid
@@ -226,37 +226,37 @@ MCOperand AArch64MCInstLower::lowerSymbolOperandELF(const MachineOperand &MO,
226
226
// making the field wider breaks static assertions.
227
227
const MachineFunction *MF = MO.getParent ()->getParent ()->getParent ();
228
228
RefFlags |= MF->getInfo <AArch64FunctionInfo>()->hasELFSignedGOT ()
229
- ? AArch64MCExpr::VK_TLSDESC_AUTH
230
- : AArch64MCExpr::VK_TLSDESC ;
229
+ ? AArch64::S_TLSDESC_AUTH
230
+ : AArch64::S_TLSDESC ;
231
231
break ;
232
232
}
233
233
}
234
234
} else if (MO.getTargetFlags () & AArch64II::MO_PREL) {
235
- RefFlags |= AArch64MCExpr::VK_PREL ;
235
+ RefFlags |= AArch64::S_PREL ;
236
236
} else {
237
237
// No modifier means this is a generic reference, classified as absolute for
238
238
// the cases where it matters (:abs_g0: etc).
239
- RefFlags |= AArch64MCExpr::VK_ABS ;
239
+ RefFlags |= AArch64::S_ABS ;
240
240
}
241
241
242
242
if ((MO.getTargetFlags () & AArch64II::MO_FRAGMENT) == AArch64II::MO_PAGE)
243
- RefFlags |= AArch64MCExpr::VK_PAGE ;
243
+ RefFlags |= AArch64::S_PAGE ;
244
244
else if ((MO.getTargetFlags () & AArch64II::MO_FRAGMENT) ==
245
245
AArch64II::MO_PAGEOFF)
246
- RefFlags |= AArch64MCExpr::VK_PAGEOFF ;
246
+ RefFlags |= AArch64::S_PAGEOFF ;
247
247
else if ((MO.getTargetFlags () & AArch64II::MO_FRAGMENT) == AArch64II::MO_G3)
248
- RefFlags |= AArch64MCExpr::VK_G3 ;
248
+ RefFlags |= AArch64::S_G3 ;
249
249
else if ((MO.getTargetFlags () & AArch64II::MO_FRAGMENT) == AArch64II::MO_G2)
250
- RefFlags |= AArch64MCExpr::VK_G2 ;
250
+ RefFlags |= AArch64::S_G2 ;
251
251
else if ((MO.getTargetFlags () & AArch64II::MO_FRAGMENT) == AArch64II::MO_G1)
252
- RefFlags |= AArch64MCExpr::VK_G1 ;
252
+ RefFlags |= AArch64::S_G1 ;
253
253
else if ((MO.getTargetFlags () & AArch64II::MO_FRAGMENT) == AArch64II::MO_G0)
254
- RefFlags |= AArch64MCExpr::VK_G0 ;
254
+ RefFlags |= AArch64::S_G0 ;
255
255
else if ((MO.getTargetFlags () & AArch64II::MO_FRAGMENT) == AArch64II::MO_HI12)
256
- RefFlags |= AArch64MCExpr::VK_HI12 ;
256
+ RefFlags |= AArch64::S_HI12 ;
257
257
258
258
if (MO.getTargetFlags () & AArch64II::MO_NC)
259
- RefFlags |= AArch64MCExpr::VK_NC ;
259
+ RefFlags |= AArch64::S_NC ;
260
260
261
261
const MCExpr *Expr = MCSymbolRefExpr::create (Sym, Ctx);
262
262
if (!MO.isJTI () && MO.getOffset ())
@@ -276,31 +276,31 @@ MCOperand AArch64MCInstLower::lowerSymbolOperandCOFF(const MachineOperand &MO,
276
276
277
277
if (MO.getTargetFlags () & AArch64II::MO_TLS) {
278
278
if ((MO.getTargetFlags () & AArch64II::MO_FRAGMENT) == AArch64II::MO_PAGEOFF)
279
- RefFlags |= AArch64MCExpr::VK_SECREL_LO12 ;
279
+ RefFlags |= AArch64::S_SECREL_LO12 ;
280
280
else if ((MO.getTargetFlags () & AArch64II::MO_FRAGMENT) ==
281
281
AArch64II::MO_HI12)
282
- RefFlags |= AArch64MCExpr::VK_SECREL_HI12 ;
282
+ RefFlags |= AArch64::S_SECREL_HI12 ;
283
283
284
284
} else if (MO.getTargetFlags () & AArch64II::MO_S) {
285
- RefFlags |= AArch64MCExpr::VK_SABS ;
285
+ RefFlags |= AArch64::S_SABS ;
286
286
} else {
287
- RefFlags |= AArch64MCExpr::VK_ABS ;
287
+ RefFlags |= AArch64::S_ABS ;
288
288
289
289
if ((MO.getTargetFlags () & AArch64II::MO_FRAGMENT) == AArch64II::MO_PAGE)
290
- RefFlags |= AArch64MCExpr::VK_PAGE ;
290
+ RefFlags |= AArch64::S_PAGE ;
291
291
else if ((MO.getTargetFlags () & AArch64II::MO_FRAGMENT) ==
292
292
AArch64II::MO_PAGEOFF)
293
- RefFlags |= AArch64MCExpr::VK_PAGEOFF | AArch64MCExpr::VK_NC ;
293
+ RefFlags |= AArch64::S_PAGEOFF | AArch64::S_NC ;
294
294
}
295
295
296
296
if ((MO.getTargetFlags () & AArch64II::MO_FRAGMENT) == AArch64II::MO_G3)
297
- RefFlags |= AArch64MCExpr::VK_G3 ;
297
+ RefFlags |= AArch64::S_G3 ;
298
298
else if ((MO.getTargetFlags () & AArch64II::MO_FRAGMENT) == AArch64II::MO_G2)
299
- RefFlags |= AArch64MCExpr::VK_G2 ;
299
+ RefFlags |= AArch64::S_G2 ;
300
300
else if ((MO.getTargetFlags () & AArch64II::MO_FRAGMENT) == AArch64II::MO_G1)
301
- RefFlags |= AArch64MCExpr::VK_G1 ;
301
+ RefFlags |= AArch64::S_G1 ;
302
302
else if ((MO.getTargetFlags () & AArch64II::MO_FRAGMENT) == AArch64II::MO_G0)
303
- RefFlags |= AArch64MCExpr::VK_G0 ;
303
+ RefFlags |= AArch64::S_G0 ;
304
304
305
305
// FIXME: Currently we only set VK_NC for MO_G3/MO_G2/MO_G1/MO_G0. This is
306
306
// because setting VK_NC for others would mean setting their respective
@@ -309,7 +309,7 @@ MCOperand AArch64MCInstLower::lowerSymbolOperandCOFF(const MachineOperand &MO,
309
309
auto MOFrag = (MO.getTargetFlags () & AArch64II::MO_FRAGMENT);
310
310
if (MOFrag == AArch64II::MO_G3 || MOFrag == AArch64II::MO_G2 ||
311
311
MOFrag == AArch64II::MO_G1 || MOFrag == AArch64II::MO_G0)
312
- RefFlags |= AArch64MCExpr::VK_NC ;
312
+ RefFlags |= AArch64::S_NC ;
313
313
}
314
314
315
315
const MCExpr *Expr = MCSymbolRefExpr::create (Sym, Ctx);
@@ -318,8 +318,7 @@ MCOperand AArch64MCInstLower::lowerSymbolOperandCOFF(const MachineOperand &MO,
318
318
Expr, MCConstantExpr::create (MO.getOffset (), Ctx), Ctx);
319
319
320
320
auto RefKind = static_cast <AArch64MCExpr::Specifier>(RefFlags);
321
- assert (RefKind != AArch64MCExpr::VK_INVALID &&
322
- " Invalid relocation requested" );
321
+ assert (RefKind != AArch64::S_INVALID && " Invalid relocation requested" );
323
322
Expr = MCSpecifierExpr::create (Expr, RefKind, Ctx);
324
323
325
324
return MCOperand::createExpr (Expr);
0 commit comments