[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