mirror of
https://github.com/espressif/binutils-gdb.git
synced 2025-06-20 18:08:24 +08:00
gas/
* config/tc-mips.c (macro): Switch misordered call to frag_grow() and setting of tc_fr_offset. gas/testsuite/ * gas/mips/elf-rel16.[sd]: New test. * gas/mips/mips.exp: Run it. * gas/mips/elf-rel-xgot-n32.d: Fix addends for "lw $5,dl1+34($5)". * gas/mips/elf-rel-xgot-n64.d: Likewise.
This commit is contained in:
@ -1,3 +1,8 @@
|
|||||||
|
2003-12-06 Richard Sandiford <rsandifo@redhat.com>
|
||||||
|
|
||||||
|
* config/tc-mips.c (macro): Switch misordered call to frag_grow()
|
||||||
|
and setting of tc_fr_offset.
|
||||||
|
|
||||||
2003-12-05 Ricardo Anguiano <anguiano@codesourcery.com>
|
2003-12-05 Ricardo Anguiano <anguiano@codesourcery.com>
|
||||||
Mark Mitchell <mark@codesourcery.com>
|
Mark Mitchell <mark@codesourcery.com>
|
||||||
Richard Earnshaw <rearnsha@arm.com>
|
Richard Earnshaw <rearnsha@arm.com>
|
||||||
|
@ -6348,13 +6348,13 @@ macro (struct mips_cl_insn *ip)
|
|||||||
lw $tempreg,<sym>($gp) (BFD_RELOC_MIPS_GOT_PAGE)
|
lw $tempreg,<sym>($gp) (BFD_RELOC_MIPS_GOT_PAGE)
|
||||||
<op> $treg,<sym>($tempreg) (BFD_RELOC_MIPS_GOT_OFST) */
|
<op> $treg,<sym>($tempreg) (BFD_RELOC_MIPS_GOT_OFST) */
|
||||||
assert (offset_expr.X_op == O_symbol);
|
assert (offset_expr.X_op == O_symbol);
|
||||||
|
frag_grow (36);
|
||||||
frag_now->tc_frag_data.tc_fr_offset =
|
frag_now->tc_frag_data.tc_fr_offset =
|
||||||
expr1.X_add_number = offset_expr.X_add_number;
|
expr1.X_add_number = offset_expr.X_add_number;
|
||||||
offset_expr.X_add_number = 0;
|
offset_expr.X_add_number = 0;
|
||||||
if (expr1.X_add_number < -0x8000
|
if (expr1.X_add_number < -0x8000
|
||||||
|| expr1.X_add_number >= 0x8000)
|
|| expr1.X_add_number >= 0x8000)
|
||||||
as_bad (_("PIC code offset overflow (max 16 signed bits)"));
|
as_bad (_("PIC code offset overflow (max 16 signed bits)"));
|
||||||
frag_grow (36);
|
|
||||||
macro_build (NULL, &icnt, &offset_expr, "lui", "t,u", tempreg,
|
macro_build (NULL, &icnt, &offset_expr, "lui", "t,u", tempreg,
|
||||||
BFD_RELOC_MIPS_GOT_HI16);
|
BFD_RELOC_MIPS_GOT_HI16);
|
||||||
macro_build (NULL, &icnt, NULL, ADDRESS_ADD_INSN, "d,v,t",
|
macro_build (NULL, &icnt, NULL, ADDRESS_ADD_INSN, "d,v,t",
|
||||||
|
@ -1,3 +1,10 @@
|
|||||||
|
2003-12-06 Richard Sandiford <rsandifo@redhat.com>
|
||||||
|
|
||||||
|
* gas/mips/elf-rel16.[sd]: New test.
|
||||||
|
* gas/mips/mips.exp: Run it.
|
||||||
|
* gas/mips/elf-rel-xgot-n32.d: Fix addends for "lw $5,dl1+34($5)".
|
||||||
|
* gas/mips/elf-rel-xgot-n64.d: Likewise.
|
||||||
|
|
||||||
2003-12-05 Ricardo Anguiano <anguiano@codesourcery.com>
|
2003-12-05 Ricardo Anguiano <anguiano@codesourcery.com>
|
||||||
Mark Mitchell <mark@codesourcery.com>
|
Mark Mitchell <mark@codesourcery.com>
|
||||||
Richard Earnshaw <rearnsha@arm.com>
|
Richard Earnshaw <rearnsha@arm.com>
|
||||||
|
@ -442,10 +442,10 @@ Disassembly of section \.text:
|
|||||||
00000490 <fn\+0x490> 8ca50000 lw a1,0\(a1\)
|
00000490 <fn\+0x490> 8ca50000 lw a1,0\(a1\)
|
||||||
490: R_MIPS_GOT_OFST \.data\+0xc0
|
490: R_MIPS_GOT_OFST \.data\+0xc0
|
||||||
00000494 <fn\+0x494> 8f810000 lw at,0\(gp\)
|
00000494 <fn\+0x494> 8f810000 lw at,0\(gp\)
|
||||||
494: R_MIPS_GOT_PAGE \.data\+0xb4
|
494: R_MIPS_GOT_PAGE \.data\+0xd6
|
||||||
00000498 <fn\+0x498> 00250821 addu at,at,a1
|
00000498 <fn\+0x498> 00250821 addu at,at,a1
|
||||||
0000049c <fn\+0x49c> 8c250000 lw a1,0\(at\)
|
0000049c <fn\+0x49c> 8c250000 lw a1,0\(at\)
|
||||||
49c: R_MIPS_GOT_OFST \.data\+0xb4
|
49c: R_MIPS_GOT_OFST \.data\+0xd6
|
||||||
000004a0 <fn\+0x4a0> 8f810000 lw at,0\(gp\)
|
000004a0 <fn\+0x4a0> 8f810000 lw at,0\(gp\)
|
||||||
4a0: R_MIPS_GOT_PAGE \.data\+0xec
|
4a0: R_MIPS_GOT_PAGE \.data\+0xec
|
||||||
000004a4 <fn\+0x4a4> 00250821 addu at,at,a1
|
000004a4 <fn\+0x4a4> 00250821 addu at,at,a1
|
||||||
|
@ -726,14 +726,14 @@ Disassembly of section \.text:
|
|||||||
490: R_MIPS_NONE \*ABS\*\+0xc0
|
490: R_MIPS_NONE \*ABS\*\+0xc0
|
||||||
490: R_MIPS_NONE \*ABS\*\+0xc0
|
490: R_MIPS_NONE \*ABS\*\+0xc0
|
||||||
0000000000000494 <fn\+0x494> df810000 ld at,0\(gp\)
|
0000000000000494 <fn\+0x494> df810000 ld at,0\(gp\)
|
||||||
494: R_MIPS_GOT_PAGE \.data\+0xb4
|
494: R_MIPS_GOT_PAGE \.data\+0xd6
|
||||||
494: R_MIPS_NONE \*ABS\*\+0xb4
|
494: R_MIPS_NONE \*ABS\*\+0xd6
|
||||||
494: R_MIPS_NONE \*ABS\*\+0xb4
|
494: R_MIPS_NONE \*ABS\*\+0xd6
|
||||||
0000000000000498 <fn\+0x498> 0025082d daddu at,at,a1
|
0000000000000498 <fn\+0x498> 0025082d daddu at,at,a1
|
||||||
000000000000049c <fn\+0x49c> dc250000 ld a1,0\(at\)
|
000000000000049c <fn\+0x49c> dc250000 ld a1,0\(at\)
|
||||||
49c: R_MIPS_GOT_OFST \.data\+0xb4
|
49c: R_MIPS_GOT_OFST \.data\+0xd6
|
||||||
49c: R_MIPS_NONE \*ABS\*\+0xb4
|
49c: R_MIPS_NONE \*ABS\*\+0xd6
|
||||||
49c: R_MIPS_NONE \*ABS\*\+0xb4
|
49c: R_MIPS_NONE \*ABS\*\+0xd6
|
||||||
00000000000004a0 <fn\+0x4a0> df810000 ld at,0\(gp\)
|
00000000000004a0 <fn\+0x4a0> df810000 ld at,0\(gp\)
|
||||||
4a0: R_MIPS_GOT_PAGE \.data\+0xec
|
4a0: R_MIPS_GOT_PAGE \.data\+0xec
|
||||||
4a0: R_MIPS_NONE \*ABS\*\+0xec
|
4a0: R_MIPS_NONE \*ABS\*\+0xec
|
||||||
|
14
gas/testsuite/gas/mips/elf-rel16.d
Normal file
14
gas/testsuite/gas/mips/elf-rel16.d
Normal file
@ -0,0 +1,14 @@
|
|||||||
|
#objdump: -dr
|
||||||
|
#as: -mabi=n32 -mips3 -xgot -KPIC
|
||||||
|
|
||||||
|
.*: file format .*
|
||||||
|
|
||||||
|
Disassembly of section \.text:
|
||||||
|
|
||||||
|
00000000 <.*>:
|
||||||
|
\.\.\.
|
||||||
|
.*: 8f840000 lw a0,0\(gp\)
|
||||||
|
.*: R_MIPS_GOT_PAGE \.rodata\+0x8
|
||||||
|
.*: dc840000 ld a0,0\(a0\)
|
||||||
|
.*: R_MIPS_GOT_OFST \.rodata\+0x8
|
||||||
|
\.\.\.
|
8
gas/testsuite/gas/mips/elf-rel16.s
Normal file
8
gas/testsuite/gas/mips/elf-rel16.s
Normal file
@ -0,0 +1,8 @@
|
|||||||
|
.rept 0x3e0
|
||||||
|
nop
|
||||||
|
.endr
|
||||||
|
ld $4,foo+8
|
||||||
|
.space 16
|
||||||
|
.section .rodata
|
||||||
|
foo:
|
||||||
|
.word 1,2,3,4
|
@ -663,6 +663,7 @@ if { [istarget mips*-*-*] } then {
|
|||||||
|
|
||||||
if $has_newabi {
|
if $has_newabi {
|
||||||
run_dump_test "elf-rel15"
|
run_dump_test "elf-rel15"
|
||||||
|
run_dump_test "elf-rel16"
|
||||||
|
|
||||||
run_dump_test "elf-rel-got-n32"
|
run_dump_test "elf-rel-got-n32"
|
||||||
run_dump_test "elf-rel-xgot-n32"
|
run_dump_test "elf-rel-xgot-n32"
|
||||||
|
Reference in New Issue
Block a user