@@ -34,8 +34,8 @@ namespace {
34
34
35
35
class AArch64MachObjectWriter : public MCMachObjectTargetWriter {
36
36
bool getAArch64FixupKindMachOInfo (const MCFixup &Fixup, unsigned &RelocType,
37
- const MCSymbolRefExpr *Sym ,
38
- unsigned &Log2Size, const MCAssembler &Asm);
37
+ AArch64MCExpr::Specifier Spec ,
38
+ unsigned &Log2Size, const MCAssembler &Asm);
39
39
40
40
public:
41
41
AArch64MachObjectWriter (uint32_t CPUType, uint32_t CPUSubtype, bool IsILP32)
@@ -49,7 +49,7 @@ class AArch64MachObjectWriter : public MCMachObjectTargetWriter {
49
49
} // end anonymous namespace
50
50
51
51
bool AArch64MachObjectWriter::getAArch64FixupKindMachOInfo (
52
- const MCFixup &Fixup, unsigned &RelocType, const MCSymbolRefExpr *Sym ,
52
+ const MCFixup &Fixup, unsigned &RelocType, AArch64MCExpr::Specifier Spec ,
53
53
unsigned &Log2Size, const MCAssembler &Asm) {
54
54
RelocType = unsigned (MachO::ARM64_RELOC_UNSIGNED);
55
55
Log2Size = ~0U ;
@@ -66,12 +66,12 @@ bool AArch64MachObjectWriter::getAArch64FixupKindMachOInfo(
66
66
return true ;
67
67
case FK_Data_4:
68
68
Log2Size = Log2_32 (4 );
69
- if (getSpecifier (Sym) == AArch64MCExpr::M_GOT)
69
+ if (Spec == AArch64MCExpr::M_GOT)
70
70
RelocType = unsigned (MachO::ARM64_RELOC_POINTER_TO_GOT);
71
71
return true ;
72
72
case FK_Data_8:
73
73
Log2Size = Log2_32 (8 );
74
- if (getSpecifier (Sym) == AArch64MCExpr::M_GOT)
74
+ if (Spec == AArch64MCExpr::M_GOT)
75
75
RelocType = unsigned (MachO::ARM64_RELOC_POINTER_TO_GOT);
76
76
return true ;
77
77
case AArch64::fixup_aarch64_add_imm12:
@@ -81,7 +81,7 @@ bool AArch64MachObjectWriter::getAArch64FixupKindMachOInfo(
81
81
case AArch64::fixup_aarch64_ldst_imm12_scale8:
82
82
case AArch64::fixup_aarch64_ldst_imm12_scale16:
83
83
Log2Size = Log2_32 (4 );
84
- switch (AArch64MCExpr::Specifier ( getSpecifier (Sym)) ) {
84
+ switch (Spec ) {
85
85
default :
86
86
return false ;
87
87
case AArch64MCExpr::M_PAGEOFF:
@@ -97,7 +97,7 @@ bool AArch64MachObjectWriter::getAArch64FixupKindMachOInfo(
97
97
case AArch64::fixup_aarch64_pcrel_adrp_imm21:
98
98
Log2Size = Log2_32 (4 );
99
99
// This encompasses the relocation for the whole 21-bit value.
100
- switch (getSpecifier (Sym) ) {
100
+ switch (Spec ) {
101
101
default :
102
102
Asm.getContext ().reportError (Fixup.getLoc (),
103
103
" ADR/ADRP relocations must be GOT relative" );
@@ -191,8 +191,9 @@ void AArch64MachObjectWriter::recordRelocation(
191
191
return ;
192
192
}
193
193
194
- if (!getAArch64FixupKindMachOInfo (Fixup, Type, Target.getSymA (), Log2Size,
195
- Asm)) {
194
+ if (!getAArch64FixupKindMachOInfo (
195
+ Fixup, Type, AArch64MCExpr::Specifier (Target.getSymSpecifier ()),
196
+ Log2Size, Asm)) {
196
197
Asm.getContext ().reportError (Fixup.getLoc (), " unknown AArch64 fixup kind!" );
197
198
return ;
198
199
}
0 commit comments