diff options
Diffstat (limited to 'lib/MC/MCAsmBackend.cpp')
| -rw-r--r-- | lib/MC/MCAsmBackend.cpp | 44 | 
1 files changed, 25 insertions, 19 deletions
diff --git a/lib/MC/MCAsmBackend.cpp b/lib/MC/MCAsmBackend.cpp index c42757b70c8ba..36c65b7bcd494 100644 --- a/lib/MC/MCAsmBackend.cpp +++ b/lib/MC/MCAsmBackend.cpp @@ -16,27 +16,33 @@ MCAsmBackend::MCAsmBackend() : HasDataInCodeSupport(false) {}  MCAsmBackend::~MCAsmBackend() {} -const MCFixupKindInfo & -MCAsmBackend::getFixupKindInfo(MCFixupKind Kind) const { +const MCFixupKindInfo &MCAsmBackend::getFixupKindInfo(MCFixupKind Kind) const {    static const MCFixupKindInfo Builtins[] = { -    { "FK_Data_1",  0,  8, 0 }, -    { "FK_Data_2",  0, 16, 0 }, -    { "FK_Data_4",  0, 32, 0 }, -    { "FK_Data_8",  0, 64, 0 }, -    { "FK_PCRel_1", 0,  8, MCFixupKindInfo::FKF_IsPCRel }, -    { "FK_PCRel_2", 0, 16, MCFixupKindInfo::FKF_IsPCRel }, -    { "FK_PCRel_4", 0, 32, MCFixupKindInfo::FKF_IsPCRel }, -    { "FK_PCRel_8", 0, 64, MCFixupKindInfo::FKF_IsPCRel }, -    { "FK_GPRel_1", 0,  8, 0 }, -    { "FK_GPRel_2", 0, 16, 0 }, -    { "FK_GPRel_4", 0, 32, 0 }, -    { "FK_GPRel_8", 0, 64, 0 }, -    { "FK_SecRel_1", 0,  8, 0 }, -    { "FK_SecRel_2", 0, 16, 0 }, -    { "FK_SecRel_4", 0, 32, 0 }, -    { "FK_SecRel_8", 0, 64, 0 } -  }; +      {"FK_Data_1", 0, 8, 0}, +      {"FK_Data_2", 0, 16, 0}, +      {"FK_Data_4", 0, 32, 0}, +      {"FK_Data_8", 0, 64, 0}, +      {"FK_PCRel_1", 0, 8, MCFixupKindInfo::FKF_IsPCRel}, +      {"FK_PCRel_2", 0, 16, MCFixupKindInfo::FKF_IsPCRel}, +      {"FK_PCRel_4", 0, 32, MCFixupKindInfo::FKF_IsPCRel}, +      {"FK_PCRel_8", 0, 64, MCFixupKindInfo::FKF_IsPCRel}, +      {"FK_GPRel_1", 0, 8, 0}, +      {"FK_GPRel_2", 0, 16, 0}, +      {"FK_GPRel_4", 0, 32, 0}, +      {"FK_GPRel_8", 0, 64, 0}, +      {"FK_SecRel_1", 0, 8, 0}, +      {"FK_SecRel_2", 0, 16, 0}, +      {"FK_SecRel_4", 0, 32, 0}, +      {"FK_SecRel_8", 0, 64, 0}};    assert((size_t)Kind <= array_lengthof(Builtins) && "Unknown fixup kind");    return Builtins[Kind];  } + +bool MCAsmBackend::fixupNeedsRelaxationAdvanced( +    const MCFixup &Fixup, bool Resolved, uint64_t Value, +    const MCRelaxableFragment *DF, const MCAsmLayout &Layout) const { +  if (!Resolved) +    return true; +  return fixupNeedsRelaxation(Fixup, Value, DF, Layout); +}  | 
