[PATCH] D105761: [lld][AMDGPU] Handle R_AMDGPU_REL16 relocation.
Hafiz Abid Qadeer via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 13 10:10:44 PDT 2021
abidh updated this revision to Diff 358322.
abidh added a comment.
Handle review comments.
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D105761/new/
https://reviews.llvm.org/D105761
Files:
lld/ELF/Arch/AMDGPU.cpp
lld/test/ELF/amdgpu-relocs2.s
Index: lld/test/ELF/amdgpu-relocs2.s
===================================================================
--- /dev/null
+++ lld/test/ELF/amdgpu-relocs2.s
@@ -0,0 +1,38 @@
+# REQUIRES: amdgpu
+# RUN: split-file %s %t
+# RUN: llvm-mc -filetype=obj -triple=amdgcn--amdhsa -mcpu=fiji %t/asm -o %t.o
+# RUN: ld.lld %t.o -o %t/out --script %t/script
+# RUN: llvm-objdump -d %t/out | FileCheck %s
+
+
+#--- script
+SECTIONS {
+ . = 0x1000;
+ .text.likely : { *(.text.likely) }
+ . = 0x2000;
+ .text : { *(.text) }
+ . = 0x3000;
+ .text.unlikely : { *(.text.unlikely) }
+}
+
+
+#--- asm
+.section .text.likely
+hot1:
+ s_add_i32 s15, s15, 1
+hot2:
+ s_add_i32 s13, s13, 1
+.text
+foo:
+ s_branch cold2
+ s_branch hot2
+.section .text.unlikely
+cold1:
+ s_add_i32 s15, s15, 1
+ s_add_i32 s14, s14, 1
+cold2:
+ s_add_i32 s13, s13, 1
+
+# CHECK: <foo>
+# CHECK-NEXT: s_branch 1025
+# CHECK-NEXT: s_branch 64511
Index: lld/ELF/Arch/AMDGPU.cpp
===================================================================
--- lld/ELF/Arch/AMDGPU.cpp
+++ lld/ELF/Arch/AMDGPU.cpp
@@ -139,6 +139,12 @@
case R_AMDGPU_REL32_HI:
write32le(loc, val >> 32);
break;
+ case R_AMDGPU_REL16: {
+ int64_t simm = (static_cast<int64_t>(val) - 4) / 4;
+ checkInt(loc, simm, 16, rel);
+ write16le(loc, simm);
+ break;
+ }
default:
llvm_unreachable("unknown relocation");
}
@@ -154,6 +160,7 @@
case R_AMDGPU_REL32_LO:
case R_AMDGPU_REL32_HI:
case R_AMDGPU_REL64:
+ case R_AMDGPU_REL16:
return R_PC;
case R_AMDGPU_GOTPCREL:
case R_AMDGPU_GOTPCREL32_LO:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D105761.358322.patch
Type: text/x-patch
Size: 1583 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20210713/c084550d/attachment.bin>
More information about the llvm-commits
mailing list