[llvm] f14a4ac - Sparc: Suppress applyFixup when a relocation is generated
Fangrui Song via llvm-commits
llvm-commits at lists.llvm.org
Mon May 5 09:19:04 PDT 2025
Author: Fangrui Song
Date: 2025-05-05T09:19:00-07:00
New Revision: f14a4ac4d6949666e0930f88d22798042446bb91
URL: https://github.com/llvm/llvm-project/commit/f14a4ac4d6949666e0930f88d22798042446bb91
DIFF: https://github.com/llvm/llvm-project/commit/f14a4ac4d6949666e0930f88d22798042446bb91.diff
LOG: Sparc: Suppress applyFixup when a relocation is generated
The computed R_SPARC_HIX22/R_SPARC_LOX10 value is non-zero even when the
input is 0. We should suppress applyFixup when a relocation is
generated.
Added:
Modified:
llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp
llvm/test/MC/Sparc/Relocations/relocation-specifier.s
Removed:
################################################################################
diff --git a/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp b/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp
index f6944f228ab9c..b6e5893d318bf 100644
--- a/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp
+++ b/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp
@@ -231,10 +231,9 @@ namespace {
const MCValue &Target, MutableArrayRef<char> Data,
uint64_t Value, bool IsResolved,
const MCSubtargetInfo *STI) const override {
- if (mc::isRelocRelocation(Fixup.getKind()))
+ if (!IsResolved)
return;
Value = adjustFixupValue(Fixup.getKind(), Value);
- if (!Value) return; // Doesn't change encoding.
unsigned NumBytes = getFixupKindNumBytes(Fixup.getKind());
unsigned Offset = Fixup.getOffset();
diff --git a/llvm/test/MC/Sparc/Relocations/relocation-specifier.s b/llvm/test/MC/Sparc/Relocations/relocation-specifier.s
index f13c14fd13342..1d89babb5e6cd 100644
--- a/llvm/test/MC/Sparc/Relocations/relocation-specifier.s
+++ b/llvm/test/MC/Sparc/Relocations/relocation-specifier.s
@@ -79,9 +79,9 @@ sethi %lm(sym), %l0
# ASM-NEXT: ldx [%l7+%l1], %l2, %gdop(sym)
# OBJDUMP: sethi 0x3fffff, %g0
# OBJDUMP-NEXT: xor %g0, -0x400, %g0
-# OBJDUMP-NEXT: sethi 0x3fffff, %g1
+# OBJDUMP-NEXT: sethi 0x0, %g1
# OBJDUMP-NEXT: R_SPARC_HIX22 sym
-# OBJDUMP-NEXT: xor %g1, -0x400, %g1
+# OBJDUMP-NEXT: xor %g1, 0x0, %g1
# OBJDUMP-NEXT: R_SPARC_LOX10 sym
# OBJDUMP-NEXT: sethi 0x0, %l1
# OBJDUMP-NEXT: R_SPARC_GOTDATA_OP_HIX22 sym
More information about the llvm-commits
mailing list