mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2024-11-27 03:51:15 +08:00
opcodes/
* mips-dis.c (is_compressed_mode_p): Only match symbols from the section disassembled. binutils/testsuite/ * binutils-all/mips/mixed-micromips.d: New test. * binutils-all/mips/mixed-mips16.d: New test. * binutils-all/mips/mixed-micromips.s: New test source. * binutils-all/mips/mixed-mips16.s: New test source. * binutils-all/mips/mips.exp: New file.
This commit is contained in:
parent
a8256ea1e4
commit
5417f71edb
@ -1,3 +1,11 @@
|
||||
2013-02-12 Maciej W. Rozycki <macro@codesourcery.com>
|
||||
|
||||
* binutils-all/mips/mixed-micromips.d: New test.
|
||||
* binutils-all/mips/mixed-mips16.d: New test.
|
||||
* binutils-all/mips/mixed-micromips.s: New test source.
|
||||
* binutils-all/mips/mixed-mips16.s: New test source.
|
||||
* binutils-all/mips/mips.exp: New file.
|
||||
|
||||
2012-12-17 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* binutils-all/windres/README: Add copyright notice.
|
||||
|
26
binutils/testsuite/binutils-all/mips/mips.exp
Normal file
26
binutils/testsuite/binutils-all/mips/mips.exp
Normal file
@ -0,0 +1,26 @@
|
||||
# Copyright 2013
|
||||
# Free Software Foundation, Inc.
|
||||
|
||||
# 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 mips*-*-*] {
|
||||
return
|
||||
}
|
||||
|
||||
if [is_elf_format] {
|
||||
run_dump_test "mixed-mips16"
|
||||
run_dump_test "mixed-micromips"
|
||||
}
|
30
binutils/testsuite/binutils-all/mips/mixed-micromips.d
Normal file
30
binutils/testsuite/binutils-all/mips/mixed-micromips.d
Normal file
@ -0,0 +1,30 @@
|
||||
#PROG: objcopy
|
||||
#objdump: -dr --prefix-addresses --show-raw-insn
|
||||
#name: Mixed MIPS and microMIPS disassembly
|
||||
#as: -32 -mips2
|
||||
|
||||
# Test mixed-mode disassembly in overlapping sections.
|
||||
|
||||
.*: +file format .*mips.*
|
||||
|
||||
Disassembly of section \.text\.foo:
|
||||
[0-9a-f]+ <[^>]*> 27bdffe0 addiu sp,sp,-32
|
||||
[0-9a-f]+ <[^>]*> afbf001c sw ra,28\(sp\)
|
||||
[0-9a-f]+ <[^>]*> 0c000000 jal 00000000 <.*>
|
||||
[ ]*[0-9a-f]+: R_MIPS_26 baz
|
||||
[0-9a-f]+ <[^>]*> 00000000 nop
|
||||
[0-9a-f]+ <[^>]*> 8fbf001c lw ra,28\(sp\)
|
||||
[0-9a-f]+ <[^>]*> 03e00008 jr ra
|
||||
[0-9a-f]+ <[^>]*> 27bd0020 addiu sp,sp,32
|
||||
\.\.\.
|
||||
|
||||
Disassembly of section \.text\.bar:
|
||||
[0-9a-f]+ <[^>]*> 4ff1 addiu sp,sp,-32
|
||||
[0-9a-f]+ <[^>]*> cbe7 sw ra,28\(sp\)
|
||||
[0-9a-f]+ <[^>]*> 7400 0000 jals 00000000 <.*>
|
||||
[ ]*[0-9a-f]+: R_MICROMIPS_26_S1 baz
|
||||
[0-9a-f]+ <[^>]*> 0c00 nop
|
||||
[0-9a-f]+ <[^>]*> 4be7 lw ra,28\(sp\)
|
||||
[0-9a-f]+ <[^>]*> 4708 jraddiusp 32
|
||||
[0-9a-f]+ <[^>]*> 0c00 nop
|
||||
\.\.\.
|
33
binutils/testsuite/binutils-all/mips/mixed-micromips.s
Normal file
33
binutils/testsuite/binutils-all/mips/mixed-micromips.s
Normal file
@ -0,0 +1,33 @@
|
||||
.section .text.foo, "ax", @progbits
|
||||
.set nomicromips
|
||||
.globl foo
|
||||
.ent foo
|
||||
foo:
|
||||
addiu $sp, $sp, -32
|
||||
sw $ra, 28($sp)
|
||||
jal baz
|
||||
lw $ra, 28($sp)
|
||||
addiu $sp, $sp, 32
|
||||
jr $ra
|
||||
.end foo
|
||||
|
||||
# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
|
||||
.align 2
|
||||
.space 8
|
||||
|
||||
|
||||
.section .text.bar, "ax", @progbits
|
||||
.set micromips
|
||||
.globl bar
|
||||
.ent bar
|
||||
bar:
|
||||
addiu $sp, $sp, -32
|
||||
sw $ra, 28($sp)
|
||||
jals baz
|
||||
lw $ra, 28($sp)
|
||||
jraddiusp 32
|
||||
.end bar
|
||||
|
||||
# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
|
||||
.align 2
|
||||
.space 8
|
30
binutils/testsuite/binutils-all/mips/mixed-mips16.d
Normal file
30
binutils/testsuite/binutils-all/mips/mixed-mips16.d
Normal file
@ -0,0 +1,30 @@
|
||||
#PROG: objcopy
|
||||
#objdump: -dr --prefix-addresses --show-raw-insn
|
||||
#name: Mixed MIPS and MIPS16 disassembly
|
||||
#as: -32 -mips2
|
||||
|
||||
# Test mixed-mode disassembly in overlapping sections.
|
||||
|
||||
.*: +file format .*mips.*
|
||||
|
||||
Disassembly of section \.text\.foo:
|
||||
[0-9a-f]+ <[^>]*> 27bdffe0 addiu sp,sp,-32
|
||||
[0-9a-f]+ <[^>]*> afbf001c sw ra,28\(sp\)
|
||||
[0-9a-f]+ <[^>]*> 0c000000 jal 00000000 <.*>
|
||||
[ ]*[0-9a-f]+: R_MIPS_26 baz
|
||||
[0-9a-f]+ <[^>]*> 00000000 nop
|
||||
[0-9a-f]+ <[^>]*> 8fbf001c lw ra,28\(sp\)
|
||||
[0-9a-f]+ <[^>]*> 03e00008 jr ra
|
||||
[0-9a-f]+ <[^>]*> 27bd0020 addiu sp,sp,32
|
||||
\.\.\.
|
||||
|
||||
Disassembly of section \.text\.bar:
|
||||
[0-9a-f]+ <[^>]*> 63fc addiu sp,-32
|
||||
[0-9a-f]+ <[^>]*> 6207 sw ra,28\(sp\)
|
||||
[0-9a-f]+ <[^>]*> 1800 0000 jal 00000000 <.*>
|
||||
[ ]*[0-9a-f]+: R_MIPS16_26 baz
|
||||
[0-9a-f]+ <[^>]*> 6500 nop
|
||||
[0-9a-f]+ <[^>]*> 9707 lw a3,28\(sp\)
|
||||
[0-9a-f]+ <[^>]*> ef00 jr a3
|
||||
[0-9a-f]+ <[^>]*> 6500 nop
|
||||
\.\.\.
|
33
binutils/testsuite/binutils-all/mips/mixed-mips16.s
Normal file
33
binutils/testsuite/binutils-all/mips/mixed-mips16.s
Normal file
@ -0,0 +1,33 @@
|
||||
.section .text.foo, "ax", @progbits
|
||||
.set nomips16
|
||||
.globl foo
|
||||
.ent foo
|
||||
foo:
|
||||
addiu $sp, $sp, -32
|
||||
sw $ra, 28($sp)
|
||||
jal baz
|
||||
lw $ra, 28($sp)
|
||||
addiu $sp, $sp, 32
|
||||
jr $ra
|
||||
.end foo
|
||||
|
||||
# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
|
||||
.align 2
|
||||
.space 8
|
||||
|
||||
|
||||
.section .text.bar, "ax", @progbits
|
||||
.set mips16
|
||||
.globl bar
|
||||
.ent bar
|
||||
bar:
|
||||
addiu $sp, -32
|
||||
sw $ra, 28($sp)
|
||||
jal baz
|
||||
lw $a3, 28($sp)
|
||||
jr $a3
|
||||
.end bar
|
||||
|
||||
# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ...
|
||||
.align 2
|
||||
.space 8
|
@ -1,3 +1,8 @@
|
||||
2013-02-12 Maciej W. Rozycki <macro@codesourcery.com>
|
||||
|
||||
* mips-dis.c (is_compressed_mode_p): Only match symbols from the
|
||||
section disassembled.
|
||||
|
||||
2013-02-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
|
||||
|
||||
* arm-dis.c: Update strht pattern.
|
||||
|
@ -2940,6 +2940,9 @@ is_compressed_mode_p (struct disassemble_info *info)
|
||||
if (bfd_asymbol_flavour (info->symtab[pos]) != bfd_target_elf_flavour)
|
||||
continue;
|
||||
|
||||
if (info->symtab[pos]->section != info->section)
|
||||
continue;
|
||||
|
||||
symbol = (elf_symbol_type *) info->symtab[pos];
|
||||
if ((!micromips_ase
|
||||
&& ELF_ST_IS_MIPS16 (symbol->internal_elf_sym.st_other))
|
||||
|
Loading…
Reference in New Issue
Block a user