--- /dev/null
+#as: -mla-global-with-abs -mla-local-with-abs
+#objdump: -dr
+#skip: loongarch32-*-*
+
+.*: file format .*
+
+
+Disassembly of section .text:
+
+0+ <.L1>:
+ 0: 14000004 lu12i.w \$a0, 0
+ 0: R_LARCH_MARK_LA \*ABS\*
+ 0: R_LARCH_ABS_HI20 .L1
+ 4: 03800084 ori \$a0, \$a0, 0x0
+ 4: R_LARCH_ABS_LO12 .L1
+ 8: 16000004 lu32i.d \$a0, 0
+ 8: R_LARCH_ABS64_LO20 .L1
+ c: 03000084 lu52i.d \$a0, \$a0, 0
+ c: R_LARCH_ABS64_HI12 .L1
+ 10: 14000004 lu12i.w \$a0, 0
+ 10: R_LARCH_MARK_LA \*ABS\*
+ 10: R_LARCH_ABS_HI20 .L1
+ 14: 03800084 ori \$a0, \$a0, 0x0
+ 14: R_LARCH_ABS_LO12 .L1
+ 18: 16000004 lu32i.d \$a0, 0
+ 18: R_LARCH_ABS64_LO20 .L1
+ 1c: 03000084 lu52i.d \$a0, \$a0, 0
+ 1c: R_LARCH_ABS64_HI12 .L1
+ 20: 1a000004 pcalau12i \$a0, 0
+ 20: R_LARCH_PCALA_HI20 .L1
+ 20: R_LARCH_RELAX \*ABS\*
+ 24: 02c00084 addi.d \$a0, \$a0, 0
+ 24: R_LARCH_PCALA_LO12 .L1
+ 24: R_LARCH_RELAX \*ABS\*
+ 28: 14000004 lu12i.w \$a0, 0
+ 28: R_LARCH_GOT_HI20 .L1
+ 2c: 03800084 ori \$a0, \$a0, 0x0
+ 2c: R_LARCH_GOT_LO12 .L1
+ 30: 16000004 lu32i.d \$a0, 0
+ 30: R_LARCH_GOT64_LO20 .L1
+ 34: 03000084 lu52i.d \$a0, \$a0, 0
+ 34: R_LARCH_GOT64_HI12 .L1
+ 38: 28c00084 ld.d \$a0, \$a0, 0
+ 3c: 14000004 lu12i.w \$a0, 0
+ 3c: R_LARCH_TLS_LE_HI20 TLS1
+ 40: 03800084 ori \$a0, \$a0, 0x0
+ 40: R_LARCH_TLS_LE_LO12 TLS1
+ 44: 14000004 lu12i.w \$a0, 0
+ 44: R_LARCH_TLS_IE_HI20 TLS1
+ 48: 03800084 ori \$a0, \$a0, 0x0
+ 48: R_LARCH_TLS_IE_LO12 TLS1
+ 4c: 16000004 lu32i.d \$a0, 0
+ 4c: R_LARCH_TLS_IE64_LO20 TLS1
+ 50: 03000084 lu52i.d \$a0, \$a0, 0
+ 50: R_LARCH_TLS_IE64_HI12 TLS1
+ 54: 28c00084 ld.d \$a0, \$a0, 0
+ 58: 14000004 lu12i.w \$a0, 0
+ 58: R_LARCH_TLS_LD_HI20 TLS1
+ 5c: 03800084 ori \$a0, \$a0, 0x0
+ 5c: R_LARCH_GOT_LO12 TLS1
+ 60: 16000004 lu32i.d \$a0, 0
+ 60: R_LARCH_GOT64_LO20 TLS1
+ 64: 03000084 lu52i.d \$a0, \$a0, 0
+ 64: R_LARCH_GOT64_HI12 TLS1
+ 68: 14000004 lu12i.w \$a0, 0
+ 68: R_LARCH_TLS_GD_HI20 TLS1
+ 6c: 03800084 ori \$a0, \$a0, 0x0
+ 6c: R_LARCH_GOT_LO12 TLS1
+ 70: 16000004 lu32i.d \$a0, 0
+ 70: R_LARCH_GOT64_LO20 TLS1
+ 74: 03000084 lu52i.d \$a0, \$a0, 0
+ 74: R_LARCH_GOT64_HI12 TLS1
--- /dev/null
+.L1:
+la.local $r4, $r5, .L1
+la.global $r4, $r5, .L1
+la.pcrel $r4, .L1
+la.got $r4,.L1
+la.tls.le $r4, TLS1
+la.tls.ie $r4, TLS1
+la.tls.ld $r4, TLS1
+la.tls.gd $r4, TLS1
-#as:
+#as: -mla-global-with-pcrel
#objdump: -dr
#skip: loongarch32-*-*
.*: file format .*
-
Disassembly of section .text:
0+ <.L1>:
c: R_LARCH_PCALA64_HI12 .L1
10: 00109484 add.d \$a0, \$a0, \$a1
14: 1a000004 pcalau12i \$a0, 0
- 14: R_LARCH_GOT_PC_HI20 .L1
+ 14: R_LARCH_PCALA_HI20 .L1
14: R_LARCH_RELAX \*ABS\*
18: 02c00005 li.d \$a1, 0
- 18: R_LARCH_GOT_PC_LO12 .L1
+ 18: R_LARCH_PCALA_LO12 .L1
18: R_LARCH_RELAX \*ABS\*
1c: 16000005 lu32i.d \$a1, 0
- 1c: R_LARCH_GOT64_PC_LO20 .L1
+ 1c: R_LARCH_PCALA64_LO20 .L1
20: 030000a5 lu52i.d \$a1, \$a1, 0
- 20: R_LARCH_GOT64_PC_HI12 .L1
- 24: 380c1484 ldx.d \$a0, \$a0, \$a1
+ 20: R_LARCH_PCALA64_HI12 .L1
+ 24: 00109484 add.d \$a0, \$a0, \$a1
28: 1a000004 pcalau12i \$a0, 0
28: R_LARCH_PCALA_HI20 .L1
28: R_LARCH_RELAX \*ABS\*
--- /dev/null
+.L1:
+la.local $r4, $r5, .L1
+la.global $r4, $r5, .L1
+la.pcrel $r4, $r5, .L1
+la.got $r4, $r5, .L1
+la.tls.le $r4, TLS1
+la.tls.ie $r4, $r5, TLS1
+la.tls.ld $r4, $r5, TLS1
+la.tls.gd $r4, $r5, TLS1
+++ /dev/null
-.L1:
-la.local $r4, $r5, .L1
-la.global $r4, $r5, .L1
-la.pcrel $r4, $r5, .L1
-la.got $r4, $r5, .L1
-la.tls.le $r4, TLS1
-la.tls.ie $r4, $r5, TLS1
-la.tls.ld $r4, $r5, TLS1
-la.tls.gd $r4, $r5, TLS1
+++ /dev/null
-#as:
-#objdump: -dr
-#skip: loongarch32-*-*
-
-.*: file format .*
-
-
-Disassembly of section .text:
-
-0+ <.L1>:
- 0: 1a000004 pcalau12i \$a0, 0
- 0: R_LARCH_PCALA_HI20 .L1
- 0: R_LARCH_RELAX \*ABS\*
- 4: 02c00005 li.d \$a1, 0
- 4: R_LARCH_PCALA_LO12 .L1
- 4: R_LARCH_RELAX \*ABS\*
- 8: 16000005 lu32i.d \$a1, 0
- 8: R_LARCH_PCALA64_LO20 .L1
- c: 030000a5 lu52i.d \$a1, \$a1, 0
- c: R_LARCH_PCALA64_HI12 .L1
- 10: 00109484 add.d \$a0, \$a0, \$a1
- 14: 1a000004 pcalau12i \$a0, 0
- 14: R_LARCH_GOT_PC_HI20 .L1
- 14: R_LARCH_RELAX \*ABS\*
- 18: 02c00005 li.d \$a1, 0
- 18: R_LARCH_GOT_PC_LO12 .L1
- 18: R_LARCH_RELAX \*ABS\*
- 1c: 16000005 lu32i.d \$a1, 0
- 1c: R_LARCH_GOT64_PC_LO20 .L1
- 20: 030000a5 lu52i.d \$a1, \$a1, 0
- 20: R_LARCH_GOT64_PC_HI12 .L1
- 24: 380c1484 ldx.d \$a0, \$a0, \$a1
- 28: 1a000004 pcalau12i \$a0, 0
- 28: R_LARCH_PCALA_HI20 .L1
- 28: R_LARCH_RELAX \*ABS\*
- 2c: 02c00005 li.d \$a1, 0
- 2c: R_LARCH_PCALA_LO12 .L1
- 2c: R_LARCH_RELAX \*ABS\*
- 30: 16000005 lu32i.d \$a1, 0
- 30: R_LARCH_PCALA64_LO20 .L1
- 34: 030000a5 lu52i.d \$a1, \$a1, 0
- 34: R_LARCH_PCALA64_HI12 .L1
- 38: 00109484 add.d \$a0, \$a0, \$a1
- 3c: 1a000004 pcalau12i \$a0, 0
- 3c: R_LARCH_GOT_PC_HI20 .L1
- 3c: R_LARCH_RELAX \*ABS\*
- 40: 02c00005 li.d \$a1, 0
- 40: R_LARCH_GOT_PC_LO12 .L1
- 40: R_LARCH_RELAX \*ABS\*
- 44: 16000005 lu32i.d \$a1, 0
- 44: R_LARCH_GOT64_PC_LO20 .L1
- 48: 030000a5 lu52i.d \$a1, \$a1, 0
- 48: R_LARCH_GOT64_PC_HI12 .L1
- 4c: 380c1484 ldx.d \$a0, \$a0, \$a1
- 50: 14000004 lu12i.w \$a0, 0
- 50: R_LARCH_TLS_LE_HI20 TLS1
- 54: 03800084 ori \$a0, \$a0, 0x0
- 54: R_LARCH_TLS_LE_LO12 TLS1
- 58: 1a000004 pcalau12i \$a0, 0
- 58: R_LARCH_TLS_IE_PC_HI20 TLS1
- 5c: 02c00005 li.d \$a1, 0
- 5c: R_LARCH_TLS_IE_PC_LO12 TLS1
- 60: 16000005 lu32i.d \$a1, 0
- 60: R_LARCH_TLS_IE64_PC_LO20 TLS1
- 64: 030000a5 lu52i.d \$a1, \$a1, 0
- 64: R_LARCH_TLS_IE64_PC_HI12 TLS1
- 68: 380c1484 ldx.d \$a0, \$a0, \$a1
- 6c: 1a000004 pcalau12i \$a0, 0
- 6c: R_LARCH_TLS_LD_PC_HI20 TLS1
- 6c: R_LARCH_RELAX \*ABS\*
- 70: 02c00005 li.d \$a1, 0
- 70: R_LARCH_GOT_PC_LO12 TLS1
- 70: R_LARCH_RELAX \*ABS\*
- 74: 16000005 lu32i.d \$a1, 0
- 74: R_LARCH_GOT64_PC_LO20 TLS1
- 78: 030000a5 lu52i.d \$a1, \$a1, 0
- 78: R_LARCH_GOT64_PC_HI12 TLS1
- 7c: 00109484 add.d \$a0, \$a0, \$a1
- 80: 1a000004 pcalau12i \$a0, 0
- 80: R_LARCH_TLS_GD_PC_HI20 TLS1
- 80: R_LARCH_RELAX \*ABS\*
- 84: 02c00005 li.d \$a1, 0
- 84: R_LARCH_GOT_PC_LO12 TLS1
- 84: R_LARCH_RELAX \*ABS\*
- 88: 16000005 lu32i.d \$a1, 0
- 88: R_LARCH_GOT64_PC_LO20 TLS1
- 8c: 030000a5 lu52i.d \$a1, \$a1, 0
- 8c: R_LARCH_GOT64_PC_HI12 TLS1
- 90: 00109484 add.d \$a0, \$a0, \$a1
+++ /dev/null
-.L1:
-la.local $r4, $r5, .L1
-la.global $r4, $r5, .L1
-la.pcrel $r4, $r5, .L1
-la.got $r4, $r5, .L1
-la.tls.le $r4, TLS1
-la.tls.ie $r4, $r5, TLS1
-la.tls.ld $r4, $r5, TLS1
-la.tls.gd $r4, $r5, TLS1
"lu32i.d %1,%%got64_lo20(%2);" \
"lu52i.d %1,%1,%%got64_hi12(%2);" \
"ld.d %1,%1,0", \
- &LARCH_opts.ase_lp64, \
+ &LARCH_opts.ase_gabs, \
&LARCH_opts.ase_gpcr
/* got64 pic. */
#define INSN_LA_GOT64_LARGE_PCREL \
"lu32i.d %1,%%ie64_lo20(%2);" \
"lu52i.d %1,%1,%%ie64_hi12(%2);" \
"ld.d %1,%1,0", \
- &LARCH_opts.ase_lp64, \
+ &LARCH_opts.ase_gabs, \
&LARCH_opts.ase_gpcr
/* For LoongArch32/64 cmode=normal. */
"ori %1,%1,%%got_lo12(%2);" \
"lu32i.d %1,%%got64_lo20(%2);" \
"lu52i.d %1,%1,%%got64_hi12(%2);", \
- &LARCH_opts.ase_lp64, \
+ &LARCH_opts.ase_gabs, \
&LARCH_opts.ase_gpcr
#define INSN_LA_TLS_GD32 \
"ori %1,%1,%%got_lo12(%2);" \
"lu32i.d %1,%%got64_lo20(%2);" \
"lu52i.d %1,%1,%%got64_hi12(%2);", \
- &LARCH_opts.ase_lp64, \
+ &LARCH_opts.ase_gabs, \
&LARCH_opts.ase_gpcr
#define INSN_LA_CALL \
{ 0, 0, "la.pcrel", "r,la", INSN_LA_PCREL32, 0 },
{ 0, 0, "la.pcrel", "r,la", INSN_LA_PCREL64, 0 },
{ 0, 0, "la.pcrel", "r,r,la", INSN_LA_PCREL64_LARGE, 0 },
- { 0, 0, "la.got", "r,la", INSN_LA_GOT32, 0 },
{ 0, 0, "la.got", "r,la", INSN_LA_GOT32_ABS, 0 },
- { 0, 0, "la.got", "r,la", INSN_LA_GOT64, 0 },
+ { 0, 0, "la.got", "r,la", INSN_LA_GOT32, 0 },
{ 0, 0, "la.got", "r,la", INSN_LA_GOT64_LARGE_ABS, 0 },
+ { 0, 0, "la.got", "r,la", INSN_LA_GOT64, 0 },
{ 0, 0, "la.got", "r,r,la", INSN_LA_GOT64_LARGE_PCREL, 0 },
{ 0, 0, "la.tls.le", "r,l", INSN_LA_TLS_LE, 0 },
{ 0, 0, "la.tls.le", "r,l", INSN_LA_TLS_LE64_LARGE, 0 },
- { 0, 0, "la.tls.ie", "r,l", INSN_LA_TLS_IE32, 0 },
{ 0, 0, "la.tls.ie", "r,l", INSN_LA_TLS_IE32_ABS, 0 },
- { 0, 0, "la.tls.ie", "r,l", INSN_LA_TLS_IE64, 0 },
+ { 0, 0, "la.tls.ie", "r,l", INSN_LA_TLS_IE32, 0 },
{ 0, 0, "la.tls.ie", "r,l", INSN_LA_TLS_IE64_LARGE_ABS, 0 },
+ { 0, 0, "la.tls.ie", "r,l", INSN_LA_TLS_IE64, 0 },
{ 0, 0, "la.tls.ie", "r,r,l", INSN_LA_TLS_IE64_LARGE_PCREL, 0 },
- { 0, 0, "la.tls.ld", "r,l", INSN_LA_TLS_LD32, 0 },
{ 0, 0, "la.tls.ld", "r,l", INSN_LA_TLS_LD32_ABS, 0 },
- { 0, 0, "la.tls.ld", "r,l", INSN_LA_TLS_LD64, 0 },
+ { 0, 0, "la.tls.ld", "r,l", INSN_LA_TLS_LD32, 0 },
{ 0, 0, "la.tls.ld", "r,l", INSN_LA_TLS_LD64_LARGE_ABS, 0 },
+ { 0, 0, "la.tls.ld", "r,l", INSN_LA_TLS_LD64, 0 },
{ 0, 0, "la.tls.ld", "r,r,l", INSN_LA_TLS_LD64_LARGE_PCREL, 0 },
- { 0, 0, "la.tls.gd", "r,l", INSN_LA_TLS_GD32, 0 },
{ 0, 0, "la.tls.gd", "r,l", INSN_LA_TLS_GD32_ABS, 0 },
- { 0, 0, "la.tls.gd", "r,l", INSN_LA_TLS_GD64, 0 },
+ { 0, 0, "la.tls.gd", "r,l", INSN_LA_TLS_GD32, 0 },
{ 0, 0, "la.tls.gd", "r,l", INSN_LA_TLS_GD64_LARGE_ABS, 0 },
+ { 0, 0, "la.tls.gd", "r,l", INSN_LA_TLS_GD64, 0 },
{ 0, 0, "la.tls.gd", "r,r,l", INSN_LA_TLS_GD64_LARGE_PCREL, 0 },
{ 0, 0, "call36", "la", INSN_LA_CALL, 0 },
{ 0, 0, "tail36", "r,la", INSN_LA_TAIL, 0 },