[PATCH] D66542: R_HEX_B15_PCREL_X/R_HEX_B9_PCREL_X can be in shared objects

Sid Manning via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu Aug 22 08:33:42 PDT 2019


sidneym updated this revision to Diff 216632.
sidneym marked an inline comment as done.
sidneym added a comment.

I accidentally moved R_HEX_6_PCREL_X, I only intended to update R_HEX_B15_PCREL_X/R_HEX_B9_PCREL_X.


Repository:
  rLLD LLVM Linker

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D66542/new/

https://reviews.llvm.org/D66542

Files:
  lld/ELF/Arch/Hexagon.cpp
  lld/test/ELF/hexagon-shared.s


Index: lld/test/ELF/hexagon-shared.s
===================================================================
--- lld/test/ELF/hexagon-shared.s
+++ lld/test/ELF/hexagon-shared.s
@@ -17,6 +17,10 @@
 
 # R_HEX_PLT_B22_PCREL
 call bar at PLT
+# R_HEX_B15_PCREL_X
+if (p0) jump bar
+# R_HEX_B9_PCREL_X
+{ r0 = #0; jump bar }
 
 # R_HEX_GOT_11_X and R_HEX_GOT_32_6_X
 r2=add(pc,##_GLOBAL_OFFSET_TABLE_ at PCREL)
@@ -41,21 +45,26 @@
    .size pvar, 4
 
 # PLT: { immext(#131008
-# PLT: r28 = add(pc,##131032) }
+# PLT: r28 = add(pc,##131016) }
 # PLT: { r14 -= add(r28,#16)
 # PLT: r15 = memw(r28+#8)
 # PLT: r28 = memw(r28+#4) }
 # PLT: { r14 = asr(r14,#2)
 # PLT: jumpr r28 }
 # PLT: { trap0(#219) }
-# PLT: immext(#131008)
-# PLT: r14 = add(pc,##131016) }
+# PLT: immext(#130944)
+# PLT: r14 = add(pc,##131000) }
 # PLT: r28 = memw(r14+#0) }
 # PLT: jumpr r28 }
 
+
+
 # TEXT:  10000: 00 00 01 00 00010000
-# TEXT: { 	call 0x10050 }
-# TEXT: r0 = add(r1,##-65416) }
+# TEXT: { 	call 0x10060 }
+# TEXT: if (p0) jump:nt 0x10060
+# TEXT: r0 = #0 ; jump 0x10060
+# TEXT: r0 = add(r1,##-65416)
+
 
 # GOT: .got:
 # GOT: 20080:	00 00 00 00 00000000 <unknown>
Index: lld/ELF/Arch/Hexagon.cpp
===================================================================
--- lld/ELF/Arch/Hexagon.cpp
+++ lld/ELF/Arch/Hexagon.cpp
@@ -102,13 +102,13 @@
   case R_HEX_LO16:
     return R_ABS;
   case R_HEX_B9_PCREL:
-  case R_HEX_B9_PCREL_X:
   case R_HEX_B13_PCREL:
   case R_HEX_B15_PCREL:
-  case R_HEX_B15_PCREL_X:
   case R_HEX_6_PCREL_X:
   case R_HEX_32_PCREL:
     return R_PC;
+  case R_HEX_B9_PCREL_X:
+  case R_HEX_B15_PCREL_X:
   case R_HEX_B22_PCREL:
   case R_HEX_PLT_B22_PCREL:
   case R_HEX_B22_PCREL_X:


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D66542.216632.patch
Type: text/x-patch
Size: 1686 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20190822/fda428e5/attachment.bin>


More information about the llvm-commits mailing list