LoongArch: Add testcases for new relocate types.
authorliuzhensong <liuzhensong@loongson.cn>
Mon, 11 Jul 2022 03:02:44 +0000 (11:02 +0800)
committerliuzhensong <liuzhensong@loongson.cn>
Mon, 25 Jul 2022 01:59:08 +0000 (09:59 +0800)
  gas/testsuite/gas/all/
    gas.exp
  gas/testsuite/gas/loongarch/
    jmp_op.d
    jmp_op.s
    macro_op.d
    macro_op.s
    macro_op_32.d
    macro_op_32.s
    macro_op_large_abs.d
    macro_op_large_abs.s
    macro_op_large_pc.d
    macro_op_large_pc.s
    reloc.d
    reloc.s

  ld/testsuite/ld-elf/
    pr26936.d
    shared.exp
  ld/testsuite/ld-loongarch-elf/
    attr-ifunc-4.c
    attr-ifunc-4.out
    disas-jirl.d
    ifunc.exp
    jmp_op.d
    jmp_op.s
    libnopic-global.s
    macro_op.d
    macro_op.s
    macro_op_32.d
    macro_op_32.s
    nopic-global-so.rd
    nopic-global-so.sd
    nopic-global.out
    nopic-global.s
    nopic-global.sd
    nopic-global.xd
    nopic-local.out
    nopic-local.rd
    nopic-local.s
    nopic-local.sd
    nopic-local.xd
    nopic-weak-global-so.rd
    nopic-weak-global-so.sd
    nopic-weak-global.out
    nopic-weak-global.s
    nopic-weak-global.sd
    nopic-weak-global.xd
    nopic-weak-local.out
    nopic-weak-local.rd
    nopic-weak-local.s
    nopic-weak-local.sd
    nopic-weak-local.xd
    pic.exp
    pic.ld

51 files changed:
gas/testsuite/gas/all/gas.exp
gas/testsuite/gas/loongarch/jmp_op.d
gas/testsuite/gas/loongarch/jmp_op.s
gas/testsuite/gas/loongarch/macro_op.d
gas/testsuite/gas/loongarch/macro_op.s
gas/testsuite/gas/loongarch/macro_op_32.d [new file with mode: 0644]
gas/testsuite/gas/loongarch/macro_op_32.s [new file with mode: 0644]
gas/testsuite/gas/loongarch/macro_op_large_abs.d [new file with mode: 0644]
gas/testsuite/gas/loongarch/macro_op_large_abs.s [new file with mode: 0644]
gas/testsuite/gas/loongarch/macro_op_large_pc.d [new file with mode: 0644]
gas/testsuite/gas/loongarch/macro_op_large_pc.s [new file with mode: 0644]
gas/testsuite/gas/loongarch/reloc.d [new file with mode: 0644]
gas/testsuite/gas/loongarch/reloc.s [new file with mode: 0644]
ld/testsuite/ld-elf/pr26936.d
ld/testsuite/ld-elf/shared.exp
ld/testsuite/ld-loongarch-elf/attr-ifunc-4.c [new file with mode: 0644]
ld/testsuite/ld-loongarch-elf/attr-ifunc-4.out [new file with mode: 0644]
ld/testsuite/ld-loongarch-elf/disas-jirl-32.d
ld/testsuite/ld-loongarch-elf/disas-jirl.d
ld/testsuite/ld-loongarch-elf/ifunc.exp [new file with mode: 0644]
ld/testsuite/ld-loongarch-elf/jmp_op.d
ld/testsuite/ld-loongarch-elf/jmp_op.s
ld/testsuite/ld-loongarch-elf/libnopic-global.s [new file with mode: 0644]
ld/testsuite/ld-loongarch-elf/macro_op.d
ld/testsuite/ld-loongarch-elf/macro_op.s
ld/testsuite/ld-loongarch-elf/macro_op_32.d
ld/testsuite/ld-loongarch-elf/macro_op_32.s
ld/testsuite/ld-loongarch-elf/nopic-global-so.rd [new file with mode: 0644]
ld/testsuite/ld-loongarch-elf/nopic-global-so.sd [new file with mode: 0644]
ld/testsuite/ld-loongarch-elf/nopic-global.out [new file with mode: 0644]
ld/testsuite/ld-loongarch-elf/nopic-global.s [new file with mode: 0644]
ld/testsuite/ld-loongarch-elf/nopic-global.sd [new file with mode: 0644]
ld/testsuite/ld-loongarch-elf/nopic-global.xd [new file with mode: 0644]
ld/testsuite/ld-loongarch-elf/nopic-local.out [new file with mode: 0644]
ld/testsuite/ld-loongarch-elf/nopic-local.rd [new file with mode: 0644]
ld/testsuite/ld-loongarch-elf/nopic-local.s [new file with mode: 0644]
ld/testsuite/ld-loongarch-elf/nopic-local.sd [new file with mode: 0644]
ld/testsuite/ld-loongarch-elf/nopic-local.xd [new file with mode: 0644]
ld/testsuite/ld-loongarch-elf/nopic-weak-global-so.rd [new file with mode: 0644]
ld/testsuite/ld-loongarch-elf/nopic-weak-global-so.sd [new file with mode: 0644]
ld/testsuite/ld-loongarch-elf/nopic-weak-global.out [new file with mode: 0644]
ld/testsuite/ld-loongarch-elf/nopic-weak-global.s [new file with mode: 0644]
ld/testsuite/ld-loongarch-elf/nopic-weak-global.sd [new file with mode: 0644]
ld/testsuite/ld-loongarch-elf/nopic-weak-global.xd [new file with mode: 0644]
ld/testsuite/ld-loongarch-elf/nopic-weak-local.out [new file with mode: 0644]
ld/testsuite/ld-loongarch-elf/nopic-weak-local.rd [new file with mode: 0644]
ld/testsuite/ld-loongarch-elf/nopic-weak-local.s [new file with mode: 0644]
ld/testsuite/ld-loongarch-elf/nopic-weak-local.sd [new file with mode: 0644]
ld/testsuite/ld-loongarch-elf/nopic-weak-local.xd [new file with mode: 0644]
ld/testsuite/ld-loongarch-elf/pic.exp [new file with mode: 0644]
ld/testsuite/ld-loongarch-elf/pic.ld [new file with mode: 0644]

