if [istarget "riscv*-*-*"] {
run_dump_test "align-small-region"
run_dump_test "call-relax"
- run_dump_test "pcgp-relax"
+ run_dump_test "pcgp-relax-01"
+ run_dump_test "pcgp-relax-02"
run_dump_test "c-lui"
run_dump_test "c-lui-2"
run_dump_test "disas-jalr"
--- /dev/null
+#source: pcgp-relax-01.s
+#ld: --relax
+#objdump: -d -Mno-aliases
+
+.*:[ ]+file format .*
+
+
+Disassembly of section \.text:
+
+0+[0-9a-f]+ <_start>:
+.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a0,a0,[0-9]+
+.*:[ ]+[0-9a-f]+[ ]+jal[ ]+ra,[0-9a-f]+ <_start>
+.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a1,gp,\-[0-9]+ # [0-9a-f]+ <data_g>
+.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a2,gp,\-[0-9]+ # [0-9a-f]+ <data_g>
+.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a3,tp,0 # 0 <data_t>
+.*:[ ]+[0-9a-f]+[ ]+auipc[ ]+a0,0x[0-9a-f]+
--- /dev/null
+ .text
+ .globl _start
+_start:
+ addi a0, a0, %pcrel_lo(.L2)
+
+ call _start
+.L1:
+ auipc a1, %pcrel_hi(data_g)
+ addi a1, a1, %pcrel_lo(.L1)
+
+ lui a2, %hi(data_g)
+ addi a2, a2, %lo(data_g)
+
+ lui a3, %tprel_hi(data_t)
+ add a3, a3, tp, %tprel_add(data_t)
+ addi a3, a3, %tprel_lo(data_t)
+
+.L2:
+ auipc a0, %pcrel_hi(data_g)
+
+ .data
+ .word 0x0
+ .globl data_g
+data_g:
+ .word 0x1
+
+ .section .tbss
+data_t:
+ .word 0x0
--- /dev/null
+#source: pcgp-relax-02.s
+#as:
+#ld: --relax
+#objdump: -d
+
+.*:[ ]+file format .*
+
+
+Disassembly of section .text:
+
+[0-9a-f]+ <_start>:
+.*:[ ]+[0-9a-f]+[ ]+auipc[ ]+a1.*
+.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a0,gp.*<data_a>
+.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a1,a1.*<data_b>
+#pass
--- /dev/null
+ .text
+ .globl _start
+_start:
+.L1: auipc a0, %pcrel_hi(data_a)
+.L2: auipc a1, %pcrel_hi(data_b)
+ addi a0, a0, %pcrel_lo(.L1)
+ addi a1, a1, %pcrel_lo(.L2)
+
+ .data
+ .word 0x0
+ .globl data_a
+data_a:
+ .word 0x1
+
+ .section .rodata
+ .globl data_b
+data_b:
+ .word 0x2
+++ /dev/null
-#source: pcgp-relax.s
-#ld: --relax
-#objdump: -d -Mno-aliases
-
-.*:[ ]+file format .*
-
-
-Disassembly of section \.text:
-
-0+[0-9a-f]+ <_start>:
-.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a0,a0,[0-9]+
-.*:[ ]+[0-9a-f]+[ ]+jal[ ]+ra,[0-9a-f]+ <_start>
-.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a1,gp,\-[0-9]+ # [0-9a-f]+ <data_g>
-.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a2,gp,\-[0-9]+ # [0-9a-f]+ <data_g>
-.*:[ ]+[0-9a-f]+[ ]+addi[ ]+a3,tp,0 # 0 <data_t>
-.*:[ ]+[0-9a-f]+[ ]+auipc[ ]+a0,0x[0-9a-f]+
+++ /dev/null
- .text
- .globl _start
-_start:
- addi a0, a0, %pcrel_lo(.L2)
-
- call _start
-.L1:
- auipc a1, %pcrel_hi(data_g)
- addi a1, a1, %pcrel_lo(.L1)
-
- lui a2, %hi(data_g)
- addi a2, a2, %lo(data_g)
-
- lui a3, %tprel_hi(data_t)
- add a3, a3, tp, %tprel_add(data_t)
- addi a3, a3, %tprel_lo(data_t)
-
-.L2:
- auipc a0, %pcrel_hi(data_g)
-
- .data
- .word 0x0
- .globl data_g
-data_g:
- .word 0x1
-
- .section .tbss
-data_t:
- .word 0x0