PR gas/3041
* config/tc-m68k.c (relaxable_symbol): Make sure that the correct addend is stored for relocs against weak symbols. (md_apply_fix): So not loose track of addend for relocs against weak symbols. * testsuite/gas/m68k/p3041.s: New test case. * testsuite/gas/m68k/p3041.d: New expected disassembly. * testsuite/gas/m68k/all.exp: Run new test for m68k-*-netbsd toolchains. Only run arch-cpu-1 test for ELF based toolchains. Tidy ups for m68k-netbsd gas toolchain: * testsuite/gas/m68k/cpu32.d: Allow for extra text after expected disassembly. * testsuite/gas/m68k/mcf-trap.d: Allow for alternative trap mnemonics. * testsuite/gas/m68k/br-isab.d: Fix name of test. * testsuite/gas/m68k/br-isac.d: Fix name of test.
This commit is contained in:
parent
0414f35b82
commit
1c3f20b4d1
10 changed files with 66 additions and 12 deletions
|
@ -1,3 +1,11 @@
|
||||||
|
2007-05-15 Vincent Riviere <vincent.riviere@freesbee.fr>
|
||||||
|
|
||||||
|
PR gas/3041
|
||||||
|
* config/tc-m68k.c (relaxable_symbol): Make sure that the correct
|
||||||
|
addend is stored for relocs against weak symbols.
|
||||||
|
(md_apply_fix): So not loose track of addend for relocs against
|
||||||
|
weak symbols.
|
||||||
|
|
||||||
2007-05-14 Thiemo Seufer <ths@mips.com>
|
2007-05-14 Thiemo Seufer <ths@mips.com>
|
||||||
|
|
||||||
* config/tc-mips.c (md_parse_option): Fix parsing of -O option.
|
* config/tc-mips.c (md_parse_option): Fix parsing of -O option.
|
||||||
|
|
|
@ -1160,8 +1160,9 @@ tc_gen_reloc (asection *section ATTRIBUTE_UNUSED, fixS *fixp)
|
||||||
&& S_IS_WEAK (fixp->fx_addsy)
|
&& S_IS_WEAK (fixp->fx_addsy)
|
||||||
&& ! bfd_is_und_section (S_GET_SEGMENT (fixp->fx_addsy)))
|
&& ! bfd_is_und_section (S_GET_SEGMENT (fixp->fx_addsy)))
|
||||||
/* PR gas/3041 Adjust addend in order to force bfd_install_relocation()
|
/* PR gas/3041 Adjust addend in order to force bfd_install_relocation()
|
||||||
to put a zero value into frags referencing a weak symbol. */
|
to put the symbol offset into frags referencing a weak symbol. */
|
||||||
reloc->addend = - S_GET_VALUE (fixp->fx_addsy);
|
reloc->addend = fixp->fx_addnumber
|
||||||
|
- (S_GET_VALUE (fixp->fx_addsy) * 2);
|
||||||
else
|
else
|
||||||
reloc->addend = 0;
|
reloc->addend = 0;
|
||||||
#else
|
#else
|
||||||
|
@ -4702,10 +4703,11 @@ md_apply_fix (fixS *fixP, valueT *valP, segT seg ATTRIBUTE_UNUSED)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#elif defined(OBJ_AOUT)
|
#elif defined(OBJ_AOUT)
|
||||||
/* PR gas/3041 Always put zero values into frags referencing a weak symbol. */
|
/* PR gas/3041 Do not fix frags referencing a weak symbol. */
|
||||||
if (fixP->fx_addsy && S_IS_WEAK (fixP->fx_addsy))
|
if (fixP->fx_addsy && S_IS_WEAK (fixP->fx_addsy))
|
||||||
{
|
{
|
||||||
memset (buf, 0, fixP->fx_size);
|
memset (buf, 0, fixP->fx_size);
|
||||||
|
fixP->fx_addnumber = val; /* Remember value for emit_reloc. */
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1,3 +1,19 @@
|
||||||
|
2007-05-15 Vincent Riviere <vincent.riviere@freesbee.fr>
|
||||||
|
Nick Clifton <nickc@redhat.com>
|
||||||
|
|
||||||
|
PR gas/3041
|
||||||
|
* gas/m68k/p3041.s: New test case.
|
||||||
|
* gas/m68k/p3041.d: New expected disassembly.
|
||||||
|
* gas/m68k/all.exp: Run new test for m68k-*-netbsd toolchains.
|
||||||
|
Only run arch-cpu-1 test for ELF based toolchains.
|
||||||
|
|
||||||
|
Tidy ups for m68k-netbsd gas toolchain:
|
||||||
|
* gas/m68k/cpu32.d: Allow for extra text after expected
|
||||||
|
disassembly.
|
||||||
|
* gas/m68k/mcf-trap.d: Allow for alternative trap mnemonics.
|
||||||
|
* gas/m68k/br-isab.d: Fix name of test.
|
||||||
|
* gas/m68k/br-isac.d: Fix name of test.
|
||||||
|
|
||||||
2007-05-14 H.J. Lu <hongjiu.lu@intel.com>
|
2007-05-14 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
PR binutils/4502
|
PR binutils/4502
|
||||||
|
|
|
@ -54,7 +54,9 @@ if { [istarget m68*-*-*] || [istarget fido*-*-*] } then {
|
||||||
run_dump_test mcf-emac
|
run_dump_test mcf-emac
|
||||||
run_dump_test mcf-fpu
|
run_dump_test mcf-fpu
|
||||||
run_dump_test mcf-trap
|
run_dump_test mcf-trap
|
||||||
run_dump_test arch-cpu-1
|
if { [istarget *-*-elf] || [istarget *-*-linux*] } then {
|
||||||
|
run_dump_test arch-cpu-1
|
||||||
|
}
|
||||||
run_dump_test cpu32
|
run_dump_test cpu32
|
||||||
|
|
||||||
run_dump_test br-isaa
|
run_dump_test br-isaa
|
||||||
|
@ -64,6 +66,10 @@ if { [istarget m68*-*-*] || [istarget fido*-*-*] } then {
|
||||||
run_dump_test ctrl-1
|
run_dump_test ctrl-1
|
||||||
run_dump_test ctrl-2
|
run_dump_test ctrl-2
|
||||||
|
|
||||||
|
if { [istarget *-*-netbsd] } then {
|
||||||
|
run_dump_test p3041
|
||||||
|
}
|
||||||
|
|
||||||
set testname "68000 operands"
|
set testname "68000 operands"
|
||||||
gas_run "operands.s" "-m68000" "2>err.out"
|
gas_run "operands.s" "-m68000" "2>err.out"
|
||||||
if ![string match "child process exited abnormally" $comp_output] then {
|
if ![string match "child process exited abnormally" $comp_output] then {
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#name: br-isaa.d
|
#name: br-isab.d
|
||||||
#objdump: -d
|
#objdump: -d
|
||||||
#as: -march=isab -pcrel
|
#as: -march=isab -pcrel
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
#name: br-isaa.d
|
#name: br-isac.d
|
||||||
#objdump: -d
|
#objdump: -d
|
||||||
#as: -march=isac -pcrel
|
#as: -march=isac -pcrel
|
||||||
|
|
||||||
|
|
|
@ -32,3 +32,4 @@ Disassembly of section .text:
|
||||||
[ 0-9a-f]+: f810 1d00 tblsnb %a0@,%d1
|
[ 0-9a-f]+: f810 1d00 tblsnb %a0@,%d1
|
||||||
[ 0-9a-f]+: f810 1d40 tblsnw %a0@,%d1
|
[ 0-9a-f]+: f810 1d40 tblsnw %a0@,%d1
|
||||||
[ 0-9a-f]+: f810 1d80 tblsnl %a0@,%d1
|
[ 0-9a-f]+: f810 1d80 tblsnl %a0@,%d1
|
||||||
|
#...
|
||||||
|
|
|
@ -7,9 +7,9 @@
|
||||||
Disassembly of section .text:
|
Disassembly of section .text:
|
||||||
|
|
||||||
0+ <.text>:
|
0+ <.text>:
|
||||||
[ 0-9a-f]+: 51fc tpf
|
[ 0-9a-f]+: 51fc t[rap]*f
|
||||||
[ 0-9a-f]+: 51fa 1234 tpfw #4660
|
[ 0-9a-f]+: 51fa 1234 t[rap]*fw #4660
|
||||||
[ 0-9a-f]+: 51fb 1234 5678 tpfl #305419896
|
[ 0-9a-f]+: 51fb 1234 5678 t[rap]*fl #305419896
|
||||||
[ 0-9a-f]+: 51fc tpf
|
[ 0-9a-f]+: 51fc t[rap]*f
|
||||||
[ 0-9a-f]+: 51fa 1234 tpfw #4660
|
[ 0-9a-f]+: 51fa 1234 t[rap]*fw #4660
|
||||||
[ 0-9a-f]+: 51fb 1234 5678 tpfl #305419896
|
[ 0-9a-f]+: 51fb 1234 5678 t[rap]*fl #305419896
|
||||||
|
|
15
gas/testsuite/gas/m68k/p3041.d
Normal file
15
gas/testsuite/gas/m68k/p3041.d
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
#name: PR 3041
|
||||||
|
#objdump: -dr
|
||||||
|
|
||||||
|
.*: file format .*
|
||||||
|
|
||||||
|
Disassembly of section .text:
|
||||||
|
|
||||||
|
0+ <.*>:
|
||||||
|
0: 4ef9 0000 0002 [ ]+jmp 2 <mylabel-0x6>
|
||||||
|
2: .* mylabel
|
||||||
|
6: 4e71 [ ]+nop
|
||||||
|
|
||||||
|
0+8 <mylabel>:
|
||||||
|
8: 4e71 [ ]+nop
|
||||||
|
a: 4e71 [ ]+nop
|
6
gas/testsuite/gas/m68k/p3041.s
Normal file
6
gas/testsuite/gas/m68k/p3041.s
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
jmp mylabel+2
|
||||||
|
nop
|
||||||
|
.weak mylabel
|
||||||
|
mylabel:
|
||||||
|
nop
|
||||||
|
nop
|
Loading…
Reference in a new issue