[Kernelloader-cvs] linux/simple-toolchain binutils-2.22-mipsel-ps2-tests.patch, 1.3, 1.4 binutils-
Run Linux on the Playstation 2
Brought to you by:
kloader
From: Mega M. <kl...@us...> - 2012-11-22 20:48:49
|
Update of /cvsroot/kernelloader/linux/simple-toolchain In directory vz-cvs-3.sog:/tmp/cvs-serv21579 Modified Files: binutils-2.22-mipsel-ps2-tests.patch binutils-2.22-mipsel-ps2.patch Log Message: VU test update. VU fixes. Index: binutils-2.22-mipsel-ps2.patch =================================================================== RCS file: /cvsroot/kernelloader/linux/simple-toolchain/binutils-2.22-mipsel-ps2.patch,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** binutils-2.22-mipsel-ps2.patch 17 Nov 2012 18:55:23 -0000 1.12 --- binutils-2.22-mipsel-ps2.patch 22 Nov 2012 20:48:46 -0000 1.13 *************** *** 1,5 **** ! diff -urp ../binutils-2.22.orig/bfd/archures.c binutils-2.22-mips64r5900el-linux-patched/bfd/archures.c ! --- ../binutils-2.22.orig/bfd/archures.c 2011-08-02 01:04:19.000000000 +0200 ! +++ binutils-2.22-mips64r5900el-linux-patched/bfd/archures.c 2012-10-08 23:27:23.621103318 +0200 @@ -161,6 +161,7 @@ DESCRIPTION .#define bfd_mach_mips5000 5000 --- 1,6 ---- ! diff --git a/bfd/archures.c b/bfd/archures.c ! index 44850e7..89ff781 100644 ! --- a/bfd/archures.c ! +++ b/bfd/archures.c [...2631 lines suppressed...] - - { - - as_bad (_("-%s conflicts with the other architecture options, which imply -%s"), - - arch_info->name, - - tune_info->name); - + /* MIPS R5900 always supports all instructions. */ - + if (arch_info->isa <= tune_info->isa) - + { - + /* Allow usage of additional instructions. */ - + arch_info = tune_info; - + } - + else - + { - + as_bad (_("-%s conflicts with the other architecture options, which imply -%s"), - + arch_info->name, - + tune_info->name); - + } - } - } - --- 2535,2536 ---- Index: binutils-2.22-mipsel-ps2-tests.patch =================================================================== RCS file: /cvsroot/kernelloader/linux/simple-toolchain/binutils-2.22-mipsel-ps2-tests.patch,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** binutils-2.22-mipsel-ps2-tests.patch 17 Nov 2012 22:26:24 -0000 1.3 --- binutils-2.22-mipsel-ps2-tests.patch 22 Nov 2012 20:48:46 -0000 1.4 *************** *** 1,4 **** ! --- binutils-2.22-mips64el-linux-unpatched/gas/testsuite/gas/mips/mips.exp 2011-11-21 10:29:32.000000000 +0100 ! +++ binutils-2.22-mips64el-linux-patched/gas/testsuite/gas/mips/mips.exp 2012-11-17 22:20:49.487022984 +0100 @@ -71,6 +71,14 @@ # The architecture provides 32- or 64-bit General Purpose --- 1,6 ---- ! diff --git a/gas/testsuite/gas/mips/mips.exp b/gas/testsuite/gas/mips/mips.exp ! index cbaaa70..59f2ea3 100644 ! --- a/gas/testsuite/gas/mips/mips.exp ! +++ b/gas/testsuite/gas/mips/mips.exp @@ -71,6 +71,14 @@ # The architecture provides 32- or 64-bit General Purpose *************** *** 98,102 **** run_dump_test "elf${el}-rel3" run_dump_test_arches "elf-rel4" [mips_arch_list_matching gpr64] ! @@ -1060,4 +1071,7 @@ if { [istarget mips*-*-vxworks*] } { run_dump_test_arches "mcu" [mips_arch_list_matching mips32r2 \ --- 100,104 ---- run_dump_test "elf${el}-rel3" run_dump_test_arches "elf-rel4" [mips_arch_list_matching gpr64] ! @@ -1060,4 +1071,8 @@ if { [istarget mips*-*-vxworks*] } { run_dump_test_arches "mcu" [mips_arch_list_matching mips32r2 \ *************** *** 105,111 **** + run_dump_test "r5900-hardldsd" + run_list_test "r5900-short-loop-warning" } ! --- binutils-2.22-mips64el-linux-unpatched/gas/testsuite/gas/mips/r5900.d 1970-01-01 01:00:00.000000000 +0100 ! +++ binutils-2.22-mips64el-linux-patched/gas/testsuite/gas/mips/r5900.d 2012-11-17 22:43:27.019040828 +0100 @@ -0,0 +1,362 @@ +#objdump: -dr --prefix-addresses --show-raw-insn -M gpr-names=numeric -mmips:5900 --- 107,608 ---- + run_dump_test "r5900-hardldsd" + run_list_test "r5900-short-loop-warning" + + run_dump_test "r5900-vu" } ! diff --git a/gas/testsuite/gas/mips/r5900-hardldsd.d b/gas/testsuite/gas/mips/r5900-hardldsd.d ! new file mode 100644 ! index 0000000..bf564a9 ! --- /dev/null ! +++ b/gas/testsuite/gas/mips/r5900-hardldsd.d ! @@ -0,0 +1,10 @@ ! +#objdump: -dr --prefix-addresses --show-raw-insn -M gpr-names=numeric -mmips:5900 ! +#name: MIPS R5900 force use of ld and sd instructions (nomacro). ! +#as: -march=r5900 -mabi=32 -mhard-ldsd ! + ! +.*: +file format .*mips.* ! + ! +Disassembly of section \.text: ! +[0-9a-f]+ <[^>]*> dca40000 ld \$4,0\(\$5\) ! +[0-9a-f]+ <[^>]*> fca40000 sd \$4,0\(\$5\) ! + \.\.\. ! diff --git a/gas/testsuite/gas/mips/r5900-hardldsd.s b/gas/testsuite/gas/mips/r5900-hardldsd.s ! new file mode 100644 ! index 0000000..88054ca ! --- /dev/null ! +++ b/gas/testsuite/gas/mips/r5900-hardldsd.s ! @@ -0,0 +1,17 @@ ! + .text ! + ! +stuff: ! + .ent stuff ! + .set push ! + .set noreorder ! + .set noat ! + .set nomacro ! + ! + # Linux kernel needs support for ld and sd with MIPS ABI o32: ! + ld $4, 0($5) ! + sd $4, 0($5) ! + ! + .set pop ! + ! + .space 8 ! + .end stuff ! diff --git a/gas/testsuite/gas/mips/r5900-short-loop-warning.l b/gas/testsuite/gas/mips/r5900-short-loop-warning.l ! new file mode 100644 ! index 0000000..df1b8cf ! --- /dev/null ! +++ b/gas/testsuite/gas/mips/r5900-short-loop-warning.l ! @@ -0,0 +1,2 @@ ! +.*: Assembler messages: ! +.*: Warning: Loop length is too short for r5900. ! diff --git a/gas/testsuite/gas/mips/r5900-short-loop-warning.s b/gas/testsuite/gas/mips/r5900-short-loop-warning.s ! new file mode 100644 ! index 0000000..4719046 ! --- /dev/null ! +++ b/gas/testsuite/gas/mips/r5900-short-loop-warning.s ! @@ -0,0 +1,21 @@ ! + .text ! + ! +stuff: ! + .ent stuff ! + .set push ! + .set noreorder ! + .set noat ! + .set mips1 ! + .set arch=r5900 ! + ! + li $3, 300 ! +short_loop1: ! + bne $3, $0, short_loop1 ! + addi $3, -1 ! + ! + .set pop ! + # Warning for short loop only appears on r5900 ! + .set arch=r5900 ! + ! + .space 8 ! + .end stuff ! diff --git a/gas/testsuite/gas/mips/r5900-vu.d b/gas/testsuite/gas/mips/r5900-vu.d ! new file mode 100644 ! index 0000000..c346a03 ! --- /dev/null ! +++ b/gas/testsuite/gas/mips/r5900-vu.d ! @@ -0,0 +1,193 @@ ! +#objdump: -dr --prefix-addresses --show-raw-insn -M gpr-names=numeric -mmips:5900 ! +#name: MIPS R5900 VU0 Macromode ! +#as: -march=r5900 ! + ! +.*: +file format .*mips.* ! + ! +Disassembly of section \.text: ! +[0-9a-f]+ <[^>]*> 4be0f9fd vabs \$vf00,\$vf31 ! +[0-9a-f]+ <[^>]*> 4be0faa8 vadd \$vf10,\$vf31,\$vf00 ! +[0-9a-f]+ <[^>]*> 4be0faa2 vaddi \$vf10,\$vf31,\$I ! +[0-9a-f]+ <[^>]*> 4be0faa0 vaddq \$vf10,\$vf31,\$Q ! +[0-9a-f]+ <[^>]*> 4be1fa83 vaddw \$vf10,\$vf31,\$vf01w ! +[0-9a-f]+ <[^>]*> 4be1fa80 vaddx \$vf10,\$vf31,\$vf01x ! +[0-9a-f]+ <[^>]*> 4be1fa81 vaddy \$vf10,\$vf31,\$vf01y ! +[0-9a-f]+ <[^>]*> 4be1fa82 vaddz \$vf10,\$vf31,\$vf01z ! +[0-9a-f]+ <[^>]*> 4be0fabc vadda \$ACC,\$vf00,\$vf31 ! +[0-9a-f]+ <[^>]*> 4be0fa3e vaddai \$ACC,\$vf31,\$I ! +[0-9a-f]+ <[^>]*> 4be0fa3c vaddaq \$ACC,\$vf31,\$Q ! +[0-9a-f]+ <[^>]*> 4be1f83f vaddaw \$ACC,\$vf31,\$vf01w ! +[0-9a-f]+ <[^>]*> 4be1f83c vaddax \$ACC,\$vf31,\$vf01x ! +[0-9a-f]+ <[^>]*> 4be1f83d vadday \$ACC,\$vf31,\$vf01y ! +[0-9a-f]+ <[^>]*> 4be1f83e vaddaz \$ACC,\$vf31,\$vf01z ! +[0-9a-f]+ <[^>]*> 4a000038 vcallms 00000000 <text_label> ! + 3c: R_MIPS15_S3 text_label ! +[0-9a-f]+ <[^>]*> 4a00d839 vcallmsr ! +[0-9a-f]+ <[^>]*> 4be1f9ff vclipw \$vf31,\$vf01w ! +[0-9a-f]+ <[^>]*> 4a2b0bbc vdiv \$Q,\$vf01y,\$vf11x ! +[0-9a-f]+ <[^>]*> 4be0f97c vftoi0 \$vf00,\$vf31 ! +[0-9a-f]+ <[^>]*> 4be0f97d vftoi4 \$vf00,\$vf31 ! +[0-9a-f]+ <[^>]*> 4be0f97e vftoi12 \$vf00,\$vf31 ! +[0-9a-f]+ <[^>]*> 4be0f97f vftoi15 \$vf00,\$vf31 ! +[0-9a-f]+ <[^>]*> 4a007870 viadd \$vi01,\$vi15,\$vi00 ! +[0-9a-f]+ <[^>]*> 4a007ff2 viaddi \$vi00,\$vi15,-1 ! +[0-9a-f]+ <[^>]*> 4a007874 viand \$vi01,\$vi15,\$vi00 ! +[0-9a-f]+ <[^>]*> 4a207bfe vilwr.w \$vi00,\(\$vi15\) ! +[0-9a-f]+ <[^>]*> 4b007bfe vilwr.x \$vi00,\(\$vi15\) ! +[0-9a-f]+ <[^>]*> 4a807bfe vilwr.y \$vi00,\(\$vi15\) ! +[0-9a-f]+ <[^>]*> 4a407bfe vilwr.z \$vi00,\(\$vi15\) ! +[0-9a-f]+ <[^>]*> 4a007875 vior \$vi01,\$vi15,\$vi00 ! +[0-9a-f]+ <[^>]*> 4a207bff viswr.w \$vi00,\(\$vi15\) ! +[0-9a-f]+ <[^>]*> 4b007bff viswr.x \$vi00,\(\$vi15\) ! +[0-9a-f]+ <[^>]*> 4a807bff viswr.y \$vi00,\(\$vi15\) ! +[0-9a-f]+ <[^>]*> 4a407bff viswr.z \$vi00,\(\$vi15\) ! +[0-9a-f]+ <[^>]*> 4a007871 visub \$vi01,\$vi15,\$vi00 ! +[0-9a-f]+ <[^>]*> 4be0f93c vitof0 \$vf00,\$vf31 ! +[0-9a-f]+ <[^>]*> 4be0f93d vitof4 \$vf00,\$vf31 ! +[0-9a-f]+ <[^>]*> 4be0f93e vitof12 \$vf00,\$vf31 ! +[0-9a-f]+ <[^>]*> 4be0f93f vitof15 \$vf00,\$vf31 ! +[0-9a-f]+ <[^>]*> 4be07b7e vlqd \$vf00,\(\-\-\$vi15\) ! +[0-9a-f]+ <[^>]*> 4be07b7c vlqi \$vf00,\(\$vi15\+\+\) ! +[0-9a-f]+ <[^>]*> 4be0faa9 vmadd \$vf10,\$vf31,\$vf00 ! +[0-9a-f]+ <[^>]*> 4be0faa3 vmaddi \$vf10,\$vf31,\$I ! +[0-9a-f]+ <[^>]*> 4be0faa1 vmaddq \$vf10,\$vf31,\$Q ! +[0-9a-f]+ <[^>]*> 4be1fa8b vmaddw \$vf10,\$vf31,\$vf01w ! +[0-9a-f]+ <[^>]*> 4be1fa88 vmaddx \$vf10,\$vf31,\$vf01x ! +[0-9a-f]+ <[^>]*> 4be1fa89 vmaddy \$vf10,\$vf31,\$vf01y ! +[0-9a-f]+ <[^>]*> 4be1fa8a vmaddz \$vf10,\$vf31,\$vf01z ! +[0-9a-f]+ <[^>]*> 4be0fabd vmadda \$ACC,\$vf31,\$vf00 ! +[0-9a-f]+ <[^>]*> 4be0fa3f vmaddai \$ACC,\$vf31,\$I ! +[0-9a-f]+ <[^>]*> 4be0fa3d vmaddaq \$ACC,\$vf31,\$Q ! +[0-9a-f]+ <[^>]*> 4be1f8bf vmaddaw \$ACC,\$vf31,\$vf01w ! +[0-9a-f]+ <[^>]*> 4be1f8bc vmaddax \$ACC,\$vf31,\$vf01x ! +[0-9a-f]+ <[^>]*> 4be1f8bd vmadday \$ACC,\$vf31,\$vf01y ! +[0-9a-f]+ <[^>]*> 4be1f8be vmaddaz \$ACC,\$vf31,\$vf01z ! +[0-9a-f]+ <[^>]*> 4be0faab vmax \$vf10,\$vf31,\$vf00 ! +[0-9a-f]+ <[^>]*> 4be0fa9d vmaxi \$vf10,\$vf31,\$I ! +[0-9a-f]+ <[^>]*> 4be1fa93 vmaxw \$vf10,\$vf31,\$vf01w ! +[0-9a-f]+ <[^>]*> 4be1fa90 vmaxx \$vf10,\$vf31,\$vf01x ! +[0-9a-f]+ <[^>]*> 4be1fa91 vmaxy \$vf10,\$vf31,\$vf01y ! +[0-9a-f]+ <[^>]*> 4be1fa92 vmaxz \$vf10,\$vf31,\$vf01z ! +[0-9a-f]+ <[^>]*> 4be07bfd vmfir \$vf00,\$vi15 ! +[0-9a-f]+ <[^>]*> 4be0faaf vmini \$vf10,\$vf31,\$vf00 ! +[0-9a-f]+ <[^>]*> 4be0fa9f vminii \$vf10,\$vf31,\$I ! +[0-9a-f]+ <[^>]*> 4be1fa97 vminiw \$vf10,\$vf31,\$vf01w ! +[0-9a-f]+ <[^>]*> 4be1fa94 vminix \$vf10,\$vf31,\$vf01x ! +[0-9a-f]+ <[^>]*> 4be1fa95 vminiy \$vf10,\$vf31,\$vf01y ! +[0-9a-f]+ <[^>]*> 4be1fa96 vminiz \$vf10,\$vf31,\$vf01z ! +[0-9a-f]+ <[^>]*> 4be0fb3c vmove \$vf00,\$vf31 ! +[0-9a-f]+ <[^>]*> 4be0fb3d vmr32 \$vf00,\$vf31 ! +[0-9a-f]+ <[^>]*> 4be0faad vmsub \$vf10,\$vf31,\$vf00 ! +[0-9a-f]+ <[^>]*> 4be0faa7 vmsubi \$vf10,\$vf31,\$I ! +[0-9a-f]+ <[^>]*> 4be0faa5 vmsubq \$vf10,\$vf31,\$Q ! +[0-9a-f]+ <[^>]*> 4be1fa8f vmsubw \$vf10,\$vf31,\$vf01w ! +[0-9a-f]+ <[^>]*> 4be1fa8c vmsubx \$vf10,\$vf31,\$vf01x ! +[0-9a-f]+ <[^>]*> 4be1fa8d vmsuby \$vf10,\$vf31,\$vf01y ! +[0-9a-f]+ <[^>]*> 4be1fa8e vmsubz \$vf10,\$vf31,\$vf01z ! +[0-9a-f]+ <[^>]*> 4be0fafd vmsuba \$ACC,\$vf00,\$vf31 ! +[0-9a-f]+ <[^>]*> 4be0fa7f vmsubai \$ACC,\$vf31,\$I ! +[0-9a-f]+ <[^>]*> 4be0fa7d vmsubaq \$ACC,\$vf31,\$Q ! +[0-9a-f]+ <[^>]*> 4be1f8ff vmsubaw \$ACC,\$vf31,\$vf01w ! +[0-9a-f]+ <[^>]*> 4be1f8fc vmsubax \$ACC,\$vf31,\$vf01x ! +[0-9a-f]+ <[^>]*> 4be1f8fd vmsubay \$ACC,\$vf31,\$vf01y ! +[0-9a-f]+ <[^>]*> 4be1f8fe vmsubaz \$ACC,\$vf31,\$vf01z ! +[0-9a-f]+ <[^>]*> 4a400bfc vmtir \$vi00,\$vf01z ! +[0-9a-f]+ <[^>]*> 4be0faaa vmul \$vf10,\$vf31,\$vf00 ! +[0-9a-f]+ <[^>]*> 4be0fa9e vmuli \$vf10,\$vf31,\$I ! +[0-9a-f]+ <[^>]*> 4be0fa9c vmulq \$vf10,\$vf31,\$Q ! +[0-9a-f]+ <[^>]*> 4be1fa9b vmulw \$vf10,\$vf31,\$vf01w ! +[0-9a-f]+ <[^>]*> 4be1fa98 vmulx \$vf10,\$vf31,\$vf01x ! +[0-9a-f]+ <[^>]*> 4be1fa99 vmuly \$vf10,\$vf31,\$vf01y ! +[0-9a-f]+ <[^>]*> 4be1fa9a vmulz \$vf10,\$vf31,\$vf01z ! +[0-9a-f]+ <[^>]*> 4be0fabe vmula \$ACC,\$vf31,\$vf00 ! +[0-9a-f]+ <[^>]*> 4be0f9fe vmulai \$ACC,\$vf31,\$I ! +[0-9a-f]+ <[^>]*> 4be0f9fc vmulaq \$ACC,\$vf31,\$Q ! +[0-9a-f]+ <[^>]*> 4be1f9bf vmulaw \$ACC,\$vf31,\$vf01w ! +[0-9a-f]+ <[^>]*> 4be1f9bc vmulax \$ACC,\$vf31,\$vf01x ! +[0-9a-f]+ <[^>]*> 4be1f9bd vmulay \$ACC,\$vf31,\$vf01y ! +[0-9a-f]+ <[^>]*> 4be1f9be vmulaz \$ACC,\$vf31,\$vf01z ! +[0-9a-f]+ <[^>]*> 4a0002ff vnop ! +[0-9a-f]+ <[^>]*> 4bc0fafe vopmula.xyz \$ACC,\$vf31,\$vf00 ! +[0-9a-f]+ <[^>]*> 4bc0faae vopmsub.xyz \$vf10,\$vf31,\$vf00 ! +[0-9a-f]+ <[^>]*> 4be0043d vrget \$vf00,\$R ! +[0-9a-f]+ <[^>]*> 4a600c3e vrinit \$R,\$vf01w ! +[0-9a-f]+ <[^>]*> 4be0043c vrnext \$vf00,\$R ! +[0-9a-f]+ <[^>]*> 4a6b0bbe vrsqrt \$Q,\$vf01w,\$vf11x ! +[0-9a-f]+ <[^>]*> 4a000c3f vrxor \$R,\$vf01x ! +[0-9a-f]+ <[^>]*> 4be0fb7f vsqd \$vf31,\(\-\-\$vi00\) ! +[0-9a-f]+ <[^>]*> 4be0fb7d vsqi \$vf31,\(\$vi00\+\+\) ! +[0-9a-f]+ <[^>]*> 4b2b03bd vsqrt \$Q,\$vf11z ! +[0-9a-f]+ <[^>]*> 4be0faac vsub \$vf10,\$vf31,\$vf00 ! +[0-9a-f]+ <[^>]*> 4be0faa6 vsubi \$vf10,\$vf31,\$I ! +[0-9a-f]+ <[^>]*> 4be0faa4 vsubq \$vf10,\$vf31,\$Q ! +[0-9a-f]+ <[^>]*> 4be1fa87 vsubw \$vf10,\$vf31,\$vf01w ! +[0-9a-f]+ <[^>]*> 4be1fa84 vsubx \$vf10,\$vf31,\$vf01x ! +[0-9a-f]+ <[^>]*> 4be1fa85 vsuby \$vf10,\$vf31,\$vf01y ! +[0-9a-f]+ <[^>]*> 4be1fa86 vsubz \$vf10,\$vf31,\$vf01z ! +[0-9a-f]+ <[^>]*> 4be0fafc vsuba \$ACC,\$vf31,\$vf00 ! +[0-9a-f]+ <[^>]*> 4be0fa7e vsubai \$ACC,\$vf31,\$I ! +[0-9a-f]+ <[^>]*> 4be0fa7c vsubaq \$ACC,\$vf31,\$Q ! +[0-9a-f]+ <[^>]*> 4be1f87f vsubaw \$ACC,\$vf31,\$vf01w ! +[0-9a-f]+ <[^>]*> 4be1f87c vsubax \$ACC,\$vf31,\$vf01x ! +[0-9a-f]+ <[^>]*> 4be1f87d vsubay \$ACC,\$vf31,\$vf01y ! +[0-9a-f]+ <[^>]*> 4be1f87e vsubaz \$ACC,\$vf31,\$vf01z ! +[0-9a-f]+ <[^>]*> 4a0003bf vwaitq ! +[0-9a-f]+ <[^>]*> 4be0faa8 vadd \$vf10,\$vf31,\$vf00 ! +[0-9a-f]+ <[^>]*> 4b80faa8 vadd.xy \$vf10,\$vf31,\$vf00 ! +[0-9a-f]+ <[^>]*> 4be0faa8 vadd \$vf10,\$vf31,\$vf00 ! +[0-9a-f]+ <[^>]*> 4b807b7c vlqi.xy \$vf00,\(\$vi15\+\+\) ! +[0-9a-f]+ <[^>]*> 4be20828 vadd \$vf00,\$vf01,\$vf02 ! +[0-9a-f]+ <[^>]*> 4be520e8 vadd \$vf03,\$vf04,\$vf05 ! +[0-9a-f]+ <[^>]*> 4be839a8 vadd \$vf06,\$vf07,\$vf08 ! +[0-9a-f]+ <[^>]*> 4beb5268 vadd \$vf09,\$vf10,\$vf11 ! +[0-9a-f]+ <[^>]*> 4bee6b28 vadd \$vf12,\$vf13,\$vf14 ! +[0-9a-f]+ <[^>]*> 4bf183e8 vadd \$vf15,\$vf16,\$vf17 ! +[0-9a-f]+ <[^>]*> 4bf49ca8 vadd \$vf18,\$vf19,\$vf20 ! +[0-9a-f]+ <[^>]*> 4bf7b568 vadd \$vf21,\$vf22,\$vf23 ! +[0-9a-f]+ <[^>]*> 4bface28 vadd \$vf24,\$vf25,\$vf26 ! +[0-9a-f]+ <[^>]*> 4bfde6e8 vadd \$vf27,\$vf28,\$vf29 ! +[0-9a-f]+ <[^>]*> 4be0ffa8 vadd \$vf30,\$vf31,\$vf00 ! +[0-9a-f]+ <[^>]*> 4a020830 viadd \$vi00,\$vi01,\$vi02 ! +[0-9a-f]+ <[^>]*> 4a0520f0 viadd \$vi03,\$vi04,\$vi05 ! +[0-9a-f]+ <[^>]*> 4a0839b0 viadd \$vi06,\$vi07,\$vi08 ! +[0-9a-f]+ <[^>]*> 4a0b5270 viadd \$vi09,\$vi10,\$vi11 ! +[0-9a-f]+ <[^>]*> 4a0e6b30 viadd \$vi12,\$vi13,\$vi14 ! +[0-9a-f]+ <[^>]*> 4a1183f0 viadd \$vi15,\$vi16,\$vi17 ! +[0-9a-f]+ <[^>]*> 4a149cb0 viadd \$vi18,\$vi19,\$vi20 ! +[0-9a-f]+ <[^>]*> 4a17b570 viadd \$vi21,\$vi22,\$vi23 ! +[0-9a-f]+ <[^>]*> 4a1ace30 viadd \$vi24,\$vi25,\$vi26 ! +[0-9a-f]+ <[^>]*> 4a1de6f0 viadd \$vi27,\$vi28,\$vi29 ! +[0-9a-f]+ <[^>]*> 4a00ffb0 viadd \$vi30,\$vi31,\$vi00 ! +[0-9a-f]+ <[^>]*> d8000000 lqc2 \$0,0\(\$0\) ! +[0-9a-f]+ <[^>]*> d8217fff lqc2 \$1,32767\(\$1\) ! +[0-9a-f]+ <[^>]*> d9088000 lqc2 \$8,-32768\(\$8\) ! +[0-9a-f]+ <[^>]*> dbffffff lqc2 \$31,-1\(\$31\) ! +[0-9a-f]+ <[^>]*> f8000000 sqc2 \$0,0\(\$0\) ! +[0-9a-f]+ <[^>]*> f8217fff sqc2 \$1,32767\(\$1\) ! +[0-9a-f]+ <[^>]*> f9088000 sqc2 \$8,-32768\(\$8\) ! +[0-9a-f]+ <[^>]*> fbffffff sqc2 \$31,-1\(\$31\) ! +[0-9a-f]+ <[^>]*> 48400000 cfc2 \$0,\$0 ! +[0-9a-f]+ <[^>]*> 4840f800 cfc2 \$0,\$31 ! +[0-9a-f]+ <[^>]*> 48400001 cfc2.i \$0,\$0 ! +[0-9a-f]+ <[^>]*> 4840f801 cfc2.i \$0,\$31 ! +[0-9a-f]+ <[^>]*> 48400000 cfc2 \$0,\$0 ! +[0-9a-f]+ <[^>]*> 4840f800 cfc2 \$0,\$31 ! +[0-9a-f]+ <[^>]*> 48c00000 ctc2 \$0,\$0 ! +[0-9a-f]+ <[^>]*> 48c0f800 ctc2 \$0,\$31 ! +[0-9a-f]+ <[^>]*> 48c00001 ctc2.i \$0,\$0 ! +[0-9a-f]+ <[^>]*> 48c0f801 ctc2.i \$0,\$31 ! +[0-9a-f]+ <[^>]*> 48c00000 ctc2 \$0,\$0 ! +[0-9a-f]+ <[^>]*> 48c0f800 ctc2 \$0,\$31 ! +[0-9a-f]+ <[^>]*> 48200000 qmfc2 \$0,\$0 ! +[0-9a-f]+ <[^>]*> 4820f800 qmfc2 \$0,\$31 ! +[0-9a-f]+ <[^>]*> 48200001 qmfc2.i \$0,\$0 ! +[0-9a-f]+ <[^>]*> 4820f801 qmfc2.i \$0,\$31 ! +[0-9a-f]+ <[^>]*> 48200000 qmfc2 \$0,\$0 ! +[0-9a-f]+ <[^>]*> 4820f800 qmfc2 \$0,\$31 ! +[0-9a-f]+ <[^>]*> 48a00000 qmtc2 \$0,\$0 ! +[0-9a-f]+ <[^>]*> 48a0f800 qmtc2 \$0,\$31 ! +[0-9a-f]+ <[^>]*> 48a00001 qmtc2.i \$0,\$0 ! +[0-9a-f]+ <[^>]*> 48a0f801 qmtc2.i \$0,\$31 ! +[0-9a-f]+ <[^>]*> 48a00000 qmtc2 \$0,\$0 ! +[0-9a-f]+ <[^>]*> 48a0f800 qmtc2 \$0,\$31 ! + \.\.\. ! diff --git a/gas/testsuite/gas/mips/r5900-vu.s b/gas/testsuite/gas/mips/r5900-vu.s ! new file mode 100644 ! index 0000000..776a82c ! --- /dev/null ! +++ b/gas/testsuite/gas/mips/r5900-vu.s ! @@ -0,0 +1,212 @@ ! + .set noreorder ! + .set noat ! + ! + .globl text_label .text ! +text_label: ! + ! + # VU Macromode instruction set ! + vabs.xyzw $vf0xyzw,$vf31xyzw ! + vadd.xyzw $vf10xyzw,$vf31xyzw,$vf0xyzw ! + vaddi.xyzw $vf10xyzw,$vf31xyzw,$I ! + vaddq.xyzw $vf10xyzw,$vf31xyzw,$Q ! + vaddw.xyzw $vf10xyzw,$vf31xyzw,$vf01w ! + vaddx.xyzw $vf10xyzw,$vf31xyzw,$vf01x ! + vaddy.xyzw $vf10xyzw,$vf31xyzw,$vf01y ! + vaddz.xyzw $vf10xyzw,$vf31xyzw,$vf01z ! + vadda.xyzw $ACCxyzw,$vf0xyzw,$vf31xyzw ! + vaddai.xyzw $ACCxyzw,$vf31xyzw,$I ! + vaddaq.xyzw $ACCxyzw,$vf31xyzw,$Q ! + vaddaw.xyzw $ACCxyzw,$vf31xyzw,$vf01w ! + vaddax.xyzw $ACCxyzw,$vf31xyzw,$vf01x ! + vadday.xyzw $ACCxyzw,$vf31xyzw,$vf01y ! + vaddaz.xyzw $ACCxyzw,$vf31xyzw,$vf01z ! + vcallms text_label ! + vcallmsr ! + vclipw.xyzw $vf31xyzw,$vf01w ! + vdiv $Q,$vf01y,$vf11x ! + vftoi0.xyzw $vf0xyzw,$vf31xyzw ! + vftoi4.xyzw $vf0xyzw,$vf31xyzw ! + vftoi12.xyzw $vf0xyzw,$vf31xyzw ! + vftoi15.xyzw $vf0xyzw,$vf31xyzw ! + viadd $vi01,$vi15,$vi0 ! + viaddi $vi0,$vi15,-1 ! + viand $vi01,$vi15,$vi0 ! + vilwr.w $vi0,($vi15) ! + vilwr.x $vi0,($vi15) ! + vilwr.y $vi0,($vi15) ! + vilwr.z $vi0,($vi15) ! + vior $vi01,$vi15,$vi0 ! + viswr.w $vi0,($vi15) ! + viswr.x $vi0,($vi15) ! + viswr.y $vi0,($vi15) ! + viswr.z $vi0,($vi15) ! + visub $vi01,$vi15,$vi0 ! + vitof0.xyzw $vf0xyzw,$vf31xyzw ! + vitof4.xyzw $vf0xyzw,$vf31xyzw ! + vitof12.xyzw $vf0xyzw,$vf31xyzw ! + vitof15.xyzw $vf0xyzw,$vf31xyzw ! + vlqd.xyzw $vf0xyzw,(--$vi15)xyzw ! + vlqi.xyzw $vf0xyzw,($vi15++)xyzw ! + vmadd.xyzw $vf10xyzw,$vf31xyzw,$vf0xyzw ! + vmaddi.xyzw $vf10xyzw,$vf31xyzw,$I ! + vmaddq.xyzw $vf10xyzw,$vf31xyzw,$Q ! + vmaddw.xyzw $vf10xyzw,$vf31xyzw,$vf01w ! + vmaddx.xyzw $vf10xyzw,$vf31xyzw,$vf01x ! + vmaddy.xyzw $vf10xyzw,$vf31xyzw,$vf01y ! + vmaddz.xyzw $vf10xyzw,$vf31xyzw,$vf01z ! + vmadda.xyzw $ACCxyzw,$vf31xyzw,$vf0xyzw ! + vmaddai.xyzw $ACCxyzw,$vf31xyzw,$I ! + vmaddaq.xyzw $ACCxyzw,$vf31xyzw,$Q ! + vmaddaw.xyzw $ACCxyzw,$vf31xyzw,$vf01w ! + vmaddax.xyzw $ACCxyzw,$vf31xyzw,$vf01x ! + vmadday.xyzw $ACCxyzw,$vf31xyzw,$vf01y ! + vmaddaz.xyzw $ACCxyzw,$vf31xyzw,$vf01z ! + vmax.xyzw $vf10xyzw,$vf31xyzw,$vf0xyzw ! + vmaxi.xyzw $vf10xyzw,$vf31xyzw,$I ! + vmaxw.xyzw $vf10xyzw,$vf31xyzw,$vf01w ! + vmaxx.xyzw $vf10xyzw,$vf31xyzw,$vf01x ! + vmaxy.xyzw $vf10xyzw,$vf31xyzw,$vf01y ! + vmaxz.xyzw $vf10xyzw,$vf31xyzw,$vf01z ! + vmfir.xyzw $vf0xyzw,$vi15 ! + vmini.xyzw $vf10xyzw,$vf31xyzw,$vf0xyzw ! + vminii.xyzw $vf10xyzw,$vf31xyzw,$I ! + vminiw.xyzw $vf10xyzw,$vf31xyzw,$vf01w ! + vminix.xyzw $vf10xyzw,$vf31xyzw,$vf01x ! + vminiy.xyzw $vf10xyzw,$vf31xyzw,$vf01y ! + vminiz.xyzw $vf10xyzw,$vf31xyzw,$vf01z ! + vmove.xyzw $vf0xyzw,$vf31xyzw ! + vmr32.xyzw $vf0xyzw,$vf31xyzw ! + vmsub.xyzw $vf10xyzw,$vf31xyzw,$vf0xyzw ! + vmsubi.xyzw $vf10xyzw,$vf31xyzw,$I ! + vmsubq.xyzw $vf10xyzw,$vf31xyzw,$Q ! + vmsubw.xyzw $vf10xyzw,$vf31xyzw,$vf01w ! + vmsubx.xyzw $vf10xyzw,$vf31xyzw,$vf01x ! + vmsuby.xyzw $vf10xyzw,$vf31xyzw,$vf01y ! + vmsubz.xyzw $vf10xyzw,$vf31xyzw,$vf01z ! + vmsuba.xyzw $ACCxyzw,$vf0xyzw,$vf31xyzw ! + vmsubai.xyzw $ACCxyzw,$vf31xyzw,$I ! + vmsubaq.xyzw $ACCxyzw,$vf31xyzw,$Q ! + vmsubaw.xyzw $ACCxyzw,$vf31xyzw,$vf01w ! + vmsubax.xyzw $ACCxyzw,$vf31xyzw,$vf01x ! + vmsubay.xyzw $ACCxyzw,$vf31xyzw,$vf01y ! + vmsubaz.xyzw $ACCxyzw,$vf31xyzw,$vf01z ! + vmtir $vi0,$vf01z ! + vmul.xyzw $vf10xyzw,$vf31xyzw,$vf0xyzw ! + vmuli.xyzw $vf10xyzw,$vf31xyzw,$I ! + vmulq.xyzw $vf10xyzw,$vf31xyzw,$Q ! + vmulw.xyzw $vf10xyzw,$vf31xyzw,$vf01w ! + vmulx.xyzw $vf10xyzw,$vf31xyzw,$vf01x ! + vmuly.xyzw $vf10xyzw,$vf31xyzw,$vf01y ! + vmulz.xyzw $vf10xyzw,$vf31xyzw,$vf01z ! + vmula.xyzw $ACCxyzw,$vf31xyzw,$vf0xyzw ! + vmulai.xyzw $ACCxyzw,$vf31xyzw,$I ! + vmulaq.xyzw $ACCxyzw,$vf31xyzw,$Q ! + vmulaw.xyzw $ACCxyzw,$vf31xyzw,$vf01w ! + vmulax.xyzw $ACCxyzw,$vf31xyzw,$vf01x ! + vmulay.xyzw $ACCxyzw,$vf31xyzw,$vf01y ! + vmulaz.xyzw $ACCxyzw,$vf31xyzw,$vf01z ! + vnop ! + vopmula.xyz $ACCxyz,$vf31xyz,$vf0xyz ! + vopmsub.xyz $vf10xyz,$vf31xyz,$vf0xyz ! + vrget.xyzw $vf0xyzw,$R ! + vrinit $R,$vf01w ! + vrnext.xyzw $vf0xyzw,$R ! + vrsqrt $Q,$vf01w,$vf11x ! + vrxor $R,$vf01x ! + vsqd.xyzw $vf31xyzw,(--$vi0)xyzw ! + vsqi.xyzw $vf31xyzw,($vi0++)xyzw ! + vsqrt $Q,$vf11z ! + vsub.xyzw $vf10xyzw,$vf31xyzw,$vf0xyzw ! + vsubi.xyzw $vf10xyzw,$vf31xyzw,$I ! + vsubq.xyzw $vf10xyzw,$vf31xyzw,$Q ! + vsubw.xyzw $vf10xyzw,$vf31xyzw,$vf01w ! + vsubx.xyzw $vf10xyzw,$vf31xyzw,$vf01x ! + vsuby.xyzw $vf10xyzw,$vf31xyzw,$vf01y ! + vsubz.xyzw $vf10xyzw,$vf31xyzw,$vf01z ! + vsuba.xyzw $ACCxyzw,$vf31xyzw,$vf0xyzw ! + vsubai.xyzw $ACCxyzw,$vf31xyzw,$I ! + vsubaq.xyzw $ACCxyzw,$vf31xyzw,$Q ! + vsubaw.xyzw $ACCxyzw,$vf31xyzw,$vf01w ! + vsubax.xyzw $ACCxyzw,$vf31xyzw,$vf01x ! + vsubay.xyzw $ACCxyzw,$vf31xyzw,$vf01y ! + vsubaz.xyzw $ACCxyzw,$vf31xyzw,$vf01z ! + vwaitq ! + ! + # Implicit suffixes ! + vadd.xyzw $vf10,$vf31,$vf0 ! + vadd.xy $vf10,$vf31,$vf0 ! + vadd $vf10,$vf31,$vf0 ! + vlqi.xy $vf0,($vi15++) ! + ! + # VU floating point registers ! + vadd.xyzw $vf00,$vf01,$vf02 ! + vadd.xyzw $vf03,$vf04,$vf05 ! + vadd.xyzw $vf06,$vf07,$vf08 ! + vadd.xyzw $vf09,$vf10,$vf11 ! + vadd.xyzw $vf12,$vf13,$vf14 ! + vadd.xyzw $vf15,$vf16,$vf17 ! + vadd.xyzw $vf18,$vf19,$vf20 ! + vadd.xyzw $vf21,$vf22,$vf23 ! + vadd.xyzw $vf24,$vf25,$vf26 ! + vadd.xyzw $vf27,$vf28,$vf29 ! + vadd.xyzw $vf30,$vf31,$vf00 ! + ! + # VU integer registers ! + viadd $vi00,$vi01,$vi02 ! + viadd $vi03,$vi04,$vi05 ! + viadd $vi06,$vi07,$vi08 ! + viadd $vi09,$vi10,$vi11 ! + viadd $vi12,$vi13,$vi14 ! + viadd $vi15,$vi16,$vi17 ! + viadd $vi18,$vi19,$vi20 ! + viadd $vi21,$vi22,$vi23 ! + viadd $vi24,$vi25,$vi26 ! + viadd $vi27,$vi28,$vi29 ! + viadd $vi30,$vi31,$vi00 ! + ! + # Floating point transfer to VU ! + lqc2 $0,0($0) ! + lqc2 $1, 0x7fff($1) ! + lqc2 $8, -0x8000($8) ! + lqc2 $31, -1($31) ! + ! + # Floating point transfer from VU ! + sqc2 $0,0($0) ! + sqc2 $1, 0x7fff($1) ! + sqc2 $8, -0x8000($8) ! + sqc2 $31, -1($31) ! + ! + # Integer transfer from VU ! + cfc2 $0,$0 ! + cfc2 $0,$31 ! + cfc2.i $0,$0 ! + cfc2.i $0,$31 ! + cfc2.ni $0,$0 ! + cfc2.ni $0,$31 ! + ! + # Integer transfer to VU ! + ctc2 $0,$0 ! + ctc2 $0,$31 ! + ctc2.i $0,$0 ! + ctc2.i $0,$31 ! + ctc2.ni $0,$0 ! + ctc2.ni $0,$31 ! + ! + # Floating point transfer from VU ! + qmfc2 $0,$0 ! + qmfc2 $0,$31 ! + qmfc2.i $0,$0 ! + qmfc2.i $0,$31 ! + qmfc2.ni $0,$0 ! + qmfc2.ni $0,$31 ! + ! + # Floating point transfer to VU ! + qmtc2 $0,$0 ! + qmtc2 $0,$31 ! + qmtc2.i $0,$0 ! + qmtc2.i $0,$31 ! + qmtc2.ni $0,$0 ! + qmtc2.ni $0,$31 ! + ! +# Force at least 8 (non-delay-slot) zero bytes, to make 'objdump' print ... ! + .space 8 ! diff --git a/gas/testsuite/gas/mips/r5900.d b/gas/testsuite/gas/mips/r5900.d ! new file mode 100644 ! index 0000000..c880c1b ! --- /dev/null ! +++ b/gas/testsuite/gas/mips/r5900.d @@ -0,0 +1,362 @@ +#objdump: -dr --prefix-addresses --show-raw-insn -M gpr-names=numeric -mmips:5900 *************** *** 471,509 **** +[0-9a-f]+ <[^>]*> 24040003 li \$4,3 + \.\.\. ! --- binutils-2.22-mips64el-linux-unpatched/gas/testsuite/gas/mips/r5900-hardldsd.d 1970-01-01 01:00:00.000000000 +0100 ! +++ binutils-2.22-mips64el-linux-patched/gas/testsuite/gas/mips/r5900-hardldsd.d 2012-11-17 22:42:20.123039959 +0100 ! @@ -0,0 +1,10 @@ ! +#objdump: -dr --prefix-addresses --show-raw-insn -M gpr-names=numeric -mmips:5900 ! +#name: MIPS R5900 force use of ld and sd instructions (nomacro). ! +#as: -march=r5900 -mabi=32 -mhard-ldsd ! + ! +.*: +file format .*mips.* ! + ! +Disassembly of section \.text: ! +[0-9a-f]+ <[^>]*> dca40000 ld \$4,0\(\$5\) ! +[0-9a-f]+ <[^>]*> fca40000 sd \$4,0\(\$5\) ! + \.\.\. ! --- binutils-2.22-mips64el-linux-unpatched/gas/testsuite/gas/mips/r5900-hardldsd.s 1970-01-01 01:00:00.000000000 +0100 ! +++ binutils-2.22-mips64el-linux-patched/gas/testsuite/gas/mips/r5900-hardldsd.s 2012-11-17 22:38:56.715037769 +0100 ! @@ -0,0 +1,17 @@ ! + .text ! + ! +stuff: ! + .ent stuff ! + .set noreorder ! + .set push ! + .set noat ! + .set nomacro ! + ! + # Linux kernel needs support for ld and sd with MIPS ABI o32: ! + ld $4, 0($5) ! + sd $4, 0($5) ! + ! + .set pop ! + ! + .space 8 ! + .end stuff ! --- binutils-2.22-mips64el-linux-unpatched/gas/testsuite/gas/mips/r5900.s 1970-01-01 01:00:00.000000000 +0100 ! +++ binutils-2.22-mips64el-linux-patched/gas/testsuite/gas/mips/r5900.s 2012-11-17 22:27:55.467028826 +0100 @@ -0,0 +1,446 @@ + .text --- 968,976 ---- +[0-9a-f]+ <[^>]*> 24040003 li \$4,3 + \.\.\. ! diff --git a/gas/testsuite/gas/mips/r5900.s b/gas/testsuite/gas/mips/r5900.s ! new file mode 100644 ! index 0000000..4749174 ! --- /dev/null ! +++ b/gas/testsuite/gas/mips/r5900.s @@ -0,0 +1,446 @@ + .text *************** *** 511,516 **** +stuff: + .ent stuff - + .set noreorder + .set push + .set noat + --- 978,983 ---- +stuff: + .ent stuff + .set push + + .set noreorder + .set noat + *************** *** 953,983 **** + .space 8 + .end stuff - --- binutils-2.22-mips64el-linux-unpatched/gas/testsuite/gas/mips/r5900-short-loop-warning.l 1970-01-01 01:00:00.000000000 +0100 - +++ binutils-2.22-mips64el-linux-patched/gas/testsuite/gas/mips/r5900-short-loop-warning.l 2012-11-17 22:06:05.767011537 +0100 - @@ -0,0 +1,2 @@ - +.*: Assembler messages: - +.*: Warning: Loop length is too short for r5900. - --- binutils-2.22-mips64el-linux-unpatched/gas/testsuite/gas/mips/r5900-short-loop-warning.s 1970-01-01 01:00:00.000000000 +0100 - +++ binutils-2.22-mips64el-linux-patched/gas/testsuite/gas/mips/r5900-short-loop-warning.s 2012-11-17 22:02:21.959008917 +0100 - @@ -0,0 +1,21 @@ - + .text - + - +stuff: - + .ent stuff - + .set noreorder - + .set push - + .set noat - + .set mips1 - + .set arch=r5900 - + - + li $3, 300 - +short_loop1: - + bne $3, $0, short_loop1 - + addi $3, -1 - + - + .set pop - + # Warning for short loop only appears on r5900 - + .set arch=r5900 - + - + .space 8 - + .end stuff --- 1420,1421 ---- |