[PATCH] D64456: ELF: Add support for R_AARCH64_ADR_PREL_PG_HI21_NC relocation.

Peter Collingbourne via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Jul 9 17:09:38 PDT 2019


pcc created this revision.
pcc added reviewers: peter.smith, ruiu.
Herald added subscribers: MaskRay, kristof.beyls, arichardson, javed.absar, emaste.
Herald added a reviewer: espindola.
Herald added a project: LLVM.

Depends on D64455 <https://reviews.llvm.org/D64455>


Repository:
  rG LLVM Github Monorepo

https://reviews.llvm.org/D64456

Files:
  lld/ELF/Arch/AArch64.cpp
  lld/test/ELF/aarch64-hi21-nc.s


Index: lld/test/ELF/aarch64-hi21-nc.s
===================================================================
--- /dev/null
+++ lld/test/ELF/aarch64-hi21-nc.s
@@ -0,0 +1,8 @@
+// REQUIRES: aarch64
+// RUN: llvm-mc -filetype=obj -triple=aarch64-unknown-linux %s -o %t.o
+// RUN: ld.lld %t.o -o %t
+// RUN: llvm-objdump -d %t | FileCheck %s
+
+foo = . + 0x1100000000000000
+// CHECK: adrp x0, #0
+adrp x0, :pg_hi21_nc:foo
Index: lld/ELF/Arch/AArch64.cpp
===================================================================
--- lld/ELF/Arch/AArch64.cpp
+++ lld/ELF/Arch/AArch64.cpp
@@ -103,6 +103,7 @@
   case R_AARCH64_LD_PREL_LO19:
     return R_PC;
   case R_AARCH64_ADR_PREL_PG_HI21:
+  case R_AARCH64_ADR_PREL_PG_HI21_NC:
     return R_AARCH64_PAGE_PC;
   case R_AARCH64_LD64_GOT_LO12_NC:
   case R_AARCH64_TLSIE_LD64_GOTTPREL_LO12_NC:
@@ -270,6 +271,8 @@
   case R_AARCH64_TLSIE_ADR_GOTTPREL_PAGE21:
   case R_AARCH64_TLSDESC_ADR_PAGE21:
     checkInt(Loc, Val, 33, Type);
+    LLVM_FALLTHROUGH;
+  case R_AARCH64_ADR_PREL_PG_HI21_NC:
     write32AArch64Addr(Loc, Val >> 12);
     break;
   case R_AARCH64_ADR_PREL_LO21:


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D64456.208844.patch
Type: text/x-patch
Size: 1119 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190710/a702bda6/attachment.bin>


More information about the llvm-commits mailing list