committed by
liuzhensong
37 changed files with 333 additions and 168 deletions
@ -1,27 +0,0 @@ |
|||
#as: |
|||
#objdump: -dr |
|||
#skip: loongarch64-*-* |
|||
|
|||
.*:[ ]+file format .* |
|||
|
|||
Disassembly of section .text: |
|||
|
|||
0+ <.*>: |
|||
0: 1a000004 pcalau12i \$a0, 0 |
|||
0: R_LARCH_TLS_DESC_PC_HI20 var |
|||
4: 02800084 addi.w \$a0, \$a0, 0 |
|||
4: R_LARCH_TLS_DESC_PC_LO12 var |
|||
8: 28800081 ld.w \$ra, \$a0, 0 |
|||
8: R_LARCH_TLS_DESC_LD var |
|||
c: 4c000021 jirl \$ra, \$ra, 0 |
|||
c: R_LARCH_TLS_DESC_CALL var |
|||
10: 1a000004 pcalau12i \$a0, 0 |
|||
10: R_LARCH_TLS_DESC_PC_HI20 var |
|||
10: R_LARCH_RELAX \*ABS\* |
|||
14: 02800084 addi.w \$a0, \$a0, 0 |
|||
14: R_LARCH_TLS_DESC_PC_LO12 var |
|||
14: R_LARCH_RELAX \*ABS\* |
|||
18: 28800081 ld.w \$ra, \$a0, 0 |
|||
18: R_LARCH_TLS_DESC_LD var |
|||
1c: 4c000021 jirl \$ra, \$ra, 0 |
|||
1c: R_LARCH_TLS_DESC_CALL var |
|||
@ -1,12 +0,0 @@ |
|||
.L1: |
|||
# R_LARCH_TLS_DESC_PC_HI20 var |
|||
pcalau12i $a0,%desc_pc_hi20(var) |
|||
# R_LARCH_TLS_DESC_PC_LO12 var |
|||
addi.w $a0,$a0,%desc_pc_lo12(var) |
|||
# R_LARCH_TLS_DESC_LD var |
|||
ld.w $ra,$a0,%desc_ld(var) |
|||
# R_LARCH_TLS_DESC_CALL var |
|||
jirl $ra,$ra,%desc_call(var) |
|||
|
|||
# test macro, pcalau12i + addi.w => pcaddi |
|||
la.tls.desc $a0,var |
|||
@ -0,0 +1,15 @@ |
|||
#as: |
|||
#ld: -z norelro -e0 --no-relax |
|||
#objdump: -dr |
|||
#skip: loongarch32-*-* |
|||
|
|||
.*: file format .* |
|||
|
|||
|
|||
Disassembly of section .text: |
|||
|
|||
[0-9a-f]+ <fn1>: |
|||
+[0-9a-f]+: 14000004 lu12i.w \$a0, .* |
|||
+[0-9a-f]+: 03800084 ori \$a0, \$a0, .* |
|||
+[0-9a-f]+: 03400000 nop |
|||
+[0-9a-f]+: 03400000 nop |
|||
@ -0,0 +1,11 @@ |
|||
.global var |
|||
.section .tdata,"awT",@progbits |
|||
var: |
|||
.word 1 |
|||
.text |
|||
.global fn1 |
|||
.type fn1,@function |
|||
fn1: |
|||
|
|||
# DESC will relax to LE. |
|||
la.tls.desc $a0,var |
|||
@ -0,0 +1,13 @@ |
|||
#as: |
|||
#ld: -z norelro -e0 |
|||
#objdump: -dr -M no-aliases |
|||
#skip: loongarch32-*-* |
|||
|
|||
.*: file format .* |
|||
|
|||
|
|||
Disassembly of section .text: |
|||
|
|||
[0-9a-f]+ <fn1>: |
|||
+[0-9a-f]+: 03800004 ori \$a0, \$zero, 0x0 |
|||
+[0-9a-f]+: 03801004 ori \$a0, \$zero, 0x4 |
|||
@ -0,0 +1,14 @@ |
|||
.global var |
|||
.section .tdata,"awT",@progbits |
|||
var1: |
|||
.word 1 |
|||
var2: |
|||
.word 1 |
|||
.text |
|||
.global fn1 |
|||
.type fn1,@function |
|||
fn1: |
|||
|
|||
# DESC will relax to LE. |
|||
la.tls.desc $a0,var1 |
|||
la.tls.desc $a0,var2 |
|||
@ -1,15 +0,0 @@ |
|||
#as: |
|||
#ld: -z norelro -e 0x0 |
|||
#objdump: -dr |
|||
#skip: loongarch32-*-* |
|||
|
|||
.*: file format .* |
|||
|
|||
|
|||
Disassembly of section .text: |
|||
|
|||
0+1200000e8 <fn1>: |
|||
1200000e8: 14000004 lu12i.w \$a0, 0 |
|||
1200000ec: 03800084 ori \$a0, \$a0, 0x0 |
|||
1200000f0: 03400000 nop.* |
|||
1200000f4: 03400000 nop.* |
|||
@ -1,14 +0,0 @@ |
|||
.global var |
|||
.section .tdata,"awT",@progbits |
|||
var: |
|||
.word 1 |
|||
.text |
|||
.global fn1 |
|||
.type fn1,@function |
|||
fn1: |
|||
|
|||
# DESC will relax to LE. |
|||
pcalau12i $a0,%desc_pc_hi20(var) |
|||
addi.d $a0,$a0,%desc_pc_lo12(var) |
|||
ld.d $ra,$a0,%desc_ld(var) |
|||
jirl $ra,$ra,%desc_call(var) |
|||
@ -0,0 +1,13 @@ |
|||
#as: |
|||
#ld: -z norelro -e0 --no-relax |
|||
#objdump: -dr |
|||
#skip: loongarch32-*-* |
|||
|
|||
.*: file format .* |
|||
|
|||
|
|||
Disassembly of section .text: |
|||
|
|||
[0-9a-f]+ <.*>: |
|||
+[0-9a-f]+: 14000024 lu12i.w \$a0, .* |
|||
+[0-9a-f]+: 03800084 ori \$a0, \$a0, .* |
|||
@ -0,0 +1,13 @@ |
|||
#as: |
|||
#ld: -z norelro -e0 |
|||
#objdump: -dr -M no-aliases |
|||
#skip: loongarch32-*-* |
|||
|
|||
.*: file format .* |
|||
|
|||
|
|||
Disassembly of section .text: |
|||
|
|||
[0-9a-f]+ <fn1>: |
|||
+[0-9a-f]+: 03800004 ori \$a0, \$zero, 0x0 |
|||
+[0-9a-f]+: 03801004 ori \$a0, \$zero, 0x4 |
|||
@ -0,0 +1,13 @@ |
|||
.data |
|||
.section .tdata,"awT",@progbits |
|||
var1: |
|||
.word 1 |
|||
var2: |
|||
.word 2 |
|||
.text |
|||
.global fn1 |
|||
.type gn1,@function |
|||
fn1: |
|||
# expect IE to relax LE |
|||
la.tls.ie $a0,var1 |
|||
la.tls.ie $a0,var2 |
|||
@ -1,13 +0,0 @@ |
|||
#as: |
|||
#ld: -z norelro -e 0x0 |
|||
#objdump: -dr |
|||
#skip: loongarch32-*-* |
|||
|
|||
.*: file format .* |
|||
|
|||
|
|||
Disassembly of section .text: |
|||
|
|||
0+1200000e8 <fn1>: |
|||
1200000e8: 14000004 lu12i.w \$a0, 0 |
|||
1200000ec: 03800084 ori \$a0, \$a0, 0x0 |
|||
@ -0,0 +1,18 @@ |
|||
#ld: --no-relax |
|||
#objdump: -d -M no-aliases |
|||
|
|||
.*:[ ]+file format .* |
|||
|
|||
|
|||
Disassembly of section .text: |
|||
|
|||
[0-9a-f]+ <_start>: |
|||
+[0-9a-f]+: 14000004 lu12i.w \$a0, 0 |
|||
+[0-9a-f]+: 03802085 ori \$a1, \$a0, 0x8 |
|||
+[0-9a-f]+: 14000004 lu12i.w \$a0, 0 |
|||
+[0-9a-f]+: 02c02085 addi.d \$a1, \$a0, 8 |
|||
+[0-9a-f]+: 14000004 lu12i.w \$a0, 0 |
|||
+[0-9a-f]+: 03802084 ori \$a0, \$a0, 0x8 |
|||
+[0-9a-f]+: 16000004 lu32i.d \$a0, 0 |
|||
+[0-9a-f]+: 03000084 lu52i.d \$a0, \$a0, 0 |
|||
+[0-9a-f]+: 4c000020 jirl \$zero, \$ra, 0 |
|||
@ -0,0 +1,13 @@ |
|||
#ld: |
|||
#objdump: -d -M no-aliases |
|||
|
|||
.*:[ ]+file format .* |
|||
|
|||
|
|||
Disassembly of section .text: |
|||
|
|||
[0-9a-f]+ <_start>: |
|||
+[0-9a-f]+: 03802005 ori \$a1, \$zero, 0x8 |
|||
+[0-9a-f]+: 02c02045 addi.d \$a1, \$tp, 8 |
|||
+[0-9a-f]+: 03802004 ori \$a0, \$zero, 0x8 |
|||
+[0-9a-f]+: 4c000020 jirl \$zero, \$ra, 0 |
|||
@ -0,0 +1,22 @@ |
|||
# Support for TLS LE symbols with addend |
|||
.text |
|||
.globl a |
|||
.section .tdata,"awT",@progbits |
|||
.align 2 |
|||
.type a, @object |
|||
.size a, 4 |
|||
a: |
|||
.word 123 |
|||
|
|||
.text |
|||
.global _start |
|||
_start: |
|||
lu12i.w $r4,%le_hi20(a + 0x8) |
|||
ori $r5,$r4,%le_lo12(a + 0x8) |
|||
lu12i.w $r4,%le_hi20_r(a + 0x8) |
|||
addi.d $r5,$r4,%le_lo12_r(a + 0x8) |
|||
lu12i.w $r4,%le_hi20(a + 0x8) |
|||
ori $r4,$r4,%le_lo12(a + 0x8) |
|||
lu32i.d $r4,%le64_lo20(a + 0x8) |
|||
lu52i.d $r4,$r4,%le64_hi12(a + 0x8) |
|||
jr $ra |
|||
@ -1,14 +0,0 @@ |
|||
#ld: --no-relax |
|||
#objdump: -d |
|||
|
|||
.*:[ ]+file format .* |
|||
|
|||
|
|||
Disassembly of section .text: |
|||
|
|||
[ ]*00000001200000e8 <_start>: |
|||
[ ]+1200000e8:[ ]+14000004[ ]+lu12i.w[ ]+\$a0, 0 |
|||
[ ]+1200000ec:[ ]+03802085[ ]+ori[ ]+\$a1, \$a0, 0x8 |
|||
[ ]+1200000f0:[ ]+14000004[ ]+lu12i.w[ ]+\$a0, 0 |
|||
[ ]+1200000f4:[ ]+02c02085[ ]+addi.d[ ]+\$a1, \$a0, 8 |
|||
[ ]+1200000f8:[ ]+4c000020[ ]+ret |
|||
@ -0,0 +1,23 @@ |
|||
#as: -mla-global-with-abs |
|||
#ld: --no-relax -e0 |
|||
#objdump: -dr |
|||
#skip: loongarch32-*-* |
|||
|
|||
.*: file format .* |
|||
|
|||
|
|||
Disassembly of section .text: |
|||
|
|||
0+120000100 <.*>: |
|||
120000100: 14400084 lu12i.w \$a0, .* |
|||
120000104: 03850084 ori \$a0, \$a0, .* |
|||
120000108: 16000024 lu32i.d \$a0, .* |
|||
12000010c: 03000084 lu52i.d \$a0, \$a0, 0 |
|||
120000110: 28c00081 ld.d \$ra, \$a0, 0 |
|||
120000114: 4c000021 jirl \$ra, \$ra, 0 |
|||
120000118: 14400084 lu12i.w \$a0, .* |
|||
12000011c: 03850084 ori \$a0, \$a0, .* |
|||
120000120: 16000024 lu32i.d \$a0, .* |
|||
120000124: 03000084 lu52i.d \$a0, \$a0, 0 |
|||
120000128: 28c00081 ld.d \$ra, \$a0, 0 |
|||
12000012c: 4c000021 jirl \$ra, \$ra, 0 |
|||
@ -0,0 +1,7 @@ |
|||
.section ".tdata", "awT", @progbits |
|||
.global var |
|||
var: .dword 1 |
|||
.text |
|||
# No matter which register the user uses, the abs macro expansion uses $a0 |
|||
la.tls.desc $a0,var |
|||
la.tls.desc $t0,var |
|||
@ -0,0 +1,25 @@ |
|||
#as: -mla-global-with-pcrel |
|||
#ld: --no-relax -e0 |
|||
#objdump: -dr |
|||
#skip: loongarch32-*-* |
|||
|
|||
.*: file format .* |
|||
|
|||
|
|||
Disassembly of section .text: |
|||
|
|||
0+120000100 <.*>: |
|||
120000100: 1a000084 pcalau12i \$a0, .* |
|||
120000104: 02c52001 li.d \$ra, .* |
|||
120000108: 16000001 lu32i.d \$ra, 0 |
|||
12000010c: 03000021 lu52i.d \$ra, \$ra, 0 |
|||
120000110: 00108484 add.d \$a0, \$a0, \$ra |
|||
120000114: 28c00081 ld.d \$ra, \$a0, 0 |
|||
120000118: 4c000021 jirl \$ra, \$ra, 0 |
|||
12000011c: 1a000084 pcalau12i \$a0, .* |
|||
120000120: 02c5200d li.d \$t1, .* |
|||
120000124: 1600000d lu32i.d \$t1, 0 |
|||
120000128: 030001ad lu52i.d \$t1, \$t1, 0 |
|||
12000012c: 0010b484 add.d \$a0, \$a0, \$t1 |
|||
120000130: 28c00081 ld.d \$ra, \$a0, 0 |
|||
120000134: 4c000021 jirl \$ra, \$ra, 0 |
|||
@ -0,0 +1,7 @@ |
|||
.section ".tdata", "awT", @progbits |
|||
.global var |
|||
var: .dword 1 |
|||
.text |
|||
# No matter which two registers are passed in, $a0 and $ra are always used |
|||
la.tls.desc $a0,$ra,var |
|||
la.tls.desc $t0,$t1,var |
|||
Loading…
Reference in new issue