Skip to content

Commit 78f28b6

Browse files
amodramaciej-w-rozycki
authored andcommitted
MIPS: Correct HI/LO rel reloc howto special_function entries
This corrects the DTPREL_HI16/LO16 and TPREL_HI16/LO16 howtos to use _bfd_mips_elf_{hi,lo}16_reloc special functions, in order to support addends outside the range [0,32767] on these relocations. R_MIPS_GOT_HI16, R_MIPS_GOT_LO16, R_MIPS_CALL_HI16 and R_MIPS_CALL_LO16 are left alone as it seems that we (quite reasonably) only support zero addends for those relocs. PR 19977 bfd/ * elf32-mips.c (elf_mips_howto_table_rel): Set special_function to _bfd_mips_elf_hi16_reloc for R_MIPS_TLS_DTPREL_HI16 and R_MIPS_TLS_TPREL_HI16. Set special_function to _bfd_mips_elf_lo16_reloc for R_MIPS_TLS_DTPREL_LO16 and R_MIPS_TLS_TPREL_LO16 (elf_mips16_howto_table_rel): Likewise for R_MIPS16_TLS_DTPREL_HI16, R_MIPS16_TLS_DTPREL_LO16, R_MIPS16_TLS_TPREL_HI16 and R_MIPS16_TLS_TPREL_LO16. (elf_micromips_howto_table_rel): Likewise for R_MICROMIPS_TLS_DTPREL_HI16, R_MICROMIPS_TLS_DTPREL_LO16, R_MICROMIPS_TLS_TPREL_HI16 and R_MICROMIPS_TLS_TPREL_LO16. * elf64-mips.c (mips_elf64_howto_table_rel): Similarly. (mips16_elf64_howto_table_rel): Similarly. (micromips_elf64_howto_table_rel): Similarly. * elfn32-mips.c: As for elf64-mips.c. gas/ * testsuite/gas/mips/pr19977.d, * testsuite/gas/mips/pr19977.s: New test. * testsuite/gas/mips/mips.exp: Run it.
1 parent 68f5cb3 commit 78f28b6

File tree

6 files changed

+90
-36
lines changed

6 files changed

+90
-36
lines changed

