diff options
Diffstat (limited to 'binutils')
-rw-r--r-- | binutils/testsuite/ChangeLog | 8 | ||||
-rw-r--r-- | binutils/testsuite/binutils-all/mips/mips.exp | 26 | ||||
-rw-r--r-- | binutils/testsuite/binutils-all/mips/mixed-micromips.d | 30 | ||||
-rw-r--r-- | binutils/testsuite/binutils-all/mips/mixed-micromips.s | 33 | ||||
-rw-r--r-- | binutils/testsuite/binutils-all/mips/mixed-mips16.d | 30 | ||||
-rw-r--r-- | binutils/testsuite/binutils-all/mips/mixed-mips16.s | 33 |
6 files changed, 160 insertions, 0 deletions
diff --git a/binutils/testsuite/ChangeLog b/binutils/testsuite/ChangeLog index b3d9c42..0b42ef2 100644 --- a/binutils/testsuite/ChangeLog +++ b/binutils/testsuite/ChangeLog @@ -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. diff --git a/binutils/testsuite/binutils-all/mips/mips.exp b/binutils/testsuite/binutils-all/mips/mips.exp new file mode 100644 index 0000000..eba8868 --- /dev/null +++ b/binutils/testsuite/binutils-all/mips/mips.exp @@ -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" +} diff --git a/binutils/testsuite/binutils-all/mips/mixed-micromips.d b/binutils/testsuite/binutils-all/mips/mixed-micromips.d new file mode 100644 index 0000000..0bc9e41 --- /dev/null +++ b/binutils/testsuite/binutils-all/mips/mixed-micromips.d @@ -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 + \.\.\. diff --git a/binutils/testsuite/binutils-all/mips/mixed-micromips.s b/binutils/testsuite/binutils-all/mips/mixed-micromips.s new file mode 100644 index 0000000..0528c90 --- /dev/null +++ b/binutils/testsuite/binutils-all/mips/mixed-micromips.s @@ -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 diff --git a/binutils/testsuite/binutils-all/mips/mixed-mips16.d b/binutils/testsuite/binutils-all/mips/mixed-mips16.d new file mode 100644 index 0000000..1f76c52 --- /dev/null +++ b/binutils/testsuite/binutils-all/mips/mixed-mips16.d @@ -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 + \.\.\. diff --git a/binutils/testsuite/binutils-all/mips/mixed-mips16.s b/binutils/testsuite/binutils-all/mips/mixed-mips16.s new file mode 100644 index 0000000..189f4ae --- /dev/null +++ b/binutils/testsuite/binutils-all/mips/mixed-mips16.s @@ -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 |