代码拉取完成,页面将自动刷新
From bed92cdad966e2a7b9cfea8a5113187304255968 Mon Sep 17 00:00:00 2001
From: Lulu Cai <cailulu@loongson.cn>
Date: Fri, 12 Jan 2024 11:15:10 +0800
Subject: [PATCH 068/123] LoongArch: Add gas testsuit for LA32 relocations
Test the relocation of the LA32 instruction set.
---
gas/testsuite/gas/loongarch/relocs_32.d | 75 +++++++++++++++++++++++++
gas/testsuite/gas/loongarch/relocs_32.s | 61 ++++++++++++++++++++
2 files changed, 136 insertions(+)
create mode 100644 gas/testsuite/gas/loongarch/relocs_32.d
create mode 100644 gas/testsuite/gas/loongarch/relocs_32.s
diff --git a/gas/testsuite/gas/loongarch/relocs_32.d b/gas/testsuite/gas/loongarch/relocs_32.d
new file mode 100644
index 00000000..3e1bb62e
--- /dev/null
+++ b/gas/testsuite/gas/loongarch/relocs_32.d
@@ -0,0 +1,75 @@
+#as: -mthin-add-sub
+#objdump: -dr
+#skip: loongarch64-*-*
+
+.*:[ ]+file format .*
+
+
+Disassembly of section .text:
+
+0+ <.*>:
+ 0: 4c0050a4 jirl \$a0, \$a1, 80
+ 0: R_LARCH_B16 .L1
+ 4: 50004c00 b 76 # 50 <.L1>
+ 4: R_LARCH_B26 .L1
+ 8: 14000004 lu12i.w \$a0, 0
+ 8: R_LARCH_ABS_HI20 .L1
+ c: 038000a4 ori \$a0, \$a1, 0x0
+ c: R_LARCH_ABS_LO12 .L1
+ 10: 1a000004 pcalau12i \$a0, 0
+ 10: R_LARCH_PCALA_HI20 .L1
+ 14: 02800085 addi.w \$a1, \$a0, 0
+ 14: R_LARCH_PCALA_LO12 .L1
+ 18: 1a000004 pcalau12i \$a0, 0
+ 18: R_LARCH_GOT_PC_HI20 .L1
+ 1c: 28800085 ld.w \$a1, \$a0, 0
+ 1c: R_LARCH_GOT_PC_LO12 .L1
+ 20: 14000004 lu12i.w \$a0, 0
+ 20: R_LARCH_GOT_HI20 .L1
+ 24: 03800084 ori \$a0, \$a0, 0x0
+ 24: R_LARCH_GOT_LO12 .L1
+ 28: 14000004 lu12i.w \$a0, 0
+ 28: R_LARCH_TLS_LE_HI20 TLSL1
+ 2c: 03800085 ori \$a1, \$a0, 0x0
+ 2c: R_LARCH_TLS_LE_LO12 TLSL1
+ 30: 1a000004 pcalau12i \$a0, 0
+ 30: R_LARCH_TLS_IE_PC_HI20 TLSL1
+ 34: 02c00005 li.d \$a1, 0
+ 34: R_LARCH_TLS_IE_PC_LO12 TLSL1
+ 38: 14000004 lu12i.w \$a0, 0
+ 38: R_LARCH_TLS_IE_HI20 TLSL1
+ 3c: 03800084 ori \$a0, \$a0, 0x0
+ 3c: R_LARCH_TLS_IE_LO12 TLSL1
+ 40: 1a000004 pcalau12i \$a0, 0
+ 40: R_LARCH_TLS_LD_PC_HI20 TLSL1
+ 44: 14000004 lu12i.w \$a0, 0
+ 44: R_LARCH_TLS_LD_HI20 TLSL1
+ 48: 1a000004 pcalau12i \$a0, 0
+ 48: R_LARCH_TLS_GD_PC_HI20 TLSL1
+ 4c: 14000004 lu12i.w \$a0, 0
+ 4c: R_LARCH_TLS_GD_HI20 TLSL1
+
+0+50 <.L1>:
+ 50: 00000000 .word 0x00000000
+ 50: R_LARCH_32_PCREL .L2
+
+0+54 <.L2>:
+ 54: 03400000 nop
+ 58: 03400000 nop
+ 58: R_LARCH_ALIGN .*
+ 5c: 03400000 nop
+ 60: 03400000 nop
+ 64: 1800000c pcaddi \$t0, 0
+ 64: R_LARCH_PCREL20_S2 .L1
+ 68: 1a000004 pcalau12i \$a0, 0
+ 68: R_LARCH_TLS_DESC_PC_HI20 TLSL1
+ 6c: 028000a5 addi.w \$a1, \$a1, 0
+ 6c: R_LARCH_TLS_DESC_PC_LO12 TLSL1
+ 70: 14000004 lu12i.w \$a0, 0
+ 70: R_LARCH_TLS_DESC_HI20 TLSL1
+ 74: 03800084 ori \$a0, \$a0, 0x0
+ 74: R_LARCH_TLS_DESC_LO12 TLSL1
+ 78: 28800081 ld.w \$ra, \$a0, 0
+ 78: R_LARCH_TLS_DESC_LD TLSL1
+ 7c: 4c000021 jirl \$ra, \$ra, 0
+ 7c: R_LARCH_TLS_DESC_CALL TLSL1
diff --git a/gas/testsuite/gas/loongarch/relocs_32.s b/gas/testsuite/gas/loongarch/relocs_32.s
new file mode 100644
index 00000000..c5139a75
--- /dev/null
+++ b/gas/testsuite/gas/loongarch/relocs_32.s
@@ -0,0 +1,61 @@
+/* b16. */
+jirl $r4,$r5,%b16(.L1)
+
+/* b26. */
+b %b26(.L1)
+
+/* lu12i.w. */
+lu12i.w $r4,%abs_hi20(.L1)
+
+/* ori */
+ori $r4,$r5,%abs_lo12(.L1)
+
+pcalau12i $r4,%pc_hi20(.L1)
+addi.w $r5,$r4,%pc_lo12(.L1)
+
+pcalau12i $r4,%got_pc_hi20(.L1)
+ld.w $r5,$r4,%got_pc_lo12(.L1)
+
+lu12i.w $r4,%got_hi20(.L1)
+ori $r4,$r4,%got_lo12(.L1)
+
+/* TLS LE. */
+lu12i.w $r4,%le_hi20(TLSL1)
+ori $r5,$r4,%le_lo12(TLSL1)
+
+/* Part of IE relocs. */
+pcalau12i $r4,%ie_pc_hi20(TLSL1)
+addi.d $r5,$r0,%ie_pc_lo12(TLSL1)
+
+lu12i.w $r4,%ie_hi20(TLSL1)
+ori $r4,$r4,%ie_lo12(TLSL1)
+
+/* Part of LD relocs. */
+pcalau12i $r4,%ld_pc_hi20(TLSL1)
+lu12i.w $r4,%ld_hi20(TLSL1)
+
+/* Part of GD relocs. */
+pcalau12i $r4,%gd_pc_hi20(TLSL1)
+lu12i.w $r4,%gd_hi20(TLSL1)
+
+/* Test insn relocs. */
+.L1:
+/* 32-bit PC relative. */
+.4byte .L2-.L1
+.L2:
+nop
+
+/* R_LARCH_ALIGN. */
+.align 4
+
+/* R_LARCH_PCREL20_S2. */
+pcaddi $r12,.L1
+
+/* Part of DESC relocs. */
+pcalau12i $r4,%desc_pc_hi20(TLSL1)
+addi.w $r5,$r5,%desc_pc_lo12(TLSL1)
+
+lu12i.w $r4,%desc_hi20(TLSL1)
+ori $r4,$r4,%desc_lo12(TLSL1)
+ld.w $r1,$r4,%desc_ld(TLSL1)
+jirl $r1,$r1,%desc_call(TLSL1)
--
2.33.0
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。