bfd/elf32-mips.c

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -618,7 +618,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
618618
false, /* pc_relative */
619619
0, /* bitpos */
620620
complain_overflow_signed, /* complain_on_overflow */
621-
_bfd_mips_elf_generic_reloc, /* special_function */
621+
_bfd_mips_elf_hi16_reloc, /* special_function */
622622
"R_MIPS_TLS_DTPREL_HI16", /* name */
623623
true, /* partial_inplace */
624624
0x0000ffff, /* src_mask */
@@ -633,7 +633,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
633633
false, /* pc_relative */
634634
0, /* bitpos */
635635
complain_overflow_dont, /* complain_on_overflow */
636-
_bfd_mips_elf_generic_reloc, /* special_function */
636+
_bfd_mips_elf_lo16_reloc, /* special_function */
637637
"R_MIPS_TLS_DTPREL_LO16", /* name */
638638
true, /* partial_inplace */
639639
0x0000ffff, /* src_mask */
@@ -680,7 +680,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
680680
false, /* pc_relative */
681681
0, /* bitpos */
682682
complain_overflow_signed, /* complain_on_overflow */
683-
_bfd_mips_elf_generic_reloc, /* special_function */
683+
_bfd_mips_elf_hi16_reloc, /* special_function */
684684
"R_MIPS_TLS_TPREL_HI16", /* name */
685685
true, /* partial_inplace */
686686
0x0000ffff, /* src_mask */
@@ -695,7 +695,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
695695
false, /* pc_relative */
696696
0, /* bitpos */
697697
complain_overflow_dont, /* complain_on_overflow */
698-
_bfd_mips_elf_generic_reloc, /* special_function */
698+
_bfd_mips_elf_lo16_reloc, /* special_function */
699699
"R_MIPS_TLS_TPREL_LO16", /* name */
700700
true, /* partial_inplace */
701701
0x0000ffff, /* src_mask */
@@ -961,7 +961,7 @@ static reloc_howto_type elf_mips16_howto_table_rel[] =
961961
false, /* pc_relative */
962962
0, /* bitpos */
963963
complain_overflow_signed, /* complain_on_overflow */
964-
_bfd_mips_elf_generic_reloc, /* special_function */
964+
_bfd_mips_elf_hi16_reloc, /* special_function */
965965
"R_MIPS16_TLS_DTPREL_HI16", /* name */
966966
true, /* partial_inplace */
967967
0x0000ffff, /* src_mask */
@@ -976,7 +976,7 @@ static reloc_howto_type elf_mips16_howto_table_rel[] =
976976
false, /* pc_relative */
977977
0, /* bitpos */
978978
complain_overflow_dont, /* complain_on_overflow */
979-
_bfd_mips_elf_generic_reloc, /* special_function */
979+
_bfd_mips_elf_lo16_reloc, /* special_function */
980980
"R_MIPS16_TLS_DTPREL_LO16", /* name */
981981
true, /* partial_inplace */
982982
0x0000ffff, /* src_mask */
@@ -1006,7 +1006,7 @@ static reloc_howto_type elf_mips16_howto_table_rel[] =
10061006
false, /* pc_relative */
10071007
0, /* bitpos */
10081008
complain_overflow_signed, /* complain_on_overflow */
1009-
_bfd_mips_elf_generic_reloc, /* special_function */
1009+
_bfd_mips_elf_hi16_reloc, /* special_function */
10101010
"R_MIPS16_TLS_TPREL_HI16", /* name */
10111011
true, /* partial_inplace */
10121012
0x0000ffff, /* src_mask */
@@ -1021,7 +1021,7 @@ static reloc_howto_type elf_mips16_howto_table_rel[] =
10211021
false, /* pc_relative */
10221022
0, /* bitpos */
10231023
complain_overflow_dont, /* complain_on_overflow */
1024-
_bfd_mips_elf_generic_reloc, /* special_function */
1024+
_bfd_mips_elf_lo16_reloc, /* special_function */
10251025
"R_MIPS16_TLS_TPREL_LO16", /* name */
10261026
true, /* partial_inplace */
10271027
0x0000ffff, /* src_mask */
@@ -1444,7 +1444,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
14441444
false, /* pc_relative */
14451445
0, /* bitpos */
14461446
complain_overflow_signed, /* complain_on_overflow */
1447-
_bfd_mips_elf_generic_reloc, /* special_function */
1447+
_bfd_mips_elf_hi16_reloc, /* special_function */
14481448
"R_MICROMIPS_TLS_DTPREL_HI16", /* name */
14491449
true, /* partial_inplace */
14501450
0x0000ffff, /* src_mask */
@@ -1459,7 +1459,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
14591459
false, /* pc_relative */
14601460
0, /* bitpos */
14611461
complain_overflow_dont, /* complain_on_overflow */
1462-
_bfd_mips_elf_generic_reloc, /* special_function */
1462+
_bfd_mips_elf_lo16_reloc, /* special_function */
14631463
"R_MICROMIPS_TLS_DTPREL_LO16", /* name */
14641464
true, /* partial_inplace */
14651465
0x0000ffff, /* src_mask */
@@ -1492,7 +1492,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
14921492
false, /* pc_relative */
14931493
0, /* bitpos */
14941494
complain_overflow_signed, /* complain_on_overflow */
1495-
_bfd_mips_elf_generic_reloc, /* special_function */
1495+
_bfd_mips_elf_hi16_reloc, /* special_function */
14961496
"R_MICROMIPS_TLS_TPREL_HI16", /* name */
14971497
true, /* partial_inplace */
14981498
0x0000ffff, /* src_mask */
@@ -1507,7 +1507,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
15071507
false, /* pc_relative */
15081508
0, /* bitpos */
15091509
complain_overflow_dont, /* complain_on_overflow */
1510-
_bfd_mips_elf_generic_reloc, /* special_function */
1510+
_bfd_mips_elf_lo16_reloc, /* special_function */
15111511
"R_MICROMIPS_TLS_TPREL_LO16", /* name */
15121512
true, /* partial_inplace */
15131513
0x0000ffff, /* src_mask */