index 279d9b3db2b0aa4bd2ea55c9a268cdf7971c9745..28570c53ac5113c9ce4a0517d14d919b9e84d927 100644 (file)
@@ -166,11 +166,11 @@ switch -glob $target_triplet {
        # symbols on relocs.
        setup_xfail "m68hc1*-*-*" "m6811-*-*" "m6812-*-*" "rl78-*-*"
        setup_xfail "riscv*-*-*" "rx-*-*" "vax*-*-*" "xgate*-*-*" "z8k-*-*"
-       setup_xfail "loongarch*-*-*" "avr-*-*"
+       setup_xfail "avr-*-*"
        run_dump_test redef2
        setup_xfail "m68hc1*-*-*" "m6811-*-*" "m6812-*-*" "rl78-*-*"
        setup_xfail "riscv*-*-*" "rx-*-*" "vax*-*-*" "xgate*-*-*" "z8k-*-*"
-       setup_xfail "loongarch*-*-*" "avr-*-*"
+       setup_xfail "avr-*-*"
        # rs6000-aix disallows redefinition via .comm.
        if [is_xcoff_format] {
            setup_xfail *-*-*
index caa61951b4b97c90929f975c24ba2e4658b5a6cc..fa939c780edd7bafc9fc7ddf2dfe8713488e57e9 100644 (file)
@@ -1,68 +1,30 @@
 #as:
 #objdump: -dr
 
-.*:[   ]+file format .*
+.*:[    ]+file format .*
 
 
 Disassembly of section .text:
 
 00000000.* <.text>:
-[      ]+0:[   ]+03400000 [    ]+andi[         ]+[     ]+\$zero, \$zero, 0x0
-[      ]+4:[   ]+60000004 [    ]+bgtz[         ]+[     ]+\$a0, 0[      ]+# 0x4
-[      ]+[     ]+[     ]+4: R_LARCH_SOP_PUSH_PCREL[    ]+L1
-[      ]+[     ]+[     ]+4: R_LARCH_SOP_POP_32_S_10_16_S2[     ]+\*ABS\*
-[      ]+8:[   ]+64000080 [    ]+bgez[         ]+[     ]+\$a0, 0[      ]+# 0x8
-[      ]+[     ]+[     ]+8: R_LARCH_SOP_PUSH_PCREL[    ]+L1
-[      ]+[     ]+[     ]+8: R_LARCH_SOP_POP_32_S_10_16_S2[     ]+\*ABS\*
-[      ]+c:[   ]+64000004 [    ]+blez[         ]+[     ]+\$a0, 0[      ]+# 0xc
-[      ]+[     ]+[     ]+c: R_LARCH_SOP_PUSH_PCREL[    ]+L1
-[      ]+[     ]+[     ]+c: R_LARCH_SOP_POP_32_S_10_16_S2[     ]+\*ABS\*
-[      ]+10:[  ]+40000080 [    ]+beqz[         ]+[     ]+\$a0, 0[      ]+# 0x10
-[      ]+[     ]+[     ]+10: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+10: R_LARCH_SOP_POP_32_S_0_5_10_16_S2[        ]+\*ABS\*
-[      ]+14:[  ]+44000080 [    ]+bnez[         ]+[     ]+\$a0, 0[      ]+# 0x14
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_POP_32_S_0_5_10_16_S2[        ]+\*ABS\*
-[      ]+18:[  ]+48000000 [    ]+bceqz[        ]+[     ]+\$fcc0, 0[    ]+# 0x18
-[      ]+[     ]+[     ]+18: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+18: R_LARCH_SOP_POP_32_S_0_5_10_16_S2[        ]+\*ABS\*
-[      ]+1c:[  ]+48000100 [    ]+bcnez[        ]+[     ]+\$fcc0, 0[    ]+# 0x1c
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_POP_32_S_0_5_10_16_S2[        ]+\*ABS\*
-[      ]+20:[  ]+4c000080 [    ]+jirl[         ]+[     ]+\$zero, \$a0, 0
-[      ]+24:[  ]+50000000 [    ]+b[    ]+[     ]+0[    ]+# 0x24
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_POP_32_S_0_10_10_16_S2[       ]+\*ABS\*
-[      ]+28:[  ]+54000000 [    ]+bl[   ]+[     ]+0[    ]+# 0x28
-[      ]+[     ]+[     ]+28: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+28: R_LARCH_SOP_POP_32_S_0_10_10_16_S2[       ]+\*ABS\*
-[      ]+2c:[  ]+58000085 [    ]+beq[  ]+[     ]+\$a0, \$a1, 0[        ]+# 0x2c
-[      ]+[     ]+[     ]+2c: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+2c: R_LARCH_SOP_POP_32_S_10_16_S2[    ]+\*ABS\*
-[      ]+30:[  ]+5c000085 [    ]+bne[  ]+[     ]+\$a0, \$a1, 0[        ]+# 0x30
-[      ]+[     ]+[     ]+30: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+30: R_LARCH_SOP_POP_32_S_10_16_S2[    ]+\*ABS\*
-[      ]+34:[  ]+60000085 [    ]+blt[  ]+[     ]+\$a0, \$a1, 0[        ]+# 0x34
-[      ]+[     ]+[     ]+34: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+34: R_LARCH_SOP_POP_32_S_10_16_S2[    ]+\*ABS\*
-[      ]+38:[  ]+600000a4 [    ]+blt[  ]+[     ]+\$a1, \$a0, 0[        ]+# 0x38
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_POP_32_S_10_16_S2[    ]+\*ABS\*
-[      ]+3c:[  ]+64000085 [    ]+bge[  ]+[     ]+\$a0, \$a1, 0[        ]+# 0x3c
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_POP_32_S_10_16_S2[    ]+\*ABS\*
-[      ]+40:[  ]+640000a4 [    ]+bge[  ]+[     ]+\$a1, \$a0, 0[        ]+# 0x40
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_POP_32_S_10_16_S2[    ]+\*ABS\*
-[      ]+44:[  ]+68000085 [    ]+bltu[         ]+[     ]+\$a0, \$a1, 0[        ]+# 0x44
-[      ]+[     ]+[     ]+44: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+44: R_LARCH_SOP_POP_32_S_10_16_S2[    ]+\*ABS\*
-[      ]+48:[  ]+680000a4 [    ]+bltu[         ]+[     ]+\$a1, \$a0, 0[        ]+# 0x48
-[      ]+[     ]+[     ]+48: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+48: R_LARCH_SOP_POP_32_S_10_16_S2[    ]+\*ABS\*
-[      ]+4c:[  ]+6c000085 [    ]+bgeu[         ]+[     ]+\$a0, \$a1, 0[        ]+# 0x4c
-[      ]+[     ]+[     ]+4c: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+4c: R_LARCH_SOP_POP_32_S_10_16_S2[    ]+\*ABS\*
-[      ]+50:[  ]+6c0000a4 [    ]+bgeu[         ]+[     ]+\$a1, \$a0, 0[        ]+# 0x50
-[      ]+[     ]+[     ]+50: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+50: R_LARCH_SOP_POP_32_S_10_16_S2[    ]+\*ABS\*
+[      ]+0:[   ]+03400000[     ]+[     ]+andi[         ]+\$zero, \$zero, 0x0
+[      ]+4:[   ]+63fffc04[     ]+[     ]+bgtz[         ]+\$a0, -4\(0x3fffc\)[  ]+# 0x0
+[      ]+8:[   ]+67fff880[     ]+[     ]+bgez[         ]+\$a0, -8\(0x3fff8\)[  ]+# 0x0
+[      ]+c:[   ]+67fff404[     ]+[     ]+blez[         ]+\$a0, -12\(0x3fff4\)[         ]+# 0x0
+[      ]+10:[  ]+43fff09f[     ]+[     ]+beqz[         ]+\$a0, -16\(0x7ffff0\)[        ]+# 0x0
+[      ]+14:[  ]+47ffec9f[     ]+[     ]+bnez[         ]+\$a0, -20\(0x7fffec\)[        ]+# 0x0
+[      ]+18:[  ]+4bffe81f[     ]+[     ]+bceqz[        ]+\$fcc0, -24\(0x7fffe8\)[      ]+# 0x0
+[      ]+1c:[  ]+4bffe51f[     ]+[     ]+bcnez[        ]+\$fcc0, -28\(0x7fffe4\)[      ]+# 0x0
+[      ]+20:[  ]+4c000080[     ]+[     ]+jirl[         ]+\$zero, \$a0, 0
+[      ]+24:[  ]+53ffdfff[     ]+[     ]+b[    ]+-36\(0xfffffdc\)[     ]+# 0x0
+[      ]+28:[  ]+57ffdbff[     ]+[     ]+bl[   ]+-40\(0xfffffd8\)[     ]+# 0x0
+[      ]+2c:[  ]+5bffd485[     ]+[     ]+beq[  ]+\$a0, \$a1, -44\(0x3ffd4\)[   ]+# 0x0
+[      ]+30:[  ]+5fffd085[     ]+[     ]+bne[  ]+\$a0, \$a1, -48\(0x3ffd0\)[   ]+# 0x0
+[      ]+34:[  ]+63ffcc85[     ]+[     ]+blt[  ]+\$a0, \$a1, -52\(0x3ffcc\)[   ]+# 0x0
+[      ]+38:[  ]+63ffc8a4[     ]+[     ]+blt[  ]+\$a1, \$a0, -56\(0x3ffc8\)[   ]+# 0x0
+[      ]+3c:[  ]+67ffc485[     ]+[     ]+bge[  ]+\$a0, \$a1, -60\(0x3ffc4\)[   ]+# 0x0
+[      ]+40:[  ]+67ffc0a4[     ]+[     ]+bge[  ]+\$a1, \$a0, -64\(0x3ffc0\)[   ]+# 0x0
+[      ]+44:[  ]+6bffbc85[     ]+[     ]+bltu[         ]+\$a0, \$a1, -68\(0x3ffbc\)[   ]+# 0x0
+[      ]+48:[  ]+6bffb8a4[     ]+[     ]+bltu[         ]+\$a1, \$a0, -72\(0x3ffb8\)[   ]+# 0x0
+[      ]+4c:[  ]+6fffb485[     ]+[     ]+bgeu[         ]+\$a0, \$a1, -76\(0x3ffb4\)[   ]+# 0x0
+[      ]+50:[  ]+6fffb0a4[     ]+[     ]+bgeu[         ]+\$a1, \$a0, -80\(0x3ffb0\)[   ]+# 0x0
index 2ec20ed828a7546d46564f0afedcb3696e173101..1deb165aebadd1a735ce38452d9459249d58949a 100644 (file)
@@ -1,22 +1,22 @@
 .L1:
 nop
-bgtz  $r4,L1
-bgez  $r4,L1
-blez  $r4,L1
-beqz  $r4,L1
-bnez  $r4,L1
-bceqz  $fcc0,L1
-bcnez  $fcc0,L1
+bgtz  $r4,.L1
+bgez  $r4,.L1
+blez  $r4,.L1
+beqz  $r4,.L1
+bnez  $r4,.L1
+bceqz  $fcc0,.L1
+bcnez  $fcc0,.L1
 jr  $r4
-b  L1
-bl  L1
-beq  $r4,$r5,L1
-bne  $r4,$r5,L1
-blt  $r4,$r5,L1
-bgt  $r4,$r5,L1
-bge  $r4,$r5,L1
-ble  $r4,$r5,L1
-bltu  $r4,$r5,L1
-bgtu  $r4,$r5,L1
-bgeu  $r4,$r5,L1
-bleu  $r4,$r5,L1
+b  .L1
+bl  .L1
+beq  $r4,$r5,.L1
+bne  $r4,$r5,.L1
+blt  $r4,$r5,.L1
+bgt  $r4,$r5,.L1
+bge  $r4,$r5,.L1
+ble  $r4,$r5,.L1
+bltu  $r4,$r5,.L1
+bgtu  $r4,$r5,.L1
+bgeu  $r4,$r5,.L1
+bleu  $r4,$r5,.L1
index fabd006b8c13d159f0d9930993432e620a60d307..d264c4f25c5069209863c72482a51893b9b04791 100644 (file)
 #as:
 #objdump: -dr
-#skip: loongarch32*-*-*
+#skip: loongarch32-*-*
 
-.*:[   ]+file format .*
+.*:[    ]+file format .*
 
 
 Disassembly of section .text:
 
-0000000000000000 <.text>:
-[      ]+0:[   ]+00150004 [    ]+move[         ]+[     ]+\$a0, \$zero
-[      ]+4:[   ]+02bffc04 [    ]+addi.w[       ]+[     ]+\$a0, \$zero, -1\(0xfff\)
-[      ]+8:[   ]+00150004 [    ]+move[         ]+[     ]+\$a0, \$zero
-[      ]+c:[   ]+02bffc04 [    ]+addi.w[       ]+[     ]+\$a0, \$zero, -1\(0xfff\)
-[      ]+10:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+10: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x800
-[      ]+[     ]+[     ]+10: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+10: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+10: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+10: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+10: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+14:[  ]+28c00084 [    ]+ld.d[         ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x804
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+18:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+18: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x800
-[      ]+[     ]+[     ]+18: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+18: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+18: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+18: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+18: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+1c:[  ]+28c00084 [    ]+ld.d[         ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x804
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+20:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x80000000
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+24:[  ]+03800005 [    ]+ori[  ]+[     ]+\$a1, \$zero, 0x0
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x80000004
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xfff
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_AND[  ]+\*ABS\*
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_POP_32_U_10_12[       ]+\*ABS\*
-[      ]+28:[  ]+16000005 [    ]+lu32i.d[      ]+[     ]+\$a1, 0
-[      ]+[     ]+[     ]+28: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x80000008
-[      ]+[     ]+[     ]+28: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+28: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+28: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+28: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+28: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+28: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+28: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+2c:[  ]+030000a5 [    ]+lu52i.d[      ]+[     ]+\$a1, \$a1, 0
-[      ]+[     ]+[     ]+2c: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x8000000c
-[      ]+[     ]+[     ]+2c: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+2c: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+2c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x34
-[      ]+[     ]+[     ]+2c: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+2c: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+30:[  ]+380c1484 [    ]+ldx.d[        ]+[     ]+\$a0, \$a0, \$a1
-[      ]+34:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+34: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x800
-[      ]+[     ]+[     ]+34: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+34: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+34: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+34: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+34: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+38:[  ]+28c00084 [    ]+ld.d[         ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x804
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+3c:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x80000000
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+40:[  ]+03800005 [    ]+ori[  ]+[     ]+\$a1, \$zero, 0x0
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x80000004
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xfff
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_AND[  ]+\*ABS\*
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_POP_32_U_10_12[       ]+\*ABS\*
-[      ]+44:[  ]+16000005 [    ]+lu32i.d[      ]+[     ]+\$a1, 0
-[      ]+[     ]+[     ]+44: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x80000008
-[      ]+[     ]+[     ]+44: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+44: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+44: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+44: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+44: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+44: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+44: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+48:[  ]+030000a5 [    ]+lu52i.d[      ]+[     ]+\$a1, \$a1, 0
-[      ]+[     ]+[     ]+48: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x8000000c
-[      ]+[     ]+[     ]+48: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+48: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+48: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x34
-[      ]+[     ]+[     ]+48: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+48: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+4c:[  ]+380c1484 [    ]+ldx.d[        ]+[     ]+\$a0, \$a0, \$a1
-[      ]+50:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+50: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x800
-[      ]+[     ]+[     ]+50: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+50: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+50: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+50: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+50: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+54:[  ]+28c00084 [    ]+ld.d[         ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+54: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+54: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+54: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+54: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x804
-[      ]+[     ]+[     ]+54: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+54: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+54: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+54: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+54: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+54: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+54: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+54: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+58:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x80000000
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+5c:[  ]+03800005 [    ]+ori[  ]+[     ]+\$a1, \$zero, 0x0
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x80000004
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xfff
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_AND[  ]+\*ABS\*
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_POP_32_U_10_12[       ]+\*ABS\*
-[      ]+60:[  ]+16000005 [    ]+lu32i.d[      ]+[     ]+\$a1, 0
-[      ]+[     ]+[     ]+60: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x80000008
-[      ]+[     ]+[     ]+60: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+60: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+60: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+60: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+60: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+60: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+60: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+64:[  ]+030000a5 [    ]+lu52i.d[      ]+[     ]+\$a1, \$a1, 0
-[      ]+[     ]+[     ]+64: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x8000000c
-[      ]+[     ]+[     ]+64: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+64: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+64: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x34
-[      ]+[     ]+[     ]+64: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+64: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+68:[  ]+380c1484 [    ]+ldx.d[        ]+[     ]+\$a0, \$a0, \$a1
-[      ]+6c:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+6c: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x800
-[      ]+[     ]+[     ]+6c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+6c: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+6c: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+70:[  ]+02c00084 [    ]+addi.d[       ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+70: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x4
-[      ]+[     ]+[     ]+70: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x804
-[      ]+[     ]+[     ]+70: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+70: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+70: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+70: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+70: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+70: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+74:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+74: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+74: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x80000000
-[      ]+[     ]+[     ]+74: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+74: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+74: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+74: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+74: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+74: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+74: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+74: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+74: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+74: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+78:[  ]+03800005 [    ]+ori[  ]+[     ]+\$a1, \$zero, 0x0
-[      ]+[     ]+[     ]+78: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x4
-[      ]+[     ]+[     ]+78: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x80000004
-[      ]+[     ]+[     ]+78: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+78: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+78: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+78: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+78: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+78: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xfff
-[      ]+[     ]+[     ]+78: R_LARCH_SOP_AND[  ]+\*ABS\*
-[      ]+[     ]+[     ]+78: R_LARCH_SOP_POP_32_U_10_12[       ]+\*ABS\*
-[      ]+7c:[  ]+16000005 [    ]+lu32i.d[      ]+[     ]+\$a1, 0
-[      ]+[     ]+[     ]+7c: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x80000008
-[      ]+[     ]+[     ]+7c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+7c: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+7c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+7c: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+7c: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+80:[  ]+030000a5 [    ]+lu52i.d[      ]+[     ]+\$a1, \$a1, 0
-[      ]+[     ]+[     ]+80: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x8000000c
-[      ]+[     ]+[     ]+80: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x34
-[      ]+[     ]+[     ]+80: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+80: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+84:[  ]+00109484 [    ]+add.d[        ]+[     ]+\$a0, \$a0, \$a1
-[      ]+88:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+88: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x800
-[      ]+[     ]+[     ]+88: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+88: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+88: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+8c:[  ]+02c00084 [    ]+addi.d[       ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+8c: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x4
-[      ]+[     ]+[     ]+8c: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x804
-[      ]+[     ]+[     ]+8c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+8c: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+8c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+8c: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+8c: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+8c: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+90:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+90: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+90: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x80000000
-[      ]+[     ]+[     ]+90: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+90: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+90: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+90: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+90: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+90: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+90: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+90: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+90: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+90: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+94:[  ]+03800005 [    ]+ori[  ]+[     ]+\$a1, \$zero, 0x0
-[      ]+[     ]+[     ]+94: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x4
-[      ]+[     ]+[     ]+94: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x80000004
-[      ]+[     ]+[     ]+94: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+94: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+94: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+94: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+94: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+94: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xfff
-[      ]+[     ]+[     ]+94: R_LARCH_SOP_AND[  ]+\*ABS\*
-[      ]+[     ]+[     ]+94: R_LARCH_SOP_POP_32_U_10_12[       ]+\*ABS\*
-[      ]+98:[  ]+16000005 [    ]+lu32i.d[      ]+[     ]+\$a1, 0
-[      ]+[     ]+[     ]+98: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x80000008
-[      ]+[     ]+[     ]+98: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+98: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+98: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+98: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+98: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+9c:[  ]+030000a5 [    ]+lu52i.d[      ]+[     ]+\$a1, \$a1, 0
-[      ]+[     ]+[     ]+9c: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x8000000c
-[      ]+[     ]+[     ]+9c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x34
-[      ]+[     ]+[     ]+9c: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+9c: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+a0:[  ]+00109484 [    ]+add.d[        ]+[     ]+\$a0, \$a0, \$a1
-[      ]+a4:[  ]+14000004 [    ]+lu12i.w[      ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+a4: R_LARCH_MARK_LA[  ]+L1
-[      ]+[     ]+[     ]+a4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+L1
-[      ]+[     ]+[     ]+a4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+a4: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+a4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+a4: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+a4: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+a8:[  ]+03800084 [    ]+ori[  ]+[     ]+\$a0, \$a0, 0x0
-[      ]+[     ]+[     ]+a8: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+L1
-[      ]+[     ]+[     ]+a8: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xfff
-[      ]+[     ]+[     ]+a8: R_LARCH_SOP_AND[  ]+\*ABS\*
-[      ]+[     ]+[     ]+a8: R_LARCH_SOP_POP_32_U_10_12[       ]+\*ABS\*
-[      ]+ac:[  ]+16000004 [    ]+lu32i.d[      ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+ac: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+L1
-[      ]+[     ]+[     ]+ac: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+ac: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+ac: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+ac: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+ac: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+b0:[  ]+03000084 [    ]+lu52i.d[      ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+b0: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+L1
-[      ]+[     ]+[     ]+b0: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x34
-[      ]+[     ]+[     ]+b0: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+b0: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+b4:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+b4: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x800
-[      ]+[     ]+[     ]+b4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+b4: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+b4: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+b8:[  ]+02c00084 [    ]+addi.d[       ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+b8: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x4
-[      ]+[     ]+[     ]+b8: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x804
-[      ]+[     ]+[     ]+b8: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+b8: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+b8: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+b8: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+b8: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+b8: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+bc:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+bc: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x800
-[      ]+[     ]+[     ]+bc: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+bc: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+bc: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+c0:[  ]+02c00084 [    ]+addi.d[       ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+c0: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x4
-[      ]+[     ]+[     ]+c0: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x804
-[      ]+[     ]+[     ]+c0: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+c0: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+c0: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+c0: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+c0: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+c0: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+c4:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+c4: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+c4: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x80000000
-[      ]+[     ]+[     ]+c4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+c4: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+c4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+c4: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+c4: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+c4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+c4: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+c4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+c4: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+c4: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+c8:[  ]+03800005 [    ]+ori[  ]+[     ]+\$a1, \$zero, 0x0
-[      ]+[     ]+[     ]+c8: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x4
-[      ]+[     ]+[     ]+c8: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x80000004
-[      ]+[     ]+[     ]+c8: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+c8: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+c8: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+c8: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+c8: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+c8: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xfff
-[      ]+[     ]+[     ]+c8: R_LARCH_SOP_AND[  ]+\*ABS\*
-[      ]+[     ]+[     ]+c8: R_LARCH_SOP_POP_32_U_10_12[       ]+\*ABS\*
-[      ]+cc:[  ]+16000005 [    ]+lu32i.d[      ]+[     ]+\$a1, 0
-[      ]+[     ]+[     ]+cc: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x80000008
-[      ]+[     ]+[     ]+cc: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+cc: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+cc: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+cc: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+cc: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+d0:[  ]+030000a5 [    ]+lu52i.d[      ]+[     ]+\$a1, \$a1, 0
-[      ]+[     ]+[     ]+d0: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x8000000c
-[      ]+[     ]+[     ]+d0: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x34
-[      ]+[     ]+[     ]+d0: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+d0: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+d4:[  ]+00109484 [    ]+add.d[        ]+[     ]+\$a0, \$a0, \$a1
-[      ]+d8:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+d8: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x800
-[      ]+[     ]+[     ]+d8: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+d8: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+d8: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+d8: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+d8: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+dc:[  ]+28c00084 [    ]+ld.d[         ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x804
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+e0:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x80000000
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+e4:[  ]+03800005 [    ]+ori[  ]+[     ]+\$a1, \$zero, 0x0
-[      ]+[     ]+[     ]+e4: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+e4: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+e4: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+e4: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x80000004
-[      ]+[     ]+[     ]+e4: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+e4: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+e4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+e4: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+e4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+e4: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+e4: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+e4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xfff
-[      ]+[     ]+[     ]+e4: R_LARCH_SOP_AND[  ]+\*ABS\*
-[      ]+[     ]+[     ]+e4: R_LARCH_SOP_POP_32_U_10_12[       ]+\*ABS\*
-[      ]+e8:[  ]+16000005 [    ]+lu32i.d[      ]+[     ]+\$a1, 0
-[      ]+[     ]+[     ]+e8: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x80000008
-[      ]+[     ]+[     ]+e8: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+e8: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+e8: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+e8: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+e8: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+e8: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+e8: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+ec:[  ]+030000a5 [    ]+lu52i.d[      ]+[     ]+\$a1, \$a1, 0
-[      ]+[     ]+[     ]+ec: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x8000000c
-[      ]+[     ]+[     ]+ec: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+ec: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+ec: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x34
-[      ]+[     ]+[     ]+ec: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+ec: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+f0:[  ]+380c1484 [    ]+ldx.d[        ]+[     ]+\$a0, \$a0, \$a1
-[      ]+f4:[  ]+14000004 [    ]+lu12i.w[      ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+f4: R_LARCH_SOP_PUSH_TLS_TPREL[       ]+L1
-[      ]+[     ]+[     ]+f4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+f4: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+f4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+f4: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+f4: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+f8:[  ]+03800084 [    ]+ori[  ]+[     ]+\$a0, \$a0, 0x0
-[      ]+[     ]+[     ]+f8: R_LARCH_SOP_PUSH_TLS_TPREL[       ]+L1
-[      ]+[     ]+[     ]+f8: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xfff
-[      ]+[     ]+[     ]+f8: R_LARCH_SOP_AND[  ]+\*ABS\*
-[      ]+[     ]+[     ]+f8: R_LARCH_SOP_POP_32_U_10_12[       ]+\*ABS\*
-[      ]+fc:[  ]+16000004 [    ]+lu32i.d[      ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+fc: R_LARCH_SOP_PUSH_TLS_TPREL[       ]+L1
-[      ]+[     ]+[     ]+fc: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+fc: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+fc: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+fc: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+fc: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+100:[         ]+03000084 [    ]+lu52i.d[      ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+100: R_LARCH_SOP_PUSH_TLS_TPREL[      ]+L1
-[      ]+[     ]+[     ]+100: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x34
-[      ]+[     ]+[     ]+100: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+100: R_LARCH_SOP_POP_32_S_10_12[      ]+\*ABS\*
-[      ]+104:[         ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+104: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x800
-[      ]+[     ]+[     ]+104: R_LARCH_SOP_PUSH_TLS_GOT[        ]+L1
-[      ]+[     ]+[     ]+104: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+104: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+104: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+104: R_LARCH_SOP_POP_32_S_5_20[       ]+\*ABS\*
-[      ]+108:[         ]+28c00084 [    ]+ld.d[         ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+108: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+108: R_LARCH_SOP_PUSH_TLS_GOT[        ]+L1
-[      ]+[     ]+[     ]+108: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+108: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x804
-[      ]+[     ]+[     ]+108: R_LARCH_SOP_PUSH_TLS_GOT[        ]+L1
-[      ]+[     ]+[     ]+108: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+108: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+108: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+108: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+108: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+108: R_LARCH_SOP_SUB[         ]+\*ABS\*
-[      ]+[     ]+[     ]+108: R_LARCH_SOP_POP_32_S_10_12[      ]+\*ABS\*
-[      ]+10c:[         ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+10c: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_
-[      ]+[     ]+[     ]+10c: R_LARCH_SOP_PUSH_TLS_GOT[        ]+L1
-[      ]+[     ]+[     ]+10c: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+10c: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x80000000
-[      ]+[     ]+[     ]+10c: R_LARCH_SOP_PUSH_TLS_GOT[        ]+L1
-[      ]+[     ]+[     ]+10c: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+10c: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+10c: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+10c: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+10c: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+10c: R_LARCH_SOP_SUB[         ]+\*ABS\*
-[      ]+[     ]+[     ]+10c: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+10c: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+10c: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+10c: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+10c: R_LARCH_SOP_POP_32_S_5_20[       ]+\*ABS\*
-[      ]+110:[         ]+03800005 [    ]+ori[  ]+[     ]+\$a1, \$zero, 0x0
-[      ]+[     ]+[     ]+110: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+110: R_LARCH_SOP_PUSH_TLS_GOT[        ]+L1
-[      ]+[     ]+[     ]+110: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+110: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x80000004
-[      ]+[     ]+[     ]+110: R_LARCH_SOP_PUSH_TLS_GOT[        ]+L1
-[      ]+[     ]+[     ]+110: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+110: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+110: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+110: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+110: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+110: R_LARCH_SOP_SUB[         ]+\*ABS\*
-[      ]+[     ]+[     ]+110: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xfff
-[      ]+[     ]+[     ]+110: R_LARCH_SOP_AND[         ]+\*ABS\*
-[      ]+[     ]+[     ]+110: R_LARCH_SOP_POP_32_U_10_12[      ]+\*ABS\*
-[      ]+114:[         ]+16000005 [    ]+lu32i.d[      ]+[     ]+\$a1, 0
-[      ]+[     ]+[     ]+114: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x80000008
-[      ]+[     ]+[     ]+114: R_LARCH_SOP_PUSH_TLS_GOT[        ]+L1
-[      ]+[     ]+[     ]+114: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+114: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+114: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+114: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+114: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+114: R_LARCH_SOP_POP_32_S_5_20[       ]+\*ABS\*
-[      ]+118:[         ]+030000a5 [    ]+lu52i.d[      ]+[     ]+\$a1, \$a1, 0
-[      ]+[     ]+[     ]+118: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x8000000c
-[      ]+[     ]+[     ]+118: R_LARCH_SOP_PUSH_TLS_GOT[        ]+L1
-[      ]+[     ]+[     ]+118: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+118: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x34
-[      ]+[     ]+[     ]+118: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+118: R_LARCH_SOP_POP_32_S_10_12[      ]+\*ABS\*
-[      ]+11c:[         ]+380c1484 [    ]+ldx.d[        ]+[     ]+\$a0, \$a0, \$a1
-[      ]+120:[         ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+120: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x800
-[      ]+[     ]+[     ]+120: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+120: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+120: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+120: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+120: R_LARCH_SOP_POP_32_S_5_20[       ]+\*ABS\*
-[      ]+124:[         ]+02c00084 [    ]+addi.d[       ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+124: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+124: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+124: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+124: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x804
-[      ]+[     ]+[     ]+124: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+124: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+124: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+124: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+124: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+124: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+124: R_LARCH_SOP_SUB[         ]+\*ABS\*
-[      ]+[     ]+[     ]+124: R_LARCH_SOP_POP_32_S_10_12[      ]+\*ABS\*
-[      ]+128:[         ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+128: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_
-[      ]+[     ]+[     ]+128: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+128: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+128: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x80000000
-[      ]+[     ]+[     ]+128: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+128: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+128: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+128: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+128: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+128: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+128: R_LARCH_SOP_SUB[         ]+\*ABS\*
-[      ]+[     ]+[     ]+128: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+128: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+128: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+128: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+128: R_LARCH_SOP_POP_32_S_5_20[       ]+\*ABS\*
-[      ]+12c:[         ]+03800005 [    ]+ori[  ]+[     ]+\$a1, \$zero, 0x0
-[      ]+[     ]+[     ]+12c: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+12c: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+12c: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+12c: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x80000004
-[      ]+[     ]+[     ]+12c: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+12c: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+12c: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+12c: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+12c: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+12c: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+12c: R_LARCH_SOP_SUB[         ]+\*ABS\*
-[      ]+[     ]+[     ]+12c: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xfff
-[      ]+[     ]+[     ]+12c: R_LARCH_SOP_AND[         ]+\*ABS\*
-[      ]+[     ]+[     ]+12c: R_LARCH_SOP_POP_32_U_10_12[      ]+\*ABS\*
-[      ]+130:[         ]+16000005 [    ]+lu32i.d[      ]+[     ]+\$a1, 0
-[      ]+[     ]+[     ]+130: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x80000008
-[      ]+[     ]+[     ]+130: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+130: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+130: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+130: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+130: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+130: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+130: R_LARCH_SOP_POP_32_S_5_20[       ]+\*ABS\*
-[      ]+134:[         ]+030000a5 [    ]+lu52i.d[      ]+[     ]+\$a1, \$a1, 0
-[      ]+[     ]+[     ]+134: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x8000000c
-[      ]+[     ]+[     ]+134: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+134: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+134: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x34
-[      ]+[     ]+[     ]+134: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+134: R_LARCH_SOP_POP_32_S_10_12[      ]+\*ABS\*
-[      ]+138:[         ]+00109484 [    ]+add.d[        ]+[     ]+\$a0, \$a0, \$a1
-[      ]+13c:[         ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+13c: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x800
-[      ]+[     ]+[     ]+13c: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+13c: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+13c: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+13c: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+13c: R_LARCH_SOP_POP_32_S_5_20[       ]+\*ABS\*
-[      ]+140:[         ]+02c00084 [    ]+addi.d[       ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+140: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+140: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+140: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+140: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x804
-[      ]+[     ]+[     ]+140: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+140: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+140: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+140: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+140: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+140: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+140: R_LARCH_SOP_SUB[         ]+\*ABS\*
-[      ]+[     ]+[     ]+140: R_LARCH_SOP_POP_32_S_10_12[      ]+\*ABS\*
-[      ]+144:[         ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+144: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_
-[      ]+[     ]+[     ]+144: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+144: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+144: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x80000000
-[      ]+[     ]+[     ]+144: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+144: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+144: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+144: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+144: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+144: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+144: R_LARCH_SOP_SUB[         ]+\*ABS\*
-[      ]+[     ]+[     ]+144: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+144: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+144: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+144: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+144: R_LARCH_SOP_POP_32_S_5_20[       ]+\*ABS\*
-[      ]+148:[         ]+03800005 [    ]+ori[  ]+[     ]+\$a1, \$zero, 0x0
-[      ]+[     ]+[     ]+148: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+148: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+148: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+148: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x80000004
-[      ]+[     ]+[     ]+148: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+148: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+148: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+148: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+148: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+148: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+148: R_LARCH_SOP_SUB[         ]+\*ABS\*
-[      ]+[     ]+[     ]+148: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xfff
-[      ]+[     ]+[     ]+148: R_LARCH_SOP_AND[         ]+\*ABS\*
-[      ]+[     ]+[     ]+148: R_LARCH_SOP_POP_32_U_10_12[      ]+\*ABS\*
-[      ]+14c:[         ]+16000005 [    ]+lu32i.d[      ]+[     ]+\$a1, 0
-[      ]+[     ]+[     ]+14c: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x80000008
-[      ]+[     ]+[     ]+14c: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+14c: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+14c: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+14c: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+14c: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+14c: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+14c: R_LARCH_SOP_POP_32_S_5_20[       ]+\*ABS\*
-[      ]+150:[         ]+030000a5 [    ]+lu52i.d[      ]+[     ]+\$a1, \$a1, 0
-[      ]+[     ]+[     ]+150: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x8000000c
-[      ]+[     ]+[     ]+150: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+150: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+150: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x34
-[      ]+[     ]+[     ]+150: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+150: R_LARCH_SOP_POP_32_S_10_12[      ]+\*ABS\*
-[      ]+154:[         ]+00109484 [    ]+add.d[        ]+[     ]+\$a0, \$a0, \$a1
+00000000.* <.text>:
+[      ]+0:[   ]+00150004[     ]+move[         ]+\$a0,[        ]+\$zero
+[      ]+4:[   ]+02bffc04[     ]+addi.w[       ]+\$a0,[        ]+\$zero,[      ]+-1\(0xfff\)
+[      ]+8:[   ]+00150004[     ]+move[         ]+\$a0,[        ]+\$zero
+[      ]+c:[   ]+02bffc04[     ]+addi.w[       ]+\$a0,[        ]+\$zero,[      ]+-1\(0xfff\)
+[      ]+10:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+10:[  ]+R_LARCH_GOT_PC_HI20[  ]+.L1
+[      ]+14:[  ]+28c00084[     ]+ld.d[         ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+14:[  ]+R_LARCH_GOT_PC_LO12[  ]+.L1
+[      ]+18:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+18:[  ]+R_LARCH_GOT_PC_HI20[  ]+.L1
+[      ]+1c:[  ]+28c00084[     ]+ld.d[         ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+1c:[  ]+R_LARCH_GOT_PC_LO12[  ]+.L1
+[      ]+20:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+20:[  ]+R_LARCH_PCALA_HI20[   ]+.L1
+[      ]+24:[  ]+02c00084[     ]+addi.d[       ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+24:[  ]+R_LARCH_PCALA_LO12[   ]+.L1
+[      ]+28:[  ]+14000004[     ]+lu12i.w[      ]+\$a0,[        ]+0
+[      ]+28:[  ]+R_LARCH_MARK_LA[      ]+\*ABS\*
+[      ]+28:[  ]+R_LARCH_ABS_HI20[     ]+.L1
+[      ]+2c:[  ]+03800084[     ]+ori[  ]+\$a0,[        ]+\$a0,[        ]+0x0
+[      ]+2c:[  ]+R_LARCH_ABS_LO12[     ]+.L1
+[      ]+30:[  ]+16000004[     ]+lu32i.d[      ]+\$a0,[        ]+0
+[      ]+30:[  ]+R_LARCH_ABS64_LO20[   ]+.L1
+[      ]+34:[  ]+03000084[     ]+lu52i.d[      ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+34:[  ]+R_LARCH_ABS64_HI12[   ]+.L1
+[      ]+38:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+38:[  ]+R_LARCH_PCALA_HI20[   ]+.L1
+[      ]+3c:[  ]+02c00084[     ]+addi.d[       ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+3c:[  ]+R_LARCH_PCALA_LO12[   ]+.L1
+[      ]+40:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+40:[  ]+R_LARCH_GOT_PC_HI20[  ]+.L1
+[      ]+44:[  ]+28c00084[     ]+ld.d[         ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+44:[  ]+R_LARCH_GOT_PC_LO12[  ]+.L1
+[      ]+48:[  ]+14000004[     ]+lu12i.w[      ]+\$a0,[        ]+0
+[      ]+48:[  ]+R_LARCH_TLS_LE_HI20[  ]+TLS1
+[      ]+4c:[  ]+03800084[     ]+ori[  ]+\$a0,[        ]+\$a0,[        ]+0x0
+[      ]+4c:[  ]+R_LARCH_TLS_LE_LO12[  ]+TLS1
+[      ]+50:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+50:[  ]+R_LARCH_TLS_IE_PC_HI20[       ]+TLS1
+[      ]+54:[  ]+28c00084[     ]+ld.d[         ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+54:[  ]+R_LARCH_TLS_IE_PC_LO12[       ]+TLS1
+[      ]+58:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+58:[  ]+R_LARCH_TLS_LD_PC_HI20[       ]+TLS1
+[      ]+5c:[  ]+02c00084[     ]+addi.d[       ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+5c:[  ]+R_LARCH_GOT_PC_LO12[  ]+TLS1
+[      ]+60:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+60:[  ]+R_LARCH_TLS_GD_PC_HI20[       ]+TLS1
+[      ]+64:[  ]+02c00084[     ]+addi.d[       ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+64:[  ]+R_LARCH_GOT_PC_LO12[  ]+TLS1
index d83261f55f06405dc824ed933cc77adf2226823b..0c3331416fddcc782b8d4cd82a40173b6598ed47 100644 (file)
@@ -1,29 +1,15 @@
-.L1:
-li.w  $r4,0
-li.w  $r4,0xffffffff
-li.d  $r4,0
-li.d  $r4,0xffffffffffffffff
-la  $r4,L1
-la.global  $r4,L1
-la.global  $r4,$r5,L1
-la.global  $r4,L1
-la.global  $r4,$r5,L1
-la.global  $r4,L1
-la.global  $r4,$r5,L1
-la.local  $r4,L1
-la.local  $r4,$r5,L1
-la.local  $r4,L1
-la.local  $r4,$r5,L1
-la.abs  $r4,L1
-la.pcrel  $r4,L1
-la.pcrel  $r4,L1
-la.pcrel  $r4,$r5,L1
-la.got  $r4,L1
-la.got  $r4,$r5,L1
-la.tls.le  $r4,L1
-la.tls.ie  $r4,L1
-la.tls.ie  $r4,$r5,L1
-la.tls.ld  $r4,L1
-la.tls.ld  $r4,$r5,L1
-la.tls.gd  $r4,L1
-la.tls.gd  $r4,$r5,L1
+li.w  $r4, 0
+li.w  $r4, 0xffffffff
+li.d  $r4, 0
+li.d  $r4, 0xffffffffffffffff
+la  $r4, .L1
+la.global  $r4, .L1
+la.local  $r4, .L1
+la.abs  $r4, .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
diff --git a/gas/testsuite/gas/loongarch/macro_op_32.d b/gas/testsuite/gas/loongarch/macro_op_32.d
new file mode 100644 (file)
index 0000000..145d852
--- /dev/null
@@ -0,0 +1,55 @@
+#as:
+#objdump: -dr
+#skip: loongarch64-*-*
+
+.*:[    ]+file format .*
+
+
+Disassembly of section .text:
+
+00000000.* <.text>:
+[      ]+0:[   ]+00150004[     ]+move[         ]+\$a0,[        ]+\$zero
+[      ]+4:[   ]+02bffc04[     ]+addi.w[       ]+\$a0,[        ]+\$zero,[      ]+-1\(0xfff\)
+[      ]+8:[   ]+00150004[     ]+move[         ]+\$a0,[        ]+\$zero
+[      ]+c:[   ]+02bffc04[     ]+addi.w[       ]+\$a0,[        ]+\$zero,[      ]+-1\(0xfff\)
+[      ]+10:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+10:[  ]+R_LARCH_GOT_PC_HI20[  ]+.text
+[      ]+14:[  ]+28800084[     ]+ld.w[         ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+14:[  ]+R_LARCH_GOT_PC_LO12[  ]+.text
+[      ]+18:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+18:[  ]+R_LARCH_GOT_PC_HI20[  ]+.text
+[      ]+1c:[  ]+28800084[     ]+ld.w[         ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+1c:[  ]+R_LARCH_GOT_PC_LO12[  ]+.text
+[      ]+20:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+20:[  ]+R_LARCH_PCALA_HI20[   ]+.text
+[      ]+24:[  ]+02800084[     ]+addi.w[       ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+24:[  ]+R_LARCH_PCALA_LO12[   ]+.text
+[      ]+28:[  ]+14000004[     ]+lu12i.w[      ]+\$a0,[        ]+0
+[      ]+28:[  ]+R_LARCH_MARK_LA[      ]+\*ABS\*
+[      ]+28:[  ]+R_LARCH_ABS_HI20[     ]+.text
+[      ]+2c:[  ]+03800084[     ]+ori[  ]+\$a0,[        ]+\$a0,[        ]+0x0
+[      ]+2c:[  ]+R_LARCH_ABS_LO12[     ]+.text
+[      ]+30:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+30:[  ]+R_LARCH_PCALA_HI20[   ]+.text
+[      ]+34:[  ]+02800084[     ]+addi.w[       ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+34:[  ]+R_LARCH_PCALA_LO12[   ]+.text
+[      ]+38:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+38:[  ]+R_LARCH_GOT_PC_HI20[  ]+.text
+[      ]+3c:[  ]+28800084[     ]+ld.w[         ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+3c:[  ]+R_LARCH_GOT_PC_LO12[  ]+.text
+[      ]+40:[  ]+14000004[     ]+lu12i.w[      ]+\$a0,[        ]+0
+[      ]+40:[  ]+R_LARCH_TLS_LE_HI20[  ]+TLS1
+[      ]+44:[  ]+03800084[     ]+ori[  ]+\$a0,[        ]+\$a0,[        ]+0x0
+[      ]+44:[  ]+R_LARCH_TLS_LE_LO12[  ]+TLS1
+[      ]+48:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+48:[  ]+R_LARCH_TLS_IE_PC_HI20[       ]+TLS1
+[      ]+4c:[  ]+28800084[     ]+ld.w[         ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+4c:[  ]+R_LARCH_TLS_IE_PC_LO12[       ]+TLS1
+[      ]+50:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+50:[  ]+R_LARCH_TLS_LD_PC_HI20[       ]+TLS1
+[      ]+54:[  ]+02800084[     ]+addi.w[       ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+54:[  ]+R_LARCH_GOT_PC_LO12[  ]+TLS1
+[      ]+58:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+58:[  ]+R_LARCH_TLS_GD_PC_HI20[       ]+TLS1
+[      ]+5c:[  ]+02800084[     ]+addi.w[       ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+5c:[  ]+R_LARCH_GOT_PC_LO12[  ]+TLS1
diff --git a/gas/testsuite/gas/loongarch/macro_op_32.s b/gas/testsuite/gas/loongarch/macro_op_32.s
new file mode 100644 (file)
index 0000000..7f19565
--- /dev/null
@@ -0,0 +1,16 @@
+.L1:
+       li.w  $r4, 0
+       li.w  $r4, 0xffffffff
+       li.w  $r4, 0
+       li.w  $r4, 0xffffffff
+       la  $r4, .L1
+       la.global  $r4, .L1
+       la.local  $r4, .L1
+       la.abs  $r4, .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
diff --git a/gas/testsuite/gas/loongarch/macro_op_large_abs.d b/gas/testsuite/gas/loongarch/macro_op_large_abs.d
new file mode 100644 (file)
index 0000000..c3214a8
--- /dev/null
@@ -0,0 +1,77 @@
+#as:
+#objdump: -dr
+#skip: loongarch32-*-*
+
+.*:[    ]+file format .*
+
+
+Disassembly of section .text:
+
+00000000.* <.text>:
+[      ]+0:[   ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+0:[   ]+R_LARCH_PCALA_HI20[   ]+.text
+[      ]+4:[   ]+02c00005[     ]+addi.d[       ]+\$a1,[        ]+\$zero,[      ]+0
+[      ]+4:[   ]+R_LARCH_PCALA_LO12[   ]+.text
+[      ]+8:[   ]+16000005[     ]+lu32i.d[      ]+\$a1,[        ]+0
+[      ]+8:[   ]+R_LARCH_PCALA64_LO20[         ]+.text
+[      ]+c:[   ]+030000a5[     ]+lu52i.d[      ]+\$a1,[        ]+\$a1,[        ]+0
+[      ]+c:[   ]+R_LARCH_PCALA64_HI12[         ]+.text
+[      ]+10:[  ]+00109484[     ]+add.d[        ]+\$a0,[        ]+\$a0,[        ]+\$a1
+[      ]+14:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+14:[  ]+R_LARCH_GOT_PC_HI20[  ]+.text
+[      ]+18:[  ]+02c00005[     ]+addi.d[       ]+\$a1,[        ]+\$zero,[      ]+0
+[      ]+18:[  ]+R_LARCH_GOT_PC_LO12[  ]+.text
+[      ]+1c:[  ]+16000005[     ]+lu32i.d[      ]+\$a1,[        ]+0
+[      ]+1c:[  ]+R_LARCH_GOT64_PC_LO20[        ]+.text
+[      ]+20:[  ]+030000a5[     ]+lu52i.d[      ]+\$a1,[        ]+\$a1,[        ]+0
+[      ]+20:[  ]+R_LARCH_GOT64_PC_HI12[        ]+.text
+[      ]+24:[  ]+380c1484[     ]+ldx.d[        ]+\$a0,[        ]+\$a0,[        ]+\$a1
+[      ]+28:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+28:[  ]+R_LARCH_PCALA_HI20[   ]+.text
+[      ]+2c:[  ]+02c00005[     ]+addi.d[       ]+\$a1,[        ]+\$zero,[      ]+0
+[      ]+2c:[  ]+R_LARCH_PCALA_LO12[   ]+.text
+[      ]+30:[  ]+16000005[     ]+lu32i.d[      ]+\$a1,[        ]+0
+[      ]+30:[  ]+R_LARCH_PCALA64_LO20[         ]+.text
+[      ]+34:[  ]+030000a5[     ]+lu52i.d[      ]+\$a1,[        ]+\$a1,[        ]+0
+[      ]+34:[  ]+R_LARCH_PCALA64_HI12[         ]+.text
+[      ]+38:[  ]+00109484[     ]+add.d[        ]+\$a0,[        ]+\$a0,[        ]+\$a1
+[      ]+3c:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+3c:[  ]+R_LARCH_GOT_PC_HI20[  ]+.text
+[      ]+40:[  ]+02c00005[     ]+addi.d[       ]+\$a1,[        ]+\$zero,[      ]+0
+[      ]+40:[  ]+R_LARCH_GOT_PC_LO12[  ]+.text
+[      ]+44:[  ]+16000005[     ]+lu32i.d[      ]+\$a1,[        ]+0
+[      ]+44:[  ]+R_LARCH_GOT64_PC_LO20[        ]+.text
+[      ]+48:[  ]+030000a5[     ]+lu52i.d[      ]+\$a1,[        ]+\$a1,[        ]+0
+[      ]+48:[  ]+R_LARCH_GOT64_PC_HI12[        ]+.text
+[      ]+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[     ]+addi.d[       ]+\$a1,[        ]+\$zero,[      ]+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
+[      ]+70:[  ]+02c00005[     ]+addi.d[       ]+\$a1,[        ]+\$zero,[      ]+0
+[      ]+70:[  ]+R_LARCH_GOT_PC_LO12[  ]+TLS1
+[      ]+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
+[      ]+84:[  ]+02c00005[     ]+addi.d[       ]+\$a1,[        ]+\$zero,[      ]+0
+[      ]+84:[  ]+R_LARCH_GOT_PC_LO12[  ]+TLS1
+[      ]+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
diff --git a/gas/testsuite/gas/loongarch/macro_op_large_abs.s b/gas/testsuite/gas/loongarch/macro_op_large_abs.s
new file mode 100644 (file)
index 0000000..fd76391
--- /dev/null
@@ -0,0 +1,9 @@
+.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
diff --git a/gas/testsuite/gas/loongarch/macro_op_large_pc.d b/gas/testsuite/gas/loongarch/macro_op_large_pc.d
new file mode 100644 (file)
index 0000000..c3214a8
--- /dev/null
@@ -0,0 +1,77 @@
+#as:
+#objdump: -dr
+#skip: loongarch32-*-*
+
+.*:[    ]+file format .*
+
+
+Disassembly of section .text:
+
+00000000.* <.text>:
+[      ]+0:[   ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+0:[   ]+R_LARCH_PCALA_HI20[   ]+.text
+[      ]+4:[   ]+02c00005[     ]+addi.d[       ]+\$a1,[        ]+\$zero,[      ]+0
+[      ]+4:[   ]+R_LARCH_PCALA_LO12[   ]+.text
+[      ]+8:[   ]+16000005[     ]+lu32i.d[      ]+\$a1,[        ]+0
+[      ]+8:[   ]+R_LARCH_PCALA64_LO20[         ]+.text
+[      ]+c:[   ]+030000a5[     ]+lu52i.d[      ]+\$a1,[        ]+\$a1,[        ]+0
+[      ]+c:[   ]+R_LARCH_PCALA64_HI12[         ]+.text
+[      ]+10:[  ]+00109484[     ]+add.d[        ]+\$a0,[        ]+\$a0,[        ]+\$a1
+[      ]+14:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+14:[  ]+R_LARCH_GOT_PC_HI20[  ]+.text
+[      ]+18:[  ]+02c00005[     ]+addi.d[       ]+\$a1,[        ]+\$zero,[      ]+0
+[      ]+18:[  ]+R_LARCH_GOT_PC_LO12[  ]+.text
+[      ]+1c:[  ]+16000005[     ]+lu32i.d[      ]+\$a1,[        ]+0
+[      ]+1c:[  ]+R_LARCH_GOT64_PC_LO20[        ]+.text
+[      ]+20:[  ]+030000a5[     ]+lu52i.d[      ]+\$a1,[        ]+\$a1,[        ]+0
+[      ]+20:[  ]+R_LARCH_GOT64_PC_HI12[        ]+.text
+[      ]+24:[  ]+380c1484[     ]+ldx.d[        ]+\$a0,[        ]+\$a0,[        ]+\$a1
+[      ]+28:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+28:[  ]+R_LARCH_PCALA_HI20[   ]+.text
+[      ]+2c:[  ]+02c00005[     ]+addi.d[       ]+\$a1,[        ]+\$zero,[      ]+0
+[      ]+2c:[  ]+R_LARCH_PCALA_LO12[   ]+.text
+[      ]+30:[  ]+16000005[     ]+lu32i.d[      ]+\$a1,[        ]+0
+[      ]+30:[  ]+R_LARCH_PCALA64_LO20[         ]+.text
+[      ]+34:[  ]+030000a5[     ]+lu52i.d[      ]+\$a1,[        ]+\$a1,[        ]+0
+[      ]+34:[  ]+R_LARCH_PCALA64_HI12[         ]+.text
+[      ]+38:[  ]+00109484[     ]+add.d[        ]+\$a0,[        ]+\$a0,[        ]+\$a1
+[      ]+3c:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+3c:[  ]+R_LARCH_GOT_PC_HI20[  ]+.text
+[      ]+40:[  ]+02c00005[     ]+addi.d[       ]+\$a1,[        ]+\$zero,[      ]+0
+[      ]+40:[  ]+R_LARCH_GOT_PC_LO12[  ]+.text
+[      ]+44:[  ]+16000005[     ]+lu32i.d[      ]+\$a1,[        ]+0
+[      ]+44:[  ]+R_LARCH_GOT64_PC_LO20[        ]+.text
+[      ]+48:[  ]+030000a5[     ]+lu52i.d[      ]+\$a1,[        ]+\$a1,[        ]+0
+[      ]+48:[  ]+R_LARCH_GOT64_PC_HI12[        ]+.text
+[      ]+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[     ]+addi.d[       ]+\$a1,[        ]+\$zero,[      ]+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
+[      ]+70:[  ]+02c00005[     ]+addi.d[       ]+\$a1,[        ]+\$zero,[      ]+0
+[      ]+70:[  ]+R_LARCH_GOT_PC_LO12[  ]+TLS1
+[      ]+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
+[      ]+84:[  ]+02c00005[     ]+addi.d[       ]+\$a1,[        ]+\$zero,[      ]+0
+[      ]+84:[  ]+R_LARCH_GOT_PC_LO12[  ]+TLS1
+[      ]+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
diff --git a/gas/testsuite/gas/loongarch/macro_op_large_pc.s b/gas/testsuite/gas/loongarch/macro_op_large_pc.s
new file mode 100644 (file)
index 0000000..fd76391
--- /dev/null
@@ -0,0 +1,9 @@
+.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
diff --git a/gas/testsuite/gas/loongarch/reloc.d b/gas/testsuite/gas/loongarch/reloc.d
new file mode 100644 (file)
index 0000000..6f5f110
--- /dev/null
@@ -0,0 +1,167 @@
+#as:
+#objdump: -dr
+#skip: loongarch32-*-*
+
+.*:[    ]+file format .*
+
+
+Disassembly of section .text:
+
+00000000.* <.text>:
+[      ]+0:[   ]+03400000[     ]+andi[         ]+\$zero,[      ]+\$zero,[      ]+0x0
+[      ]+4:[   ]+58000085[     ]+beq[  ]+\$a0,[        ]+\$a1,[        ]+0[    ]+#[    ]+0x4
+[      ]+4:[   ]+R_LARCH_B16[  ]+.L1
+[      ]+8:[   ]+5c000085[     ]+bne[  ]+\$a0,[        ]+\$a1,[        ]+0[    ]+#[    ]+0x8
+[      ]+8:[   ]+R_LARCH_B16[  ]+.L1
+[      ]+c:[   ]+60000085[     ]+blt[  ]+\$a0,[        ]+\$a1,[        ]+0[    ]+#[    ]+0xc
+[      ]+c:[   ]+R_LARCH_B16[  ]+.L1
+[      ]+10:[  ]+64000085[     ]+bge[  ]+\$a0,[        ]+\$a1,[        ]+0[    ]+#[    ]+0x10
+[      ]+10:[  ]+R_LARCH_B16[  ]+.L1
+[      ]+14:[  ]+68000085[     ]+bltu[         ]+\$a0,[        ]+\$a1,[        ]+0[    ]+#[    ]+0x14
+[      ]+14:[  ]+R_LARCH_B16[  ]+.L1
+[      ]+18:[  ]+6c000085[     ]+bgeu[         ]+\$a0,[        ]+\$a1,[        ]+0[    ]+#[    ]+0x18
+[      ]+18:[  ]+R_LARCH_B16[  ]+.L1
+[      ]+1c:[  ]+4c0000a4[     ]+jirl[         ]+\$a0,[        ]+\$a1,[        ]+0
+[      ]+1c:[  ]+R_LARCH_B16[  ]+.L1
+[      ]+20:[  ]+40000080[     ]+beqz[         ]+\$a0,[        ]+0[    ]+#[    ]+0x20
+[      ]+20:[  ]+R_LARCH_B21[  ]+.L1
+[      ]+24:[  ]+44000080[     ]+bnez[         ]+\$a0,[        ]+0[    ]+#[    ]+0x24
+[      ]+24:[  ]+R_LARCH_B21[  ]+.L1
+[      ]+28:[  ]+50000000[     ]+b[    ]+0[    ]+#[    ]+0x28
+[      ]+28:[  ]+R_LARCH_B26[  ]+.L1
+[      ]+2c:[  ]+54000000[     ]+bl[   ]+0[    ]+#[    ]+0x2c
+[      ]+2c:[  ]+R_LARCH_B26[  ]+.L1
+[      ]+30:[  ]+14000004[     ]+lu12i.w[      ]+\$a0,[        ]+0
+[      ]+30:[  ]+R_LARCH_ABS_HI20[     ]+.L1
+[      ]+34:[  ]+038000a4[     ]+ori[  ]+\$a0,[        ]+\$a1,[        ]+0x0
+[      ]+34:[  ]+R_LARCH_ABS_LO12[     ]+.L1
+[      ]+38:[  ]+16000004[     ]+lu32i.d[      ]+\$a0,[        ]+0
+[      ]+38:[  ]+R_LARCH_ABS64_LO20[   ]+.L1
+[      ]+3c:[  ]+03000085[     ]+lu52i.d[      ]+\$a1,[        ]+\$a0,[        ]+0
+[      ]+3c:[  ]+R_LARCH_ABS64_HI12[   ]+.L1
+[      ]+40:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+40:[  ]+R_LARCH_PCALA_HI20[   ]+.L1
+[      ]+44:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+44:[  ]+R_LARCH_GOT_PC_HI20[  ]+.L1
+[      ]+48:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+48:[  ]+R_LARCH_GOT_PC_LO12[  ]+.L1
+[      ]+4c:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+4c:[  ]+R_LARCH_TLS_IE_PC_HI20[       ]+TLSL1
+[      ]+50:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+50:[  ]+R_LARCH_TLS_LD_PC_HI20[       ]+TLSL1
+[      ]+54:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+54:[  ]+R_LARCH_TLS_GD_PC_HI20[       ]+TLSL1
+[      ]+58:[  ]+02800085[     ]+addi.w[       ]+\$a1,[        ]+\$a0,[        ]+0
+[      ]+58:[  ]+R_LARCH_PCALA_LO12[   ]+.L1
+[      ]+5c:[  ]+02c00085[     ]+addi.d[       ]+\$a1,[        ]+\$a0,[        ]+0
+[      ]+5c:[  ]+R_LARCH_PCALA_LO12[   ]+.L1
+[      ]+60:[  ]+28000085[     ]+ld.b[         ]+\$a1,[        ]+\$a0,[        ]+0
+[      ]+60:[  ]+R_LARCH_PCALA_LO12[   ]+.L1
+[      ]+64:[  ]+28400085[     ]+ld.h[         ]+\$a1,[        ]+\$a0,[        ]+0
+[      ]+64:[  ]+R_LARCH_PCALA_LO12[   ]+.L1
+[      ]+68:[  ]+28800085[     ]+ld.w[         ]+\$a1,[        ]+\$a0,[        ]+0
+[      ]+68:[  ]+R_LARCH_PCALA_LO12[   ]+.L1
+[      ]+6c:[  ]+28c00085[     ]+ld.d[         ]+\$a1,[        ]+\$a0,[        ]+0
+[      ]+6c:[  ]+R_LARCH_PCALA_LO12[   ]+.L1
+[      ]+70:[  ]+16000004[     ]+lu32i.d[      ]+\$a0,[        ]+0
+[      ]+70:[  ]+R_LARCH_PCALA64_LO20[         ]+.L1
+[      ]+74:[  ]+03000085[     ]+lu52i.d[      ]+\$a1,[        ]+\$a0,[        ]+0
+[      ]+74:[  ]+R_LARCH_PCALA64_LO20[         ]+.L1
+[      ]+78:[  ]+16000004[     ]+lu32i.d[      ]+\$a0,[        ]+0
+[      ]+78:[  ]+R_LARCH_GOT64_PC_LO20[        ]+.L1
+[      ]+7c:[  ]+03000085[     ]+lu52i.d[      ]+\$a1,[        ]+\$a0,[        ]+0
+[      ]+7c:[  ]+R_LARCH_GOT64_PC_HI12[        ]+.L1
+[      ]+80:[  ]+14000004[     ]+lu12i.w[      ]+\$a0,[        ]+0
+[      ]+80:[  ]+R_LARCH_GOT_HI20[     ]+.L1
+[      ]+84:[  ]+03800084[     ]+ori[  ]+\$a0,[        ]+\$a0,[        ]+0x0
+[      ]+84:[  ]+R_LARCH_GOT_LO12[     ]+.L1
+[      ]+88:[  ]+16000004[     ]+lu32i.d[      ]+\$a0,[        ]+0
+[      ]+88:[  ]+R_LARCH_GOT64_LO20[   ]+.L1
+[      ]+8c:[  ]+03000085[     ]+lu52i.d[      ]+\$a1,[        ]+\$a0,[        ]+0
+[      ]+8c:[  ]+R_LARCH_GOT64_HI12[   ]+.L1
+[      ]+90:[  ]+14000004[     ]+lu12i.w[      ]+\$a0,[        ]+0
+[      ]+90:[  ]+R_LARCH_TLS_LE_HI20[  ]+TLSL1
+[      ]+94:[  ]+03800085[     ]+ori[  ]+\$a1,[        ]+\$a0,[        ]+0x0
+[      ]+94:[  ]+R_LARCH_TLS_LE_LO12[  ]+TLSL1
+[      ]+98:[  ]+16000004[     ]+lu32i.d[      ]+\$a0,[        ]+0
+[      ]+98:[  ]+R_LARCH_TLS_LE64_LO20[        ]+TLSL1
+[      ]+9c:[  ]+03000085[     ]+lu52i.d[      ]+\$a1,[        ]+\$a0,[        ]+0
+[      ]+9c:[  ]+R_LARCH_TLS_LE64_HI12[        ]+TLSL1
+[      ]+a0:[  ]+58000085[     ]+beq[  ]+\$a0,[        ]+\$a1,[        ]+0[    ]+#[    ]+0xa0
+[      ]+a0:[  ]+R_LARCH_B16[  ]+.L1\+0x8
+[      ]+a4:[  ]+5c000085[     ]+bne[  ]+\$a0,[        ]+\$a1,[        ]+0[    ]+#[    ]+0xa4
+[      ]+a4:[  ]+R_LARCH_B16[  ]+.L1\+0x8
+[      ]+a8:[  ]+60000085[     ]+blt[  ]+\$a0,[        ]+\$a1,[        ]+0[    ]+#[    ]+0xa8
+[      ]+a8:[  ]+R_LARCH_B16[  ]+.L1\+0x8
+[      ]+ac:[  ]+64000085[     ]+bge[  ]+\$a0,[        ]+\$a1,[        ]+0[    ]+#[    ]+0xac
+[      ]+ac:[  ]+R_LARCH_B16[  ]+.L1\+0x8
+[      ]+b0:[  ]+68000085[     ]+bltu[         ]+\$a0,[        ]+\$a1,[        ]+0[    ]+#[    ]+0xb0
+[      ]+b0:[  ]+R_LARCH_B16[  ]+.L1\+0x8
+[      ]+b4:[  ]+6c000085[     ]+bgeu[         ]+\$a0,[        ]+\$a1,[        ]+0[    ]+#[    ]+0xb4
+[      ]+b4:[  ]+R_LARCH_B16[  ]+.L1\+0x8
+[      ]+b8:[  ]+4c0000a4[     ]+jirl[         ]+\$a0,[        ]+\$a1,[        ]+0
+[      ]+b8:[  ]+R_LARCH_B16[  ]+.L1\+0x8
+[      ]+bc:[  ]+40000080[     ]+beqz[         ]+\$a0,[        ]+0[    ]+#[    ]+0xbc
+[      ]+bc:[  ]+R_LARCH_B21[  ]+.L1\+0x8
+[      ]+c0:[  ]+44000080[     ]+bnez[         ]+\$a0,[        ]+0[    ]+#[    ]+0xc0
+[      ]+c0:[  ]+R_LARCH_B21[  ]+.L1\+0x8
+[      ]+c4:[  ]+50000000[     ]+b[    ]+0[    ]+#[    ]+0xc4
+[      ]+c4:[  ]+R_LARCH_B26[  ]+.L1\+0x8
+[      ]+c8:[  ]+54000000[     ]+bl[   ]+0[    ]+#[    ]+0xc8
+[      ]+c8:[  ]+R_LARCH_B26[  ]+.L1\+0x8
+[      ]+cc:[  ]+14000004[     ]+lu12i.w[      ]+\$a0,[        ]+0
+[      ]+cc:[  ]+R_LARCH_ABS_HI20[     ]+.L1\+0x8
+[      ]+d0:[  ]+038000a4[     ]+ori[  ]+\$a0,[        ]+\$a1,[        ]+0x0
+[      ]+d0:[  ]+R_LARCH_ABS_LO12[     ]+.L1\+0x8
+[      ]+d4:[  ]+16000004[     ]+lu32i.d[      ]+\$a0,[        ]+0
+[      ]+d4:[  ]+R_LARCH_ABS64_LO20[   ]+.L1\+0x8
+[      ]+d8:[  ]+03000085[     ]+lu52i.d[      ]+\$a1,[        ]+\$a0,[        ]+0
+[      ]+d8:[  ]+R_LARCH_ABS64_HI12[   ]+.L1\+0x8
+[      ]+dc:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+dc:[  ]+R_LARCH_PCALA_HI20[   ]+.L1\+0x8
+[      ]+e0:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+e0:[  ]+R_LARCH_GOT_PC_HI20[  ]+.L1\+0x8
+[      ]+e4:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+e4:[  ]+R_LARCH_GOT_PC_LO12[  ]+.L1\+0x8
+[      ]+e8:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+e8:[  ]+R_LARCH_TLS_IE_PC_HI20[       ]+TLSL1\+0x8
+[      ]+ec:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+ec:[  ]+R_LARCH_TLS_LD_PC_HI20[       ]+TLSL1\+0x8
+[      ]+f0:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+f0:[  ]+R_LARCH_TLS_GD_PC_HI20[       ]+TLSL1\+0x8
+[      ]+f4:[  ]+02800085[     ]+addi.w[       ]+\$a1,[        ]+\$a0,[        ]+0
+[      ]+f4:[  ]+R_LARCH_PCALA_LO12[   ]+.L1\+0x8
+[      ]+f8:[  ]+02c00085[     ]+addi.d[       ]+\$a1,[        ]+\$a0,[        ]+0
+[      ]+f8:[  ]+R_LARCH_PCALA_LO12[   ]+.L1\+0x8
+[      ]+fc:[  ]+28000085[     ]+ld.b[         ]+\$a1,[        ]+\$a0,[        ]+0
+[      ]+fc:[  ]+R_LARCH_PCALA_LO12[   ]+.L1\+0x8
+[      ]+100:[         ]+28400085[     ]+ld.h[         ]+\$a1,[        ]+\$a0,[        ]+0
+[      ]+100:[         ]+R_LARCH_PCALA_LO12[   ]+.L1\+0x8
+[      ]+104:[         ]+28800085[     ]+ld.w[         ]+\$a1,[        ]+\$a0,[        ]+0
+[      ]+104:[         ]+R_LARCH_PCALA_LO12[   ]+.L1\+0x8
+[      ]+108:[         ]+28c00085[     ]+ld.d[         ]+\$a1,[        ]+\$a0,[        ]+0
+[      ]+108:[         ]+R_LARCH_PCALA_LO12[   ]+.L1\+0x8
+[      ]+10c:[         ]+16000004[     ]+lu32i.d[      ]+\$a0,[        ]+0
+[      ]+10c:[         ]+R_LARCH_PCALA64_LO20[         ]+.L1\+0x8
+[      ]+110:[         ]+03000085[     ]+lu52i.d[      ]+\$a1,[        ]+\$a0,[        ]+0
+[      ]+110:[         ]+R_LARCH_PCALA64_LO20[         ]+.L1\+0x8
+[      ]+114:[         ]+16000004[     ]+lu32i.d[      ]+\$a0,[        ]+0
+[      ]+114:[         ]+R_LARCH_GOT64_PC_LO20[        ]+.L1\+0x8
+[      ]+118:[         ]+03000085[     ]+lu52i.d[      ]+\$a1,[        ]+\$a0,[        ]+0
+[      ]+118:[         ]+R_LARCH_GOT64_PC_HI12[        ]+.L1\+0x8
+[      ]+11c:[         ]+14000004[     ]+lu12i.w[      ]+\$a0,[        ]+0
+[      ]+11c:[         ]+R_LARCH_GOT_HI20[     ]+.L1\+0x8
+[      ]+120:[         ]+03800084[     ]+ori[  ]+\$a0,[        ]+\$a0,[        ]+0x0
+[      ]+120:[         ]+R_LARCH_GOT_LO12[     ]+.L1\+0x8
+[      ]+124:[         ]+16000004[     ]+lu32i.d[      ]+\$a0,[        ]+0
+[      ]+124:[         ]+R_LARCH_GOT64_LO20[   ]+.L1\+0x8
+[      ]+128:[         ]+03000085[     ]+lu52i.d[      ]+\$a1,[        ]+\$a0,[        ]+0
+[      ]+128:[         ]+R_LARCH_GOT64_HI12[   ]+.L1\+0x8
+[      ]+12c:[         ]+14000004[     ]+lu12i.w[      ]+\$a0,[        ]+0
+[      ]+12c:[         ]+R_LARCH_TLS_LE_HI20[  ]+TLSL1\+0x8
+[      ]+130:[         ]+03800085[     ]+ori[  ]+\$a1,[        ]+\$a0,[        ]+0x0
+[      ]+130:[         ]+R_LARCH_TLS_LE_LO12[  ]+TLSL1\+0x8
+[      ]+134:[         ]+16000004[     ]+lu32i.d[      ]+\$a0,[        ]+0
+[      ]+134:[         ]+R_LARCH_TLS_LE64_LO20[        ]+TLSL1\+0x8
+[      ]+138:[         ]+03000085[     ]+lu52i.d[      ]+\$a1,[        ]+\$a0,[        ]+0
+[      ]+138:[         ]+R_LARCH_TLS_LE64_HI12[        ]+TLSL1\+0x8
diff --git a/gas/testsuite/gas/loongarch/reloc.s b/gas/testsuite/gas/loongarch/reloc.s
new file mode 100644 (file)
index 0000000..a67fecd
--- /dev/null
@@ -0,0 +1,144 @@
+/* Test insn relocs.  */
+.text
+nop
+
+/* Jump Insns.  */
+/* b16.  */
+beq  $r4,$r5,%b16(.L1)
+bne  $r4,$r5,%b16(.L1)
+blt  $r4,$r5,%b16(.L1)
+bge  $r4,$r5,%b16(.L1)
+bltu $r4,$r5,%b16(.L1)
+bgeu $r4,$r5,%b16(.L1)
+jirl $r4,$r5,%b16(.L1)
+
+/* b21.  */
+beqz $r4,%b21(.L1)
+bnez $r4,%b21(.L1)
+
+/* b26.  */
+b  %b26(.L1)
+bl %b26(.L1)
+
+
+/* ABS Insns.  */
+/* lu12i.w.  */
+lu12i.w $r4,%abs_hi20(.L1)
+
+/* ori   */
+ori $r4,$r5,%abs_lo12(.L1)
+
+/* lu32i.d.  */
+lu32i.d $r4,%abs64_lo20(.L1)
+
+/* lu52i.d.  */
+lu52i.d $r5,$r4,%abs64_hi12(.L1)
+
+
+/* Pcala Insns.  */
+/* pcalau12i.  */
+pcalau12i $r4,%pc_hi20(.L1)
+pcalau12i $r4,%got_pc_hi20(.L1)
+pcalau12i $r4,%got_pc_lo12(.L1)
+pcalau12i $r4,%ie_pc_hi20(TLSL1)
+pcalau12i $r4,%ld_pc_hi20(TLSL1)
+pcalau12i $r4,%gd_pc_hi20(TLSL1)
+
+/* addi.w/d ld.b/h/w/d.  */
+addi.w $r5,$r4,%pc_lo12(.L1)
+addi.d $r5,$r4,%pc_lo12(.L1)
+ld.b $r5,$r4,%pc_lo12(.L1)
+ld.h $r5,$r4,%pc_lo12(.L1)
+ld.w $r5,$r4,%pc_lo12(.L1)
+ld.d $r5,$r4,%pc_lo12(.L1)
+lu32i.d $r4,%pc64_lo20(.L1)
+lu52i.d $r5,$r4,%pc64_lo20(.L1)
+lu32i.d $r4,%got64_pc_lo20(.L1)
+lu52i.d $r5,$r4,%got64_pc_hi12(.L1)
+
+
+/* GOT64 Insns.  */
+/* lu12i.w.  */
+lu12i.w $r4,%got_hi20(.L1)
+ori $r4,$r4,%got_lo12(.L1)
+lu32i.d $r4,%got64_lo20(.L1)
+lu52i.d $r5,$r4,%got64_hi12(.L1)
+
+
+/* TLS Insns.  */
+lu12i.w $r4,%le_hi20(TLSL1)
+ori $r5,$r4,%le_lo12(TLSL1)
+lu32i.d $r4,%le64_lo20(TLSL1)
+lu52i.d $r5,$r4,%le64_hi12(TLSL1)
+
+
+
+/* Insns with addend.  */
+/* Jump Insns.  */
+/* b16.  */
+beq  $r4,$r5,%b16(.L1 + 0x8)
+bne  $r4,$r5,%b16(.L1 + 0x8)
+blt  $r4,$r5,%b16(.L1 + 0x8)
+bge  $r4,$r5,%b16(.L1 + 0x8)
+bltu $r4,$r5,%b16(.L1 + 0x8)
+bgeu $r4,$r5,%b16(.L1 + 0x8)
+jirl $r4,$r5,%b16(.L1 + 0x8)
+
+/* b21.  */
+beqz $r4,%b21(.L1 + 0x8)
+bnez $r4,%b21(.L1 + 0x8)
+
+/* b26.  */
+b  %b26(.L1 + 0x8)
+bl %b26(.L1 + 0x8)
+
+
+/* ABS Insns.  */
+/* lu12i.w.  */
+lu12i.w $r4,%abs_hi20(.L1 + 0x8)
+
+/* ori   */
+ori $r4,$r5,%abs_lo12(.L1 + 0x8)
+
+/* lu32i.d.  */
+lu32i.d $r4,%abs64_lo20(.L1 + 0x8)
+
+/* lu52i.d.  */
+lu52i.d $r5,$r4,%abs64_hi12(.L1 + 0x8)
+
+
+/* Pcala Insns.  */
+/* pcalau12i.  */
+pcalau12i $r4,%pc_hi20(.L1 + 0x8)
+pcalau12i $r4,%got_pc_hi20(.L1 + 0x8)
+pcalau12i $r4,%got_pc_lo12(.L1 + 0x8)
+pcalau12i $r4,%ie_pc_hi20(TLSL1 + 0x8)
+pcalau12i $r4,%ld_pc_hi20(TLSL1 + 0x8)
+pcalau12i $r4,%gd_pc_hi20(TLSL1 + 0x8)
+
+/* addi.w/d ld.b/h/w/d.  */
+addi.w $r5,$r4,%pc_lo12(.L1 + 0x8)
+addi.d $r5,$r4,%pc_lo12(.L1 + 0x8)
+ld.b $r5,$r4,%pc_lo12(.L1 + 0x8)
+ld.h $r5,$r4,%pc_lo12(.L1 + 0x8)
+ld.w $r5,$r4,%pc_lo12(.L1 + 0x8)
+ld.d $r5,$r4,%pc_lo12(.L1 + 0x8)
+lu32i.d $r4,%pc64_lo20(.L1 + 0x8)
+lu52i.d $r5,$r4,%pc64_lo20(.L1 + 0x8)
+lu32i.d $r4,%got64_pc_lo20(.L1 + 0x8)
+lu52i.d $r5,$r4,%got64_pc_hi12(.L1 + 0x8)
+
+
+/* GOT64 Insns.  */
+/* lu12i.w.  */
+lu12i.w $r4,%got_hi20(.L1 + 0x8)
+ori $r4,$r4,%got_lo12(.L1 + 0x8)
+lu32i.d $r4,%got64_lo20(.L1 + 0x8)
+lu52i.d $r5,$r4,%got64_hi12(.L1 + 0x8)
+
+
+/* TLS Insns.  */
+lu12i.w $r4,%le_hi20(TLSL1 + 0x8)
+ori $r5,$r4,%le_lo12(TLSL1 + 0x8)
+lu32i.d $r4,%le64_lo20(TLSL1 + 0x8)
+lu52i.d $r5,$r4,%le64_hi12(TLSL1 + 0x8)
index 9115f810465e159fbde063172508be09a67dff58..c479f475829b7d3cc21298dee9ddb056c160e720 100644 (file)
@@ -9,7 +9,7 @@
 # sed.  mn10300 and riscv put different numbers of local symbols in
 # linkonce section and comdat sections.  xtensa has more than one member
 # in comdat groups.
-#xfail: am33_2.0-*-* hppa*-*-hpux* mn10300-*-* riscv*-*-* xtensa*-*-* loongarch*-*-*
+#xfail: am33_2.0-*-* hppa*-*-hpux* mn10300-*-* riscv*-*-* xtensa*-*-*
 
 #...
 CU: .*/pr26936c.s:
index 06c3202d5cc3d871167b1970c04433bdd1187069..44924b097aaaaebcd9a98f2b53465f9f681476bd 100644 (file)
@@ -346,6 +346,7 @@ if { [check_gc_sections_available] } {
        mips*-*-* { }
        tic6x-*-* { }
        xtensa-*-* { }
+       loongarch*-*-* { }
        default {
            run_ld_link_tests [list \
                [list \
@@ -465,7 +466,7 @@ run_ld_link_tests [list \
 ]
 
 # These targets don't copy dynamic variables into .bss.
-setup_xfail "alpha-*-*" "bfin-*-*" "ia64-*-*" "xtensa-*-*"
+setup_xfail "alpha-*-*" "bfin-*-*" "ia64-*-*" "xtensa-*-*" *loongarch*-*-*
 # or don't have .data.rel.ro
 setup_xfail "hppa*64*-*-hpux*" "tic6x-*-*"
 # or complain about relocs in read-only sections
@@ -485,7 +486,8 @@ run_ld_link_tests [list \
        {pr20995c.s} {{readelf {-l --wide} pr20995-2so.r}} "pr20995-2.so"] \
 ] {![check_relro_support]}
 
-setup_xfail alpha-*-* xtensa-*-*
+# LoongArch: Read-only sections, merged into text segment in normal exe.
+setup_xfail alpha-*-* xtensa-*-* loongarch*-*-*
 run_ld_link_tests [list \
     [list \
        "pr20995-2" \
diff --git a/ld/testsuite/ld-loongarch-elf/attr-ifunc-4.c b/ld/testsuite/ld-loongarch-elf/attr-ifunc-4.c
new file mode 100644 (file)
index 0000000..5c87445
--- /dev/null
@@ -0,0 +1,23 @@
+/* { dg-do run }  */
+/* { dg-require-ifunc "" } */
+/* { dg-options "" } */
+
+#include <stdio.h>
+
+static int implementation (void)
+{
+  printf ("'ere I am JH\n");
+  return 0;
+}
+
+static __typeof__ (implementation)* resolver (void)
+{
+  return implementation;
+}
+
+static int magic (void) __attribute__ ((ifunc ("resolver")));
+
+int main ()
+{
+  return magic () != 0;
+}
diff --git a/ld/testsuite/ld-loongarch-elf/attr-ifunc-4.out b/ld/testsuite/ld-loongarch-elf/attr-ifunc-4.out
new file mode 100644 (file)
index 0000000..2d9cc34
--- /dev/null
@@ -0,0 +1 @@
+'ere I am JH
index 6621c03e5bcd25c38448eb247d9181612f03206c..2f2a41afe750f0cb44149280576e0a4e22ccace4 100644 (file)
@@ -1,15 +1,15 @@
-#name: jirl zero-offset symbols for LoongArch32
-#source: disas-jirl-32.s
-#ld: --no-relax
-#objdump: -d
+#as:
+#objdump: -dr
 #skip: loongarch64-*-*
 
-.*:[   ]+file format .*
+.*:[    ]+file format .*
 
 
 Disassembly of section .text:
 
-00010054 <_start>:
-[      ]+10054:[       ]+1c000014 [    ]+pcaddu12i[    ]+[     ]+\$t8, 0
-[      ]+10058:[       ]+02800294 [    ]+addi.w[       ]+[     ]+\$t8, \$t8, 0
-[      ]+1005c:[       ]+4c000281 [    ]+jirl[         ]+[     ]+\$ra, \$t8, 0
+00000000.* <_start>:
+[      ]+0:[   ]+1a000014[     ]+pcalau12i[    ]+\$t8,[        ]+0
+[      ]+0:[   ]+R_LARCH_PCALA_HI20[   ]+_start
+[      ]+4:[   ]+02800294[     ]+addi.w[       ]+\$t8,[        ]+\$t8,[        ]+0
+[      ]+4:[   ]+R_LARCH_PCALA_LO12[   ]+_start
+[      ]+8:[   ]+4c000281[     ]+jirl[         ]+\$ra,[        ]+\$t8,[        ]+0
index f79111a5d8bf0747667b870a74266dde525785ea..595c30c73611a189372d8f1d034776b8de944a4f 100644 (file)
@@ -1,15 +1,14 @@
-#name: jirl zero-offset symbols for LoongArch64
-#source: disas-jirl.s
-#ld: --no-relax
-#objdump: -d
-#skip: loongarch32-*-*
+#as:
+#objdump: -dr
 
-.*:[   ]+file format .*
+.*:[    ]+file format .*
 
 
 Disassembly of section .text:
 
-0000000120000078 <_start>:
-[      ]+120000078:[   ]+1c000014 [    ]+pcaddu12i[    ]+[     ]+\$t8, 0
-[      ]+12000007c:[   ]+02c00294 [    ]+addi.d[       ]+[     ]+\$t8, \$t8, 0
-[      ]+120000080:[   ]+4c000281 [    ]+jirl[         ]+[     ]+\$ra, \$t8, 0
+00000000.*:
+[      ]+0:[   ]+1a000014[     ]+pcalau12i[    ]+\$t8,[        ]+0
+[      ]+0:[   ]+R_LARCH_PCALA_HI20[   ]+_start
+[      ]+4:[   ]+02c00294[     ]+addi.d[       ]+\$t8,[        ]+\$t8,[        ]+0
+[      ]+4:[   ]+R_LARCH_PCALA_LO12[   ]+_start
+[      ]+8:[   ]+4c000281[     ]+jirl[         ]+\$ra,[        ]+\$t8,[        ]+0
diff --git a/ld/testsuite/ld-loongarch-elf/ifunc.exp b/ld/testsuite/ld-loongarch-elf/ifunc.exp
new file mode 100644 (file)
index 0000000..2b55002
--- /dev/null
@@ -0,0 +1,34 @@
+# Expect script for LoongArch assembler tests.
+#   Copyright (C) 2021-2022 Free Software Foundation, Inc.
+#
+# This file is part of the GNU Binutils.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+# MA 02110-1301, USA.
+
+
+
+if [istarget loongarch*-*-*] {
+    run_ld_link_exec_tests [list \
+       [list \
+           "Run attr-ifunc-4" \
+           "" \
+           "" \
+           {attr-ifunc-4.c} \
+           "attr-ifunc-4" \
+           "attr-ifunc-4.out" \
+       ] \
+    ]
+}
index c68f7aa49ba2aa7a92ff67faee664c083d9cb103..93452c317bb8e65f6c36e40669e0ed60f191c82c 100644 (file)
@@ -1,68 +1,30 @@
 #as:
 #objdump: -dr
 
-.*:[   ]+file format .*
+.*:[    ]+file format .*
 
 
 Disassembly of section .text:
 
-0+0 <.text>:
-[      ]+0:[   ]+03400000 [    ]+andi[         ]+[     ]+\$zero, \$zero, 0x0
-[      ]+4:[   ]+60000004 [    ]+bgtz[         ]+[     ]+\$a0, 0[      ]+# 0x4
-[      ]+[     ]+[     ]+4: R_LARCH_SOP_PUSH_PCREL[    ]+L1
-[      ]+[     ]+[     ]+4: R_LARCH_SOP_POP_32_S_10_16_S2[     ]+\*ABS\*
-[      ]+8:[   ]+64000080 [    ]+bgez[         ]+[     ]+\$a0, 0[      ]+# 0x8
-[      ]+[     ]+[     ]+8: R_LARCH_SOP_PUSH_PCREL[    ]+L1
-[      ]+[     ]+[     ]+8: R_LARCH_SOP_POP_32_S_10_16_S2[     ]+\*ABS\*
-[      ]+c:[   ]+64000004 [    ]+blez[         ]+[     ]+\$a0, 0[      ]+# 0xc
-[      ]+[     ]+[     ]+c: R_LARCH_SOP_PUSH_PCREL[    ]+L1
-[      ]+[     ]+[     ]+c: R_LARCH_SOP_POP_32_S_10_16_S2[     ]+\*ABS\*
-[      ]+10:[  ]+40000080 [    ]+beqz[         ]+[     ]+\$a0, 0[      ]+# 0x10
-[      ]+[     ]+[     ]+10: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+10: R_LARCH_SOP_POP_32_S_0_5_10_16_S2[        ]+\*ABS\*
-[      ]+14:[  ]+44000080 [    ]+bnez[         ]+[     ]+\$a0, 0[      ]+# 0x14
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_POP_32_S_0_5_10_16_S2[        ]+\*ABS\*
-[      ]+18:[  ]+48000000 [    ]+bceqz[        ]+[     ]+\$fcc0, 0[    ]+# 0x18
-[      ]+[     ]+[     ]+18: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+18: R_LARCH_SOP_POP_32_S_0_5_10_16_S2[        ]+\*ABS\*
-[      ]+1c:[  ]+48000100 [    ]+bcnez[        ]+[     ]+\$fcc0, 0[    ]+# 0x1c
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_POP_32_S_0_5_10_16_S2[        ]+\*ABS\*
-[      ]+20:[  ]+4c000080 [    ]+jirl[         ]+[     ]+\$zero, \$a0, 0
-[      ]+24:[  ]+50000000 [    ]+b[    ]+[     ]+0[    ]+# 0x24
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_POP_32_S_0_10_10_16_S2[       ]+\*ABS\*
-[      ]+28:[  ]+54000000 [    ]+bl[   ]+[     ]+0[    ]+# 0x28
-[      ]+[     ]+[     ]+28: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+28: R_LARCH_SOP_POP_32_S_0_10_10_16_S2[       ]+\*ABS\*
-[      ]+2c:[  ]+58000085 [    ]+beq[  ]+[     ]+\$a0, \$a1, 0[        ]+# 0x2c
-[      ]+[     ]+[     ]+2c: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+2c: R_LARCH_SOP_POP_32_S_10_16_S2[    ]+\*ABS\*
-[      ]+30:[  ]+5c000085 [    ]+bne[  ]+[     ]+\$a0, \$a1, 0[        ]+# 0x30
-[      ]+[     ]+[     ]+30: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+30: R_LARCH_SOP_POP_32_S_10_16_S2[    ]+\*ABS\*
-[      ]+34:[  ]+60000085 [    ]+blt[  ]+[     ]+\$a0, \$a1, 0[        ]+# 0x34
-[      ]+[     ]+[     ]+34: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+34: R_LARCH_SOP_POP_32_S_10_16_S2[    ]+\*ABS\*
-[      ]+38:[  ]+600000a4 [    ]+blt[  ]+[     ]+\$a1, \$a0, 0[        ]+# 0x38
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_POP_32_S_10_16_S2[    ]+\*ABS\*
-[      ]+3c:[  ]+64000085 [    ]+bge[  ]+[     ]+\$a0, \$a1, 0[        ]+# 0x3c
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_POP_32_S_10_16_S2[    ]+\*ABS\*
-[      ]+40:[  ]+640000a4 [    ]+bge[  ]+[     ]+\$a1, \$a0, 0[        ]+# 0x40
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_POP_32_S_10_16_S2[    ]+\*ABS\*
-[      ]+44:[  ]+68000085 [    ]+bltu[         ]+[     ]+\$a0, \$a1, 0[        ]+# 0x44
-[      ]+[     ]+[     ]+44: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+44: R_LARCH_SOP_POP_32_S_10_16_S2[    ]+\*ABS\*
-[      ]+48:[  ]+680000a4 [    ]+bltu[         ]+[     ]+\$a1, \$a0, 0[        ]+# 0x48
-[      ]+[     ]+[     ]+48: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+48: R_LARCH_SOP_POP_32_S_10_16_S2[    ]+\*ABS\*
-[      ]+4c:[  ]+6c000085 [    ]+bgeu[         ]+[     ]+\$a0, \$a1, 0[        ]+# 0x4c
-[      ]+[     ]+[     ]+4c: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+4c: R_LARCH_SOP_POP_32_S_10_16_S2[    ]+\*ABS\*
-[      ]+50:[  ]+6c0000a4 [    ]+bgeu[         ]+[     ]+\$a1, \$a0, 0[        ]+# 0x50
-[      ]+[     ]+[     ]+50: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+50: R_LARCH_SOP_POP_32_S_10_16_S2[    ]+\*ABS\*
+00000000.* <.text>:
+[      ]+0:[   ]+03400000[     ]+andi[         ]+\$zero,[      ]+\$zero,[      ]+0x0
+[      ]+4:[   ]+63fffc04[     ]+bgtz[         ]+\$a0,[        ]+-4\(0x3fffc\)[        ]+#[    ]+0x0
+[      ]+8:[   ]+67fff880[     ]+bgez[         ]+\$a0,[        ]+-8\(0x3fff8\)[        ]+#[    ]+0x0
+[      ]+c:[   ]+67fff404[     ]+blez[         ]+\$a0,[        ]+-12\(0x3fff4\)[       ]+#[    ]+0x0
+[      ]+10:[  ]+43fff09f[     ]+beqz[         ]+\$a0,[        ]+-16\(0x7ffff0\)[      ]+#[    ]+0x0
+[      ]+14:[  ]+47ffec9f[     ]+bnez[         ]+\$a0,[        ]+-20\(0x7fffec\)[      ]+#[    ]+0x0
+[      ]+18:[  ]+4bffe81f[     ]+bceqz[        ]+\$fcc0,[      ]+-24\(0x7fffe8\)[      ]+#[    ]+0x0
+[      ]+1c:[  ]+4bffe51f[     ]+bcnez[        ]+\$fcc0,[      ]+-28\(0x7fffe4\)[      ]+#[    ]+0x0
+[      ]+20:[  ]+4c000080[     ]+jirl[         ]+\$zero,[      ]+\$a0,[        ]+0
+[      ]+24:[  ]+53ffdfff[     ]+b[    ]+-36\(0xfffffdc\)[     ]+#[    ]+0x0
+[      ]+28:[  ]+57ffdbff[     ]+bl[   ]+-40\(0xfffffd8\)[     ]+#[    ]+0x0
+[      ]+2c:[  ]+5bffd485[     ]+beq[  ]+\$a0,[        ]+\$a1,[        ]+-44\(0x3ffd4\)[       ]+#[    ]+0x0
+[      ]+30:[  ]+5fffd085[     ]+bne[  ]+\$a0,[        ]+\$a1,[        ]+-48\(0x3ffd0\)[       ]+#[    ]+0x0
+[      ]+34:[  ]+63ffcc85[     ]+blt[  ]+\$a0,[        ]+\$a1,[        ]+-52\(0x3ffcc\)[       ]+#[    ]+0x0
+[      ]+38:[  ]+63ffc8a4[     ]+blt[  ]+\$a1,[        ]+\$a0,[        ]+-56\(0x3ffc8\)[       ]+#[    ]+0x0
+[      ]+3c:[  ]+67ffc485[     ]+bge[  ]+\$a0,[        ]+\$a1,[        ]+-60\(0x3ffc4\)[       ]+#[    ]+0x0
+[      ]+40:[  ]+67ffc0a4[     ]+bge[  ]+\$a1,[        ]+\$a0,[        ]+-64\(0x3ffc0\)[       ]+#[    ]+0x0
+[      ]+44:[  ]+6bffbc85[     ]+bltu[         ]+\$a0,[        ]+\$a1,[        ]+-68\(0x3ffbc\)[       ]+#[    ]+0x0
+[      ]+48:[  ]+6bffb8a4[     ]+bltu[         ]+\$a1,[        ]+\$a0,[        ]+-72\(0x3ffb8\)[       ]+#[    ]+0x0
+[      ]+4c:[  ]+6fffb485[     ]+bgeu[         ]+\$a0,[        ]+\$a1,[        ]+-76\(0x3ffb4\)[       ]+#[    ]+0x0
+[      ]+50:[  ]+6fffb0a4[     ]+bgeu[         ]+\$a1,[        ]+\$a0,[        ]+-80\(0x3ffb0\)[       ]+#[    ]+0x0
index 01b043d19eb84c0275bfe973765d9fa2da180f9c..1deb165aebadd1a735ce38452d9459249d58949a 100644 (file)
@@ -1,22 +1,22 @@
 .L1:
-       nop
-       bgtz  $r4,L1
-       bgez  $r4,L1
-       blez  $r4,L1
-       beqz  $r4,L1
-       bnez  $r4,L1
-       bceqz  $fcc0,L1
-       bcnez  $fcc0,L1
-       jr  $r4
-       b  L1
-       bl  L1
-       beq  $r4,$r5,L1
-       bne  $r4,$r5,L1
-       blt  $r4,$r5,L1
-       bgt  $r4,$r5,L1
-       bge  $r4,$r5,L1
-       ble  $r4,$r5,L1
-       bltu  $r4,$r5,L1
-       bgtu  $r4,$r5,L1
-       bgeu  $r4,$r5,L1
-       bleu  $r4,$r5,L1
+nop
+bgtz  $r4,.L1
+bgez  $r4,.L1
+blez  $r4,.L1
+beqz  $r4,.L1
+bnez  $r4,.L1
+bceqz  $fcc0,.L1
+bcnez  $fcc0,.L1
+jr  $r4
+b  .L1
+bl  .L1
+beq  $r4,$r5,.L1
+bne  $r4,$r5,.L1
+blt  $r4,$r5,.L1
+bgt  $r4,$r5,.L1
+bge  $r4,$r5,.L1
+ble  $r4,$r5,.L1
+bltu  $r4,$r5,.L1
+bgtu  $r4,$r5,.L1
+bgeu  $r4,$r5,.L1
+bleu  $r4,$r5,.L1
diff --git a/ld/testsuite/ld-loongarch-elf/libnopic-global.s b/ld/testsuite/ld-loongarch-elf/libnopic-global.s
new file mode 100644 (file)
index 0000000..39d7dc6
--- /dev/null
@@ -0,0 +1,113 @@
+       .file   "libnopic-global.c"
+       .text
+.Ltext0:
+       .file 1 "libnopic-global.c"
+       .globl  g_nopic
+       .data
+       .align  2
+       .type   g_nopic, @object
+       .size   g_nopic, 4
+g_nopic:
+       .word   305419896
+       .text
+.Letext0:
+       .section        .debug_info,"",@progbits
+.Ldebug_info0:
+       .4byte  0x38
+       .2byte  0x5
+       .byte   0x1
+       .byte   0x8
+       .4byte  .Ldebug_abbrev0
+       .uleb128 0x1
+       .4byte  .LASF0
+       .byte   0x1d
+       .4byte  .LASF1
+       .4byte  .LASF2
+       .4byte  .Ldebug_line0
+       .uleb128 0x2
+       .4byte  .LASF3
+       .byte   0x1
+       .byte   0x1
+       .byte   0x5
+       .4byte  0x34
+       .uleb128 0x9
+       .byte   0x3
+       .8byte  g_nopic
+       .uleb128 0x3
+       .byte   0x4
+       .byte   0x5
+       .ascii  "int\000"
+       .byte   0
+       .section        .debug_abbrev,"",@progbits
+.Ldebug_abbrev0:
+       .uleb128 0x1
+       .uleb128 0x11
+       .byte   0x1
+       .uleb128 0x25
+       .uleb128 0xe
+       .uleb128 0x13
+       .uleb128 0xb
+       .uleb128 0x3
+       .uleb128 0xe
+       .uleb128 0x1b
+       .uleb128 0xe
+       .uleb128 0x10
+       .uleb128 0x17
+       .byte   0
+       .byte   0
+       .uleb128 0x2
+       .uleb128 0x34
+       .byte   0
+       .uleb128 0x3
+       .uleb128 0xe
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x39
+       .uleb128 0xb
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x2
+       .uleb128 0x18
+       .byte   0
+       .byte   0
+       .uleb128 0x3
+       .uleb128 0x24
+       .byte   0
+       .uleb128 0xb
+       .uleb128 0xb
+       .uleb128 0x3e
+       .uleb128 0xb
+       .uleb128 0x3
+       .uleb128 0x8
+       .byte   0
+       .byte   0
+       .byte   0
+       .section        .debug_aranges,"",@progbits
+       .4byte  0x1c
+       .2byte  0x2
+       .4byte  .Ldebug_info0
+       .byte   0x8
+       .byte   0
+       .2byte  0
+       .2byte  0
+       .8byte  0
+       .8byte  0
+       .section        .debug_line,"",@progbits
+.Ldebug_line0:
+       .section        .debug_str,"MS",@progbits,1
+.LASF1:
+       .ascii  "libnopic-global.c\000"
+.LASF0:
+       .ascii  "GNU C17 13.0.0 20220512 (experimental) -mabi=lp64d -marc"
+       .ascii  "h=loongarch64 -mfpu=64 -mcmodel=normal -mtune=la464 -g -"
+       .ascii  "O0 -fPIC\000"
+.LASF2:
+       .ascii  "/home/liuzhensong/test/ld/nopic/test/global_var\000"
+.LASF3:
+       .ascii  "g_nopic\000"
+       .ident  "GCC: (GNU) 13.0.0 20220512 (experimental)"
+       .section        .note.GNU-stack,"",@progbits
index af10060882484cb557613bc41abdd13024d24297..a1c64fcf00fececdd92744c072eaf4e5cdf46028 100644 (file)
 #as:
 #objdump: -dr
-#skip: loongarch32-*-*
 
-.*:[   ]+file format .*
+.*:[    ]+file format .*
 
 
 Disassembly of section .text:
 
-0+0 <.text>:
-[      ]+0:[   ]+00150004 [    ]+move[         ]+[     ]+\$a0, \$zero
-[      ]+4:[   ]+02bffc04 [    ]+addi.w[       ]+[     ]+\$a0, \$zero, -1\(0xfff\)
-[      ]+8:[   ]+00150004 [    ]+move[         ]+[     ]+\$a0, \$zero
-[      ]+c:[   ]+02bffc04 [    ]+addi.w[       ]+[     ]+\$a0, \$zero, -1\(0xfff\)
-[      ]+10:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+10: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x800
-[      ]+[     ]+[     ]+10: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+10: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+10: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+10: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+10: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+14:[  ]+28c00084 [    ]+ld.d[         ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x804
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+18:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+18: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x800
-[      ]+[     ]+[     ]+18: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+18: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+18: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+18: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+18: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+1c:[  ]+28c00084 [    ]+ld.d[         ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x804
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+20:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x80000000
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+24:[  ]+03800005 [    ]+ori[  ]+[     ]+\$a1, \$zero, 0x0
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x80000004
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xfff
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_AND[  ]+\*ABS\*
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_POP_32_U_10_12[       ]+\*ABS\*
-[      ]+28:[  ]+16000005 [    ]+lu32i.d[      ]+[     ]+\$a1, 0
-[      ]+[     ]+[     ]+28: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x80000008
-[      ]+[     ]+[     ]+28: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+28: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+28: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+28: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+28: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+28: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+28: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+2c:[  ]+030000a5 [    ]+lu52i.d[      ]+[     ]+\$a1, \$a1, 0
-[      ]+[     ]+[     ]+2c: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x8000000c
-[      ]+[     ]+[     ]+2c: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+2c: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+2c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x34
-[      ]+[     ]+[     ]+2c: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+2c: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+30:[  ]+380c1484 [    ]+ldx.d[        ]+[     ]+\$a0, \$a0, \$a1
-[      ]+34:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+34: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x800
-[      ]+[     ]+[     ]+34: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+34: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+34: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+34: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+34: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+38:[  ]+28c00084 [    ]+ld.d[         ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x804
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+3c:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x80000000
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+40:[  ]+03800005 [    ]+ori[  ]+[     ]+\$a1, \$zero, 0x0
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x80000004
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xfff
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_AND[  ]+\*ABS\*
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_POP_32_U_10_12[       ]+\*ABS\*
-[      ]+44:[  ]+16000005 [    ]+lu32i.d[      ]+[     ]+\$a1, 0
-[      ]+[     ]+[     ]+44: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x80000008
-[      ]+[     ]+[     ]+44: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+44: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+44: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+44: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+44: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+44: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+44: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+48:[  ]+030000a5 [    ]+lu52i.d[      ]+[     ]+\$a1, \$a1, 0
-[      ]+[     ]+[     ]+48: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x8000000c
-[      ]+[     ]+[     ]+48: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+48: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+48: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x34
-[      ]+[     ]+[     ]+48: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+48: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+4c:[  ]+380c1484 [    ]+ldx.d[        ]+[     ]+\$a0, \$a0, \$a1
-[      ]+50:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+50: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x800
-[      ]+[     ]+[     ]+50: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+50: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+50: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+50: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+50: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+54:[  ]+28c00084 [    ]+ld.d[         ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+54: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+54: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+54: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+54: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x804
-[      ]+[     ]+[     ]+54: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+54: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+54: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+54: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+54: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+54: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+54: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+54: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+58:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x80000000
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+5c:[  ]+03800005 [    ]+ori[  ]+[     ]+\$a1, \$zero, 0x0
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x80000004
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xfff
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_AND[  ]+\*ABS\*
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_POP_32_U_10_12[       ]+\*ABS\*
-[      ]+60:[  ]+16000005 [    ]+lu32i.d[      ]+[     ]+\$a1, 0
-[      ]+[     ]+[     ]+60: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x80000008
-[      ]+[     ]+[     ]+60: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+60: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+60: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+60: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+60: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+60: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+60: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+64:[  ]+030000a5 [    ]+lu52i.d[      ]+[     ]+\$a1, \$a1, 0
-[      ]+[     ]+[     ]+64: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x8000000c
-[      ]+[     ]+[     ]+64: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+64: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+64: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x34
-[      ]+[     ]+[     ]+64: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+64: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+68:[  ]+380c1484 [    ]+ldx.d[        ]+[     ]+\$a0, \$a0, \$a1
-[      ]+6c:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+6c: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x800
-[      ]+[     ]+[     ]+6c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+6c: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+6c: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+70:[  ]+02c00084 [    ]+addi.d[       ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+70: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x4
-[      ]+[     ]+[     ]+70: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x804
-[      ]+[     ]+[     ]+70: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+70: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+70: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+70: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+70: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+70: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+74:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+74: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+74: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x80000000
-[      ]+[     ]+[     ]+74: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+74: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+74: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+74: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+74: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+74: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+74: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+74: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+74: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+74: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+78:[  ]+03800005 [    ]+ori[  ]+[     ]+\$a1, \$zero, 0x0
-[      ]+[     ]+[     ]+78: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x4
-[      ]+[     ]+[     ]+78: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x80000004
-[      ]+[     ]+[     ]+78: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+78: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+78: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+78: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+78: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+78: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xfff
-[      ]+[     ]+[     ]+78: R_LARCH_SOP_AND[  ]+\*ABS\*
-[      ]+[     ]+[     ]+78: R_LARCH_SOP_POP_32_U_10_12[       ]+\*ABS\*
-[      ]+7c:[  ]+16000005 [    ]+lu32i.d[      ]+[     ]+\$a1, 0
-[      ]+[     ]+[     ]+7c: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x80000008
-[      ]+[     ]+[     ]+7c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+7c: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+7c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+7c: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+7c: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+80:[  ]+030000a5 [    ]+lu52i.d[      ]+[     ]+\$a1, \$a1, 0
-[      ]+[     ]+[     ]+80: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x8000000c
-[      ]+[     ]+[     ]+80: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x34
-[      ]+[     ]+[     ]+80: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+80: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+84:[  ]+00109484 [    ]+add.d[        ]+[     ]+\$a0, \$a0, \$a1
-[      ]+88:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+88: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x800
-[      ]+[     ]+[     ]+88: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+88: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+88: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+8c:[  ]+02c00084 [    ]+addi.d[       ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+8c: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x4
-[      ]+[     ]+[     ]+8c: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x804
-[      ]+[     ]+[     ]+8c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+8c: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+8c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+8c: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+8c: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+8c: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+90:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+90: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+90: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x80000000
-[      ]+[     ]+[     ]+90: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+90: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+90: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+90: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+90: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+90: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+90: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+90: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+90: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+90: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+94:[  ]+03800005 [    ]+ori[  ]+[     ]+\$a1, \$zero, 0x0
-[      ]+[     ]+[     ]+94: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x4
-[      ]+[     ]+[     ]+94: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x80000004
-[      ]+[     ]+[     ]+94: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+94: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+94: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+94: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+94: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+94: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xfff
-[      ]+[     ]+[     ]+94: R_LARCH_SOP_AND[  ]+\*ABS\*
-[      ]+[     ]+[     ]+94: R_LARCH_SOP_POP_32_U_10_12[       ]+\*ABS\*
-[      ]+98:[  ]+16000005 [    ]+lu32i.d[      ]+[     ]+\$a1, 0
-[      ]+[     ]+[     ]+98: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x80000008
-[      ]+[     ]+[     ]+98: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+98: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+98: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+98: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+98: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+9c:[  ]+030000a5 [    ]+lu52i.d[      ]+[     ]+\$a1, \$a1, 0
-[      ]+[     ]+[     ]+9c: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x8000000c
-[      ]+[     ]+[     ]+9c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x34
-[      ]+[     ]+[     ]+9c: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+9c: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+a0:[  ]+00109484 [    ]+add.d[        ]+[     ]+\$a0, \$a0, \$a1
-[      ]+a4:[  ]+14000004 [    ]+lu12i.w[      ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+a4: R_LARCH_MARK_LA[  ]+L1
-[      ]+[     ]+[     ]+a4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+L1
-[      ]+[     ]+[     ]+a4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+a4: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+a4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+a4: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+a4: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+a8:[  ]+03800084 [    ]+ori[  ]+[     ]+\$a0, \$a0, 0x0
-[      ]+[     ]+[     ]+a8: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+L1
-[      ]+[     ]+[     ]+a8: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xfff
-[      ]+[     ]+[     ]+a8: R_LARCH_SOP_AND[  ]+\*ABS\*
-[      ]+[     ]+[     ]+a8: R_LARCH_SOP_POP_32_U_10_12[       ]+\*ABS\*
-[      ]+ac:[  ]+16000004 [    ]+lu32i.d[      ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+ac: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+L1
-[      ]+[     ]+[     ]+ac: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+ac: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+ac: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+ac: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+ac: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+b0:[  ]+03000084 [    ]+lu52i.d[      ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+b0: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+L1
-[      ]+[     ]+[     ]+b0: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x34
-[      ]+[     ]+[     ]+b0: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+b0: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+b4:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+b4: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x800
-[      ]+[     ]+[     ]+b4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+b4: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+b4: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+b8:[  ]+02c00084 [    ]+addi.d[       ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+b8: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x4
-[      ]+[     ]+[     ]+b8: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x804
-[      ]+[     ]+[     ]+b8: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+b8: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+b8: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+b8: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+b8: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+b8: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+bc:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+bc: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x800
-[      ]+[     ]+[     ]+bc: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+bc: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+bc: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+c0:[  ]+02c00084 [    ]+addi.d[       ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+c0: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x4
-[      ]+[     ]+[     ]+c0: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x804
-[      ]+[     ]+[     ]+c0: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+c0: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+c0: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+c0: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+c0: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+c0: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+c4:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+c4: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+c4: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x80000000
-[      ]+[     ]+[     ]+c4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+c4: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+c4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+c4: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+c4: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+c4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+c4: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+c4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+c4: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+c4: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+c8:[  ]+03800005 [    ]+ori[  ]+[     ]+\$a1, \$zero, 0x0
-[      ]+[     ]+[     ]+c8: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x4
-[      ]+[     ]+[     ]+c8: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x80000004
-[      ]+[     ]+[     ]+c8: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+c8: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+c8: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+c8: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+c8: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+c8: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xfff
-[      ]+[     ]+[     ]+c8: R_LARCH_SOP_AND[  ]+\*ABS\*
-[      ]+[     ]+[     ]+c8: R_LARCH_SOP_POP_32_U_10_12[       ]+\*ABS\*
-[      ]+cc:[  ]+16000005 [    ]+lu32i.d[      ]+[     ]+\$a1, 0
-[      ]+[     ]+[     ]+cc: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x80000008
-[      ]+[     ]+[     ]+cc: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+cc: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+cc: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+cc: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+cc: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+d0:[  ]+030000a5 [    ]+lu52i.d[      ]+[     ]+\$a1, \$a1, 0
-[      ]+[     ]+[     ]+d0: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x8000000c
-[      ]+[     ]+[     ]+d0: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x34
-[      ]+[     ]+[     ]+d0: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+d0: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+d4:[  ]+00109484 [    ]+add.d[        ]+[     ]+\$a0, \$a0, \$a1
-[      ]+d8:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+d8: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x800
-[      ]+[     ]+[     ]+d8: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+d8: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+d8: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+d8: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+d8: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+dc:[  ]+28c00084 [    ]+ld.d[         ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x804
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+e0:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x80000000
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+e4:[  ]+03800005 [    ]+ori[  ]+[     ]+\$a1, \$zero, 0x0
-[      ]+[     ]+[     ]+e4: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+e4: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+e4: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+e4: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x80000004
-[      ]+[     ]+[     ]+e4: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+e4: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+e4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+e4: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+e4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+e4: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+e4: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+e4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xfff
-[      ]+[     ]+[     ]+e4: R_LARCH_SOP_AND[  ]+\*ABS\*
-[      ]+[     ]+[     ]+e4: R_LARCH_SOP_POP_32_U_10_12[       ]+\*ABS\*
-[      ]+e8:[  ]+16000005 [    ]+lu32i.d[      ]+[     ]+\$a1, 0
-[      ]+[     ]+[     ]+e8: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x80000008
-[      ]+[     ]+[     ]+e8: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+e8: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+e8: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+e8: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+e8: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+e8: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+e8: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+ec:[  ]+030000a5 [    ]+lu52i.d[      ]+[     ]+\$a1, \$a1, 0
-[      ]+[     ]+[     ]+ec: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x8000000c
-[      ]+[     ]+[     ]+ec: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+ec: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+ec: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x34
-[      ]+[     ]+[     ]+ec: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+ec: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+f0:[  ]+380c1484 [    ]+ldx.d[        ]+[     ]+\$a0, \$a0, \$a1
-[      ]+f4:[  ]+14000004 [    ]+lu12i.w[      ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+f4: R_LARCH_SOP_PUSH_TLS_TPREL[       ]+L1
-[      ]+[     ]+[     ]+f4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+f4: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+f4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+f4: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+f4: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+f8:[  ]+03800084 [    ]+ori[  ]+[     ]+\$a0, \$a0, 0x0
-[      ]+[     ]+[     ]+f8: R_LARCH_SOP_PUSH_TLS_TPREL[       ]+L1
-[      ]+[     ]+[     ]+f8: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xfff
-[      ]+[     ]+[     ]+f8: R_LARCH_SOP_AND[  ]+\*ABS\*
-[      ]+[     ]+[     ]+f8: R_LARCH_SOP_POP_32_U_10_12[       ]+\*ABS\*
-[      ]+fc:[  ]+16000004 [    ]+lu32i.d[      ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+fc: R_LARCH_SOP_PUSH_TLS_TPREL[       ]+L1
-[      ]+[     ]+[     ]+fc: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+fc: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+fc: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+fc: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+fc: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+100:[         ]+03000084 [    ]+lu52i.d[      ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+100: R_LARCH_SOP_PUSH_TLS_TPREL[      ]+L1
-[      ]+[     ]+[     ]+100: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x34
-[      ]+[     ]+[     ]+100: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+100: R_LARCH_SOP_POP_32_S_10_12[      ]+\*ABS\*
-[      ]+104:[         ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+104: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x800
-[      ]+[     ]+[     ]+104: R_LARCH_SOP_PUSH_TLS_GOT[        ]+L1
-[      ]+[     ]+[     ]+104: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+104: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+104: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+104: R_LARCH_SOP_POP_32_S_5_20[       ]+\*ABS\*
-[      ]+108:[         ]+28c00084 [    ]+ld.d[         ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+108: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+108: R_LARCH_SOP_PUSH_TLS_GOT[        ]+L1
-[      ]+[     ]+[     ]+108: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+108: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x804
-[      ]+[     ]+[     ]+108: R_LARCH_SOP_PUSH_TLS_GOT[        ]+L1
-[      ]+[     ]+[     ]+108: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+108: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+108: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+108: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+108: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+108: R_LARCH_SOP_SUB[         ]+\*ABS\*
-[      ]+[     ]+[     ]+108: R_LARCH_SOP_POP_32_S_10_12[      ]+\*ABS\*
-[      ]+10c:[         ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+10c: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_
-[      ]+[     ]+[     ]+10c: R_LARCH_SOP_PUSH_TLS_GOT[        ]+L1
-[      ]+[     ]+[     ]+10c: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+10c: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x80000000
-[      ]+[     ]+[     ]+10c: R_LARCH_SOP_PUSH_TLS_GOT[        ]+L1
-[      ]+[     ]+[     ]+10c: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+10c: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+10c: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+10c: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+10c: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+10c: R_LARCH_SOP_SUB[         ]+\*ABS\*
-[      ]+[     ]+[     ]+10c: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+10c: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+10c: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+10c: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+10c: R_LARCH_SOP_POP_32_S_5_20[       ]+\*ABS\*
-[      ]+110:[         ]+03800005 [    ]+ori[  ]+[     ]+\$a1, \$zero, 0x0
-[      ]+[     ]+[     ]+110: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+110: R_LARCH_SOP_PUSH_TLS_GOT[        ]+L1
-[      ]+[     ]+[     ]+110: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+110: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x80000004
-[      ]+[     ]+[     ]+110: R_LARCH_SOP_PUSH_TLS_GOT[        ]+L1
-[      ]+[     ]+[     ]+110: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+110: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+110: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+110: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+110: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+110: R_LARCH_SOP_SUB[         ]+\*ABS\*
-[      ]+[     ]+[     ]+110: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xfff
-[      ]+[     ]+[     ]+110: R_LARCH_SOP_AND[         ]+\*ABS\*
-[      ]+[     ]+[     ]+110: R_LARCH_SOP_POP_32_U_10_12[      ]+\*ABS\*
-[      ]+114:[         ]+16000005 [    ]+lu32i.d[      ]+[     ]+\$a1, 0
-[      ]+[     ]+[     ]+114: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x80000008
-[      ]+[     ]+[     ]+114: R_LARCH_SOP_PUSH_TLS_GOT[        ]+L1
-[      ]+[     ]+[     ]+114: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+114: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+114: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+114: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+114: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+114: R_LARCH_SOP_POP_32_S_5_20[       ]+\*ABS\*
-[      ]+118:[         ]+030000a5 [    ]+lu52i.d[      ]+[     ]+\$a1, \$a1, 0
-[      ]+[     ]+[     ]+118: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x8000000c
-[      ]+[     ]+[     ]+118: R_LARCH_SOP_PUSH_TLS_GOT[        ]+L1
-[      ]+[     ]+[     ]+118: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+118: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x34
-[      ]+[     ]+[     ]+118: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+118: R_LARCH_SOP_POP_32_S_10_12[      ]+\*ABS\*
-[      ]+11c:[         ]+380c1484 [    ]+ldx.d[        ]+[     ]+\$a0, \$a0, \$a1
-[      ]+120:[         ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+120: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x800
-[      ]+[     ]+[     ]+120: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+120: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+120: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+120: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+120: R_LARCH_SOP_POP_32_S_5_20[       ]+\*ABS\*
-[      ]+124:[         ]+02c00084 [    ]+addi.d[       ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+124: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+124: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+124: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+124: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x804
-[      ]+[     ]+[     ]+124: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+124: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+124: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+124: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+124: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+124: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+124: R_LARCH_SOP_SUB[         ]+\*ABS\*
-[      ]+[     ]+[     ]+124: R_LARCH_SOP_POP_32_S_10_12[      ]+\*ABS\*
-[      ]+128:[         ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+128: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_
-[      ]+[     ]+[     ]+128: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+128: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+128: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x80000000
-[      ]+[     ]+[     ]+128: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+128: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+128: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+128: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+128: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+128: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+128: R_LARCH_SOP_SUB[         ]+\*ABS\*
-[      ]+[     ]+[     ]+128: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+128: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+128: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+128: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+128: R_LARCH_SOP_POP_32_S_5_20[       ]+\*ABS\*
-[      ]+12c:[         ]+03800005 [    ]+ori[  ]+[     ]+\$a1, \$zero, 0x0
-[      ]+[     ]+[     ]+12c: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+12c: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+12c: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+12c: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x80000004
-[      ]+[     ]+[     ]+12c: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+12c: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+12c: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+12c: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+12c: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+12c: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+12c: R_LARCH_SOP_SUB[         ]+\*ABS\*
-[      ]+[     ]+[     ]+12c: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xfff
-[      ]+[     ]+[     ]+12c: R_LARCH_SOP_AND[         ]+\*ABS\*
-[      ]+[     ]+[     ]+12c: R_LARCH_SOP_POP_32_U_10_12[      ]+\*ABS\*
-[      ]+130:[         ]+16000005 [    ]+lu32i.d[      ]+[     ]+\$a1, 0
-[      ]+[     ]+[     ]+130: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x80000008
-[      ]+[     ]+[     ]+130: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+130: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+130: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+130: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+130: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+130: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+130: R_LARCH_SOP_POP_32_S_5_20[       ]+\*ABS\*
-[      ]+134:[         ]+030000a5 [    ]+lu52i.d[      ]+[     ]+\$a1, \$a1, 0
-[      ]+[     ]+[     ]+134: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x8000000c
-[      ]+[     ]+[     ]+134: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+134: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+134: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x34
-[      ]+[     ]+[     ]+134: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+134: R_LARCH_SOP_POP_32_S_10_12[      ]+\*ABS\*
-[      ]+138:[         ]+00109484 [    ]+add.d[        ]+[     ]+\$a0, \$a0, \$a1
-[      ]+13c:[         ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+13c: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x800
-[      ]+[     ]+[     ]+13c: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+13c: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+13c: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+13c: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+13c: R_LARCH_SOP_POP_32_S_5_20[       ]+\*ABS\*
-[      ]+140:[         ]+02c00084 [    ]+addi.d[       ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+140: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+140: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+140: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+140: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x804
-[      ]+[     ]+[     ]+140: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+140: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+140: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+140: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+140: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+140: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+140: R_LARCH_SOP_SUB[         ]+\*ABS\*
-[      ]+[     ]+[     ]+140: R_LARCH_SOP_POP_32_S_10_12[      ]+\*ABS\*
-[      ]+144:[         ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+144: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_
-[      ]+[     ]+[     ]+144: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+144: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+144: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x80000000
-[      ]+[     ]+[     ]+144: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+144: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+144: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+144: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+144: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+144: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+144: R_LARCH_SOP_SUB[         ]+\*ABS\*
-[      ]+[     ]+[     ]+144: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+144: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+144: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+144: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+144: R_LARCH_SOP_POP_32_S_5_20[       ]+\*ABS\*
-[      ]+148:[         ]+03800005 [    ]+ori[  ]+[     ]+\$a1, \$zero, 0x0
-[      ]+[     ]+[     ]+148: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+148: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+148: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+148: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x80000004
-[      ]+[     ]+[     ]+148: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+148: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+148: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+148: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+148: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+148: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+148: R_LARCH_SOP_SUB[         ]+\*ABS\*
-[      ]+[     ]+[     ]+148: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xfff
-[      ]+[     ]+[     ]+148: R_LARCH_SOP_AND[         ]+\*ABS\*
-[      ]+[     ]+[     ]+148: R_LARCH_SOP_POP_32_U_10_12[      ]+\*ABS\*
-[      ]+14c:[         ]+16000005 [    ]+lu32i.d[      ]+[     ]+\$a1, 0
-[      ]+[     ]+[     ]+14c: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x80000008
-[      ]+[     ]+[     ]+14c: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+14c: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+14c: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+14c: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+14c: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+14c: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+14c: R_LARCH_SOP_POP_32_S_5_20[       ]+\*ABS\*
-[      ]+150:[         ]+030000a5 [    ]+lu52i.d[      ]+[     ]+\$a1, \$a1, 0
-[      ]+[     ]+[     ]+150: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x8000000c
-[      ]+[     ]+[     ]+150: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+150: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+150: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x34
-[      ]+[     ]+[     ]+150: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+150: R_LARCH_SOP_POP_32_S_10_12[      ]+\*ABS\*
-[      ]+154:[         ]+00109484 [    ]+add.d[        ]+[     ]+\$a0, \$a0, \$a1
+00000000.* <.text>:
+[      ]+0:[   ]+00150004[     ]+move[         ]+\$a0,[        ]+\$zero
+[      ]+4:[   ]+02bffc04[     ]+addi.w[       ]+\$a0,[        ]+\$zero,[      ]+-1\(0xfff\)
+[      ]+8:[   ]+00150004[     ]+move[         ]+\$a0,[        ]+\$zero
+[      ]+c:[   ]+02bffc04[     ]+addi.w[       ]+\$a0,[        ]+\$zero,[      ]+-1\(0xfff\)
+[      ]+10:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+10:[  ]+R_LARCH_GOT_PC_HI20[  ]+.text
+[      ]+14:[  ]+28c00084[     ]+ld.d[         ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+14:[  ]+R_LARCH_GOT_PC_LO12[  ]+.text
+[      ]+18:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+18:[  ]+R_LARCH_GOT_PC_HI20[  ]+.text
+[      ]+1c:[  ]+28c00084[     ]+ld.d[         ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+1c:[  ]+R_LARCH_GOT_PC_LO12[  ]+.text
+[      ]+20:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+20:[  ]+R_LARCH_GOT_PC_HI20[  ]+.text
+[      ]+24:[  ]+02c00005[     ]+addi.d[       ]+\$a1,[        ]+\$zero,[      ]+0
+[      ]+24:[  ]+R_LARCH_GOT_PC_LO12[  ]+.text
+[      ]+28:[  ]+16000005[     ]+lu32i.d[      ]+\$a1,[        ]+0
+[      ]+28:[  ]+R_LARCH_GOT64_PC_LO20[        ]+.text
+[      ]+2c:[  ]+030000a5[     ]+lu52i.d[      ]+\$a1,[        ]+\$a1,[        ]+0
+[      ]+2c:[  ]+R_LARCH_GOT64_PC_HI12[        ]+.text
+[      ]+30:[  ]+380c1484[     ]+ldx.d[        ]+\$a0,[        ]+\$a0,[        ]+\$a1
+[      ]+34:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+34:[  ]+R_LARCH_GOT_PC_HI20[  ]+.text
+[      ]+38:[  ]+28c00084[     ]+ld.d[         ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+38:[  ]+R_LARCH_GOT_PC_LO12[  ]+.text
+[      ]+3c:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+3c:[  ]+R_LARCH_GOT_PC_HI20[  ]+.text
+[      ]+40:[  ]+02c00005[     ]+addi.d[       ]+\$a1,[        ]+\$zero,[      ]+0
+[      ]+40:[  ]+R_LARCH_GOT_PC_LO12[  ]+.text
+[      ]+44:[  ]+16000005[     ]+lu32i.d[      ]+\$a1,[        ]+0
+[      ]+44:[  ]+R_LARCH_GOT64_PC_LO20[        ]+.text
+[      ]+48:[  ]+030000a5[     ]+lu52i.d[      ]+\$a1,[        ]+\$a1,[        ]+0
+[      ]+48:[  ]+R_LARCH_GOT64_PC_HI12[        ]+.text
+[      ]+4c:[  ]+380c1484[     ]+ldx.d[        ]+\$a0,[        ]+\$a0,[        ]+\$a1
+[      ]+50:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+50:[  ]+R_LARCH_GOT_PC_HI20[  ]+.text
+[      ]+54:[  ]+28c00084[     ]+ld.d[         ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+54:[  ]+R_LARCH_GOT_PC_LO12[  ]+.text
+[      ]+58:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+58:[  ]+R_LARCH_GOT_PC_HI20[  ]+.text
+[      ]+5c:[  ]+02c00005[     ]+addi.d[       ]+\$a1,[        ]+\$zero,[      ]+0
+[      ]+5c:[  ]+R_LARCH_GOT_PC_LO12[  ]+.text
+[      ]+60:[  ]+16000005[     ]+lu32i.d[      ]+\$a1,[        ]+0
+[      ]+60:[  ]+R_LARCH_GOT64_PC_LO20[        ]+.text
+[      ]+64:[  ]+030000a5[     ]+lu52i.d[      ]+\$a1,[        ]+\$a1,[        ]+0
+[      ]+64:[  ]+R_LARCH_GOT64_PC_HI12[        ]+.text
+[      ]+68:[  ]+380c1484[     ]+ldx.d[        ]+\$a0,[        ]+\$a0,[        ]+\$a1
+[      ]+6c:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+6c:[  ]+R_LARCH_PCALA_HI20[   ]+.text
+[      ]+70:[  ]+02c00084[     ]+addi.d[       ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+70:[  ]+R_LARCH_PCALA_LO12[   ]+.text
+[      ]+74:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+74:[  ]+R_LARCH_PCALA_HI20[   ]+.text
+[      ]+78:[  ]+02c00005[     ]+addi.d[       ]+\$a1,[        ]+\$zero,[      ]+0
+[      ]+78:[  ]+R_LARCH_PCALA_LO12[   ]+.text
+[      ]+7c:[  ]+16000005[     ]+lu32i.d[      ]+\$a1,[        ]+0
+[      ]+7c:[  ]+R_LARCH_PCALA64_LO20[         ]+.text
+[      ]+80:[  ]+030000a5[     ]+lu52i.d[      ]+\$a1,[        ]+\$a1,[        ]+0
+[      ]+80:[  ]+R_LARCH_PCALA64_HI12[         ]+.text
+[      ]+84:[  ]+00109484[     ]+add.d[        ]+\$a0,[        ]+\$a0,[        ]+\$a1
+[      ]+88:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+88:[  ]+R_LARCH_PCALA_HI20[   ]+.text
+[      ]+8c:[  ]+02c00084[     ]+addi.d[       ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+8c:[  ]+R_LARCH_PCALA_LO12[   ]+.text
+[      ]+90:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+90:[  ]+R_LARCH_PCALA_HI20[   ]+.text
+[      ]+94:[  ]+02c00005[     ]+addi.d[       ]+\$a1,[        ]+\$zero,[      ]+0
+[      ]+94:[  ]+R_LARCH_PCALA_LO12[   ]+.text
+[      ]+98:[  ]+16000005[     ]+lu32i.d[      ]+\$a1,[        ]+0
+[      ]+98:[  ]+R_LARCH_PCALA64_LO20[         ]+.text
+[      ]+9c:[  ]+030000a5[     ]+lu52i.d[      ]+\$a1,[        ]+\$a1,[        ]+0
+[      ]+9c:[  ]+R_LARCH_PCALA64_HI12[         ]+.text
+[      ]+a0:[  ]+00109484[     ]+add.d[        ]+\$a0,[        ]+\$a0,[        ]+\$a1
+[      ]+a4:[  ]+14000004[     ]+lu12i.w[      ]+\$a0,[        ]+0
+[      ]+a4:[  ]+R_LARCH_MARK_LA[      ]+\*ABS\*
+[      ]+a4:[  ]+R_LARCH_ABS_HI20[     ]+.text
+[      ]+a8:[  ]+03800084[     ]+ori[  ]+\$a0,[        ]+\$a0,[        ]+0x0
+[      ]+a8:[  ]+R_LARCH_ABS_LO12[     ]+.text
+[      ]+ac:[  ]+16000004[     ]+lu32i.d[      ]+\$a0,[        ]+0
+[      ]+ac:[  ]+R_LARCH_ABS64_LO20[   ]+.text
+[      ]+b0:[  ]+03000084[     ]+lu52i.d[      ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+b0:[  ]+R_LARCH_ABS64_HI12[   ]+.text
+[      ]+b4:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+b4:[  ]+R_LARCH_PCALA_HI20[   ]+.text
+[      ]+b8:[  ]+02c00084[     ]+addi.d[       ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+b8:[  ]+R_LARCH_PCALA_LO12[   ]+.text
+[      ]+bc:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+bc:[  ]+R_LARCH_PCALA_HI20[   ]+.text
+[      ]+c0:[  ]+02c00084[     ]+addi.d[       ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+c0:[  ]+R_LARCH_PCALA_LO12[   ]+.text
+[      ]+c4:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+c4:[  ]+R_LARCH_PCALA_HI20[   ]+.text
+[      ]+c8:[  ]+02c00005[     ]+addi.d[       ]+\$a1,[        ]+\$zero,[      ]+0
+[      ]+c8:[  ]+R_LARCH_PCALA_LO12[   ]+.text
+[      ]+cc:[  ]+16000005[     ]+lu32i.d[      ]+\$a1,[        ]+0
+[      ]+cc:[  ]+R_LARCH_PCALA64_LO20[         ]+.text
+[      ]+d0:[  ]+030000a5[     ]+lu52i.d[      ]+\$a1,[        ]+\$a1,[        ]+0
+[      ]+d0:[  ]+R_LARCH_PCALA64_HI12[         ]+.text
+[      ]+d4:[  ]+00109484[     ]+add.d[        ]+\$a0,[        ]+\$a0,[        ]+\$a1
+[      ]+d8:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+d8:[  ]+R_LARCH_GOT_PC_HI20[  ]+.text
+[      ]+dc:[  ]+28c00084[     ]+ld.d[         ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+dc:[  ]+R_LARCH_GOT_PC_LO12[  ]+.text
+[      ]+e0:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+e0:[  ]+R_LARCH_GOT_PC_HI20[  ]+.text
+[      ]+e4:[  ]+02c00005[     ]+addi.d[       ]+\$a1,[        ]+\$zero,[      ]+0
+[      ]+e4:[  ]+R_LARCH_GOT_PC_LO12[  ]+.text
+[      ]+e8:[  ]+16000005[     ]+lu32i.d[      ]+\$a1,[        ]+0
+[      ]+e8:[  ]+R_LARCH_GOT64_PC_LO20[        ]+.text
+[      ]+ec:[  ]+030000a5[     ]+lu52i.d[      ]+\$a1,[        ]+\$a1,[        ]+0
+[      ]+ec:[  ]+R_LARCH_GOT64_PC_HI12[        ]+.text
+[      ]+f0:[  ]+380c1484[     ]+ldx.d[        ]+\$a0,[        ]+\$a0,[        ]+\$a1
+[      ]+f4:[  ]+14000004[     ]+lu12i.w[      ]+\$a0,[        ]+0
+[      ]+f4:[  ]+R_LARCH_TLS_LE_HI20[  ]+TLS1
+[      ]+f8:[  ]+03800084[     ]+ori[  ]+\$a0,[        ]+\$a0,[        ]+0x0
+[      ]+f8:[  ]+R_LARCH_TLS_LE_LO12[  ]+TLS1
+[      ]+fc:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+fc:[  ]+R_LARCH_TLS_IE_PC_HI20[       ]+TLS1
+[      ]+100:[         ]+28c00084[     ]+ld.d[         ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+100:[         ]+R_LARCH_TLS_IE_PC_LO12[       ]+TLS1
+[      ]+104:[         ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+104:[         ]+R_LARCH_TLS_IE_PC_HI20[       ]+TLS1
+[      ]+108:[         ]+02c00005[     ]+addi.d[       ]+\$a1,[        ]+\$zero,[      ]+0
+[      ]+108:[         ]+R_LARCH_TLS_IE_PC_LO12[       ]+TLS1
+[      ]+10c:[         ]+16000005[     ]+lu32i.d[      ]+\$a1,[        ]+0
+[      ]+10c:[         ]+R_LARCH_TLS_IE64_PC_LO20[     ]+TLS1
+[      ]+110:[         ]+030000a5[     ]+lu52i.d[      ]+\$a1,[        ]+\$a1,[        ]+0
+[      ]+110:[         ]+R_LARCH_TLS_IE64_PC_HI12[     ]+TLS1
+[      ]+114:[         ]+380c1484[     ]+ldx.d[        ]+\$a0,[        ]+\$a0,[        ]+\$a1
+[      ]+118:[         ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+118:[         ]+R_LARCH_TLS_LD_PC_HI20[       ]+TLS1
+[      ]+11c:[         ]+02c00084[     ]+addi.d[       ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+11c:[         ]+R_LARCH_GOT_PC_LO12[  ]+TLS1
+[      ]+120:[         ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+120:[         ]+R_LARCH_TLS_LD_PC_HI20[       ]+TLS1
+[      ]+124:[         ]+02c00005[     ]+addi.d[       ]+\$a1,[        ]+\$zero,[      ]+0
+[      ]+124:[         ]+R_LARCH_GOT_PC_LO12[  ]+TLS1
+[      ]+128:[         ]+16000005[     ]+lu32i.d[      ]+\$a1,[        ]+0
+[      ]+128:[         ]+R_LARCH_GOT64_PC_LO20[        ]+TLS1
+[      ]+12c:[         ]+030000a5[     ]+lu52i.d[      ]+\$a1,[        ]+\$a1,[        ]+0
+[      ]+12c:[         ]+R_LARCH_GOT64_PC_HI12[        ]+TLS1
+[      ]+130:[         ]+00109484[     ]+add.d[        ]+\$a0,[        ]+\$a0,[        ]+\$a1
+[      ]+134:[         ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+134:[         ]+R_LARCH_TLS_GD_PC_HI20[       ]+TLS1
+[      ]+138:[         ]+02c00084[     ]+addi.d[       ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+138:[         ]+R_LARCH_GOT_PC_LO12[  ]+TLS1
+[      ]+13c:[         ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+13c:[         ]+R_LARCH_TLS_GD_PC_HI20[       ]+TLS1
+[      ]+140:[         ]+02c00005[     ]+addi.d[       ]+\$a1,[        ]+\$zero,[      ]+0
+[      ]+140:[         ]+R_LARCH_GOT_PC_LO12[  ]+TLS1
+[      ]+144:[         ]+16000005[     ]+lu32i.d[      ]+\$a1,[        ]+0
+[      ]+144:[         ]+R_LARCH_GOT64_PC_LO20[        ]+TLS1
+[      ]+148:[         ]+030000a5[     ]+lu52i.d[      ]+\$a1,[        ]+\$a1,[        ]+0
+[      ]+148:[         ]+R_LARCH_GOT64_PC_HI12[        ]+TLS1
+[      ]+14c:[         ]+00109484[     ]+add.d[        ]+\$a0,[        ]+\$a0,[        ]+\$a1
index c15e364d4d088e64caa04b816fa5d13f146278b8..5cf066c36ff2c7ff23ec9a00bcbc079f0d260567 100644 (file)
@@ -1,29 +1,30 @@
 .L1:
-       li.w  $r4,0
-       li.w  $r4,0xffffffff
-       li.d  $r4,0
-       li.d  $r4,0xffffffffffffffff
-       la  $r4,L1
-       la.global  $r4,L1
-       la.global  $r4,$r5,L1
-       la.global  $r4,L1
-       la.global  $r4,$r5,L1
-       la.global  $r4,L1
-       la.global  $r4,$r5,L1
-       la.local  $r4,L1
-       la.local  $r4,$r5,L1
-       la.local  $r4,L1
-       la.local  $r4,$r5,L1
-       la.abs  $r4,L1
-       la.pcrel  $r4,L1
-       la.pcrel  $r4,L1
-       la.pcrel  $r4,$r5,L1
-       la.got  $r4,L1
-       la.got  $r4,$r5,L1
-       la.tls.le  $r4,L1
-       la.tls.ie  $r4,L1
-       la.tls.ie  $r4,$r5,L1
-       la.tls.ld  $r4,L1
-       la.tls.ld  $r4,$r5,L1
-       la.tls.gd  $r4,L1
-       la.tls.gd  $r4,$r5,L1
+li.w  $r4, 0
+li.w  $r4, 0xffffffff
+li.d  $r4, 0
+li.d  $r4, 0xffffffffffffffff
+la  $r4, .L1
+la.global  $r4, .L1
+la.global  $r4, $r5, .L1
+la.global  $r4, .L1
+la.global  $r4, $r5, .L1
+la.global  $r4, .L1
+la.global  $r4, $r5, .L1
+la.local  $r4, .L1
+la.local  $r4, $r5, .L1
+la.local  $r4, .L1
+la.local  $r4, $r5, .L1
+la.abs  $r4, .L1
+la.pcrel  $r4, .L1
+la.pcrel  $r4, .L1
+la.pcrel  $r4, $r5, .L1
+la.got  $r4, .L1
+la.got  $r4, $r5, .L1
+
+la.tls.le  $r4, TLS1
+la.tls.ie  $r4, TLS1
+la.tls.ie  $r4, $r5, TLS1
+la.tls.ld  $r4, TLS1
+la.tls.ld  $r4, $r5, TLS1
+la.tls.gd  $r4, TLS1
+la.tls.gd  $r4, $r5, TLS1
index 24906ecfd040c7bd00303a8bf4ae5f428715b475..145d852b2bee3beed4b7171bc5d362017dde35f3 100644 (file)
 #objdump: -dr
 #skip: loongarch64-*-*
 
-.*:[   ]+file format .*
+.*:[    ]+file format .*
 
 
 Disassembly of section .text:
 
-0+0 <.text>:
-[      ]+0:[   ]+00150004 [    ]+move[         ]+[     ]+\$a0, \$zero
-[      ]+4:[   ]+02bffc04 [    ]+addi.w[       ]+[     ]+\$a0, \$zero, -1\(0xfff\)
-[      ]+8:[   ]+00150004 [    ]+move[         ]+[     ]+\$a0, \$zero
-[      ]+c:[   ]+02bffc04 [    ]+addi.w[       ]+[     ]+\$a0, \$zero, -1\(0xfff\)
-[      ]+10:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+10: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x800
-[      ]+[     ]+[     ]+10: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+10: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+10: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+10: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+10: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+10: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+10: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+14:[  ]+28800084 [    ]+ld.w[         ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x804
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+14: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+18:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+18: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x800
-[      ]+[     ]+[     ]+18: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+18: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+18: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+18: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+18: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+18: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+18: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+1c:[  ]+28800084 [    ]+ld.w[         ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x804
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+1c: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+20:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\-0x80000000
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+20: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+24:[  ]+03800005 [    ]+ori[  ]+[     ]+\$a1, \$zero, 0x0
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\-0x7ffffffc
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xfff
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_AND[  ]+\*ABS\*
-[      ]+[     ]+[     ]+24: R_LARCH_SOP_POP_32_U_10_12[       ]+\*ABS\*
-[      ]+28:[  ]+16000005 [    ]+lu32i.d[      ]+[     ]+\$a1, 0
-[      ]+[     ]+[     ]+28: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\-0x7ffffff8
-[      ]+[     ]+[     ]+28: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+28: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+28: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+28: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+28: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+28: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+28: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+2c:[  ]+030000a5 [    ]+lu52i.d[      ]+[     ]+\$a1, \$a1, 0
-[      ]+[     ]+[     ]+2c: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\-0x7ffffff4
-[      ]+[     ]+[     ]+2c: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+2c: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+2c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x34
-[      ]+[     ]+[     ]+2c: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+2c: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+30:[  ]+380c1484 [    ]+ldx.d[        ]+[     ]+\$a0, \$a0, \$a1
-[      ]+34:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+34: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x800
-[      ]+[     ]+[     ]+34: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+34: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+34: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+34: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+34: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+34: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+34: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+38:[  ]+28800084 [    ]+ld.w[         ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x804
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+38: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+3c:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\-0x80000000
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+3c: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+40:[  ]+03800005 [    ]+ori[  ]+[     ]+\$a1, \$zero, 0x0
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\-0x7ffffffc
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xfff
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_AND[  ]+\*ABS\*
-[      ]+[     ]+[     ]+40: R_LARCH_SOP_POP_32_U_10_12[       ]+\*ABS\*
-[      ]+44:[  ]+16000005 [    ]+lu32i.d[      ]+[     ]+\$a1, 0
-[      ]+[     ]+[     ]+44: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\-0x7ffffff8
-[      ]+[     ]+[     ]+44: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+44: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+44: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+44: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+44: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+44: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+44: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+48:[  ]+030000a5 [    ]+lu52i.d[      ]+[     ]+\$a1, \$a1, 0
-[      ]+[     ]+[     ]+48: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\-0x7ffffff4
-[      ]+[     ]+[     ]+48: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+48: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+48: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x34
-[      ]+[     ]+[     ]+48: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+48: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+4c:[  ]+380c1484 [    ]+ldx.d[        ]+[     ]+\$a0, \$a0, \$a1
-[      ]+50:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+50: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x800
-[      ]+[     ]+[     ]+50: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+50: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+50: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+50: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+50: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+50: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+50: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+54:[  ]+28800084 [    ]+ld.w[         ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+54: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+54: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+54: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+54: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x804
-[      ]+[     ]+[     ]+54: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+54: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+54: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+54: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+54: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+54: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+54: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+54: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+58:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\-0x80000000
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+58: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+5c:[  ]+03800005 [    ]+ori[  ]+[     ]+\$a1, \$zero, 0x0
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\-0x7ffffffc
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xfff
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_AND[  ]+\*ABS\*
-[      ]+[     ]+[     ]+5c: R_LARCH_SOP_POP_32_U_10_12[       ]+\*ABS\*
-[      ]+60:[  ]+16000005 [    ]+lu32i.d[      ]+[     ]+\$a1, 0
-[      ]+[     ]+[     ]+60: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\-0x7ffffff8
-[      ]+[     ]+[     ]+60: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+60: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+60: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+60: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+60: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+60: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+60: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+64:[  ]+030000a5 [    ]+lu52i.d[      ]+[     ]+\$a1, \$a1, 0
-[      ]+[     ]+[     ]+64: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\-0x7ffffff4
-[      ]+[     ]+[     ]+64: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+64: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+64: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x34
-[      ]+[     ]+[     ]+64: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+64: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+68:[  ]+380c1484 [    ]+ldx.d[        ]+[     ]+\$a0, \$a0, \$a1
-[      ]+6c:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+6c: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x800
-[      ]+[     ]+[     ]+6c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+6c: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+6c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+6c: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+6c: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+70:[  ]+02800084 [    ]+addi.w[       ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+70: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x4
-[      ]+[     ]+[     ]+70: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x804
-[      ]+[     ]+[     ]+70: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+70: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+70: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+70: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+70: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+70: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+74:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+74: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+74: R_LARCH_SOP_PUSH_PCREL[   ]+L1\-0x80000000
-[      ]+[     ]+[     ]+74: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+74: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+74: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+74: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+74: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+74: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+74: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+74: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+74: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+74: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+78:[  ]+03800005 [    ]+ori[  ]+[     ]+\$a1, \$zero, 0x0
-[      ]+[     ]+[     ]+78: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x4
-[      ]+[     ]+[     ]+78: R_LARCH_SOP_PUSH_PCREL[   ]+L1\-0x7ffffffc
-[      ]+[     ]+[     ]+78: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+78: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+78: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+78: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+78: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+78: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xfff
-[      ]+[     ]+[     ]+78: R_LARCH_SOP_AND[  ]+\*ABS\*
-[      ]+[     ]+[     ]+78: R_LARCH_SOP_POP_32_U_10_12[       ]+\*ABS\*
-[      ]+7c:[  ]+16000005 [    ]+lu32i.d[      ]+[     ]+\$a1, 0
-[      ]+[     ]+[     ]+7c: R_LARCH_SOP_PUSH_PCREL[   ]+L1\-0x7ffffff8
-[      ]+[     ]+[     ]+7c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+7c: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+7c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+7c: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+7c: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+80:[  ]+030000a5 [    ]+lu52i.d[      ]+[     ]+\$a1, \$a1, 0
-[      ]+[     ]+[     ]+80: R_LARCH_SOP_PUSH_PCREL[   ]+L1\-0x7ffffff4
-[      ]+[     ]+[     ]+80: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x34
-[      ]+[     ]+[     ]+80: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+80: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+84:[  ]+00109484 [    ]+add.d[        ]+[     ]+\$a0, \$a0, \$a1
-[      ]+88:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+88: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x800
-[      ]+[     ]+[     ]+88: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+88: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+88: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+88: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+88: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+8c:[  ]+02800084 [    ]+addi.w[       ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+8c: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x4
-[      ]+[     ]+[     ]+8c: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x804
-[      ]+[     ]+[     ]+8c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+8c: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+8c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+8c: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+8c: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+8c: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+90:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+90: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+90: R_LARCH_SOP_PUSH_PCREL[   ]+L1\-0x80000000
-[      ]+[     ]+[     ]+90: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+90: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+90: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+90: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+90: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+90: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+90: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+90: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+90: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+90: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+94:[  ]+03800005 [    ]+ori[  ]+[     ]+\$a1, \$zero, 0x0
-[      ]+[     ]+[     ]+94: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x4
-[      ]+[     ]+[     ]+94: R_LARCH_SOP_PUSH_PCREL[   ]+L1\-0x7ffffffc
-[      ]+[     ]+[     ]+94: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+94: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+94: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+94: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+94: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+94: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xfff
-[      ]+[     ]+[     ]+94: R_LARCH_SOP_AND[  ]+\*ABS\*
-[      ]+[     ]+[     ]+94: R_LARCH_SOP_POP_32_U_10_12[       ]+\*ABS\*
-[      ]+98:[  ]+16000005 [    ]+lu32i.d[      ]+[     ]+\$a1, 0
-[      ]+[     ]+[     ]+98: R_LARCH_SOP_PUSH_PCREL[   ]+L1\-0x7ffffff8
-[      ]+[     ]+[     ]+98: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+98: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+98: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+98: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+98: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+9c:[  ]+030000a5 [    ]+lu52i.d[      ]+[     ]+\$a1, \$a1, 0
-[      ]+[     ]+[     ]+9c: R_LARCH_SOP_PUSH_PCREL[   ]+L1\-0x7ffffff4
-[      ]+[     ]+[     ]+9c: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x34
-[      ]+[     ]+[     ]+9c: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+9c: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+a0:[  ]+00109484 [    ]+add.d[        ]+[     ]+\$a0, \$a0, \$a1
-[      ]+a4:[  ]+14000004 [    ]+lu12i.w[      ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+a4: R_LARCH_MARK_LA[  ]+L1
-[      ]+[     ]+[     ]+a4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+L1
-[      ]+[     ]+[     ]+a4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+a4: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+a4: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+a8:[  ]+03800084 [    ]+ori[  ]+[     ]+\$a0, \$a0, 0x0
-[      ]+[     ]+[     ]+a8: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+L1
-[      ]+[     ]+[     ]+a8: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xfff
-[      ]+[     ]+[     ]+a8: R_LARCH_SOP_AND[  ]+\*ABS\*
-[      ]+[     ]+[     ]+a8: R_LARCH_SOP_POP_32_U_10_12[       ]+\*ABS\*
-[      ]+ac:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+ac: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x800
-[      ]+[     ]+[     ]+ac: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+ac: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+ac: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+ac: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+ac: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+b0:[  ]+02800084 [    ]+addi.w[       ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+b0: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x4
-[      ]+[     ]+[     ]+b0: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x804
-[      ]+[     ]+[     ]+b0: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+b0: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+b0: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+b0: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+b0: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+b0: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+b4:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+b4: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x800
-[      ]+[     ]+[     ]+b4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+b4: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+b4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+b4: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+b4: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+b8:[  ]+02800084 [    ]+addi.w[       ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+b8: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x4
-[      ]+[     ]+[     ]+b8: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x804
-[      ]+[     ]+[     ]+b8: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+b8: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+b8: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+b8: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+b8: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+b8: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+bc:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+bc: R_LARCH_SOP_PUSH_PCREL[   ]+L1
-[      ]+[     ]+[     ]+bc: R_LARCH_SOP_PUSH_PCREL[   ]+L1\-0x80000000
-[      ]+[     ]+[     ]+bc: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+bc: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+bc: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+bc: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+bc: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+bc: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+bc: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+bc: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+bc: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+bc: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+c0:[  ]+03800005 [    ]+ori[  ]+[     ]+\$a1, \$zero, 0x0
-[      ]+[     ]+[     ]+c0: R_LARCH_SOP_PUSH_PCREL[   ]+L1\+0x4
-[      ]+[     ]+[     ]+c0: R_LARCH_SOP_PUSH_PCREL[   ]+L1\-0x7ffffffc
-[      ]+[     ]+[     ]+c0: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+c0: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+c0: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+c0: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+c0: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+c0: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xfff
-[      ]+[     ]+[     ]+c0: R_LARCH_SOP_AND[  ]+\*ABS\*
-[      ]+[     ]+[     ]+c0: R_LARCH_SOP_POP_32_U_10_12[       ]+\*ABS\*
-[      ]+c4:[  ]+16000005 [    ]+lu32i.d[      ]+[     ]+\$a1, 0
-[      ]+[     ]+[     ]+c4: R_LARCH_SOP_PUSH_PCREL[   ]+L1\-0x7ffffff8
-[      ]+[     ]+[     ]+c4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+c4: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+c4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+c4: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+c4: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+c8:[  ]+030000a5 [    ]+lu52i.d[      ]+[     ]+\$a1, \$a1, 0
-[      ]+[     ]+[     ]+c8: R_LARCH_SOP_PUSH_PCREL[   ]+L1\-0x7ffffff4
-[      ]+[     ]+[     ]+c8: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x34
-[      ]+[     ]+[     ]+c8: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+c8: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+cc:[  ]+00109484 [    ]+add.d[        ]+[     ]+\$a0, \$a0, \$a1
-[      ]+d0:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+d0: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x800
-[      ]+[     ]+[     ]+d0: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+d0: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+d0: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+d0: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+d0: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+d0: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+d0: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+d4:[  ]+28800084 [    ]+ld.w[         ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+d4: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+d4: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+d4: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+d4: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x804
-[      ]+[     ]+[     ]+d4: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+d4: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+d4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+d4: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+d4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+d4: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+d4: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+d4: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+d8:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+d8: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_
-[      ]+[     ]+[     ]+d8: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+d8: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+d8: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\-0x80000000
-[      ]+[     ]+[     ]+d8: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+d8: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+d8: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+d8: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+d8: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+d8: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+d8: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+d8: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+d8: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+d8: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+d8: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+d8: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+dc:[  ]+03800005 [    ]+ori[  ]+[     ]+\$a1, \$zero, 0x0
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\-0x7ffffffc
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xfff
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_AND[  ]+\*ABS\*
-[      ]+[     ]+[     ]+dc: R_LARCH_SOP_POP_32_U_10_12[       ]+\*ABS\*
-[      ]+e0:[  ]+16000005 [    ]+lu32i.d[      ]+[     ]+\$a1, 0
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\-0x7ffffff8
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+e0: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+e4:[  ]+030000a5 [    ]+lu52i.d[      ]+[     ]+\$a1, \$a1, 0
-[      ]+[     ]+[     ]+e4: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\-0x7ffffff4
-[      ]+[     ]+[     ]+e4: R_LARCH_SOP_PUSH_GPREL[   ]+L1
-[      ]+[     ]+[     ]+e4: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+e4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x34
-[      ]+[     ]+[     ]+e4: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+e4: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+e8:[  ]+380c1484 [    ]+ldx.d[        ]+[     ]+\$a0, \$a0, \$a1
-[      ]+ec:[  ]+14000004 [    ]+lu12i.w[      ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+ec: R_LARCH_SOP_PUSH_TLS_TPREL[       ]+L1
-[      ]+[     ]+[     ]+ec: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+ec: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+ec: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+f0:[  ]+03800084 [    ]+ori[  ]+[     ]+\$a0, \$a0, 0x0
-[      ]+[     ]+[     ]+f0: R_LARCH_SOP_PUSH_TLS_TPREL[       ]+L1
-[      ]+[     ]+[     ]+f0: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xfff
-[      ]+[     ]+[     ]+f0: R_LARCH_SOP_AND[  ]+\*ABS\*
-[      ]+[     ]+[     ]+f0: R_LARCH_SOP_POP_32_U_10_12[       ]+\*ABS\*
-[      ]+f4:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+f4: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x800
-[      ]+[     ]+[     ]+f4: R_LARCH_SOP_PUSH_TLS_GOT[         ]+L1
-[      ]+[     ]+[     ]+f4: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+f4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+f4: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+f4: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+f4: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+f4: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+f8:[  ]+28800084 [    ]+ld.w[         ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+f8: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+f8: R_LARCH_SOP_PUSH_TLS_GOT[         ]+L1
-[      ]+[     ]+[     ]+f8: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+f8: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\+0x804
-[      ]+[     ]+[     ]+f8: R_LARCH_SOP_PUSH_TLS_GOT[         ]+L1
-[      ]+[     ]+[     ]+f8: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+f8: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+f8: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+f8: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+f8: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+f8: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+f8: R_LARCH_SOP_POP_32_S_10_12[       ]+\*ABS\*
-[      ]+fc:[  ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+fc: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_
-[      ]+[     ]+[     ]+fc: R_LARCH_SOP_PUSH_TLS_GOT[         ]+L1
-[      ]+[     ]+[     ]+fc: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+fc: R_LARCH_SOP_PUSH_PCREL[   ]+_GLOBAL_OFFSET_TABLE_\-0x80000000
-[      ]+[     ]+[     ]+fc: R_LARCH_SOP_PUSH_TLS_GOT[         ]+L1
-[      ]+[     ]+[     ]+fc: R_LARCH_SOP_ADD[  ]+\*ABS\*
-[      ]+[     ]+[     ]+fc: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+fc: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+fc: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+fc: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+fc: R_LARCH_SOP_SUB[  ]+\*ABS\*
-[      ]+[     ]+[     ]+fc: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+fc: R_LARCH_SOP_SL[   ]+\*ABS\*
-[      ]+[     ]+[     ]+fc: R_LARCH_SOP_PUSH_ABSOLUTE[        ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+fc: R_LARCH_SOP_SR[   ]+\*ABS\*
-[      ]+[     ]+[     ]+fc: R_LARCH_SOP_POP_32_S_5_20[        ]+\*ABS\*
-[      ]+100:[         ]+03800005 [    ]+ori[  ]+[     ]+\$a1, \$zero, 0x0
-[      ]+[     ]+[     ]+100: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+100: R_LARCH_SOP_PUSH_TLS_GOT[        ]+L1
-[      ]+[     ]+[     ]+100: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+100: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\-0x7ffffffc
-[      ]+[     ]+[     ]+100: R_LARCH_SOP_PUSH_TLS_GOT[        ]+L1
-[      ]+[     ]+[     ]+100: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+100: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+100: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+100: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+100: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+100: R_LARCH_SOP_SUB[         ]+\*ABS\*
-[      ]+[     ]+[     ]+100: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xfff
-[      ]+[     ]+[     ]+100: R_LARCH_SOP_AND[         ]+\*ABS\*
-[      ]+[     ]+[     ]+100: R_LARCH_SOP_POP_32_U_10_12[      ]+\*ABS\*
-[      ]+104:[         ]+16000005 [    ]+lu32i.d[      ]+[     ]+\$a1, 0
-[      ]+[     ]+[     ]+104: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\-0x7ffffff8
-[      ]+[     ]+[     ]+104: R_LARCH_SOP_PUSH_TLS_GOT[        ]+L1
-[      ]+[     ]+[     ]+104: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+104: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+104: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+104: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+104: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+104: R_LARCH_SOP_POP_32_S_5_20[       ]+\*ABS\*
-[      ]+108:[         ]+030000a5 [    ]+lu52i.d[      ]+[     ]+\$a1, \$a1, 0
-[      ]+[     ]+[     ]+108: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\-0x7ffffff4
-[      ]+[     ]+[     ]+108: R_LARCH_SOP_PUSH_TLS_GOT[        ]+L1
-[      ]+[     ]+[     ]+108: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+108: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x34
-[      ]+[     ]+[     ]+108: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+108: R_LARCH_SOP_POP_32_S_10_12[      ]+\*ABS\*
-[      ]+10c:[         ]+380c1484 [    ]+ldx.d[        ]+[     ]+\$a0, \$a0, \$a1
-[      ]+110:[         ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+110: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x800
-[      ]+[     ]+[     ]+110: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+110: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+110: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+110: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+110: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+110: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+110: R_LARCH_SOP_POP_32_S_5_20[       ]+\*ABS\*
-[      ]+114:[         ]+02800084 [    ]+addi.w[       ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+114: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+114: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+114: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+114: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x804
-[      ]+[     ]+[     ]+114: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+114: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+114: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+114: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+114: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+114: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+114: R_LARCH_SOP_SUB[         ]+\*ABS\*
-[      ]+[     ]+[     ]+114: R_LARCH_SOP_POP_32_S_10_12[      ]+\*ABS\*
-[      ]+118:[         ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+118: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_
-[      ]+[     ]+[     ]+118: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+118: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+118: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\-0x80000000
-[      ]+[     ]+[     ]+118: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+118: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+118: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+118: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+118: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+118: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+118: R_LARCH_SOP_SUB[         ]+\*ABS\*
-[      ]+[     ]+[     ]+118: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+118: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+118: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+118: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+118: R_LARCH_SOP_POP_32_S_5_20[       ]+\*ABS\*
-[      ]+11c:[         ]+03800005 [    ]+ori[  ]+[     ]+\$a1, \$zero, 0x0
-[      ]+[     ]+[     ]+11c: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+11c: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+11c: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+11c: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\-0x7ffffffc
-[      ]+[     ]+[     ]+11c: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+11c: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+11c: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+11c: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+11c: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+11c: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+11c: R_LARCH_SOP_SUB[         ]+\*ABS\*
-[      ]+[     ]+[     ]+11c: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xfff
-[      ]+[     ]+[     ]+11c: R_LARCH_SOP_AND[         ]+\*ABS\*
-[      ]+[     ]+[     ]+11c: R_LARCH_SOP_POP_32_U_10_12[      ]+\*ABS\*
-[      ]+120:[         ]+16000005 [    ]+lu32i.d[      ]+[     ]+\$a1, 0
-[      ]+[     ]+[     ]+120: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\-0x7ffffff8
-[      ]+[     ]+[     ]+120: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+120: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+120: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+120: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+120: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+120: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+120: R_LARCH_SOP_POP_32_S_5_20[       ]+\*ABS\*
-[      ]+124:[         ]+030000a5 [    ]+lu52i.d[      ]+[     ]+\$a1, \$a1, 0
-[      ]+[     ]+[     ]+124: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\-0x7ffffff4
-[      ]+[     ]+[     ]+124: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+124: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+124: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x34
-[      ]+[     ]+[     ]+124: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+124: R_LARCH_SOP_POP_32_S_10_12[      ]+\*ABS\*
-[      ]+128:[         ]+00109484 [    ]+add.d[        ]+[     ]+\$a0, \$a0, \$a1
-[      ]+12c:[         ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+12c: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x800
-[      ]+[     ]+[     ]+12c: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+12c: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+12c: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+12c: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+12c: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+12c: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+12c: R_LARCH_SOP_POP_32_S_5_20[       ]+\*ABS\*
-[      ]+130:[         ]+02800084 [    ]+addi.w[       ]+[     ]+\$a0, \$a0, 0
-[      ]+[     ]+[     ]+130: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+130: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+130: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+130: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x804
-[      ]+[     ]+[     ]+130: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+130: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+130: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+130: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+130: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+130: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+130: R_LARCH_SOP_SUB[         ]+\*ABS\*
-[      ]+[     ]+[     ]+130: R_LARCH_SOP_POP_32_S_10_12[      ]+\*ABS\*
-[      ]+134:[         ]+1c000004 [    ]+pcaddu12i[    ]+[     ]+\$a0, 0
-[      ]+[     ]+[     ]+134: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_
-[      ]+[     ]+[     ]+134: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+134: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+134: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\-0x80000000
-[      ]+[     ]+[     ]+134: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+134: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+134: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+134: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+134: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+134: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+134: R_LARCH_SOP_SUB[         ]+\*ABS\*
-[      ]+[     ]+[     ]+134: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+134: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+134: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+134: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+134: R_LARCH_SOP_POP_32_S_5_20[       ]+\*ABS\*
-[      ]+138:[         ]+03800005 [    ]+ori[  ]+[     ]+\$a1, \$zero, 0x0
-[      ]+[     ]+[     ]+138: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\+0x4
-[      ]+[     ]+[     ]+138: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+138: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+138: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\-0x7ffffffc
-[      ]+[     ]+[     ]+138: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+138: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+138: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+138: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+138: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x20
-[      ]+[     ]+[     ]+138: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+138: R_LARCH_SOP_SUB[         ]+\*ABS\*
-[      ]+[     ]+[     ]+138: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xfff
-[      ]+[     ]+[     ]+138: R_LARCH_SOP_AND[         ]+\*ABS\*
-[      ]+[     ]+[     ]+138: R_LARCH_SOP_POP_32_U_10_12[      ]+\*ABS\*
-[      ]+13c:[         ]+16000005 [    ]+lu32i.d[      ]+[     ]+\$a1, 0
-[      ]+[     ]+[     ]+13c: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\-0x7ffffff8
-[      ]+[     ]+[     ]+13c: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+13c: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+13c: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0xc
-[      ]+[     ]+[     ]+13c: R_LARCH_SOP_SL[  ]+\*ABS\*
-[      ]+[     ]+[     ]+13c: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x2c
-[      ]+[     ]+[     ]+13c: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+13c: R_LARCH_SOP_POP_32_S_5_20[       ]+\*ABS\*
-[      ]+140:[         ]+030000a5 [    ]+lu52i.d[      ]+[     ]+\$a1, \$a1, 0
-[      ]+[     ]+[     ]+140: R_LARCH_SOP_PUSH_PCREL[  ]+_GLOBAL_OFFSET_TABLE_\-0x7ffffff4
-[      ]+[     ]+[     ]+140: R_LARCH_SOP_PUSH_TLS_GD[         ]+L1
-[      ]+[     ]+[     ]+140: R_LARCH_SOP_ADD[         ]+\*ABS\*
-[      ]+[     ]+[     ]+140: R_LARCH_SOP_PUSH_ABSOLUTE[       ]+\*ABS\*\+0x34
-[      ]+[     ]+[     ]+140: R_LARCH_SOP_SR[  ]+\*ABS\*
-[      ]+[     ]+[     ]+140: R_LARCH_SOP_POP_32_S_10_12[      ]+\*ABS\*
-[      ]+144:[         ]+00109484 [    ]+add.d[        ]+[     ]+\$a0, \$a0, \$a1
+00000000.* <.text>:
+[      ]+0:[   ]+00150004[     ]+move[         ]+\$a0,[        ]+\$zero
+[      ]+4:[   ]+02bffc04[     ]+addi.w[       ]+\$a0,[        ]+\$zero,[      ]+-1\(0xfff\)
+[      ]+8:[   ]+00150004[     ]+move[         ]+\$a0,[        ]+\$zero
+[      ]+c:[   ]+02bffc04[     ]+addi.w[       ]+\$a0,[        ]+\$zero,[      ]+-1\(0xfff\)
+[      ]+10:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+10:[  ]+R_LARCH_GOT_PC_HI20[  ]+.text
+[      ]+14:[  ]+28800084[     ]+ld.w[         ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+14:[  ]+R_LARCH_GOT_PC_LO12[  ]+.text
+[      ]+18:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+18:[  ]+R_LARCH_GOT_PC_HI20[  ]+.text
+[      ]+1c:[  ]+28800084[     ]+ld.w[         ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+1c:[  ]+R_LARCH_GOT_PC_LO12[  ]+.text
+[      ]+20:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+20:[  ]+R_LARCH_PCALA_HI20[   ]+.text
+[      ]+24:[  ]+02800084[     ]+addi.w[       ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+24:[  ]+R_LARCH_PCALA_LO12[   ]+.text
+[      ]+28:[  ]+14000004[     ]+lu12i.w[      ]+\$a0,[        ]+0
+[      ]+28:[  ]+R_LARCH_MARK_LA[      ]+\*ABS\*
+[      ]+28:[  ]+R_LARCH_ABS_HI20[     ]+.text
+[      ]+2c:[  ]+03800084[     ]+ori[  ]+\$a0,[        ]+\$a0,[        ]+0x0
+[      ]+2c:[  ]+R_LARCH_ABS_LO12[     ]+.text
+[      ]+30:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+30:[  ]+R_LARCH_PCALA_HI20[   ]+.text
+[      ]+34:[  ]+02800084[     ]+addi.w[       ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+34:[  ]+R_LARCH_PCALA_LO12[   ]+.text
+[      ]+38:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+38:[  ]+R_LARCH_GOT_PC_HI20[  ]+.text
+[      ]+3c:[  ]+28800084[     ]+ld.w[         ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+3c:[  ]+R_LARCH_GOT_PC_LO12[  ]+.text
+[      ]+40:[  ]+14000004[     ]+lu12i.w[      ]+\$a0,[        ]+0
+[      ]+40:[  ]+R_LARCH_TLS_LE_HI20[  ]+TLS1
+[      ]+44:[  ]+03800084[     ]+ori[  ]+\$a0,[        ]+\$a0,[        ]+0x0
+[      ]+44:[  ]+R_LARCH_TLS_LE_LO12[  ]+TLS1
+[      ]+48:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+48:[  ]+R_LARCH_TLS_IE_PC_HI20[       ]+TLS1
+[      ]+4c:[  ]+28800084[     ]+ld.w[         ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+4c:[  ]+R_LARCH_TLS_IE_PC_LO12[       ]+TLS1
+[      ]+50:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+50:[  ]+R_LARCH_TLS_LD_PC_HI20[       ]+TLS1
+[      ]+54:[  ]+02800084[     ]+addi.w[       ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+54:[  ]+R_LARCH_GOT_PC_LO12[  ]+TLS1
+[      ]+58:[  ]+1a000004[     ]+pcalau12i[    ]+\$a0,[        ]+0
+[      ]+58:[  ]+R_LARCH_TLS_GD_PC_HI20[       ]+TLS1
+[      ]+5c:[  ]+02800084[     ]+addi.w[       ]+\$a0,[        ]+\$a0,[        ]+0
+[      ]+5c:[  ]+R_LARCH_GOT_PC_LO12[  ]+TLS1
index 2e26b6b3f9b07949c1e3537db4d7f4bb3d3e5f5a..7f19565e156bd3776b078a0a255438ff2803b33d 100644 (file)
@@ -1,29 +1,16 @@
 .L1:
-       li.w  $r4,0
-       li.w  $r4,0xffffffff
-       li.w  $r4,0
-       li.w  $r4,0xffffffff
-       la  $r4,L1
-       la.global  $r4,L1
-       la.global  $r4,$r5,L1
-       la.global  $r4,L1
-       la.global  $r4,$r5,L1
-       la.global  $r4,L1
-       la.global  $r4,$r5,L1
-       la.local  $r4,L1
-       la.local  $r4,$r5,L1
-       la.local  $r4,L1
-       la.local  $r4,$r5,L1
-       la.abs  $r4,L1
-       la.pcrel  $r4,L1
-       la.pcrel  $r4,L1
-       la.pcrel  $r4,$r5,L1
-       la.got  $r4,L1
-       la.got  $r4,$r5,L1
-       la.tls.le  $r4,L1
-       la.tls.ie  $r4,L1
-       la.tls.ie  $r4,$r5,L1
-       la.tls.ld  $r4,L1
-       la.tls.ld  $r4,$r5,L1
-       la.tls.gd  $r4,L1
-       la.tls.gd  $r4,$r5,L1
+       li.w  $r4, 0
+       li.w  $r4, 0xffffffff
+       li.w  $r4, 0
+       li.w  $r4, 0xffffffff
+       la  $r4, .L1
+       la.global  $r4, .L1
+       la.local  $r4, .L1
+       la.abs  $r4, .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
diff --git a/ld/testsuite/ld-loongarch-elf/nopic-global-so.rd b/ld/testsuite/ld-loongarch-elf/nopic-global-so.rd
new file mode 100644 (file)
index 0000000..2bcc718
--- /dev/null
@@ -0,0 +1,5 @@
+Relocation section '.rela.dyn'.*
+ +Offset +Info +Type +Sym\. +Value +Sym\. +Name +\+ +Addend
+#...
+[0-9a-f]+ +[0-9a-f]+ +R_LARCH_64 +[0-9a-f]+ +g_nopic +\+ +[0-9]
+#pass
diff --git a/ld/testsuite/ld-loongarch-elf/nopic-global-so.sd b/ld/testsuite/ld-loongarch-elf/nopic-global-so.sd
new file mode 100644 (file)
index 0000000..c0e7a66
--- /dev/null
@@ -0,0 +1,10 @@
+Symbol table '\.dynsym' contains [0-9]+ entries:
+ +Num: +Value +Size +Type +Bind +Vis +Ndx +Name
+#...
+ +[0-9]+: +[0-9a-f]+ +[0-9] +OBJECT +GLOBAL +DEFAULT +UND+ +g_nopic
+#...
+Symbol table '\.symtab' contains [0-9]+ entries:
+ +Num: +Value +Size +Type +Bind +Vis +Ndx +Name
+#...
+ +[0-9]+: +[0-9a-f]+ +[0-9] +OBJECT +GLOBAL +DEFAULT +UND+ +g_nopic
+#pass
diff --git a/ld/testsuite/ld-loongarch-elf/nopic-global.out b/ld/testsuite/ld-loongarch-elf/nopic-global.out
new file mode 100644 (file)
index 0000000..3a179f6
--- /dev/null
@@ -0,0 +1 @@
+0x12345678
diff --git a/ld/testsuite/ld-loongarch-elf/nopic-global.s b/ld/testsuite/ld-loongarch-elf/nopic-global.s
new file mode 100644 (file)
index 0000000..189fa67
--- /dev/null
@@ -0,0 +1,373 @@
+       .file   "nopic-global.c"
+       .text
+.Ltext0:
+       .file 1 "nopic-global.c"
+       .section        .rodata
+       .align  3
+.LC0:
+       .ascii  "0x%x\012\000"
+       .text
+       .align  2
+       .globl  main
+       .type   main, @function
+main:
+.LFB6 = .
+       .loc 1 7 1
+       .cfi_startproc
+       addi.d  $r3,$r3,-16
+       .cfi_def_cfa_offset 16
+       st.d    $r1,$r3,8
+       stptr.d $r22,$r3,0
+       .cfi_offset 1, -8
+       .cfi_offset 22, -16
+       addi.d  $r22,$r3,16
+       .cfi_def_cfa 22, 0
+       .loc 1 8 15
+       pcalau12i       $r12,%got_pc_hi20(g_nopic)
+       ld.d    $r12,$r12,%got_pc_lo12(g_nopic)
+       ldptr.w $r12,$r12,0
+       .loc 1 8 6
+       or      $r13,$r12,$r0
+       lu12i.w $r12,305418240>>12                      # 0x12345000
+       ori     $r12,$r12,1656
+       bne     $r13,$r12,.L2
+       .loc 1 9 5
+       pcalau12i       $r12,%got_pc_hi20(g_nopic)
+       ld.d    $r12,$r12,%got_pc_lo12(g_nopic)
+       ldptr.w $r12,$r12,0
+       or      $r5,$r12,$r0
+       pcalau12i       $r12,%pc_hi20(.LC0)
+       addi.d  $r4,$r12,%pc_lo12(.LC0)
+       bl      %plt(printf)
+       b       .L5
+.L2:
+       .loc 1 11 5
+       bl      %plt(abort)
+.L5:
+       .loc 1 12 10
+       or      $r12,$r0,$r0
+       .loc 1 13 1
+       or      $r4,$r12,$r0
+       ld.d    $r1,$r3,8
+       .cfi_restore 1
+       ldptr.d $r22,$r3,0
+       .cfi_restore 22
+       addi.d  $r3,$r3,16
+       .cfi_def_cfa_register 3
+       jr      $r1
+       .cfi_endproc
+.LFE6:
+       .size   main, .-main
+.Letext0:
+       .file 2 "/usr/include/stdlib.h"
+       .file 3 "/usr/include/stdio.h"
+       .section        .debug_info,"",@progbits
+.Ldebug_info0:
+       .4byte  0xce
+       .2byte  0x5
+       .byte   0x1
+       .byte   0x8
+       .4byte  .Ldebug_abbrev0
+       .uleb128 0x2
+       .4byte  .LASF10
+       .byte   0x1d
+       .4byte  .LASF11
+       .4byte  .LASF12
+       .8byte  .Ltext0
+       .8byte  .Letext0-.Ltext0
+       .4byte  .Ldebug_line0
+       .uleb128 0x1
+       .byte   0x8
+       .byte   0x7
+       .4byte  .LASF0
+       .uleb128 0x1
+       .byte   0x1
+       .byte   0x8
+       .4byte  .LASF1
+       .uleb128 0x1
+       .byte   0x2
+       .byte   0x7
+       .4byte  .LASF2
+       .uleb128 0x1
+       .byte   0x4
+       .byte   0x7
+       .4byte  .LASF3
+       .uleb128 0x1
+       .byte   0x1
+       .byte   0x6
+       .4byte  .LASF4
+       .uleb128 0x1
+       .byte   0x2
+       .byte   0x5
+       .4byte  .LASF5
+       .uleb128 0x3
+       .byte   0x4
+       .byte   0x5
+       .ascii  "int\000"
+       .uleb128 0x1
+       .byte   0x8
+       .byte   0x5
+       .4byte  .LASF6
+       .uleb128 0x1
+       .byte   0x1
+       .byte   0x6
+       .4byte  .LASF7
+       .uleb128 0x4
+       .4byte  0x66
+       .uleb128 0x1
+       .byte   0x8
+       .byte   0x5
+       .4byte  .LASF8
+       .uleb128 0x1
+       .byte   0x8
+       .byte   0x7
+       .4byte  .LASF9
+       .uleb128 0x5
+       .4byte  .LASF13
+       .byte   0x1
+       .byte   0x4
+       .byte   0xc
+       .4byte  0x58
+       .uleb128 0x6
+       .4byte  .LASF14
+       .byte   0x2
+       .2byte  0x256
+       .byte   0xd
+       .uleb128 0x7
+       .4byte  .LASF15
+       .byte   0x3
+       .2byte  0x164
+       .byte   0xc
+       .4byte  0x58
+       .4byte  0xad
+       .uleb128 0x8
+       .4byte  0xad
+       .uleb128 0x9
+       .byte   0
+       .uleb128 0xa
+       .byte   0x8
+       .4byte  0x6d
+       .uleb128 0xb
+       .4byte  .LASF16
+       .byte   0x1
+       .byte   0x6
+       .byte   0x5
+       .4byte  0x58
+       .8byte  .LFB6
+       .8byte  .LFE6-.LFB6
+       .uleb128 0x1
+       .byte   0x9c
+       .byte   0
+       .section        .debug_abbrev,"",@progbits
+.Ldebug_abbrev0:
+       .uleb128 0x1
+       .uleb128 0x24
+       .byte   0
+       .uleb128 0xb
+       .uleb128 0xb
+       .uleb128 0x3e
+       .uleb128 0xb
+       .uleb128 0x3
+       .uleb128 0xe
+       .byte   0
+       .byte   0
+       .uleb128 0x2
+       .uleb128 0x11
+       .byte   0x1
+       .uleb128 0x25
+       .uleb128 0xe
+       .uleb128 0x13
+       .uleb128 0xb
+       .uleb128 0x3
+       .uleb128 0xe
+       .uleb128 0x1b
+       .uleb128 0xe
+       .uleb128 0x11
+       .uleb128 0x1
+       .uleb128 0x12
+       .uleb128 0x7
+       .uleb128 0x10
+       .uleb128 0x17
+       .byte   0
+       .byte   0
+       .uleb128 0x3
+       .uleb128 0x24
+       .byte   0
+       .uleb128 0xb
+       .uleb128 0xb
+       .uleb128 0x3e
+       .uleb128 0xb
+       .uleb128 0x3
+       .uleb128 0x8
+       .byte   0
+       .byte   0
+       .uleb128 0x4
+       .uleb128 0x26
+       .byte   0
+       .uleb128 0x49
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x5
+       .uleb128 0x34
+       .byte   0
+       .uleb128 0x3
+       .uleb128 0xe
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x39
+       .uleb128 0xb
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3c
+       .uleb128 0x19
+       .byte   0
+       .byte   0
+       .uleb128 0x6
+       .uleb128 0x2e
+       .byte   0
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0xe
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0x5
+       .uleb128 0x39
+       .uleb128 0xb
+       .uleb128 0x27
+       .uleb128 0x19
+       .uleb128 0x87
+       .uleb128 0x19
+       .uleb128 0x3c
+       .uleb128 0x19
+       .byte   0
+       .byte   0
+       .uleb128 0x7
+       .uleb128 0x2e
+       .byte   0x1
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0xe
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0x5
+       .uleb128 0x39
+       .uleb128 0xb
+       .uleb128 0x27
+       .uleb128 0x19
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x3c
+       .uleb128 0x19
+       .uleb128 0x1
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x8
+       .uleb128 0x5
+       .byte   0
+       .uleb128 0x49
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x9
+       .uleb128 0x18
+       .byte   0
+       .byte   0
+       .byte   0
+       .uleb128 0xa
+       .uleb128 0xf
+       .byte   0
+       .uleb128 0xb
+       .uleb128 0xb
+       .uleb128 0x49
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0xb
+       .uleb128 0x2e
+       .byte   0
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0xe
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x39
+       .uleb128 0xb
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x11
+       .uleb128 0x1
+       .uleb128 0x12
+       .uleb128 0x7
+       .uleb128 0x40
+       .uleb128 0x18
+       .uleb128 0x7c
+       .uleb128 0x19
+       .byte   0
+       .byte   0
+       .byte   0
+       .section        .debug_aranges,"",@progbits
+       .4byte  0x2c
+       .2byte  0x2
+       .4byte  .Ldebug_info0
+       .byte   0x8
+       .byte   0
+       .2byte  0
+       .2byte  0
+       .8byte  .Ltext0
+       .8byte  .Letext0-.Ltext0
+       .8byte  0
+       .8byte  0
+       .section        .debug_line,"",@progbits
+.Ldebug_line0:
+       .section        .debug_str,"MS",@progbits,1
+.LASF8:
+       .ascii  "long long int\000"
+.LASF3:
+       .ascii  "unsigned int\000"
+.LASF11:
+       .ascii  "nopic-global.c\000"
+.LASF0:
+       .ascii  "long unsigned int\000"
+.LASF9:
+       .ascii  "long long unsigned int\000"
+.LASF10:
+       .ascii  "GNU C17 13.0.0 20220512 (experimental) -mabi=lp64d -marc"
+       .ascii  "h=loongarch64 -mfpu=64 -mcmodel=normal -mtune=la464 -g -"
+       .ascii  "O0\000"
+.LASF1:
+       .ascii  "unsigned char\000"
+.LASF12:
+       .ascii  "/home/liuzhensong/test/ld/nopic/test/global_var\000"
+.LASF7:
+       .ascii  "char\000"
+.LASF6:
+       .ascii  "long int\000"
+.LASF13:
+       .ascii  "g_nopic\000"
+.LASF2:
+       .ascii  "short unsigned int\000"
+.LASF15:
+       .ascii  "printf\000"
+.LASF16:
+       .ascii  "main\000"
+.LASF14:
+       .ascii  "abort\000"
+.LASF5:
+       .ascii  "short int\000"
+.LASF4:
+       .ascii  "signed char\000"
+       .ident  "GCC: (GNU) 13.0.0 20220512 (experimental)"
+       .section        .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-loongarch-elf/nopic-global.sd b/ld/testsuite/ld-loongarch-elf/nopic-global.sd
new file mode 100644 (file)
index 0000000..605206a
--- /dev/null
@@ -0,0 +1,5 @@
+Symbol table '\.symtab' contains [0-9]+ entries:
+ +Num: +Value +Size +Type +Bind +Vis +Ndx +Name
+#...
+ +[0-9]: +[0-9]+ +[0-9] +OBJECT +GLOBAL +DEFAULT +[0-9] +g_nopic
+#xpass
diff --git a/ld/testsuite/ld-loongarch-elf/nopic-global.xd b/ld/testsuite/ld-loongarch-elf/nopic-global.xd
new file mode 100644 (file)
index 0000000..d013066
--- /dev/null
@@ -0,0 +1,3 @@
+Hex dump of section '\.data':
+ +0x[0-9]+ +78563412.*
+#pass
diff --git a/ld/testsuite/ld-loongarch-elf/nopic-local.out b/ld/testsuite/ld-loongarch-elf/nopic-local.out
new file mode 100644 (file)
index 0000000..3a179f6
--- /dev/null
@@ -0,0 +1 @@
+0x12345678
diff --git a/ld/testsuite/ld-loongarch-elf/nopic-local.rd b/ld/testsuite/ld-loongarch-elf/nopic-local.rd
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/ld/testsuite/ld-loongarch-elf/nopic-local.s b/ld/testsuite/ld-loongarch-elf/nopic-local.s
new file mode 100644 (file)
index 0000000..4a496f0
--- /dev/null
@@ -0,0 +1,383 @@
+       .file   "nopic-local.c"
+       .text
+.Ltext0:
+       .file 1 "nopic-local.c"
+       .globl  g_nopic
+       .data
+       .align  2
+       .type   g_nopic, @object
+       .size   g_nopic, 4
+g_nopic:
+       .word   305419896
+       .section        .rodata
+       .align  3
+.LC0:
+       .ascii  "0x%x\012\000"
+       .text
+       .align  2
+       .globl  main
+       .type   main, @function
+main:
+.LFB6 = .
+       .loc 1 7 1
+       .cfi_startproc
+       addi.d  $r3,$r3,-16
+       .cfi_def_cfa_offset 16
+       st.d    $r1,$r3,8
+       stptr.d $r22,$r3,0
+       .cfi_offset 1, -8
+       .cfi_offset 22, -16
+       addi.d  $r22,$r3,16
+       .cfi_def_cfa 22, 0
+       .loc 1 8 15
+       pcalau12i       $r12,%pc_hi20(g_nopic)
+       addi.d  $r12,$r12,%pc_lo12(g_nopic)
+       ldptr.w $r12,$r12,0
+       .loc 1 8 6
+       or      $r13,$r12,$r0
+       lu12i.w $r12,305418240>>12                      # 0x12345000
+       ori     $r12,$r12,1656
+       bne     $r13,$r12,.L2
+       .loc 1 9 5
+       pcalau12i       $r12,%pc_hi20(g_nopic)
+       addi.d  $r12,$r12,%pc_lo12(g_nopic)
+       ldptr.w $r12,$r12,0
+       or      $r5,$r12,$r0
+       pcalau12i       $r12,%pc_hi20(.LC0)
+       addi.d  $r4,$r12,%pc_lo12(.LC0)
+       bl      %plt(printf)
+       b       .L5
+.L2:
+       .loc 1 11 5
+       bl      %plt(abort)
+.L5:
+       .loc 1 12 10
+       or      $r12,$r0,$r0
+       .loc 1 13 1
+       or      $r4,$r12,$r0
+       ld.d    $r1,$r3,8
+       .cfi_restore 1
+       ldptr.d $r22,$r3,0
+       .cfi_restore 22
+       addi.d  $r3,$r3,16
+       .cfi_def_cfa_register 3
+       jr      $r1
+       .cfi_endproc
+.LFE6:
+       .size   main, .-main
+.Letext0:
+       .file 2 "/usr/include/stdlib.h"
+       .file 3 "/usr/include/stdio.h"
+       .section        .debug_info,"",@progbits
+.Ldebug_info0:
+       .4byte  0xd8
+       .2byte  0x5
+       .byte   0x1
+       .byte   0x8
+       .4byte  .Ldebug_abbrev0
+       .uleb128 0x2
+       .4byte  .LASF10
+       .byte   0x1d
+       .4byte  .LASF11
+       .4byte  .LASF12
+       .8byte  .Ltext0
+       .8byte  .Letext0-.Ltext0
+       .4byte  .Ldebug_line0
+       .uleb128 0x1
+       .byte   0x8
+       .byte   0x7
+       .4byte  .LASF0
+       .uleb128 0x1
+       .byte   0x1
+       .byte   0x8
+       .4byte  .LASF1
+       .uleb128 0x1
+       .byte   0x2
+       .byte   0x7
+       .4byte  .LASF2
+       .uleb128 0x1
+       .byte   0x4
+       .byte   0x7
+       .4byte  .LASF3
+       .uleb128 0x1
+       .byte   0x1
+       .byte   0x6
+       .4byte  .LASF4
+       .uleb128 0x1
+       .byte   0x2
+       .byte   0x5
+       .4byte  .LASF5
+       .uleb128 0x3
+       .byte   0x4
+       .byte   0x5
+       .ascii  "int\000"
+       .uleb128 0x1
+       .byte   0x8
+       .byte   0x5
+       .4byte  .LASF6
+       .uleb128 0x1
+       .byte   0x1
+       .byte   0x6
+       .4byte  .LASF7
+       .uleb128 0x4
+       .4byte  0x66
+       .uleb128 0x1
+       .byte   0x8
+       .byte   0x5
+       .4byte  .LASF8
+       .uleb128 0x1
+       .byte   0x8
+       .byte   0x7
+       .4byte  .LASF9
+       .uleb128 0x5
+       .4byte  .LASF13
+       .byte   0x1
+       .byte   0x4
+       .byte   0x5
+       .4byte  0x58
+       .uleb128 0x9
+       .byte   0x3
+       .8byte  g_nopic
+       .uleb128 0x6
+       .4byte  .LASF14
+       .byte   0x2
+       .2byte  0x256
+       .byte   0xd
+       .uleb128 0x7
+       .4byte  .LASF15
+       .byte   0x3
+       .2byte  0x164
+       .byte   0xc
+       .4byte  0x58
+       .4byte  0xb7
+       .uleb128 0x8
+       .4byte  0xb7
+       .uleb128 0x9
+       .byte   0
+       .uleb128 0xa
+       .byte   0x8
+       .4byte  0x6d
+       .uleb128 0xb
+       .4byte  .LASF16
+       .byte   0x1
+       .byte   0x6
+       .byte   0x5
+       .4byte  0x58
+       .8byte  .LFB6
+       .8byte  .LFE6-.LFB6
+       .uleb128 0x1
+       .byte   0x9c
+       .byte   0
+       .section        .debug_abbrev,"",@progbits
+.Ldebug_abbrev0:
+       .uleb128 0x1
+       .uleb128 0x24
+       .byte   0
+       .uleb128 0xb
+       .uleb128 0xb
+       .uleb128 0x3e
+       .uleb128 0xb
+       .uleb128 0x3
+       .uleb128 0xe
+       .byte   0
+       .byte   0
+       .uleb128 0x2
+       .uleb128 0x11
+       .byte   0x1
+       .uleb128 0x25
+       .uleb128 0xe
+       .uleb128 0x13
+       .uleb128 0xb
+       .uleb128 0x3
+       .uleb128 0xe
+       .uleb128 0x1b
+       .uleb128 0xe
+       .uleb128 0x11
+       .uleb128 0x1
+       .uleb128 0x12
+       .uleb128 0x7
+       .uleb128 0x10
+       .uleb128 0x17
+       .byte   0
+       .byte   0
+       .uleb128 0x3
+       .uleb128 0x24
+       .byte   0
+       .uleb128 0xb
+       .uleb128 0xb
+       .uleb128 0x3e
+       .uleb128 0xb
+       .uleb128 0x3
+       .uleb128 0x8
+       .byte   0
+       .byte   0
+       .uleb128 0x4
+       .uleb128 0x26
+       .byte   0
+       .uleb128 0x49
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x5
+       .uleb128 0x34
+       .byte   0
+       .uleb128 0x3
+       .uleb128 0xe
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x39
+       .uleb128 0xb
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x2
+       .uleb128 0x18
+       .byte   0
+       .byte   0
+       .uleb128 0x6
+       .uleb128 0x2e
+       .byte   0
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0xe
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0x5
+       .uleb128 0x39
+       .uleb128 0xb
+       .uleb128 0x27
+       .uleb128 0x19
+       .uleb128 0x87
+       .uleb128 0x19
+       .uleb128 0x3c
+       .uleb128 0x19
+       .byte   0
+       .byte   0
+       .uleb128 0x7
+       .uleb128 0x2e
+       .byte   0x1
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0xe
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0x5
+       .uleb128 0x39
+       .uleb128 0xb
+       .uleb128 0x27
+       .uleb128 0x19
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x3c
+       .uleb128 0x19
+       .uleb128 0x1
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x8
+       .uleb128 0x5
+       .byte   0
+       .uleb128 0x49
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x9
+       .uleb128 0x18
+       .byte   0
+       .byte   0
+       .byte   0
+       .uleb128 0xa
+       .uleb128 0xf
+       .byte   0
+       .uleb128 0xb
+       .uleb128 0xb
+       .uleb128 0x49
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0xb
+       .uleb128 0x2e
+       .byte   0
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0xe
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x39
+       .uleb128 0xb
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x11
+       .uleb128 0x1
+       .uleb128 0x12
+       .uleb128 0x7
+       .uleb128 0x40
+       .uleb128 0x18
+       .uleb128 0x7c
+       .uleb128 0x19
+       .byte   0
+       .byte   0
+       .byte   0
+       .section        .debug_aranges,"",@progbits
+       .4byte  0x2c
+       .2byte  0x2
+       .4byte  .Ldebug_info0
+       .byte   0x8
+       .byte   0
+       .2byte  0
+       .2byte  0
+       .8byte  .Ltext0
+       .8byte  .Letext0-.Ltext0
+       .8byte  0
+       .8byte  0
+       .section        .debug_line,"",@progbits
+.Ldebug_line0:
+       .section        .debug_str,"MS",@progbits,1
+.LASF8:
+       .ascii  "long long int\000"
+.LASF3:
+       .ascii  "unsigned int\000"
+.LASF16:
+       .ascii  "main\000"
+.LASF0:
+       .ascii  "long unsigned int\000"
+.LASF9:
+       .ascii  "long long unsigned int\000"
+.LASF11:
+       .ascii  "nopic-local.c\000"
+.LASF10:
+       .ascii  "GNU C17 13.0.0 20220512 (experimental) -mabi=lp64d -marc"
+       .ascii  "h=loongarch64 -mfpu=64 -mcmodel=normal -mtune=la464 -g -"
+       .ascii  "O0\000"
+.LASF1:
+       .ascii  "unsigned char\000"
+.LASF7:
+       .ascii  "char\000"
+.LASF6:
+       .ascii  "long int\000"
+.LASF13:
+       .ascii  "g_nopic\000"
+.LASF2:
+       .ascii  "short unsigned int\000"
+.LASF15:
+       .ascii  "printf\000"
+.LASF12:
+       .ascii  "/home/liuzhensong/test/ld/nopic/test/local_var\000"
+.LASF14:
+       .ascii  "abort\000"
+.LASF5:
+       .ascii  "short int\000"
+.LASF4:
+       .ascii  "signed char\000"
+       .ident  "GCC: (GNU) 13.0.0 20220512 (experimental)"
+       .section        .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-loongarch-elf/nopic-local.sd b/ld/testsuite/ld-loongarch-elf/nopic-local.sd
new file mode 100644 (file)
index 0000000..2dd16be
--- /dev/null
@@ -0,0 +1,5 @@
+Symbol table '\.symtab' contains [0-9]+ entries:
+ +Num: +Value +Size +Type +Bind +Vis +Ndx +Name
+#...
+ +[0-9]: +[0-9]+ +[0-9] +OBJECT +GLOBAL +DEFAULT +[0-9] +g_nopic
+#pass
diff --git a/ld/testsuite/ld-loongarch-elf/nopic-local.xd b/ld/testsuite/ld-loongarch-elf/nopic-local.xd
new file mode 100644 (file)
index 0000000..d013066
--- /dev/null
@@ -0,0 +1,3 @@
+Hex dump of section '\.data':
+ +0x[0-9]+ +78563412.*
+#pass
diff --git a/ld/testsuite/ld-loongarch-elf/nopic-weak-global-so.rd b/ld/testsuite/ld-loongarch-elf/nopic-weak-global-so.rd
new file mode 100644 (file)
index 0000000..2c32a54
--- /dev/null
@@ -0,0 +1,5 @@
+Relocation section '.rela.dyn'.*
+ +Offset +Info +Type +Sym\. +Value +Sym\. +Name +\+ +Addend
+#...
+[0-9a-f]+ +[0-9a-f]+ +R_LARCH_64 +[0-9a-f]+ +g_nopic +\+ +[0-9a-f]
+#...
diff --git a/ld/testsuite/ld-loongarch-elf/nopic-weak-global-so.sd b/ld/testsuite/ld-loongarch-elf/nopic-weak-global-so.sd
new file mode 100644 (file)
index 0000000..4745ff7
--- /dev/null
@@ -0,0 +1,10 @@
+Symbol table '\.dynsym' contains [0-9]+ entries:
+ +Num: +Value +Size +Type +Bind +Vis +Ndx +Name
+#...
+ +[0-9]+: +[0-9]+ +[0-9] +OBJECT +WEAK +DEFAULT +UND +g_nopic
+#...
+Symbol table '\.symtab' contains [0-9]+ entries:
+ +Num: +Value +Size +Type +Bind +Vis +Ndx +Name
+#...
+ +[0-9]+: +[0-9]+ +[0-9] +OBJECT +WEAK +DEFAULT +UND +g_nopic
+#...
diff --git a/ld/testsuite/ld-loongarch-elf/nopic-weak-global.out b/ld/testsuite/ld-loongarch-elf/nopic-weak-global.out
new file mode 100644 (file)
index 0000000..3a179f6
--- /dev/null
@@ -0,0 +1 @@
+0x12345678
diff --git a/ld/testsuite/ld-loongarch-elf/nopic-weak-global.s b/ld/testsuite/ld-loongarch-elf/nopic-weak-global.s
new file mode 100644 (file)
index 0000000..298780a
--- /dev/null
@@ -0,0 +1,374 @@
+       .file   "nopic-weak-global.c"
+       .text
+.Ltext0:
+       .file 1 "nopic-weak-global.c"
+       .section        .rodata
+       .align  3
+.LC0:
+       .ascii  "0x%x\012\000"
+       .text
+       .align  2
+       .globl  main
+       .type   main, @function
+main:
+.LFB6 = .
+       .loc 1 7 1
+       .cfi_startproc
+       addi.d  $r3,$r3,-16
+       .cfi_def_cfa_offset 16
+       st.d    $r1,$r3,8
+       stptr.d $r22,$r3,0
+       .cfi_offset 1, -8
+       .cfi_offset 22, -16
+       addi.d  $r22,$r3,16
+       .cfi_def_cfa 22, 0
+       .loc 1 8 15
+       pcalau12i       $r12,%got_pc_hi20(g_nopic)
+       ld.d    $r12,$r12,%got_pc_lo12(g_nopic)
+       ldptr.w $r12,$r12,0
+       .loc 1 8 6
+       or      $r13,$r12,$r0
+       lu12i.w $r12,305418240>>12                      # 0x12345000
+       ori     $r12,$r12,1656
+       bne     $r13,$r12,.L2
+       .loc 1 9 5
+       pcalau12i       $r12,%got_pc_hi20(g_nopic)
+       ld.d    $r12,$r12,%got_pc_lo12(g_nopic)
+       ldptr.w $r12,$r12,0
+       or      $r5,$r12,$r0
+       pcalau12i       $r12,%pc_hi20(.LC0)
+       addi.d  $r4,$r12,%pc_lo12(.LC0)
+       bl      %plt(printf)
+       b       .L5
+.L2:
+       .loc 1 11 5
+       bl      %plt(abort)
+.L5:
+       .loc 1 12 10
+       or      $r12,$r0,$r0
+       .loc 1 13 1
+       or      $r4,$r12,$r0
+       ld.d    $r1,$r3,8
+       .cfi_restore 1
+       ldptr.d $r22,$r3,0
+       .cfi_restore 22
+       addi.d  $r3,$r3,16
+       .cfi_def_cfa_register 3
+       jr      $r1
+       .cfi_endproc
+.LFE6:
+       .size   main, .-main
+       .weak   g_nopic
+.Letext0:
+       .file 2 "/usr/include/stdlib.h"
+       .file 3 "/usr/include/stdio.h"
+       .section        .debug_info,"",@progbits
+.Ldebug_info0:
+       .4byte  0xce
+       .2byte  0x5
+       .byte   0x1
+       .byte   0x8
+       .4byte  .Ldebug_abbrev0
+       .uleb128 0x2
+       .4byte  .LASF10
+       .byte   0x1d
+       .4byte  .LASF11
+       .4byte  .LASF12
+       .8byte  .Ltext0
+       .8byte  .Letext0-.Ltext0
+       .4byte  .Ldebug_line0
+       .uleb128 0x1
+       .byte   0x8
+       .byte   0x7
+       .4byte  .LASF0
+       .uleb128 0x1
+       .byte   0x1
+       .byte   0x8
+       .4byte  .LASF1
+       .uleb128 0x1
+       .byte   0x2
+       .byte   0x7
+       .4byte  .LASF2
+       .uleb128 0x1
+       .byte   0x4
+       .byte   0x7
+       .4byte  .LASF3
+       .uleb128 0x1
+       .byte   0x1
+       .byte   0x6
+       .4byte  .LASF4
+       .uleb128 0x1
+       .byte   0x2
+       .byte   0x5
+       .4byte  .LASF5
+       .uleb128 0x3
+       .byte   0x4
+       .byte   0x5
+       .ascii  "int\000"
+       .uleb128 0x1
+       .byte   0x8
+       .byte   0x5
+       .4byte  .LASF6
+       .uleb128 0x1
+       .byte   0x1
+       .byte   0x6
+       .4byte  .LASF7
+       .uleb128 0x4
+       .4byte  0x66
+       .uleb128 0x1
+       .byte   0x8
+       .byte   0x5
+       .4byte  .LASF8
+       .uleb128 0x1
+       .byte   0x8
+       .byte   0x7
+       .4byte  .LASF9
+       .uleb128 0x5
+       .4byte  .LASF13
+       .byte   0x1
+       .byte   0x4
+       .byte   0x22
+       .4byte  0x58
+       .uleb128 0x6
+       .4byte  .LASF14
+       .byte   0x2
+       .2byte  0x256
+       .byte   0xd
+       .uleb128 0x7
+       .4byte  .LASF15
+       .byte   0x3
+       .2byte  0x164
+       .byte   0xc
+       .4byte  0x58
+       .4byte  0xad
+       .uleb128 0x8
+       .4byte  0xad
+       .uleb128 0x9
+       .byte   0
+       .uleb128 0xa
+       .byte   0x8
+       .4byte  0x6d
+       .uleb128 0xb
+       .4byte  .LASF16
+       .byte   0x1
+       .byte   0x6
+       .byte   0x5
+       .4byte  0x58
+       .8byte  .LFB6
+       .8byte  .LFE6-.LFB6
+       .uleb128 0x1
+       .byte   0x9c
+       .byte   0
+       .section        .debug_abbrev,"",@progbits
+.Ldebug_abbrev0:
+       .uleb128 0x1
+       .uleb128 0x24
+       .byte   0
+       .uleb128 0xb
+       .uleb128 0xb
+       .uleb128 0x3e
+       .uleb128 0xb
+       .uleb128 0x3
+       .uleb128 0xe
+       .byte   0
+       .byte   0
+       .uleb128 0x2
+       .uleb128 0x11
+       .byte   0x1
+       .uleb128 0x25
+       .uleb128 0xe
+       .uleb128 0x13
+       .uleb128 0xb
+       .uleb128 0x3
+       .uleb128 0xe
+       .uleb128 0x1b
+       .uleb128 0xe
+       .uleb128 0x11
+       .uleb128 0x1
+       .uleb128 0x12
+       .uleb128 0x7
+       .uleb128 0x10
+       .uleb128 0x17
+       .byte   0
+       .byte   0
+       .uleb128 0x3
+       .uleb128 0x24
+       .byte   0
+       .uleb128 0xb
+       .uleb128 0xb
+       .uleb128 0x3e
+       .uleb128 0xb
+       .uleb128 0x3
+       .uleb128 0x8
+       .byte   0
+       .byte   0
+       .uleb128 0x4
+       .uleb128 0x26
+       .byte   0
+       .uleb128 0x49
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x5
+       .uleb128 0x34
+       .byte   0
+       .uleb128 0x3
+       .uleb128 0xe
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x39
+       .uleb128 0xb
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3c
+       .uleb128 0x19
+       .byte   0
+       .byte   0
+       .uleb128 0x6
+       .uleb128 0x2e
+       .byte   0
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0xe
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0x5
+       .uleb128 0x39
+       .uleb128 0xb
+       .uleb128 0x27
+       .uleb128 0x19
+       .uleb128 0x87
+       .uleb128 0x19
+       .uleb128 0x3c
+       .uleb128 0x19
+       .byte   0
+       .byte   0
+       .uleb128 0x7
+       .uleb128 0x2e
+       .byte   0x1
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0xe
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0x5
+       .uleb128 0x39
+       .uleb128 0xb
+       .uleb128 0x27
+       .uleb128 0x19
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x3c
+       .uleb128 0x19
+       .uleb128 0x1
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x8
+       .uleb128 0x5
+       .byte   0
+       .uleb128 0x49
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x9
+       .uleb128 0x18
+       .byte   0
+       .byte   0
+       .byte   0
+       .uleb128 0xa
+       .uleb128 0xf
+       .byte   0
+       .uleb128 0xb
+       .uleb128 0xb
+       .uleb128 0x49
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0xb
+       .uleb128 0x2e
+       .byte   0
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0xe
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x39
+       .uleb128 0xb
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x11
+       .uleb128 0x1
+       .uleb128 0x12
+       .uleb128 0x7
+       .uleb128 0x40
+       .uleb128 0x18
+       .uleb128 0x7c
+       .uleb128 0x19
+       .byte   0
+       .byte   0
+       .byte   0
+       .section        .debug_aranges,"",@progbits
+       .4byte  0x2c
+       .2byte  0x2
+       .4byte  .Ldebug_info0
+       .byte   0x8
+       .byte   0
+       .2byte  0
+       .2byte  0
+       .8byte  .Ltext0
+       .8byte  .Letext0-.Ltext0
+       .8byte  0
+       .8byte  0
+       .section        .debug_line,"",@progbits
+.Ldebug_line0:
+       .section        .debug_str,"MS",@progbits,1
+.LASF8:
+       .ascii  "long long int\000"
+.LASF3:
+       .ascii  "unsigned int\000"
+.LASF16:
+       .ascii  "main\000"
+.LASF0:
+       .ascii  "long unsigned int\000"
+.LASF9:
+       .ascii  "long long unsigned int\000"
+.LASF10:
+       .ascii  "GNU C17 13.0.0 20220512 (experimental) -mabi=lp64d -marc"
+       .ascii  "h=loongarch64 -mfpu=64 -mcmodel=normal -mtune=la464 -g -"
+       .ascii  "O0\000"
+.LASF1:
+       .ascii  "unsigned char\000"
+.LASF12:
+       .ascii  "/home/liuzhensong/test/ld/nopic/test/global_var\000"
+.LASF7:
+       .ascii  "char\000"
+.LASF6:
+       .ascii  "long int\000"
+.LASF13:
+       .ascii  "g_nopic\000"
+.LASF2:
+       .ascii  "short unsigned int\000"
+.LASF15:
+       .ascii  "printf\000"
+.LASF14:
+       .ascii  "abort\000"
+.LASF5:
+       .ascii  "short int\000"
+.LASF11:
+       .ascii  "nopic-weak-global.c\000"
+.LASF4:
+       .ascii  "signed char\000"
+       .ident  "GCC: (GNU) 13.0.0 20220512 (experimental)"
+       .section        .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-loongarch-elf/nopic-weak-global.sd b/ld/testsuite/ld-loongarch-elf/nopic-weak-global.sd
new file mode 100644 (file)
index 0000000..f4634d2
--- /dev/null
@@ -0,0 +1,5 @@
+#xfail: *-*-*
+Symbol table '\.symtab' contains [0-9]+ entries:
+ +Num: +Value +Size +Type +Bind +Vis +Ndx +Name
+#...
+ +[0-9]: +[0-9]+ +[0-9] +OBJECT +GLOBAL +DEFAULT +[0-9] +g_nopic
diff --git a/ld/testsuite/ld-loongarch-elf/nopic-weak-global.xd b/ld/testsuite/ld-loongarch-elf/nopic-weak-global.xd
new file mode 100644 (file)
index 0000000..d013066
--- /dev/null
@@ -0,0 +1,3 @@
+Hex dump of section '\.data':
+ +0x[0-9]+ +78563412.*
+#pass
diff --git a/ld/testsuite/ld-loongarch-elf/nopic-weak-local.out b/ld/testsuite/ld-loongarch-elf/nopic-weak-local.out
new file mode 100644 (file)
index 0000000..3a179f6
--- /dev/null
@@ -0,0 +1 @@
+0x12345678
diff --git a/ld/testsuite/ld-loongarch-elf/nopic-weak-local.rd b/ld/testsuite/ld-loongarch-elf/nopic-weak-local.rd
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/ld/testsuite/ld-loongarch-elf/nopic-weak-local.s b/ld/testsuite/ld-loongarch-elf/nopic-weak-local.s
new file mode 100644 (file)
index 0000000..00a4b61
--- /dev/null
@@ -0,0 +1,383 @@
+       .file   "nopic-weak-local.c"
+       .text
+.Ltext0:
+       .file 1 "nopic-weak-local.c"
+       .weak   g_nopic
+       .data
+       .align  2
+       .type   g_nopic, @object
+       .size   g_nopic, 4
+g_nopic:
+       .word   305419896
+       .section        .rodata
+       .align  3
+.LC0:
+       .ascii  "0x%x\012\000"
+       .text
+       .align  2
+       .globl  main
+       .type   main, @function
+main:
+.LFB6 = .
+       .loc 1 7 1
+       .cfi_startproc
+       addi.d  $r3,$r3,-16
+       .cfi_def_cfa_offset 16
+       st.d    $r1,$r3,8
+       stptr.d $r22,$r3,0
+       .cfi_offset 1, -8
+       .cfi_offset 22, -16
+       addi.d  $r22,$r3,16
+       .cfi_def_cfa 22, 0
+       .loc 1 8 15
+       pcalau12i       $r12,%pc_hi20(g_nopic)
+       addi.d  $r12,$r12,%pc_lo12(g_nopic)
+       ldptr.w $r12,$r12,0
+       .loc 1 8 6
+       or      $r13,$r12,$r0
+       lu12i.w $r12,305418240>>12                      # 0x12345000
+       ori     $r12,$r12,1656
+       bne     $r13,$r12,.L2
+       .loc 1 9 5
+       pcalau12i       $r12,%pc_hi20(g_nopic)
+       addi.d  $r12,$r12,%pc_lo12(g_nopic)
+       ldptr.w $r12,$r12,0
+       or      $r5,$r12,$r0
+       pcalau12i       $r12,%pc_hi20(.LC0)
+       addi.d  $r4,$r12,%pc_lo12(.LC0)
+       bl      %plt(printf)
+       b       .L5
+.L2:
+       .loc 1 11 5
+       bl      %plt(abort)
+.L5:
+       .loc 1 12 10
+       or      $r12,$r0,$r0
+       .loc 1 13 1
+       or      $r4,$r12,$r0
+       ld.d    $r1,$r3,8
+       .cfi_restore 1
+       ldptr.d $r22,$r3,0
+       .cfi_restore 22
+       addi.d  $r3,$r3,16
+       .cfi_def_cfa_register 3
+       jr      $r1
+       .cfi_endproc
+.LFE6:
+       .size   main, .-main
+.Letext0:
+       .file 2 "/usr/include/stdlib.h"
+       .file 3 "/usr/include/stdio.h"
+       .section        .debug_info,"",@progbits
+.Ldebug_info0:
+       .4byte  0xd8
+       .2byte  0x5
+       .byte   0x1
+       .byte   0x8
+       .4byte  .Ldebug_abbrev0
+       .uleb128 0x2
+       .4byte  .LASF10
+       .byte   0x1d
+       .4byte  .LASF11
+       .4byte  .LASF12
+       .8byte  .Ltext0
+       .8byte  .Letext0-.Ltext0
+       .4byte  .Ldebug_line0
+       .uleb128 0x1
+       .byte   0x8
+       .byte   0x7
+       .4byte  .LASF0
+       .uleb128 0x1
+       .byte   0x1
+       .byte   0x8
+       .4byte  .LASF1
+       .uleb128 0x1
+       .byte   0x2
+       .byte   0x7
+       .4byte  .LASF2
+       .uleb128 0x1
+       .byte   0x4
+       .byte   0x7
+       .4byte  .LASF3
+       .uleb128 0x1
+       .byte   0x1
+       .byte   0x6
+       .4byte  .LASF4
+       .uleb128 0x1
+       .byte   0x2
+       .byte   0x5
+       .4byte  .LASF5
+       .uleb128 0x3
+       .byte   0x4
+       .byte   0x5
+       .ascii  "int\000"
+       .uleb128 0x1
+       .byte   0x8
+       .byte   0x5
+       .4byte  .LASF6
+       .uleb128 0x1
+       .byte   0x1
+       .byte   0x6
+       .4byte  .LASF7
+       .uleb128 0x4
+       .4byte  0x66
+       .uleb128 0x1
+       .byte   0x8
+       .byte   0x5
+       .4byte  .LASF8
+       .uleb128 0x1
+       .byte   0x8
+       .byte   0x7
+       .4byte  .LASF9
+       .uleb128 0x5
+       .4byte  .LASF13
+       .byte   0x1
+       .byte   0x4
+       .byte   0x1b
+       .4byte  0x58
+       .uleb128 0x9
+       .byte   0x3
+       .8byte  g_nopic
+       .uleb128 0x6
+       .4byte  .LASF14
+       .byte   0x2
+       .2byte  0x256
+       .byte   0xd
+       .uleb128 0x7
+       .4byte  .LASF15
+       .byte   0x3
+       .2byte  0x164
+       .byte   0xc
+       .4byte  0x58
+       .4byte  0xb7
+       .uleb128 0x8
+       .4byte  0xb7
+       .uleb128 0x9
+       .byte   0
+       .uleb128 0xa
+       .byte   0x8
+       .4byte  0x6d
+       .uleb128 0xb
+       .4byte  .LASF16
+       .byte   0x1
+       .byte   0x6
+       .byte   0x5
+       .4byte  0x58
+       .8byte  .LFB6
+       .8byte  .LFE6-.LFB6
+       .uleb128 0x1
+       .byte   0x9c
+       .byte   0
+       .section        .debug_abbrev,"",@progbits
+.Ldebug_abbrev0:
+       .uleb128 0x1
+       .uleb128 0x24
+       .byte   0
+       .uleb128 0xb
+       .uleb128 0xb
+       .uleb128 0x3e
+       .uleb128 0xb
+       .uleb128 0x3
+       .uleb128 0xe
+       .byte   0
+       .byte   0
+       .uleb128 0x2
+       .uleb128 0x11
+       .byte   0x1
+       .uleb128 0x25
+       .uleb128 0xe
+       .uleb128 0x13
+       .uleb128 0xb
+       .uleb128 0x3
+       .uleb128 0xe
+       .uleb128 0x1b
+       .uleb128 0xe
+       .uleb128 0x11
+       .uleb128 0x1
+       .uleb128 0x12
+       .uleb128 0x7
+       .uleb128 0x10
+       .uleb128 0x17
+       .byte   0
+       .byte   0
+       .uleb128 0x3
+       .uleb128 0x24
+       .byte   0
+       .uleb128 0xb
+       .uleb128 0xb
+       .uleb128 0x3e
+       .uleb128 0xb
+       .uleb128 0x3
+       .uleb128 0x8
+       .byte   0
+       .byte   0
+       .uleb128 0x4
+       .uleb128 0x26
+       .byte   0
+       .uleb128 0x49
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x5
+       .uleb128 0x34
+       .byte   0
+       .uleb128 0x3
+       .uleb128 0xe
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x39
+       .uleb128 0xb
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x2
+       .uleb128 0x18
+       .byte   0
+       .byte   0
+       .uleb128 0x6
+       .uleb128 0x2e
+       .byte   0
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0xe
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0x5
+       .uleb128 0x39
+       .uleb128 0xb
+       .uleb128 0x27
+       .uleb128 0x19
+       .uleb128 0x87
+       .uleb128 0x19
+       .uleb128 0x3c
+       .uleb128 0x19
+       .byte   0
+       .byte   0
+       .uleb128 0x7
+       .uleb128 0x2e
+       .byte   0x1
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0xe
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0x5
+       .uleb128 0x39
+       .uleb128 0xb
+       .uleb128 0x27
+       .uleb128 0x19
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x3c
+       .uleb128 0x19
+       .uleb128 0x1
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x8
+       .uleb128 0x5
+       .byte   0
+       .uleb128 0x49
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0x9
+       .uleb128 0x18
+       .byte   0
+       .byte   0
+       .byte   0
+       .uleb128 0xa
+       .uleb128 0xf
+       .byte   0
+       .uleb128 0xb
+       .uleb128 0xb
+       .uleb128 0x49
+       .uleb128 0x13
+       .byte   0
+       .byte   0
+       .uleb128 0xb
+       .uleb128 0x2e
+       .byte   0
+       .uleb128 0x3f
+       .uleb128 0x19
+       .uleb128 0x3
+       .uleb128 0xe
+       .uleb128 0x3a
+       .uleb128 0xb
+       .uleb128 0x3b
+       .uleb128 0xb
+       .uleb128 0x39
+       .uleb128 0xb
+       .uleb128 0x49
+       .uleb128 0x13
+       .uleb128 0x11
+       .uleb128 0x1
+       .uleb128 0x12
+       .uleb128 0x7
+       .uleb128 0x40
+       .uleb128 0x18
+       .uleb128 0x7c
+       .uleb128 0x19
+       .byte   0
+       .byte   0
+       .byte   0
+       .section        .debug_aranges,"",@progbits
+       .4byte  0x2c
+       .2byte  0x2
+       .4byte  .Ldebug_info0
+       .byte   0x8
+       .byte   0
+       .2byte  0
+       .2byte  0
+       .8byte  .Ltext0
+       .8byte  .Letext0-.Ltext0
+       .8byte  0
+       .8byte  0
+       .section        .debug_line,"",@progbits
+.Ldebug_line0:
+       .section        .debug_str,"MS",@progbits,1
+.LASF8:
+       .ascii  "long long int\000"
+.LASF3:
+       .ascii  "unsigned int\000"
+.LASF16:
+       .ascii  "main\000"
+.LASF0:
+       .ascii  "long unsigned int\000"
+.LASF9:
+       .ascii  "long long unsigned int\000"
+.LASF10:
+       .ascii  "GNU C17 13.0.0 20220512 (experimental) -mabi=lp64d -marc"
+       .ascii  "h=loongarch64 -mfpu=64 -mcmodel=normal -mtune=la464 -g -"
+       .ascii  "O0\000"
+.LASF1:
+       .ascii  "unsigned char\000"
+.LASF7:
+       .ascii  "char\000"
+.LASF6:
+       .ascii  "long int\000"
+.LASF11:
+       .ascii  "nopic-weak-local.c\000"
+.LASF13:
+       .ascii  "g_nopic\000"
+.LASF2:
+       .ascii  "short unsigned int\000"
+.LASF15:
+       .ascii  "printf\000"
+.LASF12:
+       .ascii  "/home/liuzhensong/test/ld/nopic/test/local_var\000"
+.LASF14:
+       .ascii  "abort\000"
+.LASF5:
+       .ascii  "short int\000"
+.LASF4:
+       .ascii  "signed char\000"
+       .ident  "GCC: (GNU) 13.0.0 20220512 (experimental)"
+       .section        .note.GNU-stack,"",@progbits
diff --git a/ld/testsuite/ld-loongarch-elf/nopic-weak-local.sd b/ld/testsuite/ld-loongarch-elf/nopic-weak-local.sd
new file mode 100644 (file)
index 0000000..b297067
--- /dev/null
@@ -0,0 +1,5 @@
+Symbol table '\.symtab' contains [0-9]+ entries:
+ +Num: +Value +Size +Type +Bind +Vis +Ndx +Name
+#...
+ +[0-9]: +[0-9]+ +[0-9] +OBJECT +WEAK +DEFAULT +[0-9] +g_nopic
+#pass
diff --git a/ld/testsuite/ld-loongarch-elf/nopic-weak-local.xd b/ld/testsuite/ld-loongarch-elf/nopic-weak-local.xd
new file mode 100644 (file)
index 0000000..d013066
--- /dev/null
@@ -0,0 +1,3 @@
+Hex dump of section '\.data':
+ +0x[0-9]+ +78563412.*
+#pass
diff --git a/ld/testsuite/ld-loongarch-elf/pic.exp b/ld/testsuite/ld-loongarch-elf/pic.exp
new file mode 100644 (file)
index 0000000..40a5138
--- /dev/null
@@ -0,0 +1,202 @@
+# Expect script for LoongArch ELF linker tests
+#   Copyright (C) 2022 Free Software Foundation, Inc.
+#
+# This file is part of the GNU Binutils.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+# MA 02110-1301, USA.
+#
+
+if ![istarget loongarch*-*-*] {
+  return
+}
+
+global verbose
+set old_verbose verbose
+# set verbose 3
+
+# Check to see if the C compiler works
+if { ![check_compiler_available] } {
+    return
+}
+
+
+set testname "nopic link test pre build"
+set pre_builds [list \
+  [list \
+    "$testname" \
+    "-shared $NOSANITIZE_CFLAGS" \
+    "-fPIC $NOSANITIZE_CFLAGS" \
+    {libnopic-global.s} \
+    {} \
+    "libnopic-global.so" \
+  ] \
+]
+
+#  0:name
+#  1:ld or ar options
+#  2:compile options
+#  3:filenames of source files
+#  4:action and options.
+#  5:name of output file
+#  6:language (optional)
+run_cc_link_tests $pre_builds
+
+
+
+set testname "nopic link test"
+
+set link_tests [list \
+  [list \
+    "$testname readelf -s/-x nopic-local" \
+    "-T pic.ld" "" \
+    "" \
+    { nopic-local.s } \
+    [list \
+      [list readelf -s nopic-local.sd] \
+      [list readelf "-x .data" nopic-local.xd] \
+    ] \
+    "nopic-local" \
+  ] \
+  [list \
+    "$testname readelf -s/-x nopic-weak-local" \
+    "-T pic.ld" "" \
+    "" \
+    {nopic-weak-local.s} \
+      [list \
+       [list readelf -s nopic-weak-local.sd] \
+       [list readelf "-x .data" nopic-weak-local.xd] \
+      ] \
+    "nopic-weak-local" \
+  ] \
+  [list \
+    "$testname readelf -s/-x nopic-global" \
+    "-T pic.ld" "" \
+    "" \
+    {nopic-global.s libnopic-global.s} \
+      [list \
+       [list readelf -s nopic-global.sd] \
+       [list readelf "-x .data" nopic-global.xd] \
+      ] \
+    "nopic-global" \
+  ] \
+  [list \
+    "$testname readelf -s/-r nopic-global-so" \
+    "-L./tmpdir -lnopic-global -L/usr/lib -lc" "" \
+    "" \
+    {nopic-global.s} \
+      [list \
+       [list readelf -s nopic-global-so.sd] \
+       [list readelf -r nopic-global-so.rd] \
+      ] \
+    "nopic-global-so" \
+  ] \
+  [list \
+    "$testname readelf -s/-x nopic-weak-global" \
+    "-T pic.ld" "" \
+    "" \
+    {nopic-weak-global.s libnopic-global.s} \
+      [list \
+       [list readelf -s nopic-weak-global.sd] \
+       [list readelf "-x .data" nopic-weak-global.xd] \
+      ] \
+    "nopic-weak-global" \
+  ] \
+  [list \
+    "$testname readelf -s/-x nopic-weak-global-so" \
+    "-L./tmpdir -lnopic-global -L/usr/lib -lc" "" \
+    "" \
+    {nopic-weak-global.s} \
+      [list \
+       [list readelf -s nopic-weak-global-so.sd] \
+       [list readelf -r nopic-weak-global-so.rd] \
+      ] \
+    "nopic-weak-global-so" \
+  ] \
+]
+
+#  0:name
+#  1:ld/ar leading options, placed before object files
+#  2:ld/ar trailing options, placed after object files
+#  3:assembler options
+#  4:filenames of assembler files
+#  5:list of actions, options and expected outputs.
+#  6:name of output file
+#  7:compiler flags (optional)
+run_ld_link_tests $link_tests
+
+set testname "nopic link exec test"
+
+set link_exec_tests [list \
+  [list \
+    "$testname" \
+    "" "" \
+    { nopic-local.s }   \
+    "nopic-local" \
+    "nopic-local.out" \
+  ] \
+  [list \
+    "$testname" \
+    "" "" \
+    { nopic-weak-local.s }   \
+    "nopic-weak-local" \
+    "nopic-weak-local.out" \
+  ] \
+  [list \
+    "$testname" \
+    "" "" \
+    { nopic-global.s libnopic-global.s }   \
+    "nopic-global" \
+    "nopic-global.out" \
+  ] \
+  [list \
+    "$testname" \
+    "-L./tmpdir -lnopic-global -lc -Wl,-rpath=./tmpdir -no-pie" "" \
+    { nopic-global.s }   \
+    "nopic-global-so" \
+    "nopic-global.out" \
+  ] \
+  [list \
+    "$testname" \
+    "" "" \
+    { nopic-weak-global.s libnopic-global.s }   \
+    "nopic-weak-global" \
+    "nopic-weak-global.out" \
+  ] \
+  [list \
+    "$testname" \
+    "-L./tmpdir -lnopic-global -lc -Wl,-rpath=./tmpdir -no-pie" "" \
+    { nopic-weak-global.s }   \
+    "nopic-weak-global-so" \
+    "nopic-weak-global.out" \
+  ] \
+]
+
+# ldtests contains test-items with 3 items followed by 1 lists, 2 items
+# and 3 optional items:
+#   0:name
+#   1:ld leading options, placed before object files
+#   2:assembler options
+#   3:filenames of source files
+#   4:name of output file
+#   5:expected output
+#   6:compiler flags (optional)
+#   7:language (optional)
+#   8:linker warning (optional)
+#   9:ld trailing options, placed after object files (optional)
+run_ld_link_exec_tests $link_exec_tests
+
+
+#set verbose  old_verbose
diff --git a/ld/testsuite/ld-loongarch-elf/pic.ld b/ld/testsuite/ld-loongarch-elf/pic.ld
new file mode 100644 (file)
index 0000000..d57b37f
--- /dev/null
@@ -0,0 +1,18 @@
+SECTIONS
+{
+  .bss : { *(.dynbss) }
+  .got : { *(.got.plt) *(.got) }
+  .dynamic : { *(.dynamic) }
+  .data : { *(.data) }
+  .rela.dyn : { *(.rela.*) }
+  .interp : { *(.interp) }
+  .hash : { *(.hash) }
+  .gnu.hash : { *(.gnu.hash) }
+  .dynsym : { *(.dynsym) }
+  .dynstr : { *(.dynstr) }
+  .debug_foo : { *(.debug_foo) }
+  .shstrtab : { *(.shstrtab) }
+  .symtab : { *(.symtab) }
+  .strtab : { *(.strtab) }
+  /DISCARD/ : { *(*) }
+}