[llvm] 8040003 - Sparc: Remove fixup kinds for HH22/HM10/LM22 / HI22/LO10/HIX22/LOX10

Fangrui Song via llvm-commits llvm-commits at lists.llvm.org
Sun May 4 22:15:30 PDT 2025


Author: Fangrui Song
Date: 2025-05-04T22:15:25-07:00
New Revision: 8040003f17abfcf23394527de90c59ccb671b7fd

URL: https://github.com/llvm/llvm-project/commit/8040003f17abfcf23394527de90c59ccb671b7fd
DIFF: https://github.com/llvm/llvm-project/commit/8040003f17abfcf23394527de90c59ccb671b7fd.diff

LOG: Sparc: Remove fixup kinds for HH22/HM10/LM22 / HI22/LO10/HIX22/LOX10

Added: 
    

Modified: 
    llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp
    llvm/lib/Target/Sparc/MCTargetDesc/SparcELFObjectWriter.cpp
    llvm/lib/Target/Sparc/MCTargetDesc/SparcFixupKinds.h
    llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.cpp

Removed: 
    


################################################################################
diff  --git a/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp b/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp
index 2f14aa1dd520d..f6944f228ab9c 100644
--- a/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp
+++ b/llvm/lib/Target/Sparc/MCTargetDesc/SparcAsmBackend.cpp
@@ -50,28 +50,27 @@ static unsigned adjustFixupValue(unsigned Kind, uint64_t Value) {
     return (d16hi << 20) | d16lo;
   }
 
-  case Sparc::fixup_sparc_hix22:
+  case ELF::R_SPARC_HIX22:
     return (~Value >> 10) & 0x3fffff;
 
   case ELF::R_SPARC_PC22:
-  case Sparc::fixup_sparc_hi22:
-  case Sparc::fixup_sparc_lm:
+  case ELF::R_SPARC_HI22:
+  case ELF::R_SPARC_LM22:
     return (Value >> 10) & 0x3fffff;
 
   case Sparc::fixup_sparc_13:
     return Value & 0x1fff;
 
-  case Sparc::fixup_sparc_lox10:
+  case ELF::R_SPARC_LOX10:
     return (Value & 0x3ff) | 0x1c00;
 
   case ELF::R_SPARC_PC10:
-  case Sparc::fixup_sparc_lo10:
+  case ELF::R_SPARC_LO10:
     return Value & 0x3ff;
 
-  case Sparc::fixup_sparc_hh:
+  case ELF::R_SPARC_HH22:
     return (Value >> 42) & 0x3fffff;
-
-  case Sparc::fixup_sparc_hm:
+  case ELF::R_SPARC_HM10:
     return (Value >> 32) & 0x3ff;
   }
 }
@@ -128,26 +127,12 @@ namespace {
         // name                    offset bits  flags
         { "fixup_sparc_call30",     2,     30,  MCFixupKindInfo::FKF_IsPCRel },
         { "fixup_sparc_13",        19,     13,  0 },
-        { "fixup_sparc_hi22",      10,     22,  0 },
-        { "fixup_sparc_lo10",      22,     10,  0 },
-        { "fixup_sparc_hh",        10,     22,  0 },
-        { "fixup_sparc_hm",        22,     10,  0 },
-        { "fixup_sparc_lm",        10,     22,  0 },
-        { "fixup_sparc_hix22",         10, 22,  0 },
-        { "fixup_sparc_lox10",         19, 13,  0 },
       };
 
       const static MCFixupKindInfo InfosLE[Sparc::NumTargetFixupKinds] = {
         // name                    offset bits  flags
         { "fixup_sparc_call30",     0,     30,  MCFixupKindInfo::FKF_IsPCRel },
         { "fixup_sparc_13",         0,     13,  0 },
-        { "fixup_sparc_hi22",       0,     22,  0 },
-        { "fixup_sparc_lo10",       0,     10,  0 },
-        { "fixup_sparc_hh",         0,     22,  0 },
-        { "fixup_sparc_hm",         0,     10,  0 },
-        { "fixup_sparc_lm",         0,     22,  0 },
-        { "fixup_sparc_hix22",          0, 22,  0 },
-        { "fixup_sparc_lox10",          0, 13,  0 },
       };
       // clang-format on
 
@@ -180,6 +165,28 @@ namespace {
       case ELF::R_SPARC_WDISP22:
         Info = {"", 10, 22, MCFixupKindInfo::FKF_IsPCRel};
         break;
+
+      case ELF::R_SPARC_HI22:
+        Info = {"", 10, 22, 0};
+        break;
+      case ELF::R_SPARC_LO10:
+        Info = {"", 22, 10, 0};
+        break;
+      case ELF::R_SPARC_HH22:
+        Info = {"", 10, 22, 0};
+        break;
+      case ELF::R_SPARC_HM10:
+        Info = {"", 22, 10, 0};
+        break;
+      case ELF::R_SPARC_LM22:
+        Info = {"", 10, 22, 0};
+        break;
+      case ELF::R_SPARC_HIX22:
+        Info = {"", 10, 22, 0};
+        break;
+      case ELF::R_SPARC_LOX10:
+        Info = {"", 19, 13, 0};
+        break;
       }
       if (Endian == llvm::endianness::little)
         Info.TargetOffset = 32 - Info.TargetOffset - Info.TargetSize;

