diff options
Diffstat (limited to 'binutils-2.25/binutils/testsuite/binutils-all/mips')
5 files changed, 153 insertions, 0 deletions
diff --git a/binutils-2.25/binutils/testsuite/binutils-all/mips/mips.exp b/binutils-2.25/binutils/testsuite/binutils-all/mips/mips.exp new file mode 100644 index 00000000..eba88680 --- /dev/null +++ b/binutils-2.25/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-2.25/binutils/testsuite/binutils-all/mips/mixed-micromips.d b/binutils-2.25/binutils/testsuite/binutils-all/mips/mixed-micromips.d new file mode 100644 index 00000000..0bc9e412 --- /dev/null +++ b/binutils-2.25/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-2.25/binutils/testsuite/binutils-all/mips/mixed-micromips.s b/binutils-2.25/binutils/testsuite/binutils-all/mips/mixed-micromips.s new file mode 100644 index 00000000..0528c904 --- /dev/null +++ b/binutils-2.25/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-2.25/binutils/testsuite/binutils-all/mips/mixed-mips16.d b/binutils-2.25/binutils/testsuite/binutils-all/mips/mixed-mips16.d new file mode 100644 index 00000000..09e1821a --- /dev/null +++ b/binutils-2.25/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]+ <[^>]*> 6304 addiu sp,32 + \.\.\. diff --git a/binutils-2.25/binutils/testsuite/binutils-all/mips/mixed-mips16.s b/binutils-2.25/binutils/testsuite/binutils-all/mips/mixed-mips16.s new file mode 100644 index 00000000..338022c1 --- /dev/null +++ b/binutils-2.25/binutils/testsuite/binutils-all/mips/mixed-mips16.s @@ -0,0 +1,34 @@ + .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) + addiu $sp, 32 + jr $a3 + .end bar + +# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ... + .align 2 + .space 8 |