[llvm] [RISCV] Add Vendor Reloc and Fallback Names (PR #116974)
Fangrui Song via llvm-commits
llvm-commits at lists.llvm.org
Fri Nov 29 11:55:37 PST 2024
================
@@ -0,0 +1,43 @@
+# RUN: llvm-mc -triple riscv32 < %s \
+# RUN: | FileCheck -check-prefix=CHECK-ASM %s
+# RUN: llvm-mc -triple riscv64 < %s \
+# RUN: | FileCheck -check-prefix=CHECK-ASM %s
+
+# RUN: llvm-mc -filetype=obj -triple riscv32 < %s \
+# RUN: | llvm-objdump -dr -M no-aliases - \
+# RUN: | FileCheck -check-prefix=CHECK-OBJ %s
+# RUN: llvm-mc -filetype=obj -triple riscv64 < %s \
+# RUN: | llvm-objdump -dr -M no-aliases - \
+# RUN: | FileCheck -check-prefix=CHECK-OBJ %s
+
+ # CHECK-ASM: .text
+
+ # If `.set` is used instead, the relocation expression will be evaluated.
+ # This leaves an undef, global symbol called VENDOR_NAME, which I'm not happy
+ # about.
+ .global VENDOR_NAME
+
+ # CHECK-OBJ: <.text>:
+
+ nop
+ # CHECK-ASM: nop
+ # CHECK-OBJ: addi zero, zero, 0x0
+
+ .reloc ., R_RISCV_VENDOR, VENDOR_NAME
+ .reloc ., R_RISCV_CUSTOM192, my_foo + 1
+ addi a0, a0, 0
+ # CHECK-ASM: [[L1:.L[^:]+]]:
+ # CHECK-ASM-NEXT: .reloc [[L1]], R_RISCV_VENDOR, VENDOR_NAME
+ # CHECK-ASM-NEXT: [[L2:.L[^:]+]]:
+ # CHECK-ASM-NEXT: .reloc [[L2]], R_RISCV_CUSTOM192, my_foo+1
+ # CHECK-ASM-NEXT: mv a0, a0
+
+ # CHECK-OBJ: addi a0, a0, 0
+ # CHECK-OBJ-NEXT: R_RISCV_VENDOR VENDOR_NAME
+ # CHECK-OBJ-NEXT: R_RISCV_CUSTOM192 my_foo+0x1
+
+ nop
+ # CHECK-ASM: nop
+ # CHECK-OBJ: addi zero, zero, 0x0
+
----------------
MaskRay wrote:
delete trailing blank lines
https://github.com/llvm/llvm-project/pull/116974
More information about the llvm-commits
mailing list