bfd/elf64-mips.c

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -697,7 +697,7 @@ static reloc_howto_type mips_elf64_howto_table_rel[] =
697697
false, /* pc_relative */
698698
0, /* bitpos */
699699
complain_overflow_signed, /* complain_on_overflow */
700-
_bfd_mips_elf_generic_reloc, /* special_function */
700+
_bfd_mips_elf_hi16_reloc, /* special_function */
701701
"R_MIPS_TLS_DTPREL_HI16", /* name */
702702
true, /* partial_inplace */
703703
0x0000ffff, /* src_mask */
@@ -712,7 +712,7 @@ static reloc_howto_type mips_elf64_howto_table_rel[] =
712712
false, /* pc_relative */
713713
0, /* bitpos */
714714
complain_overflow_dont, /* complain_on_overflow */
715-
_bfd_mips_elf_generic_reloc, /* special_function */
715+
_bfd_mips_elf_lo16_reloc, /* special_function */
716716
"R_MIPS_TLS_DTPREL_LO16", /* name */
717717
true, /* partial_inplace */
718718
0x0000ffff, /* src_mask */
@@ -759,7 +759,7 @@ static reloc_howto_type mips_elf64_howto_table_rel[] =
759759
false, /* pc_relative */
760760
0, /* bitpos */
761761
complain_overflow_signed, /* complain_on_overflow */
762-
_bfd_mips_elf_generic_reloc, /* special_function */
762+
_bfd_mips_elf_hi16_reloc, /* special_function */
763763
"R_MIPS_TLS_TPREL_HI16", /* name */
764764
true, /* partial_inplace */
765765
0x0000ffff, /* src_mask */
@@ -774,7 +774,7 @@ static reloc_howto_type mips_elf64_howto_table_rel[] =
774774
false, /* pc_relative */
775775
0, /* bitpos */
776776
complain_overflow_dont, /* complain_on_overflow */
777-
_bfd_mips_elf_generic_reloc, /* special_function */
777+
_bfd_mips_elf_lo16_reloc, /* special_function */
778778
"R_MIPS_TLS_TPREL_LO16", /* name */
779779
true, /* partial_inplace */
780780
0x0000ffff, /* src_mask */
@@ -1805,7 +1805,7 @@ static reloc_howto_type mips16_elf64_howto_table_rel[] =
18051805
false, /* pc_relative */
18061806
0, /* bitpos */
18071807
complain_overflow_signed, /* complain_on_overflow */
1808-
_bfd_mips_elf_generic_reloc, /* special_function */
1808+
_bfd_mips_elf_hi16_reloc, /* special_function */
18091809
"R_MIPS16_TLS_DTPREL_HI16", /* name */
18101810
true, /* partial_inplace */
18111811
0x0000ffff, /* src_mask */
@@ -1820,7 +1820,7 @@ static reloc_howto_type mips16_elf64_howto_table_rel[] =
18201820
false, /* pc_relative */
18211821
0, /* bitpos */
18221822
complain_overflow_dont, /* complain_on_overflow */
1823-
_bfd_mips_elf_generic_reloc, /* special_function */
1823+
_bfd_mips_elf_lo16_reloc, /* special_function */
18241824
"R_MIPS16_TLS_DTPREL_LO16", /* name */
18251825
true, /* partial_inplace */
18261826
0x0000ffff, /* src_mask */
@@ -1850,7 +1850,7 @@ static reloc_howto_type mips16_elf64_howto_table_rel[] =
18501850
false, /* pc_relative */
18511851
0, /* bitpos */
18521852
complain_overflow_signed, /* complain_on_overflow */
1853-
_bfd_mips_elf_generic_reloc, /* special_function */
1853+
_bfd_mips_elf_hi16_reloc, /* special_function */
18541854
"R_MIPS16_TLS_TPREL_HI16", /* name */
18551855
true, /* partial_inplace */
18561856
0x0000ffff, /* src_mask */
@@ -1865,7 +1865,7 @@ static reloc_howto_type mips16_elf64_howto_table_rel[] =
18651865
false, /* pc_relative */
18661866
0, /* bitpos */
18671867
complain_overflow_dont, /* complain_on_overflow */
1868-
_bfd_mips_elf_generic_reloc, /* special_function */
1868+
_bfd_mips_elf_lo16_reloc, /* special_function */
18691869
"R_MIPS16_TLS_TPREL_LO16", /* name */
18701870
true, /* partial_inplace */
18711871
0x0000ffff, /* src_mask */
@@ -2481,7 +2481,7 @@ static reloc_howto_type micromips_elf64_howto_table_rel[] =
24812481
false, /* pc_relative */
24822482
0, /* bitpos */
24832483
complain_overflow_signed, /* complain_on_overflow */
2484-
_bfd_mips_elf_generic_reloc, /* special_function */
2484+
_bfd_mips_elf_hi16_reloc, /* special_function */
24852485
"R_MICROMIPS_TLS_DTPREL_HI16", /* name */
24862486
true, /* partial_inplace */
24872487
0x0000ffff, /* src_mask */
@@ -2496,7 +2496,7 @@ static reloc_howto_type micromips_elf64_howto_table_rel[] =
24962496
false, /* pc_relative */
24972497
0, /* bitpos */
24982498
complain_overflow_dont, /* complain_on_overflow */
2499-
_bfd_mips_elf_generic_reloc, /* special_function */
2499+
_bfd_mips_elf_lo16_reloc, /* special_function */
25002500
"R_MICROMIPS_TLS_DTPREL_LO16", /* name */
25012501
true, /* partial_inplace */
25022502
0x0000ffff, /* src_mask */
@@ -2529,7 +2529,7 @@ static reloc_howto_type micromips_elf64_howto_table_rel[] =
25292529
false, /* pc_relative */
25302530
0, /* bitpos */
25312531
complain_overflow_signed, /* complain_on_overflow */
2532-
_bfd_mips_elf_generic_reloc, /* special_function */
2532+
_bfd_mips_elf_hi16_reloc, /* special_function */
25332533
"R_MICROMIPS_TLS_TPREL_HI16", /* name */
25342534
true, /* partial_inplace */
25352535
0x0000ffff, /* src_mask */
@@ -2544,7 +2544,7 @@ static reloc_howto_type micromips_elf64_howto_table_rel[] =
25442544
false, /* pc_relative */
25452545
0, /* bitpos */
25462546
complain_overflow_dont, /* complain_on_overflow */
2547-
_bfd_mips_elf_generic_reloc, /* special_function */
2547+
_bfd_mips_elf_lo16_reloc, /* special_function */
25482548
"R_MICROMIPS_TLS_TPREL_LO16", /* name */
25492549
true, /* partial_inplace */
25502550
0x0000ffff, /* src_mask */

