[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