diff  --git a/llvm/lib/Target/Sparc/MCTargetDesc/SparcELFObjectWriter.cpp b/llvm/lib/Target/Sparc/MCTargetDesc/SparcELFObjectWriter.cpp
index eb42f0c248f4f..0878304fb54c7 100644
--- a/llvm/lib/Target/Sparc/MCTargetDesc/SparcELFObjectWriter.cpp
+++ b/llvm/lib/Target/Sparc/MCTargetDesc/SparcELFObjectWriter.cpp
@@ -113,14 +113,6 @@ unsigned SparcELFObjectWriter::getRelocType(MCContext &Ctx,
     if (Ctx.getObjectFileInfo()->isPositionIndependent())
       return ELF::R_SPARC_GOT13;
     return ELF::R_SPARC_13;
-
-  case Sparc::fixup_sparc_hi22:  return ELF::R_SPARC_HI22;
-  case Sparc::fixup_sparc_lo10:  return ELF::R_SPARC_LO10;
-  case Sparc::fixup_sparc_hh:    return ELF::R_SPARC_HH22;
-  case Sparc::fixup_sparc_hm:    return ELF::R_SPARC_HM10;
-  case Sparc::fixup_sparc_lm:    return ELF::R_SPARC_LM22;
-  case Sparc::fixup_sparc_hix22:         return ELF::R_SPARC_HIX22;
-  case Sparc::fixup_sparc_lox10:         return ELF::R_SPARC_LOX10;
   }
   // clang-format on
 

diff  --git a/llvm/lib/Target/Sparc/MCTargetDesc/SparcFixupKinds.h b/llvm/lib/Target/Sparc/MCTargetDesc/SparcFixupKinds.h
index 81f6cf8a4ac17..1c8e64dd7d16d 100644
--- a/llvm/lib/Target/Sparc/MCTargetDesc/SparcFixupKinds.h
+++ b/llvm/lib/Target/Sparc/MCTargetDesc/SparcFixupKinds.h
@@ -21,27 +21,6 @@ namespace llvm {
       /// fixup_sparc_13 - 13-bit fixup
       fixup_sparc_13,
 
-      /// fixup_sparc_hi22  - 22-bit fixup corresponding to %hi(foo)
-      /// for sethi
-      fixup_sparc_hi22,
-
-      /// fixup_sparc_lo10  - 10-bit fixup corresponding to %lo(foo)
-      fixup_sparc_lo10,
-
-      /// fixup_sparc_hh  -  22-bit fixup corresponding to %hh(foo)
-      fixup_sparc_hh,
-
-      /// fixup_sparc_hm  -  10-bit fixup corresponding to %hm(foo)
-      fixup_sparc_hm,
-
-      /// fixup_sparc_lm  -  22-bit fixup corresponding to %lm(foo)
-      fixup_sparc_lm,
-
-      /// 22-bit fixup corresponding to %hix(foo)
-      fixup_sparc_hix22,
-      /// 13-bit fixup corresponding to %lox(foo)
-      fixup_sparc_lox10,
-
       // Marker
       LastTargetFixupKind,
       NumTargetFixupKinds = LastTargetFixupKind - FirstTargetFixupKind

diff  --git a/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.cpp b/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.cpp
index 3a9629cfc6f48..51ea4490f1615 100644
--- a/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.cpp
+++ b/llvm/lib/Target/Sparc/MCTargetDesc/SparcMCExpr.cpp
@@ -135,11 +135,11 @@ uint16_t SparcMCExpr::getFixupKind() const {
   default:
     assert(uint16_t(specifier) < FirstTargetFixupKind);
     return specifier;
-  case VK_LO:            return Sparc::fixup_sparc_lo10;
-  case VK_HI:            return Sparc::fixup_sparc_hi22;
-  case VK_HH:            return Sparc::fixup_sparc_hh;
-  case VK_HM:            return Sparc::fixup_sparc_hm;
-  case VK_LM:            return Sparc::fixup_sparc_lm;
+  case VK_LO:            return ELF::R_SPARC_LO10;
+  case VK_HI:            return ELF::R_SPARC_HI22;
+  case VK_HH:            return ELF::R_SPARC_HH22;
+  case VK_HM:            return ELF::R_SPARC_HM10;
+  case VK_LM:            return ELF::R_SPARC_LM22;
   case VK_TLS_GD_HI22:   return ELF::R_SPARC_TLS_GD_HI22;
   case VK_TLS_GD_LO10:   return ELF::R_SPARC_TLS_GD_LO10;
   case VK_TLS_GD_ADD:    return ELF::R_SPARC_TLS_GD_ADD;
@@ -158,8 +158,8 @@ uint16_t SparcMCExpr::getFixupKind() const {
   case VK_TLS_IE_ADD:    return ELF::R_SPARC_TLS_IE_ADD;
   case VK_TLS_LE_HIX22:  return ELF::R_SPARC_TLS_LE_HIX22;
   case VK_TLS_LE_LOX10:  return ELF::R_SPARC_TLS_LE_LOX10;
-  case VK_HIX22:         return Sparc::fixup_sparc_hix22;
-  case VK_LOX10:         return Sparc::fixup_sparc_lox10;
+  case VK_HIX22:         return ELF::R_SPARC_HIX22;
+  case VK_LOX10:         return ELF::R_SPARC_LOX10;
   }
   // clang-format on
 }


        


More information about the llvm-commits mailing list