[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