bfd/elfn32-mips.c

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -676,7 +676,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
676676
false, /* pc_relative */
677677
0, /* bitpos */
678678
complain_overflow_signed, /* complain_on_overflow */
679-
_bfd_mips_elf_generic_reloc, /* special_function */
679+
_bfd_mips_elf_hi16_reloc, /* special_function */
680680
"R_MIPS_TLS_DTPREL_HI16", /* name */
681681
true, /* partial_inplace */
682682
0x0000ffff, /* src_mask */
@@ -691,7 +691,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
691691
false, /* pc_relative */
692692
0, /* bitpos */
693693
complain_overflow_dont, /* complain_on_overflow */
694-
_bfd_mips_elf_generic_reloc, /* special_function */
694+
_bfd_mips_elf_lo16_reloc, /* special_function */
695695
"R_MIPS_TLS_DTPREL_LO16", /* name */
696696
true, /* partial_inplace */
697697
0x0000ffff, /* src_mask */
@@ -738,7 +738,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
738738
false, /* pc_relative */
739739
0, /* bitpos */
740740
complain_overflow_signed, /* complain_on_overflow */
741-
_bfd_mips_elf_generic_reloc, /* special_function */
741+
_bfd_mips_elf_hi16_reloc, /* special_function */
742742
"R_MIPS_TLS_TPREL_HI16", /* name */
743743
true, /* partial_inplace */
744744
0x0000ffff, /* src_mask */
@@ -753,7 +753,7 @@ static reloc_howto_type elf_mips_howto_table_rel[] =
753753
false, /* pc_relative */
754754
0, /* bitpos */
755755
complain_overflow_dont, /* complain_on_overflow */
756-
_bfd_mips_elf_generic_reloc, /* special_function */
756+
_bfd_mips_elf_lo16_reloc, /* special_function */
757757
"R_MIPS_TLS_TPREL_LO16", /* name */
758758
true, /* partial_inplace */
759759
0x0000ffff, /* src_mask */
@@ -1785,7 +1785,7 @@ static reloc_howto_type elf_mips16_howto_table_rel[] =
17851785
false, /* pc_relative */
17861786
0, /* bitpos */
17871787
complain_overflow_signed, /* complain_on_overflow */
1788-
_bfd_mips_elf_generic_reloc, /* special_function */
1788+
_bfd_mips_elf_hi16_reloc, /* special_function */
17891789
"R_MIPS16_TLS_DTPREL_HI16", /* name */
17901790
true, /* partial_inplace */
17911791
0x0000ffff, /* src_mask */
@@ -1800,7 +1800,7 @@ static reloc_howto_type elf_mips16_howto_table_rel[] =
18001800
false, /* pc_relative */
18011801
0, /* bitpos */
18021802
complain_overflow_dont, /* complain_on_overflow */
1803-
_bfd_mips_elf_generic_reloc, /* special_function */
1803+
_bfd_mips_elf_lo16_reloc, /* special_function */
18041804
"R_MIPS16_TLS_DTPREL_LO16", /* name */
18051805
true, /* partial_inplace */
18061806
0x0000ffff, /* src_mask */
@@ -1830,7 +1830,7 @@ static reloc_howto_type elf_mips16_howto_table_rel[] =
18301830
false, /* pc_relative */
18311831
0, /* bitpos */
18321832
complain_overflow_signed, /* complain_on_overflow */
1833-
_bfd_mips_elf_generic_reloc, /* special_function */
1833+
_bfd_mips_elf_hi16_reloc, /* special_function */
18341834
"R_MIPS16_TLS_TPREL_HI16", /* name */
18351835
true, /* partial_inplace */
18361836
0x0000ffff, /* src_mask */
@@ -1845,7 +1845,7 @@ static reloc_howto_type elf_mips16_howto_table_rel[] =
18451845
false, /* pc_relative */
18461846
0, /* bitpos */
18471847
complain_overflow_dont, /* complain_on_overflow */
1848-
_bfd_mips_elf_generic_reloc, /* special_function */
1848+
_bfd_mips_elf_lo16_reloc, /* special_function */
18491849
"R_MIPS16_TLS_TPREL_LO16", /* name */
18501850
true, /* partial_inplace */
18511851
0x0000ffff, /* src_mask */
@@ -2461,7 +2461,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
24612461
false, /* pc_relative */
24622462
0, /* bitpos */
24632463
complain_overflow_signed, /* complain_on_overflow */
2464-
_bfd_mips_elf_generic_reloc, /* special_function */
2464+
_bfd_mips_elf_hi16_reloc, /* special_function */
24652465
"R_MICROMIPS_TLS_DTPREL_HI16", /* name */
24662466
true, /* partial_inplace */
24672467
0x0000ffff, /* src_mask */
@@ -2476,7 +2476,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
24762476
false, /* pc_relative */
24772477
0, /* bitpos */
24782478
complain_overflow_dont, /* complain_on_overflow */
2479-
_bfd_mips_elf_generic_reloc, /* special_function */
2479+
_bfd_mips_elf_lo16_reloc, /* special_function */
24802480
"R_MICROMIPS_TLS_DTPREL_LO16", /* name */
24812481
true, /* partial_inplace */
24822482
0x0000ffff, /* src_mask */
@@ -2509,7 +2509,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
25092509
false, /* pc_relative */
25102510
0, /* bitpos */
25112511
complain_overflow_signed, /* complain_on_overflow */
2512-
_bfd_mips_elf_generic_reloc, /* special_function */
2512+
_bfd_mips_elf_hi16_reloc, /* special_function */
25132513
"R_MICROMIPS_TLS_TPREL_HI16", /* name */
25142514
true, /* partial_inplace */
25152515
0x0000ffff, /* src_mask */
@@ -2524,7 +2524,7 @@ static reloc_howto_type elf_micromips_howto_table_rel[] =
25242524
false, /* pc_relative */
25252525
0, /* bitpos */
25262526
complain_overflow_dont, /* complain_on_overflow */
2527-
_bfd_mips_elf_generic_reloc, /* special_function */
2527+
_bfd_mips_elf_lo16_reloc, /* special_function */
25282528
"R_MICROMIPS_TLS_TPREL_LO16", /* name */
25292529
true, /* partial_inplace */
25302530
0x0000ffff, /* src_mask */

