[llvm-branch-commits] [llvm] 8ad9b25 - Revert "[PAC][CodeGen][ELF][AArch64] Support signed GOT (#96164)"
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Thu Aug 8 00:57:33 PDT 2024
Author: Daniil Kovalev
Date: 2024-08-08T10:57:29+03:00
New Revision: 8ad9b25f132a3d72ea7867fccab07eb050292249
URL: https://github.com/llvm/llvm-project/commit/8ad9b25f132a3d72ea7867fccab07eb050292249
DIFF: https://github.com/llvm/llvm-project/commit/8ad9b25f132a3d72ea7867fccab07eb050292249.diff
LOG: Revert "[PAC][CodeGen][ELF][AArch64] Support signed GOT (#96164)"
This reverts commit 9dae7fcc927de7ae9878d4c32cb15770271fa8e3.
Added:
Modified:
llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
llvm/lib/Target/AArch64/AArch64FastISel.cpp
llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
llvm/lib/Target/AArch64/AArch64InstrInfo.td
llvm/lib/Target/AArch64/AArch64MCInstLower.cpp
llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.cpp
llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h
llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp
llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp
llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.h
llvm/test/MC/AArch64/arm64-elf-relocs.s
llvm/test/MC/AArch64/ilp32-diagnostics.s
Removed:
llvm/test/CodeGen/AArch64/ptrauth-basic-pic.ll
llvm/test/CodeGen/AArch64/ptrauth-elf-globals-pic.ll
llvm/test/CodeGen/AArch64/ptrauth-extern-weak.ll
llvm/test/CodeGen/AArch64/ptrauth-got-abuse.ll
llvm/test/CodeGen/AArch64/ptrauth-tagged-globals-pic.ll
llvm/test/MC/AArch64/adrp-auth-relocation.s
################################################################################
diff --git a/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp b/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
index 040a47f2f6d7f7..0391d518324315 100644
--- a/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
+++ b/llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
@@ -2161,10 +2161,6 @@ void AArch64AsmPrinter::LowerMOVaddrPAC(const MachineInstr &MI) {
};
const bool IsGOTLoad = MI.getOpcode() == AArch64::LOADgotPAC;
- const bool IsELFSignedGOT = MI.getParent()
- ->getParent()
- ->getInfo<AArch64FunctionInfo>()
- ->hasELFSignedGOT();
MachineOperand GAOp = MI.getOperand(0);
const uint64_t KeyC = MI.getOperand(1).getImm();
assert(KeyC <= AArch64PACKey::LAST &&
@@ -2181,16 +2177,9 @@ void AArch64AsmPrinter::LowerMOVaddrPAC(const MachineInstr &MI) {
// Emit:
// target materialization:
// - via GOT:
- // - unsigned GOT:
- // adrp x16, :got:target
- // ldr x16, [x16, :got_lo12:target]
- // add offset to x16 if offset != 0
- // - ELF signed GOT:
- // adrp x17, :got:target
- // add x17, x17, :got_auth_lo12:target
- // ldr x16, [x17]
- // aut{i|d}a x16, x17
- // add offset to x16 if offset != 0
+ // adrp x16, :got:target
+ // ldr x16, [x16, :got_lo12:target]
+ // add offset to x16 if offset != 0
//
// - direct:
// adrp x16, target
@@ -2233,40 +2222,13 @@ void AArch64AsmPrinter::LowerMOVaddrPAC(const MachineInstr &MI) {
MCInstLowering.lowerOperand(GAMOLo, GAMCLo);
EmitAndIncrement(
- MCInstBuilder(AArch64::ADRP)
- .addReg(IsGOTLoad && IsELFSignedGOT ? AArch64::X17 : AArch64::X16)
- .addOperand(GAMCHi));
+ MCInstBuilder(AArch64::ADRP).addReg(AArch64::X16).addOperand(GAMCHi));
if (IsGOTLoad) {
- if (IsELFSignedGOT) {
- EmitAndIncrement(MCInstBuilder(AArch64::ADDXri)
- .addReg(AArch64::X17)
- .addReg(AArch64::X17)
- .addOperand(GAMCLo)
- .addImm(0));
-
- EmitAndIncrement(MCInstBuilder(AArch64::LDRXui)
- .addReg(AArch64::X16)
- .addReg(AArch64::X17)
- .addImm(0));
-
- assert(GAOp.isGlobal());
- assert(GAOp.getGlobal()->getValueType() != nullptr);
- unsigned AuthOpcode = GAOp.getGlobal()->getValueType()->isFunctionTy()
- ? AArch64::AUTIA
- : AArch64::AUTDA;
-
- EmitAndIncrement(MCInstBuilder(AuthOpcode)
- .addReg(AArch64::X16)
- .addReg(AArch64::X16)
- .addReg(AArch64::X17));
-
- } else {
- EmitAndIncrement(MCInstBuilder(AArch64::LDRXui)
- .addReg(AArch64::X16)
- .addReg(AArch64::X16)
- .addOperand(GAMCLo));
- }
+ EmitAndIncrement(MCInstBuilder(AArch64::LDRXui)
+ .addReg(AArch64::X16)
+ .addReg(AArch64::X16)
+ .addOperand(GAMCLo));
} else {
EmitAndIncrement(MCInstBuilder(AArch64::ADDXri)
.addReg(AArch64::X16)
diff --git a/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp b/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
index 72c767200b3805..9b7fc228d5de80 100644
--- a/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
+++ b/llvm/lib/Target/AArch64/AArch64ExpandPseudoInsts.cpp
@@ -1291,40 +1291,7 @@ bool AArch64ExpandPseudo::expandMI(MachineBasicBlock &MBB,
MI.eraseFromParent();
return true;
}
- case AArch64::LOADgotAUTH: {
- Register DstReg = MI.getOperand(0).getReg();
- const MachineOperand &MO1 = MI.getOperand(1);
-
- MachineOperand GAHiOp(MO1);
- MachineOperand GALoOp(MO1);
- GAHiOp.addTargetFlag(AArch64II::MO_PAGE);
- GALoOp.addTargetFlag(AArch64II::MO_PAGEOFF | AArch64II::MO_NC);
-
- DebugLoc DL = MI.getDebugLoc();
- BuildMI(MBB, MBBI, MI.getDebugLoc(), TII->get(AArch64::ADRP), AArch64::X16)
- .add(GAHiOp);
- BuildMI(MBB, MBBI, DL, TII->get(AArch64::ADDXri), AArch64::X16)
- .addReg(AArch64::X16)
- .add(GALoOp)
- .addImm(0);
-
- BuildMI(MBB, MBBI, DL, TII->get(AArch64::LDRXui), DstReg)
- .addReg(AArch64::X16)
- .addImm(0);
-
- assert(MO1.isGlobal());
- assert(MO1.getGlobal()->getValueType() != nullptr);
- unsigned AuthOpcode = MO1.getGlobal()->getValueType()->isFunctionTy()
- ? AArch64::AUTIA
- : AArch64::AUTDA;
- BuildMI(MBB, MBBI, DL, TII->get(AuthOpcode), DstReg)
- .addReg(DstReg)
- .addReg(AArch64::X16);
-
- MI.eraseFromParent();
- return true;
- }
case AArch64::LOADgot: {
MachineFunction *MF = MBB.getParent();
Register DstReg = MI.getOperand(0).getReg();
diff --git a/llvm/lib/Target/AArch64/AArch64FastISel.cpp b/llvm/lib/Target/AArch64/AArch64FastISel.cpp
index 4487d34a936c4d..cbf38f2c57a35e 100644
--- a/llvm/lib/Target/AArch64/AArch64FastISel.cpp
+++ b/llvm/lib/Target/AArch64/AArch64FastISel.cpp
@@ -453,9 +453,6 @@ unsigned AArch64FastISel::materializeGV(const GlobalValue *GV) {
if (!Subtarget->useSmallAddressing() && !Subtarget->isTargetMachO())
return 0;
- if (FuncInfo.MF->getInfo<AArch64FunctionInfo>()->hasELFSignedGOT())
- return 0;
-
unsigned OpFlags = Subtarget->ClassifyGlobalReference(GV, TM);
EVT DestEVT = TLI.getValueType(DL, GV->getType(), true);
diff --git a/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp b/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
index 94130736c39869..f0c3afc4f9b5d5 100644
--- a/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
+++ b/llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
@@ -9225,11 +9225,6 @@ SDValue AArch64TargetLowering::getGOT(NodeTy *N, SelectionDAG &DAG,
SDValue GotAddr = getTargetNode(N, Ty, DAG, AArch64II::MO_GOT | Flags);
// FIXME: Once remat is capable of dealing with instructions with register
// operands, expand this into two nodes instead of using a wrapper node.
- if (DAG.getMachineFunction()
- .getInfo<AArch64FunctionInfo>()
- ->hasELFSignedGOT())
- return SDValue(DAG.getMachineNode(AArch64::LOADgotAUTH, DL, Ty, GotAddr),
- 0);
return DAG.getNode(AArch64ISD::LOADgot, DL, Ty, GotAddr);
}
diff --git a/llvm/lib/Target/AArch64/AArch64InstrInfo.td b/llvm/lib/Target/AArch64/AArch64InstrInfo.td
index 1e5c5e2657e65d..3f6b6d1f8800c9 100644
--- a/llvm/lib/Target/AArch64/AArch64InstrInfo.td
+++ b/llvm/lib/Target/AArch64/AArch64InstrInfo.td
@@ -1874,7 +1874,7 @@ let Predicates = [HasPAuth] in {
Sched<[WriteI, ReadI]> {
let isReMaterializable = 1;
let isCodeGenOnly = 1;
- let Size = 48; // 12 fixed + 36 variable, for pointer offset, and discriminator
+ let Size = 40; // 12 fixed + 28 variable, for pointer offset, and discriminator
let Defs = [X16,X17];
}
@@ -1913,11 +1913,6 @@ let Predicates = [HasPAuth] in {
tcGPR64:$AddrDisc),
(AUTH_TCRETURN_BTI tcGPRx16x17:$dst, imm:$FPDiff, imm:$Key,
imm:$Disc, tcGPR64:$AddrDisc)>;
-
- def LOADgotAUTH : Pseudo<(outs GPR64common:$dst), (ins i64imm:$addr), []>,
- Sched<[WriteI, ReadI]> {
- let Defs = [X16];
- }
}
// v9.5-A pointer authentication extensions
diff --git a/llvm/lib/Target/AArch64/AArch64MCInstLower.cpp b/llvm/lib/Target/AArch64/AArch64MCInstLower.cpp
index 9f234b0f917058..48672241f905d5 100644
--- a/llvm/lib/Target/AArch64/AArch64MCInstLower.cpp
+++ b/llvm/lib/Target/AArch64/AArch64MCInstLower.cpp
@@ -12,7 +12,6 @@
//===----------------------------------------------------------------------===//
#include "AArch64MCInstLower.h"
-#include "AArch64MachineFunctionInfo.h"
#include "MCTargetDesc/AArch64MCExpr.h"
#include "Utils/AArch64BaseInfo.h"
#include "llvm/CodeGen/AsmPrinter.h"
@@ -186,12 +185,9 @@ MCOperand AArch64MCInstLower::lowerSymbolOperandELF(const MachineOperand &MO,
MCSymbol *Sym) const {
uint32_t RefFlags = 0;
- if (MO.getTargetFlags() & AArch64II::MO_GOT) {
- const MachineFunction *MF = MO.getParent()->getParent()->getParent();
- RefFlags |= (MF->getInfo<AArch64FunctionInfo>()->hasELFSignedGOT()
- ? AArch64MCExpr::VK_GOT_AUTH
- : AArch64MCExpr::VK_GOT);
- } else if (MO.getTargetFlags() & AArch64II::MO_TLS) {
+ if (MO.getTargetFlags() & AArch64II::MO_GOT)
+ RefFlags |= AArch64MCExpr::VK_GOT;
+ else if (MO.getTargetFlags() & AArch64II::MO_TLS) {
TLSModel::Model Model;
if (MO.isGlobal()) {
const GlobalValue *GV = MO.getGlobal();
diff --git a/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.cpp b/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.cpp
index a0f0a489816c41..e96c5a953ff2bb 100644
--- a/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.cpp
+++ b/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.cpp
@@ -16,7 +16,6 @@
#include "AArch64MachineFunctionInfo.h"
#include "AArch64InstrInfo.h"
#include "AArch64Subtarget.h"
-#include "llvm/BinaryFormat/ELF.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/Metadata.h"
#include "llvm/IR/Module.h"
@@ -73,29 +72,6 @@ static bool ShouldSignWithBKey(const Function &F, const AArch64Subtarget &STI) {
return Key == "b_key";
}
-// Determine if we need to treat pointers in GOT as signed (as described in
-// https://github.com/ARM-software/abi-aa/blob/main/pauthabielf64/pauthabielf64.rst#appendix-signed-got)
-// based on PAuth core info encoded as "aarch64-elf-pauthabi-platform" and
-// "aarch64-elf-pauthabi-version" module flags. Currently, only
-// AARCH64_PAUTH_PLATFORM_LLVM_LINUX platform supports signed GOT with
-// AARCH64_PAUTH_PLATFORM_LLVM_LINUX_VERSION_GOT bit in version value set.
-static bool hasELFSignedGOTHelper(const Function &F,
- const AArch64Subtarget *STI) {
- if (!Triple(STI->getTargetTriple()).isOSBinFormatELF())
- return false;
- const Module *M = F.getParent();
- const auto *PAP = mdconst::extract_or_null<ConstantInt>(
- M->getModuleFlag("aarch64-elf-pauthabi-platform"));
- if (!PAP || PAP->getZExtValue() != ELF::AARCH64_PAUTH_PLATFORM_LLVM_LINUX)
- return false;
- const auto *PAV = mdconst::extract_or_null<ConstantInt>(
- M->getModuleFlag("aarch64-elf-pauthabi-version"));
- if (!PAV)
- return false;
- return PAV->getZExtValue() &
- (1 << ELF::AARCH64_PAUTH_PLATFORM_LLVM_LINUX_VERSION_GOT);
-}
-
AArch64FunctionInfo::AArch64FunctionInfo(const Function &F,
const AArch64Subtarget *STI) {
// If we already know that the function doesn't have a redzone, set
@@ -104,7 +80,6 @@ AArch64FunctionInfo::AArch64FunctionInfo(const Function &F,
HasRedZone = false;
std::tie(SignReturnAddress, SignReturnAddressAll) = GetSignReturnAddress(F);
SignWithBKey = ShouldSignWithBKey(F, *STI);
- HasELFSignedGOT = hasELFSignedGOTHelper(F, STI);
// TODO: skip functions that have no instrumented allocas for optimization
IsMTETagged = F.hasFnAttribute(Attribute::SanitizeMemTag);
diff --git a/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h b/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h
index 9ae45848834377..72f110cebbdc8f 100644
--- a/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h
+++ b/llvm/lib/Target/AArch64/AArch64MachineFunctionInfo.h
@@ -177,14 +177,6 @@ class AArch64FunctionInfo final : public MachineFunctionInfo {
/// SignWithBKey modifies the default PAC-RET mode to signing with the B key.
bool SignWithBKey = false;
- /// HasELFSignedGOT is true if the target binary format is ELF and the IR
- /// module containing the corresponding function has the following flags:
- /// - aarch64-elf-pauthabi-platform flag equal to
- /// AARCH64_PAUTH_PLATFORM_LLVM_LINUX;
- /// - aarch64-elf-pauthabi-version flag with
- /// AARCH64_PAUTH_PLATFORM_LLVM_LINUX_VERSION_GOT bit set.
- bool HasELFSignedGOT = false;
-
/// SigningInstrOffset captures the offset of the PAC-RET signing instruction
/// within the prologue, so it can be re-used for authentication in the
/// epilogue when using PC as a second salt (FEAT_PAuth_LR)
@@ -517,8 +509,6 @@ class AArch64FunctionInfo final : public MachineFunctionInfo {
bool shouldSignWithBKey() const { return SignWithBKey; }
- bool hasELFSignedGOT() const { return HasELFSignedGOT; }
-
MCSymbol *getSigningInstrLabel() const { return SignInstrLabel; }
void setSigningInstrLabel(MCSymbol *Label) { SignInstrLabel = Label; }
diff --git a/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp b/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
index 8a93b7fc4c89fb..26f8010f3427d3 100644
--- a/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
+++ b/llvm/lib/Target/AArch64/AsmParser/AArch64AsmParser.cpp
@@ -875,7 +875,6 @@ class AArch64Operand : public MCParsedAsmOperand {
if (DarwinRefKind == MCSymbolRefExpr::VK_PAGEOFF ||
ELFRefKind == AArch64MCExpr::VK_LO12 ||
ELFRefKind == AArch64MCExpr::VK_GOT_LO12 ||
- ELFRefKind == AArch64MCExpr::VK_GOT_AUTH_LO12 ||
ELFRefKind == AArch64MCExpr::VK_DTPREL_LO12 ||
ELFRefKind == AArch64MCExpr::VK_DTPREL_LO12_NC ||
ELFRefKind == AArch64MCExpr::VK_TPREL_LO12 ||
@@ -987,20 +986,19 @@ class AArch64Operand : public MCParsedAsmOperand {
int64_t Addend;
if (AArch64AsmParser::classifySymbolRef(Expr, ELFRefKind,
DarwinRefKind, Addend)) {
- return DarwinRefKind == MCSymbolRefExpr::VK_PAGEOFF ||
- DarwinRefKind == MCSymbolRefExpr::VK_TLVPPAGEOFF ||
- (DarwinRefKind == MCSymbolRefExpr::VK_GOTPAGEOFF && Addend == 0) ||
- ELFRefKind == AArch64MCExpr::VK_LO12 ||
- ELFRefKind == AArch64MCExpr::VK_GOT_AUTH_LO12 ||
- ELFRefKind == AArch64MCExpr::VK_DTPREL_HI12 ||
- ELFRefKind == AArch64MCExpr::VK_DTPREL_LO12 ||
- ELFRefKind == AArch64MCExpr::VK_DTPREL_LO12_NC ||
- ELFRefKind == AArch64MCExpr::VK_TPREL_HI12 ||
- ELFRefKind == AArch64MCExpr::VK_TPREL_LO12 ||
- ELFRefKind == AArch64MCExpr::VK_TPREL_LO12_NC ||
- ELFRefKind == AArch64MCExpr::VK_TLSDESC_LO12 ||
- ELFRefKind == AArch64MCExpr::VK_SECREL_HI12 ||
- ELFRefKind == AArch64MCExpr::VK_SECREL_LO12;
+ return DarwinRefKind == MCSymbolRefExpr::VK_PAGEOFF
+ || DarwinRefKind == MCSymbolRefExpr::VK_TLVPPAGEOFF
+ || (DarwinRefKind == MCSymbolRefExpr::VK_GOTPAGEOFF && Addend == 0)
+ || ELFRefKind == AArch64MCExpr::VK_LO12
+ || ELFRefKind == AArch64MCExpr::VK_DTPREL_HI12
+ || ELFRefKind == AArch64MCExpr::VK_DTPREL_LO12
+ || ELFRefKind == AArch64MCExpr::VK_DTPREL_LO12_NC
+ || ELFRefKind == AArch64MCExpr::VK_TPREL_HI12
+ || ELFRefKind == AArch64MCExpr::VK_TPREL_LO12
+ || ELFRefKind == AArch64MCExpr::VK_TPREL_LO12_NC
+ || ELFRefKind == AArch64MCExpr::VK_TLSDESC_LO12
+ || ELFRefKind == AArch64MCExpr::VK_SECREL_HI12
+ || ELFRefKind == AArch64MCExpr::VK_SECREL_LO12;
}
// If it's a constant, it should be a real immediate in range.
@@ -3252,7 +3250,6 @@ ParseStatus AArch64AsmParser::tryParseAdrpLabel(OperandVector &Operands) {
DarwinRefKind != MCSymbolRefExpr::VK_TLVPPAGE &&
ELFRefKind != AArch64MCExpr::VK_ABS_PAGE_NC &&
ELFRefKind != AArch64MCExpr::VK_GOT_PAGE &&
- ELFRefKind != AArch64MCExpr::VK_GOT_AUTH_PAGE &&
ELFRefKind != AArch64MCExpr::VK_GOT_PAGE_LO15 &&
ELFRefKind != AArch64MCExpr::VK_GOTTPREL_PAGE &&
ELFRefKind != AArch64MCExpr::VK_TLSDESC_PAGE) {
@@ -4338,8 +4335,6 @@ bool AArch64AsmParser::parseSymbolicImmVal(const MCExpr *&ImmVal) {
.Case("got", AArch64MCExpr::VK_GOT_PAGE)
.Case("gotpage_lo15", AArch64MCExpr::VK_GOT_PAGE_LO15)
.Case("got_lo12", AArch64MCExpr::VK_GOT_LO12)
- .Case("got_auth", AArch64MCExpr::VK_GOT_AUTH_PAGE)
- .Case("got_auth_lo12", AArch64MCExpr::VK_GOT_AUTH_LO12)
.Case("gottprel", AArch64MCExpr::VK_GOTTPREL_PAGE)
.Case("gottprel_lo12", AArch64MCExpr::VK_GOTTPREL_LO12_NC)
.Case("gottprel_g1", AArch64MCExpr::VK_GOTTPREL_G1)
@@ -5714,7 +5709,6 @@ bool AArch64AsmParser::validateInstruction(MCInst &Inst, SMLoc &IDLoc,
// Only allow these with ADDXri/ADDWri
if ((ELFRefKind == AArch64MCExpr::VK_LO12 ||
- ELFRefKind == AArch64MCExpr::VK_GOT_AUTH_LO12 ||
ELFRefKind == AArch64MCExpr::VK_DTPREL_HI12 ||
ELFRefKind == AArch64MCExpr::VK_DTPREL_LO12 ||
ELFRefKind == AArch64MCExpr::VK_DTPREL_LO12_NC ||
diff --git a/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp b/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
index ef8fcc07417013..e9e6b6cb68d0d1 100644
--- a/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
+++ b/llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
@@ -2845,9 +2845,7 @@ bool AArch64InstructionSelector::select(MachineInstr &I) {
}
if (OpFlags & AArch64II::MO_GOT) {
- I.setDesc(TII.get(MF.getInfo<AArch64FunctionInfo>()->hasELFSignedGOT()
- ? AArch64::LOADgotAUTH
- : AArch64::LOADgot));
+ I.setDesc(TII.get(AArch64::LOADgot));
I.getOperand(1).setTargetFlags(OpFlags);
} else if (TM.getCodeModel() == CodeModel::Large &&
!TM.isPositionIndependent()) {
diff --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp
index 72671b0715f6e5..b4c5cde5fd888d 100644
--- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp
+++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64ELFObjectWriter.cpp
@@ -167,15 +167,6 @@ unsigned AArch64ELFObjectWriter::getRelocType(MCContext &Ctx,
}
if (SymLoc == AArch64MCExpr::VK_GOT && !IsNC)
return R_CLS(ADR_GOT_PAGE);
- if (SymLoc == AArch64MCExpr::VK_GOT_AUTH && !IsNC) {
- if (IsILP32) {
- Ctx.reportError(Fixup.getLoc(),
- "ILP32 ADRP AUTH relocation not supported "
- "(LP64 eqv: AUTH_ADR_GOT_PAGE)");
- return ELF::R_AARCH64_NONE;
- }
- return ELF::R_AARCH64_AUTH_ADR_GOT_PAGE;
- }
if (SymLoc == AArch64MCExpr::VK_GOTTPREL && !IsNC)
return R_CLS(TLSIE_ADR_GOTTPREL_PAGE21);
if (SymLoc == AArch64MCExpr::VK_TLSDESC && !IsNC)
@@ -246,15 +237,6 @@ unsigned AArch64ELFObjectWriter::getRelocType(MCContext &Ctx,
return R_CLS(TLSLE_ADD_TPREL_LO12);
if (RefKind == AArch64MCExpr::VK_TLSDESC_LO12)
return R_CLS(TLSDESC_ADD_LO12);
- if (RefKind == AArch64MCExpr::VK_GOT_AUTH_LO12 && IsNC) {
- if (IsILP32) {
- Ctx.reportError(Fixup.getLoc(),
- "ILP32 ADD AUTH relocation not supported "
- "(LP64 eqv: AUTH_GOT_ADD_LO12_NC)");
- return ELF::R_AARCH64_NONE;
- }
- return ELF::R_AARCH64_AUTH_GOT_ADD_LO12_NC;
- }
if (SymLoc == AArch64MCExpr::VK_ABS && IsNC)
return R_CLS(ADD_ABS_LO12_NC);
@@ -347,23 +329,17 @@ unsigned AArch64ELFObjectWriter::getRelocType(MCContext &Ctx,
case AArch64::fixup_aarch64_ldst_imm12_scale8:
if (SymLoc == AArch64MCExpr::VK_ABS && IsNC)
return R_CLS(LDST64_ABS_LO12_NC);
- if ((SymLoc == AArch64MCExpr::VK_GOT ||
- SymLoc == AArch64MCExpr::VK_GOT_AUTH) &&
- IsNC) {
+ if (SymLoc == AArch64MCExpr::VK_GOT && IsNC) {
AArch64MCExpr::VariantKind AddressLoc =
AArch64MCExpr::getAddressFrag(RefKind);
- bool IsAuth = (SymLoc == AArch64MCExpr::VK_GOT_AUTH);
if (!IsILP32) {
if (AddressLoc == AArch64MCExpr::VK_LO15)
return ELF::R_AARCH64_LD64_GOTPAGE_LO15;
- return (IsAuth ? ELF::R_AARCH64_AUTH_LD64_GOT_LO12_NC
- : ELF::R_AARCH64_LD64_GOT_LO12_NC);
+ return ELF::R_AARCH64_LD64_GOT_LO12_NC;
}
- Ctx.reportError(Fixup.getLoc(),
- Twine("ILP32 64-bit load/store "
- "relocation not supported (LP64 eqv: ") +
- (IsAuth ? "AUTH_GOT_LO12_NC" : "LD64_GOT_LO12_NC") +
- Twine(')'));
+ Ctx.reportError(Fixup.getLoc(), "ILP32 64-bit load/store "
+ "relocation not supported (LP64 eqv: "
+ "LD64_GOT_LO12_NC)");
return ELF::R_AARCH64_NONE;
}
if (SymLoc == AArch64MCExpr::VK_DTPREL && !IsNC)
diff --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp
index 3430b9002894f0..fb8eb9f47da179 100644
--- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp
+++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.cpp
@@ -30,7 +30,6 @@ const AArch64MCExpr *AArch64MCExpr::create(const MCExpr *Expr, VariantKind Kind,
}
StringRef AArch64MCExpr::getVariantKindName() const {
- // clang-format off
switch (static_cast<uint32_t>(getKind())) {
case VK_CALL: return "";
case VK_LO12: return ":lo12:";
@@ -83,13 +82,9 @@ StringRef AArch64MCExpr::getVariantKindName() const {
case VK_TLSDESC_PAGE: return ":tlsdesc:";
case VK_SECREL_LO12: return ":secrel_lo12:";
case VK_SECREL_HI12: return ":secrel_hi12:";
- case VK_GOT_AUTH: return ":got_auth:";
- case VK_GOT_AUTH_PAGE: return ":got_auth:";
- case VK_GOT_AUTH_LO12: return ":got_auth_lo12:";
default:
llvm_unreachable("Invalid ELF symbol kind");
}
- // clang-format on
}
void AArch64MCExpr::printImpl(raw_ostream &OS, const MCAsmInfo *MAI) const {
diff --git a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.h b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.h
index 699992782f67b8..cf3a90f95a2c16 100644
--- a/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.h
+++ b/llvm/lib/Target/AArch64/MCTargetDesc/AArch64MCExpr.h
@@ -24,7 +24,6 @@ namespace llvm {
class AArch64MCExpr : public MCTargetExpr {
public:
enum VariantKind {
- // clang-format off
// Symbol locations specifying (roughly speaking) what calculation should be
// performed to construct the final address for the relocated
// symbol. E.g. direct, via the GOT, ...
@@ -39,7 +38,6 @@ class AArch64MCExpr : public MCTargetExpr {
VK_SECREL = 0x009,
VK_AUTH = 0x00a,
VK_AUTHADDR = 0x00b,
- VK_GOT_AUTH = 0x00c,
VK_SymLocBits = 0x00f,
// Variants specifying which part of the final address calculation is
@@ -90,8 +88,6 @@ class AArch64MCExpr : public MCTargetExpr {
VK_GOT_LO12 = VK_GOT | VK_PAGEOFF | VK_NC,
VK_GOT_PAGE = VK_GOT | VK_PAGE,
VK_GOT_PAGE_LO15 = VK_GOT | VK_LO15 | VK_NC,
- VK_GOT_AUTH_LO12 = VK_GOT_AUTH | VK_PAGEOFF | VK_NC,
- VK_GOT_AUTH_PAGE = VK_GOT_AUTH | VK_PAGE,
VK_DTPREL_G2 = VK_DTPREL | VK_G2,
VK_DTPREL_G1 = VK_DTPREL | VK_G1,
VK_DTPREL_G1_NC = VK_DTPREL | VK_G1 | VK_NC,
@@ -118,7 +114,6 @@ class AArch64MCExpr : public MCTargetExpr {
VK_SECREL_HI12 = VK_SECREL | VK_HI12,
VK_INVALID = 0xfff
- // clang-format on
};
private:
diff --git a/llvm/test/CodeGen/AArch64/ptrauth-basic-pic.ll b/llvm/test/CodeGen/AArch64/ptrauth-basic-pic.ll
deleted file mode 100644
index de6901f107617d..00000000000000
--- a/llvm/test/CodeGen/AArch64/ptrauth-basic-pic.ll
+++ /dev/null
@@ -1,82 +0,0 @@
-; RUN: llc -mtriple=aarch64-linux-gnu -global-isel=0 -fast-isel=0 -verify-machineinstrs \
-; RUN: -relocation-model=pic -mattr=+pauth %s -o - | FileCheck %s
-; RUN: llc -mtriple=aarch64-linux-gnu -global-isel=0 -fast-isel=1 -verify-machineinstrs \
-; RUN: -relocation-model=pic -mattr=+pauth %s -o - | FileCheck %s
-; RUN: llc -mtriple=aarch64-linux-gnu -global-isel=1 -global-isel-abort=1 -verify-machineinstrs \
-; RUN: -relocation-model=pic -mattr=+pauth %s -o - | FileCheck %s
-
-;; Note: for FastISel, we fall back to SelectionDAG
-
- at var = global i32 0
-
-define i32 @get_globalvar() {
-; CHECK-LABEL: get_globalvar:
-; CHECK: adrp x[[GOT:[0-9]+]], :got_auth:var
-; CHECK-NEXT: add x[[GOT]], x[[GOT]], :got_auth_lo12:var
-; CHECK-NEXT: ldr x[[SYM:[0-9]+]], [x[[GOT]]]
-; CHECK-NEXT: autda x[[SYM]], x[[GOT]]
-; CHECK-NEXT: ldr w0, [x[[SYM]]]
-
- %val = load i32, ptr @var
- ret i32 %val
-}
-
-define ptr @get_globalvaraddr() {
-; CHECK-LABEL: get_globalvaraddr:
-; CHECK: adrp x[[GOT:[0-9]+]], :got_auth:var
-; CHECK-NEXT: add x[[GOT]], x[[GOT]], :got_auth_lo12:var
-; CHECK-NEXT: ldr x0, [x[[GOT]]]
-; CHECK-NEXT: autda x0, x[[GOT]]
-
- %val = load i32, ptr @var
- ret ptr @var
-}
-
-declare i32 @foo()
-
-define ptr @resign_globalfunc() {
-; CHECK-LABEL: resign_globalfunc:
-; CHECK: adrp x17, :got_auth:foo
-; CHECK-NEXT: add x17, x17, :got_auth_lo12:foo
-; CHECK-NEXT: ldr x16, [x17]
-; CHECK-NEXT: autia x16, x17
-; CHECK-NEXT: mov x17, #42
-; CHECK-NEXT: pacia x16, x17
-; CHECK-NEXT: mov x0, x16
-; CHECK-NEXT: ret
-
- ret ptr ptrauth (ptr @foo, i32 0, i64 42)
-}
-
-define ptr @resign_globalvar() {
-; CHECK-LABEL: resign_globalvar:
-; CHECK: adrp x17, :got_auth:var
-; CHECK-NEXT: add x17, x17, :got_auth_lo12:var
-; CHECK-NEXT: ldr x16, [x17]
-; CHECK-NEXT: autda x16, x17
-; CHECK-NEXT: mov x17, #43
-; CHECK-NEXT: pacdb x16, x17
-; CHECK-NEXT: mov x0, x16
-; CHECK-NEXT: ret
-
- ret ptr ptrauth (ptr @var, i32 3, i64 43)
-}
-
-define ptr @resign_globalvar_offset() {
-; CHECK-LABEL: resign_globalvar_offset:
-; CHECK: adrp x17, :got_auth:var
-; CHECK-NEXT: add x17, x17, :got_auth_lo12:var
-; CHECK-NEXT: ldr x16, [x17]
-; CHECK-NEXT: autda x16, x17
-; CHECK-NEXT: add x16, x16, #16
-; CHECK-NEXT: mov x17, #44
-; CHECK-NEXT: pacda x16, x17
-; CHECK-NEXT: mov x0, x16
-; CHECK-NEXT: ret
-
- ret ptr ptrauth (ptr getelementptr (i8, ptr @var, i64 16), i32 2, i64 44)
-}
-
-!llvm.module.flags = !{!0, !1}
-!0 = !{i32 1, !"aarch64-elf-pauthabi-platform", i32 268435458}
-!1 = !{i32 1, !"aarch64-elf-pauthabi-version", i32 256}
diff --git a/llvm/test/CodeGen/AArch64/ptrauth-elf-globals-pic.ll b/llvm/test/CodeGen/AArch64/ptrauth-elf-globals-pic.ll
deleted file mode 100644
index 2b7d8637b432ae..00000000000000
--- a/llvm/test/CodeGen/AArch64/ptrauth-elf-globals-pic.ll
+++ /dev/null
@@ -1,23 +0,0 @@
-; RUN: llc -mtriple=arm64 -global-isel=0 -fast-isel=0 -relocation-model=pic -o - %s -mcpu=cyclone -mattr=+pauth | FileCheck %s
-; RUN: llc -mtriple=arm64 -global-isel=0 -fast-isel=1 -relocation-model=pic -o - %s -mcpu=cyclone -mattr=+pauth | FileCheck %s
-; RUN: llc -mtriple=arm64 -global-isel=1 -global-isel-abort=1 -relocation-model=pic -o - %s -mcpu=cyclone -mattr=+pauth | FileCheck %s
-
-;; Note: for FastISel, we fall back to SelectionDAG
-
- at var8 = external global i8, align 1
-
-define i8 @test_i8(i8 %new) {
- %val = load i8, ptr @var8, align 1
- store i8 %new, ptr @var8
- ret i8 %val
-
-; CHECK: adrp x[[HIREG:[0-9]+]], :got_auth:var8
-; CHECK-NEXT: add x[[HIREG]], x[[HIREG]], :got_auth_lo12:var8
-; CHECK-NEXT: ldr x[[VAR_ADDR:[0-9]+]], [x[[HIREG]]]
-; CHECK-NEXT: autda x[[VAR_ADDR]], x[[HIREG]]
-; CHECK-NEXT: ldrb {{w[0-9]+}}, [x[[VAR_ADDR]]]
-}
-
-!llvm.module.flags = !{!0, !1}
-!0 = !{i32 1, !"aarch64-elf-pauthabi-platform", i32 268435458}
-!1 = !{i32 1, !"aarch64-elf-pauthabi-version", i32 256}
diff --git a/llvm/test/CodeGen/AArch64/ptrauth-extern-weak.ll b/llvm/test/CodeGen/AArch64/ptrauth-extern-weak.ll
deleted file mode 100644
index 88b611141c0414..00000000000000
--- a/llvm/test/CodeGen/AArch64/ptrauth-extern-weak.ll
+++ /dev/null
@@ -1,36 +0,0 @@
-; RUN: llc -mtriple=aarch64-none-linux-gnu -global-isel=0 -fast-isel=0 -relocation-model=pic -mattr=+pauth -o - %s | FileCheck %s
-; RUN: llc -mtriple=aarch64-none-linux-gnu -global-isel=0 -fast-isel=1 -relocation-model=pic -mattr=+pauth -o - %s | FileCheck %s
-; RUN: llc -mtriple=aarch64-none-linux-gnu -global-isel=1 -global-isel-abort=1 -relocation-model=pic -mattr=+pauth -o - %s | FileCheck %s
-
-;; Note: for FastISel, we fall back to SelectionDAG
-
-declare extern_weak dso_local i32 @var()
-
-define ptr @foo() {
-; The usual ADRP/ADD pair can't be used for a weak reference because it must
-; evaluate to 0 if the symbol is undefined. We use a GOT entry for PIC
-; otherwise a litpool entry.
- ret ptr @var
-
-; CHECK: adrp x[[ADDRHI:[0-9]+]], :got_auth:var
-; CHECK-NEXT: add x[[ADDRHI]], x[[ADDRHI]], :got_auth_lo12:var
-; CHECK-NEXT: ldr x0, [x[[ADDRHI]]]
-; CHECK-NEXT: autia x0, x[[ADDRHI]]
-}
-
- at arr_var = extern_weak global [10 x i32]
-
-define ptr @bar() {
- %addr = getelementptr [10 x i32], ptr @arr_var, i32 0, i32 5
-
-; CHECK: adrp x[[ADDRHI:[0-9]+]], :got_auth:arr_var
-; CHECK-NEXT: add x[[ADDRHI]], x[[ADDRHI]], :got_auth_lo12:arr_var
-; CHECK-NEXT: ldr [[BASE:x[0-9]+]], [x[[ADDRHI]]]
-; CHECK-NEXT: autda [[BASE]], x[[ADDRHI]]
-; CHECK-NEXT: add x0, [[BASE]], #20
- ret ptr %addr
-}
-
-!llvm.module.flags = !{!0, !1}
-!0 = !{i32 1, !"aarch64-elf-pauthabi-platform", i32 268435458}
-!1 = !{i32 1, !"aarch64-elf-pauthabi-version", i32 256}
diff --git a/llvm/test/CodeGen/AArch64/ptrauth-got-abuse.ll b/llvm/test/CodeGen/AArch64/ptrauth-got-abuse.ll
deleted file mode 100644
index c1580534b62cb9..00000000000000
--- a/llvm/test/CodeGen/AArch64/ptrauth-got-abuse.ll
+++ /dev/null
@@ -1,44 +0,0 @@
-; RUN: llc -mtriple=aarch64-none-linux-gnu -asm-verbose=false -global-isel=0 -fast-isel=0 -relocation-model=pic -mattr=+pauth -o - %s | FileCheck %s
-; RUN: llc -mtriple=aarch64-none-linux-gnu -asm-verbose=false -global-isel=0 -fast-isel=1 -relocation-model=pic -mattr=+pauth -o - %s | FileCheck %s
-; RUN: llc -mtriple=aarch64-none-linux-gnu -asm-verbose=false -global-isel=1 -global-isel-abort=1 -relocation-model=pic -mattr=+pauth -o - %s | FileCheck %s
-; RUN: llc -mtriple=aarch64-none-linux-gnu -asm-verbose=false -global-isel=0 -fast-isel=0 -relocation-model=pic -filetype=obj -mattr=+pauth -o /dev/null %s
-; RUN: llc -mtriple=aarch64-none-linux-gnu -asm-verbose=false -global-isel=0 -fast-isel=1 -relocation-model=pic -filetype=obj -mattr=+pauth -o /dev/null %s
-; RUN: llc -mtriple=aarch64-none-linux-gnu -asm-verbose=false -global-isel=1 -global-isel-abort=1 -relocation-model=pic -filetype=obj -mattr=+pauth -o /dev/null %s
-
-;; Note: for FastISel, we fall back to SelectionDAG
-
-declare void @consume(i32)
-declare void @func()
-
-define void @aliasee_func() {
- ret void
-}
- at alias_func = alias void (), ptr @aliasee_func
-
- at aliasee_global = global i32 42
- at alias_global = alias i32, ptr @aliasee_global
-
-define void @foo() nounwind {
-; CHECK-LABEL: foo:
-entry:
- call void @consume(i32 ptrtoint (ptr @func to i32))
-; CHECK: adrp x[[ADDRHI:[0-9]+]], :got_auth:func
-; CHECK-NEXT: add x[[ADDRHI]], x[[ADDRHI]], :got_auth_lo12:func
-; CHECK-NEXT: ldr x[[SYM:[0-9]+]], [x[[ADDRHI]]]
-; CHECK-NEXT: autia x[[SYM:[0-9]+]], x[[ADDRHI]]
- call void @consume(i32 ptrtoint (ptr @alias_func to i32))
-; CHECK: adrp x[[ADDRHI:[0-9]+]], :got_auth:alias_func
-; CHECK-NEXT: add x[[ADDRHI]], x[[ADDRHI]], :got_auth_lo12:alias_func
-; CHECK-NEXT: ldr x[[SYM:[0-9]+]], [x[[ADDRHI]]]
-; CHECK-NEXT: autia x[[SYM:[0-9]+]], x[[ADDRHI]]
- call void @consume(i32 ptrtoint (ptr @alias_global to i32))
-; CHECK: adrp x[[ADDRHI:[0-9]+]], :got_auth:alias_global
-; CHECK-NEXT: add x[[ADDRHI]], x[[ADDRHI]], :got_auth_lo12:alias_global
-; CHECK-NEXT: ldr x[[SYM:[0-9]+]], [x[[ADDRHI]]]
-; CHECK-NEXT: autda x[[SYM:[0-9]+]], x[[ADDRHI]]
- ret void
-}
-
-!llvm.module.flags = !{!0, !1}
-!0 = !{i32 1, !"aarch64-elf-pauthabi-platform", i32 268435458}
-!1 = !{i32 1, !"aarch64-elf-pauthabi-version", i32 256}
diff --git a/llvm/test/CodeGen/AArch64/ptrauth-tagged-globals-pic.ll b/llvm/test/CodeGen/AArch64/ptrauth-tagged-globals-pic.ll
deleted file mode 100644
index c9a6722505bda7..00000000000000
--- a/llvm/test/CodeGen/AArch64/ptrauth-tagged-globals-pic.ll
+++ /dev/null
@@ -1,66 +0,0 @@
-; RUN: llc --relocation-model=pic -mattr=+pauth < %s | FileCheck %s --check-prefixes=CHECK,GISEL
-
-; RUN: llc -global-isel=0 -fast-isel=0 -O0 --relocation-model=pic < %s -mattr=+pauth | FileCheck %s --check-prefixes=CHECK,DAGISEL
-; RUN: llc -global-isel=0 -fast-isel=1 -O0 --relocation-model=pic < %s -mattr=+pauth | FileCheck %s --check-prefixes=CHECK,DAGISEL
-; RUN: llc -global-isel=1 -global-isel-abort=1 -O0 --relocation-model=pic < %s -mattr=+pauth | FileCheck %s --check-prefixes=CHECK,GISEL
-
-;; Note: for FastISel, we fall back to SelectionDAG
-
-target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
-target triple = "aarch64-unknown-linux-android"
-
- at global = external global i32
-declare void @func()
-
-define ptr @global_addr() #0 {
- ; CHECK-LABEL: global_addr:
- ; CHECK: adrp [[REG:x[0-9]+]], :got_auth:global
- ; CHECK-NEXT: add [[REG]], [[REG]], :got_auth_lo12:global
- ; CHECK-NEXT: ldr x0, [[[REG]]]
- ; CHECK-NEXT: autda x0, [[REG]]
- ; CHECK-NEXT: ret
-
- ret ptr @global
-}
-
-define i32 @global_load() #0 {
- ; CHECK-LABEL: global_load:
- ; CHECK: adrp [[REG0:x[0-9]+]], :got_auth:global
- ; CHECK-NEXT: add [[REG0]], [[REG0]], :got_auth_lo12:global
- ; CHECK-NEXT: ldr [[REG1:x[0-9]+]], [[[REG0]]]
- ; CHECK-NEXT: autda [[REG1]], [[REG0]]
- ; CHECK-NEXT: ldr w0, [[[REG1]]]
- ; CHECK-NEXT: ret
- %load = load i32, ptr @global
- ret i32 %load
-}
-
-define void @global_store() #0 {
- ; CHECK-LABEL: global_store:
- ; CHECK: adrp [[REG0:x[0-9]+]], :got_auth:global
- ; CHECK-NEXT: add [[REG0]], [[REG0]], :got_auth_lo12:global
- ; CHECK-NEXT: ldr [[REG1:x[0-9]+]], [[[REG0]]]
- ; CHECK-NEXT: autda [[REG1]], [[REG0]]
- ; GISEL-NEXT: str wzr, [[[REG1]]]
- ; DAGISEL-NEXT: mov w8, wzr
- ; DAGISEL-NEXT: str w8, [[[REG1]]]
- ; CHECK-NEXT: ret
- store i32 0, ptr @global
- ret void
-}
-
-define ptr @func_addr() #0 {
- ; CHECK-LABEL: func_addr:
- ; CHECK: adrp [[REG:x[0-9]+]], :got_auth:func
- ; CHECK-NEXT: add [[REG]], [[REG]], :got_auth_lo12:func
- ; CHECK-NEXT: ldr x0, [[[REG]]]
- ; CHECK-NEXT: autia x0, [[REG]]
- ; CHECK-NEXT: ret
- ret ptr @func
-}
-
-attributes #0 = { "target-features"="+tagged-globals" }
-
-!llvm.module.flags = !{!0, !1}
-!0 = !{i32 1, !"aarch64-elf-pauthabi-platform", i32 268435458}
-!1 = !{i32 1, !"aarch64-elf-pauthabi-version", i32 256}
diff --git a/llvm/test/MC/AArch64/adrp-auth-relocation.s b/llvm/test/MC/AArch64/adrp-auth-relocation.s
deleted file mode 100644
index 57021c71632ff3..00000000000000
--- a/llvm/test/MC/AArch64/adrp-auth-relocation.s
+++ /dev/null
@@ -1,12 +0,0 @@
-// RUN: llvm-mc -triple=aarch64-linux-gnu -filetype=obj -o - %s | llvm-readobj -r - | FileCheck %s
-// RUN: not llvm-mc -triple=aarch64-linux-gnu_ilp32 -filetype=obj \
-// RUN: -o /dev/null %s 2>&1 | FileCheck -check-prefix=CHECK-ILP32 %s
-
-.text
-adrp x0, :got_auth:sym
-
-.global sym
-sym:
-
-// CHECK: R_AARCH64_AUTH_ADR_GOT_PAGE sym
-// CHECK-ILP32: error: ILP32 ADRP AUTH relocation not supported (LP64 eqv: AUTH_ADR_GOT_PAGE)
diff --git a/llvm/test/MC/AArch64/arm64-elf-relocs.s b/llvm/test/MC/AArch64/arm64-elf-relocs.s
index f679bb4c82827b..8813c4bd7d1aa1 100644
--- a/llvm/test/MC/AArch64/arm64-elf-relocs.s
+++ b/llvm/test/MC/AArch64/arm64-elf-relocs.s
@@ -81,17 +81,13 @@
// CHECK: adrp x15, :got:sym
// CHECK-OBJ-LP64: 58 R_AARCH64_ADR_GOT_PAGE sym
- adrp x15, :got_auth:sym
-// CHECK: adrp x15, :got_auth:sym
-// CHECK-OBJ-LP64: 5c R_AARCH64_AUTH_ADR_GOT_PAGE sym
-
adrp x29, :gottprel:sym
// CHECK: adrp x29, :gottprel:sym
-// CHECK-OBJ-LP64: 60 R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 sym
+// CHECK-OBJ-LP64: 5c R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21 sym
adrp x2, :tlsdesc:sym
// CHECK: adrp x2, :tlsdesc:sym
-// CHECK-OBJ-LP64: 64 R_AARCH64_TLSDESC_ADR_PAGE21 sym
+// CHECK-OBJ-LP64: 60 R_AARCH64_TLSDESC_ADR_PAGE21 sym
// LLVM is not competent enough to do this relocation because the
// page boundary could occur anywhere after linking. A relocation
@@ -100,7 +96,7 @@
.global trickQuestion
trickQuestion:
// CHECK: adrp x3, trickQuestion
-// CHECK-OBJ-LP64: 68 R_AARCH64_ADR_PREL_PG_HI21 trickQuestion
+// CHECK-OBJ-LP64: 64 R_AARCH64_ADR_PREL_PG_HI21 trickQuestion
ldrb w2, [x3, :lo12:sym]
ldrsb w5, [x7, #:lo12:sym]
@@ -249,16 +245,6 @@ trickQuestion:
// CHECK-OBJ-LP64: R_AARCH64_LD64_GOT_LO12_NC sym
// CHECK-OBJ-LP64: R_AARCH64_LD64_GOT_LO12_NC sym+0x7
- ldr x24, [x23, #:got_auth_lo12:sym]
- ldr d22, [x21, :got_auth_lo12:sym]
- ldr x24, [x23, :got_auth_lo12:sym+7]
-// CHECK: ldr x24, [x23, :got_auth_lo12:sym]
-// CHECK: ldr d22, [x21, :got_auth_lo12:sym]
-// CHECK: ldr x24, [x23, :got_auth_lo12:sym+7]
-// CHECK-OBJ-LP64: R_AARCH64_AUTH_LD64_GOT_LO12_NC sym
-// CHECK-OBJ-LP64: R_AARCH64_AUTH_LD64_GOT_LO12_NC sym
-// CHECK-OBJ-LP64: R_AARCH64_AUTH_LD64_GOT_LO12_NC sym+0x7
-
ldr x24, [x23, #:gotpage_lo15:sym]
ldr d22, [x21, :gotpage_lo15:sym]
ldr d22, [x23, :gotpage_lo15:sym+7]
diff --git a/llvm/test/MC/AArch64/ilp32-diagnostics.s b/llvm/test/MC/AArch64/ilp32-diagnostics.s
index 5d9c6e5626b2b3..8a3bc1398e0429 100644
--- a/llvm/test/MC/AArch64/ilp32-diagnostics.s
+++ b/llvm/test/MC/AArch64/ilp32-diagnostics.s
@@ -69,12 +69,6 @@ ldr x10, [x0, #:gottprel_lo12:var]
ldr x24, [x23, #:got_lo12:sym]
// ERROR: [[#@LINE-1]]:1: error: ILP32 64-bit load/store relocation not supported (LP64 eqv: LD64_GOT_LO12_NC)
-ldr x24, [x23, #:got_auth_lo12:sym]
-// ERROR: [[#@LINE-1]]:1: error: ILP32 64-bit load/store relocation not supported (LP64 eqv: AUTH_GOT_LO12_NC)
-
-add x24, x23, #:got_auth_lo12:sym
-// ERROR: [[#@LINE-1]]:1: error: ILP32 ADD AUTH relocation not supported (LP64 eqv: AUTH_GOT_ADD_LO12_NC)
-
ldr x24, [x23, :gottprel_lo12:sym]
// ERROR: [[#@LINE-1]]:1: error: ILP32 64-bit load/store relocation not supported (LP64 eqv: TLSIE_LD64_GOTTPREL_LO12_NC)
More information about the llvm-branch-commits
mailing list