gas/testsuite/gas/mips/mips.exp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1606,6 +1606,9 @@ if { [istarget mips*-*-vxworks*] } {
16061606
if $has_newabi { run_dump_test "cfi-n64-1" }
16071607

16081608
run_dump_test "pr12915"
1609+
1610+
run_dump_test_arches "pr19977" [mips_arch_list_all]
1611+
16091612
run_dump_test "reginfo-1a"
16101613
run_dump_test "reginfo-1b"
16111614
run_dump_test "reginfo-2"

gas/testsuite/gas/mips/pr19977.d

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
#name: pr19977
2+
#as: -32
3+
#objdump: -dr
4+
5+
.*
6+
7+
Disassembly of section \.text:
8+
9+
0+ <foo>:
10+
0: .* li v1,4387
11+
0: R_(|MICRO)MIPS(|16)_TLS_TPREL_HI16 \$loc0
12+
4: .* sll .*
13+
8: .* addiu v1(|,v1),-26232
14+
8: R_(|MICRO)MIPS(|16)_TLS_TPREL_LO16 \$loc0
15+
c: .* li v1,4387
16+
c: R_(|MICRO)MIPS(|16)_TLS_DTPREL_HI16 \$loc0
17+
10: .* sll .*
18+
14: .* addiu v1(|,v1),-26232
19+
14: R_(|MICRO)MIPS(|16)_TLS_DTPREL_LO16 \$loc0
20+
18: .* li v1,4386
21+
18: R_(|MICRO)MIPS(|16)_TLS_TPREL_HI16 \.tdata
22+
1c: .* sll .*
23+
20: .* addiu v1(|,v1),6536
24+
20: R_(|MICRO)MIPS(|16)_TLS_TPREL_LO16 \.tdata
25+
24: .* li v1,4386
26+
24: R_(|MICRO)MIPS(|16)_TLS_DTPREL_HI16 \.tdata
27+
28: .* sll .*
28+
2c: .* addiu v1(|,v1),6536
29+
2c: R_(|MICRO)MIPS(|16)_TLS_DTPREL_LO16 \.tdata
30+
#pass

gas/testsuite/gas/mips/pr19977.s

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
.text
2+
foo:
3+
li $3,%tprel_hi($loc0+0x11229988)
4+
sll $3,16
5+
addiu $3,%tprel_lo($loc0+0x11229988)
6+
7+
li $3,%dtprel_hi($loc0+0x11229988)
8+
sll $3,16
9+
addiu $3,%dtprel_lo($loc0+0x11229988)
10+
11+
li $3,%tprel_hi(.tdata+0x11221988)
12+
sll $3,16
13+
addiu $3,%tprel_lo(.tdata+0x11221988)
14+
15+
li $3,%dtprel_hi(.tdata+0x11221988)
16+
sll $3,16
17+
addiu $3,%dtprel_lo(.tdata+0x11221988)
18+
19+
.section .tdata,"awT",%progbits
20+
$loc0:
21+
.word 0

0 commit comments

Comments
 (0)