|
From: Petar J. <pe...@so...> - 2018-02-01 18:06:29
|
https://sourceware.org/git/gitweb.cgi?p=valgrind.git;h=9fc2bfba5c9ad9b8b6c31990b81ba205b7abc565 commit 9fc2bfba5c9ad9b8b6c31990b81ba205b7abc565 Author: Petar Jovanovic <mip...@gm...> Date: Thu Feb 1 18:37:28 2018 +0100 mips: add tests for mips32/mips64 R6 This set of tests covers MIPS r6 specific instructions: none/tests/mips32/MIPS32r6int none/tests/mips32/branch_pc none/tests/mips32/branches_r6 none/tests/mips32/fp_r6 none/tests/mips32/pc_instructions_r6 none/tests/mips64/MIPS64r6int none/tests/mips64/branch_pc none/tests/mips64/branches_r6 none/tests/mips64/fp_r6 none/tests/mips64/pc_instructions_r6 none/tests/mips64/r6_instructions The following tests had to be changed to be applicaple for Rev6: none/tests/libvex_test.c none/tests/mips32/LoadStore none/tests/mips32/LoadStore1 none/tests/mips32/MIPS32int none/tests/mips32/MoveIns none/tests/mips32/branches none/tests/mips32/change_fp_mode none/tests/mips32/mips32_dsp none/tests/mips32/vfp none/tests/mips64/arithmetic_instruction none/tests/mips64/branches none/tests/mips64/fpu_arithmetic none/tests/mips64/fpu_load_store none/tests/mips64/load_store none/tests/mips64/load_store_multiple none/tests/mips64/move_instructions The following tests are not applicable for Rev6: none/tests/mips32/fpu_branches none/tests/mips32/unaligned_load_store none/tests/mips64/branch_and_jump_instructions none/tests/mips64/change_fp_mode none/tests/mips64/fpu_branches none/tests/mips64/load_store_unaligned none/tests/mips64/unaligned_load none/tests/mips64/unaligned_load_store. Contributed by: Tamara Vlahovic, Aleksandar Rikalo and Aleksandra Karadzic. Related BZ issue - #387410. Diff: --- .gitignore | 6 + none/tests/libvex_test.c | 5 + none/tests/mips32/LoadStore.c | 2 + none/tests/mips32/LoadStore.stdout.exp-r6-BE | 171 + none/tests/mips32/LoadStore.stdout.exp-r6-LE | 171 + none/tests/mips32/LoadStore1.c | 2 + none/tests/mips32/LoadStore1.stdout.exp-r6-BE | 171 + none/tests/mips32/LoadStore1.stdout.exp-r6-LE | 171 + none/tests/mips32/MIPS32int.c | 10 + none/tests/mips32/MIPS32int.stdout.exp-mips32r6-BE | 1325 ++ none/tests/mips32/MIPS32int.stdout.exp-mips32r6-LE | 1325 ++ none/tests/mips32/MIPS32r6int.c | 2903 ++++ none/tests/mips32/MIPS32r6int.stderr.exp | 0 none/tests/mips32/MIPS32r6int.stdout.exp | 2801 ++++ none/tests/mips32/MIPS32r6int.vgtest | 3 + none/tests/mips32/Makefile.am | 24 +- none/tests/mips32/MoveIns.c | 2 + none/tests/mips32/MoveIns.stdout.exp-mips32r6-BE | 146 + none/tests/mips32/MoveIns.stdout.exp-mips32r6-LE | 146 + none/tests/mips32/SignalException.c | 3 +- none/tests/mips32/branch_pc.c | 90 + none/tests/mips32/branch_pc.stderr.exp | 0 none/tests/mips32/branch_pc.stdout.exp | 37 + none/tests/mips32/branch_pc.vgtest | 3 + none/tests/mips32/branches.c | 66 +- none/tests/mips32/branches.stdout.exp | 10 +- none/tests/mips32/branches.stdout.exp-r6 | 261 + none/tests/mips32/branches_r6.c | 548 + none/tests/mips32/branches_r6.stderr.exp | 0 none/tests/mips32/branches_r6.stdout.exp | 374 + none/tests/mips32/branches_r6.vgtest | 3 + none/tests/mips32/change_fp_mode.c | 65 +- none/tests/mips32/change_fp_mode.stdout.exp-r6 | 6 + none/tests/mips32/fp_r6.c | 7300 +++++++++ none/tests/mips32/fp_r6.stderr.exp | 0 none/tests/mips32/fp_r6.stdout.exp | 7509 ++++++++++ none/tests/mips32/fp_r6.vgtest | 3 + none/tests/mips32/fpu_branches.c | 3 +- none/tests/mips32/fpu_branches.vgtest | 2 +- none/tests/mips32/mips32_dsp.c | 4 +- none/tests/mips32/pc_instructions_r6.c | 114 + none/tests/mips32/pc_instructions_r6.stderr.exp | 0 none/tests/mips32/pc_instructions_r6.stdout.exp | 39 + none/tests/mips32/pc_instructions_r6.vgtest | 3 + none/tests/mips32/unaligned_load_store.c | 3 +- none/tests/mips32/unaligned_load_store.vgtest | 1 + none/tests/mips32/vfp.c | 13 +- none/tests/mips64/MIPS64r6int.c | 1 + none/tests/mips64/MIPS64r6int.stderr.exp | 1 + none/tests/mips64/MIPS64r6int.stdout.exp | 1 + none/tests/mips64/MIPS64r6int.vgtest | 3 + none/tests/mips64/Makefile.am | 26 +- none/tests/mips64/arithmetic_instruction.c | 28 +- .../arithmetic_instruction.stdout.exp-mips64r6 | 6926 +++++++++ none/tests/mips64/branch_and_jump_instructions.c | 4 +- .../mips64/branch_and_jump_instructions.vgtest | 1 + none/tests/mips64/branch_pc.c | 1 + none/tests/mips64/branch_pc.stderr.exp | 1 + none/tests/mips64/branch_pc.stdout.exp | 1 + none/tests/mips64/branch_pc.vgtest | 1 + none/tests/mips64/branches.c | 65 +- none/tests/mips64/branches.stdout.exp-r6 | 260 + none/tests/mips64/branches_r6.c | 1 + none/tests/mips64/branches_r6.stderr.exp | 1 + none/tests/mips64/branches_r6.stdout.exp | 1 + none/tests/mips64/branches_r6.vgtest | 1 + none/tests/mips64/change_fp_mode.c | 3 +- none/tests/mips64/change_fp_mode.vgtest | 2 +- none/tests/mips64/fp_r6.c | 1 + none/tests/mips64/fp_r6.stderr.exp | 1 + none/tests/mips64/fp_r6.stdout.exp | 1 + none/tests/mips64/fp_r6.vgtest | 1 + none/tests/mips64/fpu_arithmetic.c | 10 +- none/tests/mips64/fpu_arithmetic.stdout.exp-r6 | 1729 +++ none/tests/mips64/fpu_branches.c | 2 +- none/tests/mips64/fpu_branches.vgtest | 2 +- none/tests/mips64/fpu_load_store.c | 19 +- none/tests/mips64/fpu_load_store.stdout.exp-BE-r2 | 3078 ++++ none/tests/mips64/fpu_load_store.stdout.exp-BE-r6 | 1539 ++ none/tests/mips64/fpu_load_store.stdout.exp-LE-r2 | 3078 ++++ none/tests/mips64/fpu_load_store.stdout.exp-LE-r6 | 1539 ++ none/tests/mips64/load_store.c | 12 +- none/tests/mips64/load_store.stdout.exp-BE-r6 | 14961 +++++++++++++++++++ none/tests/mips64/load_store.stdout.exp-LE-r6 | 14961 +++++++++++++++++++ none/tests/mips64/load_store_multiple.c | 4 + .../mips64/load_store_multiple.stdout.exp-BE-r6 | 171 + .../mips64/load_store_multiple.stdout.exp-LE-r6 | 171 + none/tests/mips64/load_store_unaligned.c | 2 + none/tests/mips64/load_store_unaligned.vgtest | 2 +- none/tests/mips64/macro_fpu.h | 8 +- none/tests/mips64/move_instructions.c | 7 +- none/tests/mips64/move_instructions.stdout.exp-r6 | 1024 ++ none/tests/mips64/pc_instructions_r6.c | 1 + none/tests/mips64/pc_instructions_r6.stderr.exp | 1 + none/tests/mips64/pc_instructions_r6.stdout.exp | 39 + none/tests/mips64/pc_instructions_r6.vgtest | 1 + none/tests/mips64/r6_instructions.c | 355 + none/tests/mips64/r6_instructions.stderr.exp | 0 none/tests/mips64/r6_instructions.stdout.exp-BE | 243 + none/tests/mips64/r6_instructions.stdout.exp-LE | 243 + none/tests/mips64/r6_instructions.vgtest | 3 + none/tests/mips64/unaligned_load.c | 2 + none/tests/mips64/unaligned_load.vgtest | 1 + none/tests/mips64/unaligned_load_store.c | 2 + none/tests/mips64/unaligned_load_store.vgtest | 1 + tests/mips_features.c | 6 + 106 files changed, 76275 insertions(+), 119 deletions(-) diff --git a/.gitignore b/.gitignore index 81bbc1d..e8a2860 100644 --- a/.gitignore +++ b/.gitignore @@ -1593,9 +1593,12 @@ /none/tests/mips32/.deps /none/tests/mips32/allexec /none/tests/mips32/block_size +/none/tests/mips32/branch_pc /none/tests/mips32/branches +/none/tests/mips32/branches_r6 /none/tests/mips32/bug320057-mips32 /none/tests/mips32/change_fp_mode +/none/tests/mips32/fp_r6 /none/tests/mips32/fpu_branches /none/tests/mips32/FPUarithmetic /none/tests/mips32/LoadStore @@ -1603,6 +1606,7 @@ /none/tests/mips32/mips32_dsp /none/tests/mips32/mips32_dspr2 /none/tests/mips32/MIPS32int +/none/tests/mips32/MIPS32r6int /none/tests/mips32/MoveIns /none/tests/mips32/msa_arithmetic /none/tests/mips32/msa_comparison @@ -1611,6 +1615,7 @@ /none/tests/mips32/msa_logical_and_shift /none/tests/mips32/msa_shuffle /none/tests/mips32/LoadStore1 +/none/tests/mips32/pc_instructions_r6 /none/tests/mips32/round /none/tests/mips32/round_fpu64 /none/tests/mips32/SignalException @@ -1619,6 +1624,7 @@ /none/tests/mips32/unaligned_load_store /none/tests/mips32/vfp + # /none/tests/mips64/ /none/tests/mips64/Makefile /none/tests/mips64/Makefile.in diff --git a/none/tests/libvex_test.c b/none/tests/libvex_test.c index 39fe715..a39930f 100644 --- a/none/tests/libvex_test.c +++ b/none/tests/libvex_test.c @@ -126,8 +126,13 @@ static UInt arch_hwcaps (VexArch va) { case VexArchPPC32: return 0; case VexArchPPC64: return 0; case VexArchS390X: return VEX_HWCAPS_S390X_LDISP; +#if (__mips_isa_rev>=6) + case VexArchMIPS32: return VEX_PRID_COMP_MIPS | VEX_MIPS_CPU_ISA_M32R6; + case VexArchMIPS64: return VEX_PRID_COMP_MIPS | VEX_MIPS_CPU_ISA_M64R6; +#else case VexArchMIPS32: return VEX_PRID_COMP_MIPS; case VexArchMIPS64: return VEX_PRID_COMP_MIPS; +#endif default: failure_exit(); } } diff --git a/none/tests/mips32/LoadStore.c b/none/tests/mips32/LoadStore.c index 38574ef..cd1e17c 100644 --- a/none/tests/mips32/LoadStore.c +++ b/none/tests/mips32/LoadStore.c @@ -223,6 +223,7 @@ int main() ppMem(mem1, 16); ppMem1(mem, 16); +#if (__mips_isa_rev < 6) printf("swl\n"); TESTINST1("swl $t0, 0($t1)", 0, 0, t0, t1); TESTINST1("swl $t0, 0($t1)", 0x31415927, 0, t0, t1); @@ -350,5 +351,6 @@ int main() ppMem0(mem2, 12); TESTINSTsw(0x2aaee700, 32, t0, t1); ppMem0(mem2, 12); +#endif return 0; } diff --git a/none/tests/mips32/LoadStore.stdout.exp-r6-BE b/none/tests/mips32/LoadStore.stdout.exp-r6-BE new file mode 100644 index 0000000..b57a0dc --- /dev/null +++ b/none/tests/mips32/LoadStore.stdout.exp-r6-BE @@ -0,0 +1,171 @@ +sb +sb $t0, 0($t1) :: RTval: 0x0, out: 0x0 +sb $t0, 0($t1) :: RTval: 0x0, out: 0x1f1e1f +sb $t0, 0($t1) :: RTval: 0x31415927, out: 0x27000000 +sb $t0, 0($t1) :: RTval: 0x31415927, out: 0x271f1e1f +sb $t0, 0($t1) :: RTval: 0x7fffffff, out: 0xff000000 +sb $t0, 0($t1) :: RTval: 0x7fffffff, out: 0xff1f1e1f +sb $t0, 0($t1) :: RTval: 0x80000000, out: 0x0 +sb $t0, 0($t1) :: RTval: 0x80000000, out: 0x1f1e1f +sb $t0, 2($t1) :: RTval: 0x80000000, out: 0x0 +sb $t0, 2($t1) :: RTval: 0x80000000, out: 0x1f0000 +sb $t0, 6($t1) :: RTval: 0x7fffffff, out: 0xff000000 +sb $t0, 6($t1) :: RTval: 0x7fffffff, out: 0xff000000 +sb $t0, 10($t1) :: RTval: 0x7fffffff, out: 0xff000000 +sb $t0, 10($t1) :: RTval: 0x7fffffff, out: 0xff03ffff +sb $t0, 8($t1) :: RTval: 0xffffffff, out: 0xff00ff00 +sb $t0, 8($t1) :: RTval: 0xffffffff, out: 0xff00ff03 +sb $t0, 0($t1) :: RTval: 0x31415927, out: 0x27000000 +sb $t0, 0($t1) :: RTval: 0x31415927, out: 0x271f001f +sb $t0, 0($t1) :: RTval: 0xdd00000, out: 0x0 +sb $t0, 0($t1) :: RTval: 0xdd00000, out: 0x1f001f +sb $t0, 0($t1) :: RTval: 0x28f, out: 0x8f000000 +sb $t0, 0($t1) :: RTval: 0x28f, out: 0x8f1f001f +sb $t0, 0($t1) :: RTval: 0xfffffd71, out: 0x71000000 +sb $t0, 0($t1) :: RTval: 0xfffffd71, out: 0x711f001f +sb $t0, 0($t1) :: RTval: 0xf, out: 0xf000000 +sb $t0, 0($t1) :: RTval: 0xf, out: 0xf1f001f +sb $t0, 0($t1) :: RTval: 0x1, out: 0x1000000 +sb $t0, 0($t1) :: RTval: 0x1, out: 0x11f001f +sb $t0, 0($t1) :: RTval: 0x35, out: 0x35000000 +sb $t0, 0($t1) :: RTval: 0x35, out: 0x351f001f +sb $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff000000 +sb $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff1f0000 +sb $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff000000 +sb $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff1f0000 +sb $t0, 32($t1) :: RTval: 0xffffffff, out: 0xffffffff +sb $t0, 32($t1) :: RTval: 0xffffffff, out: 0xff343f3e +sb $t0, 36($t1) :: RTval: 0xffffffff, out: 0xff000000 +sb $t0, 36($t1) :: RTval: 0xffffffff, out: 0xff353d3c +sb $t0, 40($t1) :: RTval: 0x31415927, out: 0x27000000 +sb $t0, 40($t1) :: RTval: 0x31415927, out: 0x273a3c3b +sb $t0, 44($t1) :: RTval: 0x7fffffff, out: 0xff000000 +sb $t0, 44($t1) :: RTval: 0x7fffffff, out: 0xff373b3a +sb $t0, 48($t1) :: RTval: 0x80000000, out: 0x0 +sb $t0, 48($t1) :: RTval: 0x80000000, out: 0x4f4e45 +sb $t0, 52($t1) :: RTval: 0x28f, out: 0x8f000000 +sb $t0, 52($t1) :: RTval: 0x28f, out: 0x8f464d46 +MEM1: +0x3500ff00, 0xff00, 0xff00ff00, 0x0 +0x0, 0x0, 0x0, 0x0 +0xffffffff, 0xff000000, 0x27000000, 0xff000000 +0x0, 0x8f000000, 0x0, 0x0 +MEM: +0x351fff1f, 0xff00, 0xff00ff03, 0xffffffff +0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2d2a +0xff343f3e, 0xff353d3c, 0x273a3c3b, 0xff373b3a +0x4f4e45, 0x8f464d46, 0x474d474c, 0x4a484a4c +sh +sh $t0, 0($t1) :: RTval: 0x0, out: 0x0 +sh $t0, 0($t1) :: RTval: 0x0, out: 0x1e1f +sh $t0, 0($t1) :: RTval: 0x31415927, out: 0x59270000 +sh $t0, 0($t1) :: RTval: 0x31415927, out: 0x59271e1f +sh $t0, 0($t1) :: RTval: 0x7fffffff, out: 0xffff0000 +sh $t0, 0($t1) :: RTval: 0x7fffffff, out: 0xffff1e1f +sh $t0, 0($t1) :: RTval: 0x80000000, out: 0x0 +sh $t0, 0($t1) :: RTval: 0x80000000, out: 0x1e1f +sh $t0, 2($t1) :: RTval: 0x80000000, out: 0x0 +sh $t0, 2($t1) :: RTval: 0x80000000, out: 0x0 +sh $t0, 6($t1) :: RTval: 0x7fffffff, out: 0xffff0000 +sh $t0, 6($t1) :: RTval: 0x7fffffff, out: 0xffff0000 +sh $t0, 10($t1) :: RTval: 0x7fffffff, out: 0xffff0000 +sh $t0, 10($t1) :: RTval: 0x7fffffff, out: 0xffffffff +sh $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff +sh $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff +sh $t0, 0($t1) :: RTval: 0x31415927, out: 0x59270000 +sh $t0, 0($t1) :: RTval: 0x31415927, out: 0x59270000 +sh $t0, 0($t1) :: RTval: 0xdd00000, out: 0x0 +sh $t0, 0($t1) :: RTval: 0xdd00000, out: 0x0 +sh $t0, 0($t1) :: RTval: 0x28f, out: 0x28f0000 +sh $t0, 0($t1) :: RTval: 0x28f, out: 0x28f0000 +sh $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfd710000 +sh $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfd710000 +sh $t0, 0($t1) :: RTval: 0xf, out: 0xf0000 +sh $t0, 0($t1) :: RTval: 0xf, out: 0xf0000 +sh $t0, 0($t1) :: RTval: 0x1, out: 0x10000 +sh $t0, 0($t1) :: RTval: 0x1, out: 0x10000 +sh $t0, 0($t1) :: RTval: 0x35, out: 0x350000 +sh $t0, 0($t1) :: RTval: 0x35, out: 0x350000 +sh $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff0000 +sh $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff0000 +sh $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff0000 +sh $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff0000 +sh $t0, 32($t1) :: RTval: 0xffffffff, out: 0xffff0000 +sh $t0, 32($t1) :: RTval: 0xffffffff, out: 0xffff3f3e +sh $t0, 36($t1) :: RTval: 0xffffffff, out: 0xffff0000 +sh $t0, 36($t1) :: RTval: 0xffffffff, out: 0xffff3d3c +sh $t0, 40($t1) :: RTval: 0x31415927, out: 0x59270000 +sh $t0, 40($t1) :: RTval: 0x31415927, out: 0x59273c3b +sh $t0, 44($t1) :: RTval: 0x7fffffff, out: 0xffff0000 +sh $t0, 44($t1) :: RTval: 0x7fffffff, out: 0xffff3b3a +sh $t0, 48($t1) :: RTval: 0x80000000, out: 0x0 +sh $t0, 48($t1) :: RTval: 0x80000000, out: 0x4e45 +sh $t0, 52($t1) :: RTval: 0x28f, out: 0x28f0000 +sh $t0, 52($t1) :: RTval: 0x28f, out: 0x28f4d46 +MEM1: +0x35ffff, 0xffff, 0xffffffff, 0x0 +0x0, 0x0, 0x0, 0x0 +0xffff0000, 0xffff0000, 0x59270000, 0xffff0000 +0x0, 0x28f0000, 0x0, 0x0 +MEM: +0x35ffff, 0xffff, 0xffffffff, 0xffffffff +0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2d2a +0xffff3f3e, 0xffff3d3c, 0x59273c3b, 0xffff3b3a +0x4e45, 0x28f4d46, 0x474d474c, 0x4a484a4c +sw +sw $t0, 0($t1) :: RTval: 0x0, out: 0x0 +sw $t0, 0($t1) :: RTval: 0x0, out: 0x0 +sw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927 +sw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927 +sw $t0, 0($t1) :: RTval: 0x7fffffff, out: 0x7fffffff +sw $t0, 0($t1) :: RTval: 0x7fffffff, out: 0x7fffffff +sw $t0, 0($t1) :: RTval: 0x80000000, out: 0x80000000 +sw $t0, 0($t1) :: RTval: 0x80000000, out: 0x80000000 +sw $t0, 2($t1) :: RTval: 0x80000000, out: 0x80000000 +sw $t0, 2($t1) :: RTval: 0x80000000, out: 0x80000000 +sw $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x7fffffff +sw $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x7fffffff +sw $t0, 10($t1) :: RTval: 0x7fffffff, out: 0x7fffffff +sw $t0, 10($t1) :: RTval: 0x7fffffff, out: 0x7fffffff +sw $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927 +sw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927 +sw $t0, 0($t1) :: RTval: 0xdd00000, out: 0xdd00000 +sw $t0, 0($t1) :: RTval: 0xdd00000, out: 0xdd00000 +sw $t0, 0($t1) :: RTval: 0x28f, out: 0x28f +sw $t0, 0($t1) :: RTval: 0x28f, out: 0x28f +sw $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfffffd71 +sw $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfffffd71 +sw $t0, 0($t1) :: RTval: 0xf, out: 0xf +sw $t0, 0($t1) :: RTval: 0xf, out: 0xf +sw $t0, 0($t1) :: RTval: 0x1, out: 0x1 +sw $t0, 0($t1) :: RTval: 0x1, out: 0x1 +sw $t0, 0($t1) :: RTval: 0x35, out: 0x35 +sw $t0, 0($t1) :: RTval: 0x35, out: 0x35 +sw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 32($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 32($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 36($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 36($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 40($t1) :: RTval: 0x31415927, out: 0x31415927 +sw $t0, 40($t1) :: RTval: 0x31415927, out: 0x31415927 +sw $t0, 44($t1) :: RTval: 0x7fffffff, out: 0x7fffffff +sw $t0, 44($t1) :: RTval: 0x7fffffff, out: 0x7fffffff +sw $t0, 48($t1) :: RTval: 0x80000000, out: 0x80000000 +sw $t0, 48($t1) :: RTval: 0x80000000, out: 0x80000000 +sw $t0, 52($t1) :: RTval: 0x28f, out: 0x28f +sw $t0, 52($t1) :: RTval: 0x28f, out: 0x28f +MEM1: +0xffff, 0xffff7fff, 0xffffffff, 0xffff0000 +0x0, 0x0, 0x0, 0x0 +0xffffffff, 0xffffffff, 0x31415927, 0x7fffffff +0x80000000, 0x28f, 0x0, 0x0 +MEM: +0xffff, 0xffff7fff, 0xffffffff, 0xffffffff +0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2d2a +0xffffffff, 0xffffffff, 0x31415927, 0x7fffffff +0x80000000, 0x28f, 0x474d474c, 0x4a484a4c diff --git a/none/tests/mips32/LoadStore.stdout.exp-r6-LE b/none/tests/mips32/LoadStore.stdout.exp-r6-LE new file mode 100644 index 0000000..b6275c8 --- /dev/null +++ b/none/tests/mips32/LoadStore.stdout.exp-r6-LE @@ -0,0 +1,171 @@ +sb +sb $t0, 0($t1) :: RTval: 0x0, out: 0x0 +sb $t0, 0($t1) :: RTval: 0x0, out: 0x121f1e00 +sb $t0, 0($t1) :: RTval: 0x31415927, out: 0x27 +sb $t0, 0($t1) :: RTval: 0x31415927, out: 0x121f1e27 +sb $t0, 0($t1) :: RTval: 0x7fffffff, out: 0xff +sb $t0, 0($t1) :: RTval: 0x7fffffff, out: 0x121f1eff +sb $t0, 0($t1) :: RTval: 0x80000000, out: 0x0 +sb $t0, 0($t1) :: RTval: 0x80000000, out: 0x121f1e00 +sb $t0, 2($t1) :: RTval: 0x80000000, out: 0x0 +sb $t0, 2($t1) :: RTval: 0x80000000, out: 0x1200 +sb $t0, 6($t1) :: RTval: 0x7fffffff, out: 0xff +sb $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x300ff +sb $t0, 10($t1) :: RTval: 0x7fffffff, out: 0xff +sb $t0, 10($t1) :: RTval: 0x7fffffff, out: 0xffff00ff +sb $t0, 8($t1) :: RTval: 0xffffffff, out: 0xff00ff +sb $t0, 8($t1) :: RTval: 0xffffffff, out: 0xff00ff +sb $t0, 0($t1) :: RTval: 0x31415927, out: 0x27 +sb $t0, 0($t1) :: RTval: 0x31415927, out: 0x12001e27 +sb $t0, 0($t1) :: RTval: 0xdd00000, out: 0x0 +sb $t0, 0($t1) :: RTval: 0xdd00000, out: 0x12001e00 +sb $t0, 0($t1) :: RTval: 0x28f, out: 0x8f +sb $t0, 0($t1) :: RTval: 0x28f, out: 0x12001e8f +sb $t0, 0($t1) :: RTval: 0xfffffd71, out: 0x71 +sb $t0, 0($t1) :: RTval: 0xfffffd71, out: 0x12001e71 +sb $t0, 0($t1) :: RTval: 0xf, out: 0xf +sb $t0, 0($t1) :: RTval: 0xf, out: 0x12001e0f +sb $t0, 0($t1) :: RTval: 0x1, out: 0x1 +sb $t0, 0($t1) :: RTval: 0x1, out: 0x12001e01 +sb $t0, 0($t1) :: RTval: 0x35, out: 0x35 +sb $t0, 0($t1) :: RTval: 0x35, out: 0x12001e35 +sb $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff +sb $t0, 2($t1) :: RTval: 0xffffffff, out: 0x12ff +sb $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff +sb $t0, 2($t1) :: RTval: 0xffffffff, out: 0x12ff +sb $t0, 32($t1) :: RTval: 0xffffffff, out: 0xffffffff +sb $t0, 32($t1) :: RTval: 0xffffffff, out: 0x3f343fff +sb $t0, 36($t1) :: RTval: 0xffffffff, out: 0xff +sb $t0, 36($t1) :: RTval: 0xffffffff, out: 0x3e353dff +sb $t0, 40($t1) :: RTval: 0x31415927, out: 0x27 +sb $t0, 40($t1) :: RTval: 0x31415927, out: 0x363a3c27 +sb $t0, 44($t1) :: RTval: 0x7fffffff, out: 0xff +sb $t0, 44($t1) :: RTval: 0x7fffffff, out: 0x3b373bff +sb $t0, 48($t1) :: RTval: 0x80000000, out: 0x0 +sb $t0, 48($t1) :: RTval: 0x80000000, out: 0x454f4e00 +sb $t0, 52($t1) :: RTval: 0x28f, out: 0x8f +sb $t0, 52($t1) :: RTval: 0x28f, out: 0x4e464d8f +MEM1: +0xff0035, 0xff0000, 0xff00ff, 0x0 +0x0, 0x0, 0x0, 0x0 +0xffffffff, 0xff, 0x27, 0xff +0x0, 0x8f, 0x0, 0x0 +MEM: +0x12ff1e35, 0xff0000, 0xff00ff, 0xffffffff +0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2d2a +0x3f343fff, 0x3e353dff, 0x363a3c27, 0x3b373bff +0x454f4e00, 0x4e464d8f, 0x474d474c, 0x4a484a4c +sh +sh $t0, 0($t1) :: RTval: 0x0, out: 0x0 +sh $t0, 0($t1) :: RTval: 0x0, out: 0x121f0000 +sh $t0, 0($t1) :: RTval: 0x31415927, out: 0x5927 +sh $t0, 0($t1) :: RTval: 0x31415927, out: 0x121f5927 +sh $t0, 0($t1) :: RTval: 0x7fffffff, out: 0xffff +sh $t0, 0($t1) :: RTval: 0x7fffffff, out: 0x121fffff +sh $t0, 0($t1) :: RTval: 0x80000000, out: 0x0 +sh $t0, 0($t1) :: RTval: 0x80000000, out: 0x121f0000 +sh $t0, 2($t1) :: RTval: 0x80000000, out: 0x0 +sh $t0, 2($t1) :: RTval: 0x80000000, out: 0x0 +sh $t0, 6($t1) :: RTval: 0x7fffffff, out: 0xffff +sh $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x3ffff +sh $t0, 10($t1) :: RTval: 0x7fffffff, out: 0xffff +sh $t0, 10($t1) :: RTval: 0x7fffffff, out: 0xffffffff +sh $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff +sh $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff +sh $t0, 0($t1) :: RTval: 0x31415927, out: 0x5927 +sh $t0, 0($t1) :: RTval: 0x31415927, out: 0x5927 +sh $t0, 0($t1) :: RTval: 0xdd00000, out: 0x0 +sh $t0, 0($t1) :: RTval: 0xdd00000, out: 0x0 +sh $t0, 0($t1) :: RTval: 0x28f, out: 0x28f +sh $t0, 0($t1) :: RTval: 0x28f, out: 0x28f +sh $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfd71 +sh $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfd71 +sh $t0, 0($t1) :: RTval: 0xf, out: 0xf +sh $t0, 0($t1) :: RTval: 0xf, out: 0xf +sh $t0, 0($t1) :: RTval: 0x1, out: 0x1 +sh $t0, 0($t1) :: RTval: 0x1, out: 0x1 +sh $t0, 0($t1) :: RTval: 0x35, out: 0x35 +sh $t0, 0($t1) :: RTval: 0x35, out: 0x35 +sh $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff +sh $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff +sh $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff +sh $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff +sh $t0, 32($t1) :: RTval: 0xffffffff, out: 0xffff +sh $t0, 32($t1) :: RTval: 0xffffffff, out: 0x3f34ffff +sh $t0, 36($t1) :: RTval: 0xffffffff, out: 0xffff +sh $t0, 36($t1) :: RTval: 0xffffffff, out: 0x3e35ffff +sh $t0, 40($t1) :: RTval: 0x31415927, out: 0x5927 +sh $t0, 40($t1) :: RTval: 0x31415927, out: 0x363a5927 +sh $t0, 44($t1) :: RTval: 0x7fffffff, out: 0xffff +sh $t0, 44($t1) :: RTval: 0x7fffffff, out: 0x3b37ffff +sh $t0, 48($t1) :: RTval: 0x80000000, out: 0x0 +sh $t0, 48($t1) :: RTval: 0x80000000, out: 0x454f0000 +sh $t0, 52($t1) :: RTval: 0x28f, out: 0x28f +sh $t0, 52($t1) :: RTval: 0x28f, out: 0x4e46028f +MEM1: +0xffff0035, 0xffff0000, 0xffffffff, 0x0 +0x0, 0x0, 0x0, 0x0 +0xffff, 0xffff, 0x5927, 0xffff +0x0, 0x28f, 0x0, 0x0 +MEM: +0xffff0035, 0xffff0000, 0xffffffff, 0xffffffff +0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2d2a +0x3f34ffff, 0x3e35ffff, 0x363a5927, 0x3b37ffff +0x454f0000, 0x4e46028f, 0x474d474c, 0x4a484a4c +sw +sw $t0, 0($t1) :: RTval: 0x0, out: 0x0 +sw $t0, 0($t1) :: RTval: 0x0, out: 0x0 +sw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927 +sw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927 +sw $t0, 0($t1) :: RTval: 0x7fffffff, out: 0x7fffffff +sw $t0, 0($t1) :: RTval: 0x7fffffff, out: 0x7fffffff +sw $t0, 0($t1) :: RTval: 0x80000000, out: 0x80000000 +sw $t0, 0($t1) :: RTval: 0x80000000, out: 0x80000000 +sw $t0, 2($t1) :: RTval: 0x80000000, out: 0x80000000 +sw $t0, 2($t1) :: RTval: 0x80000000, out: 0x80000000 +sw $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x7fffffff +sw $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x7fffffff +sw $t0, 10($t1) :: RTval: 0x7fffffff, out: 0x7fffffff +sw $t0, 10($t1) :: RTval: 0x7fffffff, out: 0x7fffffff +sw $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927 +sw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927 +sw $t0, 0($t1) :: RTval: 0xdd00000, out: 0xdd00000 +sw $t0, 0($t1) :: RTval: 0xdd00000, out: 0xdd00000 +sw $t0, 0($t1) :: RTval: 0x28f, out: 0x28f +sw $t0, 0($t1) :: RTval: 0x28f, out: 0x28f +sw $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfffffd71 +sw $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfffffd71 +sw $t0, 0($t1) :: RTval: 0xf, out: 0xf +sw $t0, 0($t1) :: RTval: 0xf, out: 0xf +sw $t0, 0($t1) :: RTval: 0x1, out: 0x1 +sw $t0, 0($t1) :: RTval: 0x1, out: 0x1 +sw $t0, 0($t1) :: RTval: 0x35, out: 0x35 +sw $t0, 0($t1) :: RTval: 0x35, out: 0x35 +sw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 32($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 32($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 36($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 36($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 40($t1) :: RTval: 0x31415927, out: 0x31415927 +sw $t0, 40($t1) :: RTval: 0x31415927, out: 0x31415927 +sw $t0, 44($t1) :: RTval: 0x7fffffff, out: 0x7fffffff +sw $t0, 44($t1) :: RTval: 0x7fffffff, out: 0x7fffffff +sw $t0, 48($t1) :: RTval: 0x80000000, out: 0x80000000 +sw $t0, 48($t1) :: RTval: 0x80000000, out: 0x80000000 +sw $t0, 52($t1) :: RTval: 0x28f, out: 0x28f +sw $t0, 52($t1) :: RTval: 0x28f, out: 0x28f +MEM1: +0xffff0035, 0xffffffff, 0xffffffff, 0x7fff +0x0, 0x0, 0x0, 0x0 +0xffffffff, 0xffffffff, 0x31415927, 0x7fffffff +0x80000000, 0x28f, 0x0, 0x0 +MEM: +0xffff0035, 0xffffffff, 0xffffffff, 0xffff7fff +0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2d2a +0xffffffff, 0xffffffff, 0x31415927, 0x7fffffff +0x80000000, 0x28f, 0x474d474c, 0x4a484a4c diff --git a/none/tests/mips32/LoadStore1.c b/none/tests/mips32/LoadStore1.c index 6a54303..c2da240 100644 --- a/none/tests/mips32/LoadStore1.c +++ b/none/tests/mips32/LoadStore1.c @@ -223,6 +223,7 @@ int main() ppMem(mem1, 16); ppMem1(mem, 16); +#if (__mips_isa_rev < 6) printf("swl\n"); TESTINST1("swl $t0, 1($t1)", 0, 1, t0, t1); TESTINST1("swl $t0, 3($t1)", 0x31415927, 3, t0, t1); @@ -350,6 +351,7 @@ int main() ppMem0(mem2, 12); TESTINSTsw(0x2aaee700, 32, t0, t1); ppMem0(mem2, 12); +#endif return 0; } diff --git a/none/tests/mips32/LoadStore1.stdout.exp-r6-BE b/none/tests/mips32/LoadStore1.stdout.exp-r6-BE new file mode 100644 index 0000000..da77746 --- /dev/null +++ b/none/tests/mips32/LoadStore1.stdout.exp-r6-BE @@ -0,0 +1,171 @@ +sb +sb $t0, 3($t1) :: RTval: 0x0, out: 0x0 +sb $t0, 3($t1) :: RTval: 0x0, out: 0x0 +sb $t0, 5($t1) :: RTval: 0x31415927, out: 0x27000000 +sb $t0, 5($t1) :: RTval: 0x31415927, out: 0x27000000 +sb $t0, 7($t1) :: RTval: 0x7fffffff, out: 0xff000000 +sb $t0, 7($t1) :: RTval: 0x7fffffff, out: 0xff000000 +sb $t0, 1($t1) :: RTval: 0x80000000, out: 0x0 +sb $t0, 1($t1) :: RTval: 0x80000000, out: 0x1e0000 +sb $t0, 2($t1) :: RTval: 0x80000000, out: 0x27 +sb $t0, 2($t1) :: RTval: 0x80000000, out: 0x27 +sb $t0, 6($t1) :: RTval: 0x7fffffff, out: 0xffff0000 +sb $t0, 6($t1) :: RTval: 0x7fffffff, out: 0xffff0000 +sb $t0, 11($t1) :: RTval: 0x7fffffff, out: 0xff000000 +sb $t0, 11($t1) :: RTval: 0x7fffffff, out: 0xffffffff +sb $t0, 8($t1) :: RTval: 0xffffffff, out: 0xff0000ff +sb $t0, 8($t1) :: RTval: 0xffffffff, out: 0xff0000ff +sb $t0, 0($t1) :: RTval: 0x31415927, out: 0x27000000 +sb $t0, 0($t1) :: RTval: 0x31415927, out: 0x27000000 +sb $t0, 0($t1) :: RTval: 0xdd00000, out: 0x0 +sb $t0, 0($t1) :: RTval: 0xdd00000, out: 0x0 +sb $t0, 0($t1) :: RTval: 0x28f, out: 0x8f000000 +sb $t0, 0($t1) :: RTval: 0x28f, out: 0x8f000000 +sb $t0, 0($t1) :: RTval: 0xfffffd71, out: 0x71000000 +sb $t0, 0($t1) :: RTval: 0xfffffd71, out: 0x71000000 +sb $t0, 0($t1) :: RTval: 0xf, out: 0xf000000 +sb $t0, 0($t1) :: RTval: 0xf, out: 0xf000000 +sb $t0, 0($t1) :: RTval: 0x1, out: 0x1000000 +sb $t0, 0($t1) :: RTval: 0x1, out: 0x1000000 +sb $t0, 0($t1) :: RTval: 0x35, out: 0x35000000 +sb $t0, 0($t1) :: RTval: 0x35, out: 0x35000000 +sb $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff000027 +sb $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff000027 +sb $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff000027 +sb $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff000027 +sb $t0, 31($t1) :: RTval: 0xffffffff, out: 0xffffffff +sb $t0, 31($t1) :: RTval: 0xffffffff, out: 0xff3f343f +sb $t0, 35($t1) :: RTval: 0xffffffff, out: 0xff000000 +sb $t0, 35($t1) :: RTval: 0xffffffff, out: 0xff3e353d +sb $t0, 41($t1) :: RTval: 0x31415927, out: 0x27000000 +sb $t0, 41($t1) :: RTval: 0x31415927, out: 0x273c3b3b +sb $t0, 42($t1) :: RTval: 0x7fffffff, out: 0xff000000 +sb $t0, 42($t1) :: RTval: 0x7fffffff, out: 0xff3b3b37 +sb $t0, 45($t1) :: RTval: 0x80000000, out: 0x0 +sb $t0, 45($t1) :: RTval: 0x80000000, out: 0x3b3a45 +sb $t0, 51($t1) :: RTval: 0x28f, out: 0x8f000000 +sb $t0, 51($t1) :: RTval: 0x28f, out: 0x8f4e464d +MEM1: +0x3500ff00, 0x27ffff, 0xff0000ff, 0x0 +0x0, 0x0, 0x0, 0xff +0xffffffff, 0x0, 0x27ff00, 0x0 +0x8f, 0x0, 0x0, 0x0 +MEM: +0x3500ff00, 0x27ffff, 0xff0000ff, 0xffffffff +0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2dff +0x3f343fff, 0x3e353d3c, 0x3627ff3b, 0x3b003b3a +0x454f4e8f, 0x4e464d46, 0x474d474c, 0x4a484a4c +sh +sh $t0, 1($t1) :: RTval: 0x0, out: 0x0 +sh $t0, 1($t1) :: RTval: 0x0, out: 0x1f00 +sh $t0, 3($t1) :: RTval: 0x31415927, out: 0x59270000 +sh $t0, 3($t1) :: RTval: 0x31415927, out: 0x59270000 +sh $t0, 5($t1) :: RTval: 0x7fffffff, out: 0xffff0000 +sh $t0, 5($t1) :: RTval: 0x7fffffff, out: 0xffff0000 +sh $t0, 7($t1) :: RTval: 0x80000000, out: 0x0 +sh $t0, 7($t1) :: RTval: 0x80000000, out: 0x0 +sh $t0, 9($t1) :: RTval: 0x80000000, out: 0x0 +sh $t0, 9($t1) :: RTval: 0x80000000, out: 0x3ff +sh $t0, 6($t1) :: RTval: 0x7fffffff, out: 0xffff0000 +sh $t0, 6($t1) :: RTval: 0x7fffffff, out: 0xffff0000 +sh $t0, 11($t1) :: RTval: 0x7fffffff, out: 0xffff0000 +sh $t0, 11($t1) :: RTval: 0x7fffffff, out: 0xffffffff +sh $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffff00ff +sh $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffff00ff +sh $t0, 0($t1) :: RTval: 0x31415927, out: 0x59270059 +sh $t0, 0($t1) :: RTval: 0x31415927, out: 0x59270059 +sh $t0, 0($t1) :: RTval: 0xdd00000, out: 0x59 +sh $t0, 0($t1) :: RTval: 0xdd00000, out: 0x59 +sh $t0, 0($t1) :: RTval: 0x28f, out: 0x28f0059 +sh $t0, 0($t1) :: RTval: 0x28f, out: 0x28f0059 +sh $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfd710059 +sh $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfd710059 +sh $t0, 0($t1) :: RTval: 0xf, out: 0xf0059 +sh $t0, 0($t1) :: RTval: 0xf, out: 0xf0059 +sh $t0, 0($t1) :: RTval: 0x1, out: 0x10059 +sh $t0, 0($t1) :: RTval: 0x1, out: 0x10059 +sh $t0, 0($t1) :: RTval: 0x35, out: 0x350059 +sh $t0, 0($t1) :: RTval: 0x35, out: 0x350059 +sh $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff27ff +sh $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff27ff +sh $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff27ff +sh $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffff27ff +sh $t0, 31($t1) :: RTval: 0xffffffff, out: 0xffff0000 +sh $t0, 31($t1) :: RTval: 0xffffffff, out: 0xffff343f +sh $t0, 35($t1) :: RTval: 0xffffffff, out: 0xffff0000 +sh $t0, 35($t1) :: RTval: 0xffffffff, out: 0xffff353d +sh $t0, 41($t1) :: RTval: 0x31415927, out: 0x59270000 +sh $t0, 41($t1) :: RTval: 0x31415927, out: 0x59273b3b +sh $t0, 47($t1) :: RTval: 0x7fffffff, out: 0xffff0000 +sh $t0, 47($t1) :: RTval: 0x7fffffff, out: 0xffff4f4e +sh $t0, 49($t1) :: RTval: 0x80000000, out: 0x0 +sh $t0, 49($t1) :: RTval: 0x80000000, out: 0x454e +sh $t0, 51($t1) :: RTval: 0x28f, out: 0x28f0000 +sh $t0, 51($t1) :: RTval: 0x28f, out: 0x28f464d +MEM1: +0x35ffff, 0x27ffffff, 0xffff00ff, 0xff000000 +0x0, 0x0, 0x0, 0xff +0xff0000ff, 0xff000000, 0x592700, 0xff +0xff000002, 0x8f000000, 0x0, 0x0 +MEM: +0x35ffff, 0x27ffffff, 0xffff00ff, 0xffffffff +0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0x262d2dff +0xff343fff, 0xff353d3c, 0x3659273b, 0x3b373bff +0xff000002, 0x8f464d46, 0x474d474c, 0x4a484a4c +sw +sw $t0, 1($t1) :: RTval: 0x0, out: 0x0 +sw $t0, 1($t1) :: RTval: 0x0, out: 0x0 +sw $t0, 3($t1) :: RTval: 0x31415927, out: 0x31415927 +sw $t0, 3($t1) :: RTval: 0x31415927, out: 0x31415927 +sw $t0, 5($t1) :: RTval: 0x7fffffff, out: 0x7fffffff +sw $t0, 5($t1) :: RTval: 0x7fffffff, out: 0x7fffffff +sw $t0, 7($t1) :: RTval: 0x80000000, out: 0x80000000 +sw $t0, 7($t1) :: RTval: 0x80000000, out: 0x80000000 +sw $t0, 9($t1) :: RTval: 0x80000000, out: 0x80000000 +sw $t0, 9($t1) :: RTval: 0x80000000, out: 0x80000000 +sw $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x7fffffff +sw $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x7fffffff +sw $t0, 15($t1) :: RTval: 0x7fffffff, out: 0x0 +sw $t0, 15($t1) :: RTval: 0x7fffffff, out: 0xffff +sw $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927 +sw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927 +sw $t0, 0($t1) :: RTval: 0xdd00000, out: 0xdd00000 +sw $t0, 0($t1) :: RTval: 0xdd00000, out: 0xdd00000 +sw $t0, 0($t1) :: RTval: 0x28f, out: 0x28f +sw $t0, 0($t1) :: RTval: 0x28f, out: 0x28f +sw $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfffffd71 +sw $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfffffd71 +sw $t0, 0($t1) :: RTval: 0xf, out: 0xf +sw $t0, 0($t1) :: RTval: 0xf, out: 0xf +sw $t0, 0($t1) :: RTval: 0x1, out: 0x1 +sw $t0, 0($t1) :: RTval: 0x1, out: 0x1 +sw $t0, 0($t1) :: RTval: 0x35, out: 0x35 +sw $t0, 0($t1) :: RTval: 0x35, out: 0x35 +sw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 31($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 31($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 37($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 37($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 49($t1) :: RTval: 0x31415927, out: 0x31415927 +sw $t0, 49($t1) :: RTval: 0x31415927, out: 0x31415927 +sw $t0, 41($t1) :: RTval: 0x7fffffff, out: 0x7fffffff +sw $t0, 41($t1) :: RTval: 0x7fffffff, out: 0x7fffffff +sw $t0, 43($t1) :: RTval: 0x80000000, out: 0x80000000 +sw $t0, 43($t1) :: RTval: 0x80000000, out: 0x80000000 +sw $t0, 51($t1) :: RTval: 0x28f, out: 0x28f +sw $t0, 51($t1) :: RTval: 0x28f, out: 0x28f +MEM1: +0xffff, 0xffff7fff, 0xffffffff, 0x7f +0xffffff00, 0x0, 0x0, 0xff +0xffffff00, 0xffffff, 0xff7fff80, 0x0 +0x314100, 0x28f00, 0x0, 0x0 +MEM: +0xffff, 0xffff7fff, 0xffffffff, 0xffff7f +0xffffff2f, 0x242c2b2b, 0x252a2e2b, 0x262d2dff +0xffffff3e, 0x3effffff, 0xff7fff80, 0x3a +0x45314100, 0x28f46, 0x474d474c, 0x4a484a4c diff --git a/none/tests/mips32/LoadStore1.stdout.exp-r6-LE b/none/tests/mips32/LoadStore1.stdout.exp-r6-LE new file mode 100644 index 0000000..01e2e03 --- /dev/null +++ b/none/tests/mips32/LoadStore1.stdout.exp-r6-LE @@ -0,0 +1,171 @@ +sb +sb $t0, 3($t1) :: RTval: 0x0, out: 0x0 +sb $t0, 3($t1) :: RTval: 0x0, out: 0x0 +sb $t0, 5($t1) :: RTval: 0x31415927, out: 0x27 +sb $t0, 5($t1) :: RTval: 0x31415927, out: 0x3000027 +sb $t0, 7($t1) :: RTval: 0x7fffffff, out: 0xff +sb $t0, 7($t1) :: RTval: 0x7fffffff, out: 0x3ff +sb $t0, 1($t1) :: RTval: 0x80000000, out: 0x0 +sb $t0, 1($t1) :: RTval: 0x80000000, out: 0x1f00 +sb $t0, 2($t1) :: RTval: 0x80000000, out: 0x27000000 +sb $t0, 2($t1) :: RTval: 0x80000000, out: 0x27000000 +sb $t0, 6($t1) :: RTval: 0x7fffffff, out: 0xffff +sb $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x3ffff +sb $t0, 11($t1) :: RTval: 0x7fffffff, out: 0xff +sb $t0, 11($t1) :: RTval: 0x7fffffff, out: 0xffffffff +sb $t0, 8($t1) :: RTval: 0xffffffff, out: 0xff0000ff +sb $t0, 8($t1) :: RTval: 0xffffffff, out: 0xff0000ff +sb $t0, 0($t1) :: RTval: 0x31415927, out: 0x27 +sb $t0, 0($t1) :: RTval: 0x31415927, out: 0x27 +sb $t0, 0($t1) :: RTval: 0xdd00000, out: 0x0 +sb $t0, 0($t1) :: RTval: 0xdd00000, out: 0x0 +sb $t0, 0($t1) :: RTval: 0x28f, out: 0x8f +sb $t0, 0($t1) :: RTval: 0x28f, out: 0x8f +sb $t0, 0($t1) :: RTval: 0xfffffd71, out: 0x71 +sb $t0, 0($t1) :: RTval: 0xfffffd71, out: 0x71 +sb $t0, 0($t1) :: RTval: 0xf, out: 0xf +sb $t0, 0($t1) :: RTval: 0xf, out: 0xf +sb $t0, 0($t1) :: RTval: 0x1, out: 0x1 +sb $t0, 0($t1) :: RTval: 0x1, out: 0x1 +sb $t0, 0($t1) :: RTval: 0x35, out: 0x35 +sb $t0, 0($t1) :: RTval: 0x35, out: 0x35 +sb $t0, 2($t1) :: RTval: 0xffffffff, out: 0x270000ff +sb $t0, 2($t1) :: RTval: 0xffffffff, out: 0x270000ff +sb $t0, 2($t1) :: RTval: 0xffffffff, out: 0x270000ff +sb $t0, 2($t1) :: RTval: 0xffffffff, out: 0x270000ff +sb $t0, 31($t1) :: RTval: 0xffffffff, out: 0xffffffff +sb $t0, 31($t1) :: RTval: 0xffffffff, out: 0x343f3eff +sb $t0, 35($t1) :: RTval: 0xffffffff, out: 0xff +sb $t0, 35($t1) :: RTval: 0xffffffff, out: 0x353d3cff +sb $t0, 41($t1) :: RTval: 0x31415927, out: 0x27 +sb $t0, 41($t1) :: RTval: 0x31415927, out: 0x3a363a27 +sb $t0, 42($t1) :: RTval: 0x7fffffff, out: 0xff +sb $t0, 42($t1) :: RTval: 0x7fffffff, out: 0x3b3a36ff +sb $t0, 45($t1) :: RTval: 0x80000000, out: 0x0 +sb $t0, 45($t1) :: RTval: 0x80000000, out: 0x453b3700 +sb $t0, 51($t1) :: RTval: 0x28f, out: 0x8f +sb $t0, 51($t1) :: RTval: 0x28f, out: 0x464d468f +MEM1: +0xff0035, 0xffff2700, 0xff0000ff, 0x0 +0x0, 0x0, 0x0, 0xff000000 +0xffffffff, 0x0, 0xff2700, 0x0 +0x8f000000, 0x0, 0x0, 0x0 +MEM: +0xff0035, 0xffff2700, 0xff0000ff, 0xffffffff +0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0xff2d2d2a +0xff343f3e, 0x3e353d3c, 0x36ff273b, 0x3b37003a +0x8f4f4e45, 0x4e464d46, 0x474d474c, 0x4a484a4c +sh +sh $t0, 1($t1) :: RTval: 0x0, out: 0x0 +sh $t0, 1($t1) :: RTval: 0x0, out: 0x120000 +sh $t0, 3($t1) :: RTval: 0x31415927, out: 0x5927 +sh $t0, 3($t1) :: RTval: 0x31415927, out: 0x5927 +sh $t0, 5($t1) :: RTval: 0x7fffffff, out: 0xffff +sh $t0, 5($t1) :: RTval: 0x7fffffff, out: 0x300ffff +sh $t0, 7($t1) :: RTval: 0x80000000, out: 0x0 +sh $t0, 7($t1) :: RTval: 0x80000000, out: 0x0 +sh $t0, 9($t1) :: RTval: 0x80000000, out: 0x0 +sh $t0, 9($t1) :: RTval: 0x80000000, out: 0xff000000 +sh $t0, 6($t1) :: RTval: 0x7fffffff, out: 0xffff +sh $t0, 6($t1) :: RTval: 0x7fffffff, out: 0xffff +sh $t0, 11($t1) :: RTval: 0x7fffffff, out: 0xffff +sh $t0, 11($t1) :: RTval: 0x7fffffff, out: 0xffffffff +sh $t0, 8($t1) :: RTval: 0xffffffff, out: 0xff00ffff +sh $t0, 8($t1) :: RTval: 0xffffffff, out: 0xff00ffff +sh $t0, 0($t1) :: RTval: 0x31415927, out: 0x27005927 +sh $t0, 0($t1) :: RTval: 0x31415927, out: 0x27005927 +sh $t0, 0($t1) :: RTval: 0xdd00000, out: 0x27000000 +sh $t0, 0($t1) :: RTval: 0xdd00000, out: 0x27000000 +sh $t0, 0($t1) :: RTval: 0x28f, out: 0x2700028f +sh $t0, 0($t1) :: RTval: 0x28f, out: 0x2700028f +sh $t0, 0($t1) :: RTval: 0xfffffd71, out: 0x2700fd71 +sh $t0, 0($t1) :: RTval: 0xfffffd71, out: 0x2700fd71 +sh $t0, 0($t1) :: RTval: 0xf, out: 0x2700000f +sh $t0, 0($t1) :: RTval: 0xf, out: 0x2700000f +sh $t0, 0($t1) :: RTval: 0x1, out: 0x27000001 +sh $t0, 0($t1) :: RTval: 0x1, out: 0x27000001 +sh $t0, 0($t1) :: RTval: 0x35, out: 0x27000035 +sh $t0, 0($t1) :: RTval: 0x35, out: 0x27000035 +sh $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff59ffff +sh $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff59ffff +sh $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff59ffff +sh $t0, 2($t1) :: RTval: 0xffffffff, out: 0xff59ffff +sh $t0, 31($t1) :: RTval: 0xffffffff, out: 0xffff +sh $t0, 31($t1) :: RTval: 0xffffffff, out: 0x343fffff +sh $t0, 35($t1) :: RTval: 0xffffffff, out: 0xffff +sh $t0, 35($t1) :: RTval: 0xffffffff, out: 0x353dffff +sh $t0, 41($t1) :: RTval: 0x31415927, out: 0x5927 +sh $t0, 41($t1) :: RTval: 0x31415927, out: 0x3a365927 +sh $t0, 47($t1) :: RTval: 0x7fffffff, out: 0xffff +sh $t0, 47($t1) :: RTval: 0x7fffffff, out: 0x4f4effff +sh $t0, 49($t1) :: RTval: 0x80000000, out: 0x0 +sh $t0, 49($t1) :: RTval: 0x80000000, out: 0x46450000 +sh $t0, 51($t1) :: RTval: 0x28f, out: 0x28f +sh $t0, 51($t1) :: RTval: 0x28f, out: 0x464d028f +MEM1: +0xffff0035, 0xffffff59, 0xff00ffff, 0xff +0x0, 0x0, 0x0, 0xff000000 +0xff0000ff, 0xff, 0x592700, 0xff000000 +0x8f0000ff, 0x2, 0x0, 0x0 +MEM: +0xffff0035, 0xffffff59, 0xff00ffff, 0xffffffff +0x232f2e2f, 0x242c2b2b, 0x252a2e2b, 0xff2d2d2a +0xff343fff, 0x3e353dff, 0x3659273b, 0xff373b3a +0x8f0000ff, 0x4e464d02, 0x474d474c, 0x4a484a4c +sw +sw $t0, 1($t1) :: RTval: 0x0, out: 0x0 +sw $t0, 1($t1) :: RTval: 0x0, out: 0x0 +sw $t0, 3($t1) :: RTval: 0x31415927, out: 0x31415927 +sw $t0, 3($t1) :: RTval: 0x31415927, out: 0x31415927 +sw $t0, 5($t1) :: RTval: 0x7fffffff, out: 0x7fffffff +sw $t0, 5($t1) :: RTval: 0x7fffffff, out: 0x7fffffff +sw $t0, 7($t1) :: RTval: 0x80000000, out: 0x80000000 +sw $t0, 7($t1) :: RTval: 0x80000000, out: 0x80000000 +sw $t0, 9($t1) :: RTval: 0x80000000, out: 0x80000000 +sw $t0, 9($t1) :: RTval: 0x80000000, out: 0x80000000 +sw $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x7fffffff +sw $t0, 6($t1) :: RTval: 0x7fffffff, out: 0x7fffffff +sw $t0, 15($t1) :: RTval: 0x7fffffff, out: 0x8000 +sw $t0, 15($t1) :: RTval: 0x7fffffff, out: 0xffff8000 +sw $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 8($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927 +sw $t0, 0($t1) :: RTval: 0x31415927, out: 0x31415927 +sw $t0, 0($t1) :: RTval: 0xdd00000, out: 0xdd00000 +sw $t0, 0($t1) :: RTval: 0xdd00000, out: 0xdd00000 +sw $t0, 0($t1) :: RTval: 0x28f, out: 0x28f +sw $t0, 0($t1) :: RTval: 0x28f, out: 0x28f +sw $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfffffd71 +sw $t0, 0($t1) :: RTval: 0xfffffd71, out: 0xfffffd71 +sw $t0, 0($t1) :: RTval: 0xf, out: 0xf +sw $t0, 0($t1) :: RTval: 0xf, out: 0xf +sw $t0, 0($t1) :: RTval: 0x1, out: 0x1 +sw $t0, 0($t1) :: RTval: 0x1, out: 0x1 +sw $t0, 0($t1) :: RTval: 0x35, out: 0x35 +sw $t0, 0($t1) :: RTval: 0x35, out: 0x35 +sw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 2($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 31($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 31($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 37($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 37($t1) :: RTval: 0xffffffff, out: 0xffffffff +sw $t0, 49($t1) :: RTval: 0x31415927, out: 0x31415927 +sw $t0, 49($t1) :: RTval: 0x31415927, out: 0x31415927 +sw $t0, 41($t1) :: RTval: 0x7fffffff, out: 0x7fffffff +sw $t0, 41($t1) :: RTval: 0x7fffffff, out: 0x7fffffff +sw $t0, 43($t1) :: RTval: 0x80000000, out: 0x80000000 +sw $t0, 43($t1) :: RTval: 0x80000000, out: 0x80000000 +sw $t0, 51($t1) :: RTval: 0x28f, out: 0x28f +sw $t0, 51($t1) :: RTval: 0x28f, out: 0x28f +MEM1: +0xffff0035, 0xffffffff, 0xffffffff, 0xff000080 +0x7fffff, 0x0, 0x0, 0xff000000 +0xffffff, 0xffffff00, 0xffffff, 0x800000 +0x8f592700, 0x2, 0x0, 0x0 +MEM: +0xffff0035, 0xffffffff, 0xffffffff, 0xffffff80 +0x237fffff, 0x242c2b2b, 0x252a2e2b, 0xff2d2d2a +0x3fffffff, 0xffffff3c, 0xffffff, 0x3b800000 +0x8f592745, 0x4e000002, 0x474d474c, 0x4a484a4c diff --git a/none/tests/mips32/MIPS32int.c b/none/tests/mips32/MIPS32int.c index 02d0815..e6f3b59 100644 --- a/none/tests/mips32/MIPS32int.c +++ b/none/tests/mips32/MIPS32int.c @@ -143,6 +143,7 @@ int main(int argc, char **argv) TESTINST1("add $t0, $t1, $t2", 0, 0x80000000, t0, t1, t2); TESTINST1("add $t0, $t1, $t2", 0x7fffffff, 0x80000000, t0, t1, t2); +#if (__mips_isa_rev < 6) printf("ADDI\n"); TESTINST2("addi $t0, $t1, 0", 0, 0, t0, t1); TESTINST2("addi $t0, $t1, 1", 0, 1, t0, t1); @@ -153,6 +154,7 @@ int main(int argc, char **argv) TESTINST2("addi $t0, $t1, 0", 0x80000000, 0, t0, t1); TESTINST2("addi $t0, $t1, 0", -1, 0, t0, t1); TESTINST2("addi $t0, $t1, 0", 0x80000000, 0, t0, t1); +#endif printf("ADDIU\n"); TESTINST2("addiu $t0, $t1, 0", 0, 0, t0, t1); @@ -234,6 +236,7 @@ int main(int argc, char **argv) TESTINST3("clz $t0, $t1", 0x10, t0, t1); TESTINST3("clz $t0, $t1", 0xffffffff, t0, t1); +#if (__mips_isa_rev < 6) printf("DIV\n"); TESTINST3a("div $t0, $t1", 0x6, 0x2, t0, t1); TESTINST3a("div $t0, $t1", 0x7fffffff, 0x7fffffff, t0, t1); @@ -248,6 +251,7 @@ int main(int argc, char **argv) TESTINST3a("divu $t0, $t1", 0x1, 0xffffffff, t0, t1); TESTINST3a("divu $t0, $t1", 0x2, 0x6, t0, t1); TESTINST3a("divu $t0, $t1", 0x0, 0x2, t0, t1); +#endif #if (__mips==32) && (__mips_isa_rev>=2) printf("EXT\n"); @@ -797,6 +801,7 @@ int main(int argc, char **argv) TESTINSN5LOAD("lw $t0, 34($t1)", 0, 34, t0); TESTINSN5LOAD("lw $t0, 38($t1)", 0, 38, t0); +#if (__mips_isa_rev < 6) printf("LWL\n"); TESTINSN5LOAD("lwl $t0, 3($t1)", 0, 3, t0); TESTINSN5LOAD("lwl $t0, 6($t1)", 0, 6, t0); @@ -959,6 +964,7 @@ int main(int argc, char **argv) TESTINST3a("msubu $t0, $t1", 0xffffffff, 0xffffffff, t0, t1); TESTINST3a("msubu $t0, $t1", 0x7fffffff, 0x7fffffff, t0, t1); TESTINST3a("msubu $t0, $t1", 0x0000ffff, 0x0000ffff, t0, t1); +#endif printf("MUL\n"); TESTINST1("mul $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2); @@ -993,6 +999,7 @@ int main(int argc, char **argv) TESTINST1("mul $t0, $t1, $t2", 0x7fffffff, 0x7fffffff, t0, t1, t2); TESTINST1("mul $t0, $t1, $t2", 0x0000ffff, 0x0000ffff, t0, t1, t2); +#if (__mips_isa_rev < 6) printf("MULT\n"); TESTINST3a("mult $t0, $t1", 0x31415927, 0xffffffff, t0, t1); TESTINST3a("mult $t0, $t1", 0x31415927, 0xee00ee00, t0, t1); @@ -1058,6 +1065,7 @@ int main(int argc, char **argv) TESTINST3a("multu $t0, $t1", 0xffffffff, 0xffffffff, t0, t1); TESTINST3a("multu $t0, $t1", 0x7fffffff, 0x7fffffff, t0, t1); TESTINST3a("multu $t0, $t1", 0x0000ffff, 0x0000ffff, t0, t1); +#endif printf("NOR\n"); TESTINST1("nor $t0, $t1, $t2", 0x31415927, 0xffffffff, t0, t1, t2); @@ -1763,6 +1771,7 @@ int main(int argc, char **argv) TESTINST2("xori $t0, $t1, 0x7fff", 0x7fffffff, 0x7fff, t0, t1); TESTINST2("xori $t0, $t1, 0x0000", 0x0000ffff, 0x0000, t0, t1); +#if (__mips_isa_rev < 6) printf("MFHI MFLO\n"); TESTINSN_HILO(0x31415927); TESTINSN_HILO(0); @@ -1774,6 +1783,7 @@ int main(int argc, char **argv) TESTINSN_HILO(0x7fff); TESTINSN_HILO(0x0dd0); TESTINSN_HILO(0xff00); +#endif return 0; } diff --git a/none/tests/mips32/MIPS32int.stdout.exp-mips32r6-BE b/none/tests/mips32/MIPS32int.stdout.exp-mips32r6-BE new file mode 100644 index 0000000..a1428fa --- /dev/null +++ b/none/tests/mips32/MIPS32int.stdout.exp-mips32r6-BE @@ -0,0 +1,1325 @@ +ADD +add $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000 +add $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0x00000001 +add $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000001, rt 0x00000000 +add $t0, $t1, $t2 :: rd 0x00000002 rs 0x00000001, rt 0x00000001 +add $t0, $t1, $t2 :: rd 0xffffffff rs 0x00000000, rt 0xffffffff +add $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000001, rt 0xffffffff +add $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x00000000 +add $t0, $t1, $t2 :: rd 0x5859704f rs 0x31415927, rt 0x27181728 +add $t0, $t1, $t2 :: rd 0xc859704f rs 0x31415927, rt 0x97181728 +add $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000 +add $t0, $t1, $t2 :: rd 0x80000000 rs 0x00000000, rt 0x80000000 +add $t0, $t1, $t2 :: rd 0xffffffff rs 0x7fffffff, rt 0x80000000 +ADDIU +addiu $t0, $t1, 0 :: rt 0x00000000 rs 0x00000000, imm 0x00000000 +addiu $t0, $t1, 1 :: rt 0x00000001 rs 0x00000000, imm 0x00000001 +addiu $t0, $t1, 1 :: rt 0x00000002 rs 0x00000001, imm 0x00000000 +addiu $t0, $t1, 1 :: rt 0x00000002 rs 0x00000001, imm 0x00000001 +addiu $t0, $t1, -1 :: rt 0xffffffff rs 0x00000000, imm 0xffffffff +addiu $t0, $t1, -1 :: rt 0x00000000 rs 0x00000001, imm 0xffffffff +addiu $t0, $t1, 0 :: rt 0x80000000 rs 0x80000000, imm 0x00000000 +addiu $t0, $t1, 0 :: rt 0xffffffff rs 0xffffffff, imm 0x00000000 +addiu $t0, $t1, 0 :: rt 0x80000000 rs 0x80000000, imm 0x00000000 +ADDU +addu $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000 +addu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0x00000001 +addu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000001, rt 0x00000000 +addu $t0, $t1, $t2 :: rd 0x00000002 rs 0x00000001, rt 0x00000001 +addu $t0, $t1, $t2 :: rd 0xffffffff rs 0x00000000, rt 0xffffffff +addu $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000001, rt 0xffffffff +addu $t0, $t1, $t2 :: rd 0x5859704f rs 0x31415927, rt 0x27181728 +addu $t0, $t1, $t2 :: rd 0xc859704f rs 0x31415927, rt 0x97181728 +addu $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000 +addu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000001, rt 0x00000000 +addu $t0, $t1, $t2 :: rd 0x00000001 rs 0x00000000, rt 0x00000001 +addu $t0, $t1, $t2 :: rd 0xffffffff rs 0xffffffff, rt 0x00000000 +addu $t0, $t1, $t2 :: rd 0xffffffff rs 0x00000000, rt 0xffffffff +addu $t0, $t1, $t2 :: rd 0x80000000 rs 0x00000000, rt 0x80000000 +addu $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x00000000 +addu $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x80000000 +addu $t0, $t1, $t2 :: rd 0xffffffff rs 0x7fffffff, rt 0x80000000 +addu $t0, $t1, $t2 :: rd 0xffffffff rs 0x80000000, rt 0x7fffffff +addu $t0, $t1, $t2 :: rd 0xfffffffe rs 0x7fffffff, rt 0x7fffffff +AND +and $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0xffffffff +and $t0, $t1, $t2 :: rd 0x20004800 rs 0x31415927, rt 0xee00ee00 +and $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x000000ff +and $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0x00000000 +and $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001 +and $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000000 +and $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0xffffffff +and $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000 +and $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x00000000 +and $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000 +and $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x80000000 +and $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0xff000000 +and $t0, $t1, $t2 :: rd 0x0dd00000 rs 0x7fffffff, rt 0x0dd00000 +and $t0, $t1, $t2 :: rd 0x31415927 rs 0x31415927, rt 0xffffffff +and $t0, $t1, $t2 :: rd 0x20004800 rs 0x31415927, rt 0xee00ee00 +and $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x000000ff +and $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000001, rt 0x00000000 +and $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x00000001 +and $t0, $t1, $t2 :: rd 0x00000000 rs 0xffffffff, rt 0x00000000 +and $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0xffffffff +and $t0, $t1, $t2 :: rd 0x00000000 rs 0x00000000, rt 0x80000000 +and $t0, $t1, $t2 :: rd 0x00000000 rs 0x80000000, rt 0x00000000 +and $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0x80000000 +and $t0, $t1, $t2 :: rd 0x00000000 rs 0x7fffffff, rt 0x80000000 +and $t0, $t1, $t2 :: rd 0x80000000 rs 0x80000000, rt 0xff000000 +and $t0, $t1, $t2 :: rd 0x0dd00000 rs 0x7fffffff, rt 0x0dd00000 +ANDI +andi $t0, $t1, 1 :: rt 0x00000000 rs 0x00000000, imm 0x00000001 +andi $t0, $t1, 0 :: rt 0x00000000 rs 0x00000001, imm 0x00000000 +andi $t0, $t1, 1 :: rt 0x00000001 rs 0x00000001, imm 0x00000001 +andi $t0, $t1, 1 :: rt 0x00000001 rs 0x7fffffff, imm 0x00000000 +andi $t0, $t1, 0 :: rt 0x00000000 rs 0x80000000, imm 0x00000000 +andi $t0, $t1, 0x3145 :: rt 0x00003145 rs 0xffffffff, imm 0x00003145 +CLO +clo $t0, $t1 :: rd 0x00000000 rs 0x00000000 +clo $t0, $t1 :: rd 0x00000000 rs 0x00000001 +clo $t0, $t1 :: rd 0x00000000 rs 0x00000010 +clo $t0, $t1 :: rd 0x00000020 rs 0xffffffff +CLZ +clz $t0, $t1 :: rd 0x00000020 rs 0x00000000 +clz $t0, $t1 :: rd 0x0000001f rs 0x00000001 +clz $t0, $t1 :: rd 0x0000001b rs 0x00000010 +clz $t0, $t1 :: rd 0x00000000 rs 0xffffffff +EXT +ext $t0, $t1, 0, 1 :: rt 0x00000000 rs 0x00000000, pos 0x00000000, size 0x00000001 +ext $t0, $t1, 0, 1 :: rt 0x00000001 rs 0xffffffff, pos 0x00000000, size 0x00000001 +ext $t0, $t1, 0, 1 :: rt 0x00000000 rs 0x98765432, pos 0x00000000, size 0x00000001 +ext $t0, $t1, 0, 1 :: rt 0x00000001 rs 0xff865421, pos 0x00000000, size 0x00000001 +ext $t0, $t1, 0, 1 :: rt 0x00000000 rs 0x00000000, pos 0x00000000, size 0x00000001 +ext $t0, $t1, 0, 1 :: rt 0x00000001 rs 0xffffffff, pos 0x00000000, size 0x00000001 +ext $t0, $t1, 0, 1 :: rt 0x00000000 rs 0x98765432, pos 0x00000000, size 0x00000001 +ext $t0, $t1, 0, 1 :: rt 0x00000001 rs 0xff865421, pos 0x00000000, size 0x00000001 +ext $t0, $t1, 0, 1 :: rt 0x00000000 rs 0x00000000, pos 0x00000000, size 0x00000001 +ext $t0, $t1, 0, 1 :: rt 0x00000001 rs 0xffffffff, pos 0x00000000, size 0x00000001 +ext $t0, $t1, 0, 1 :: rt 0x00000000 rs 0x98765432, pos 0x00000000, size 0x00000001 +ext $t0, $t1, 0, 1 :: rt 0x00000001 rs 0xff865421, pos 0x00000000, size 0x00000001 +ext $t0, $t1, 0, 1 :: rt 0x00000000 rs 0x00000000, pos 0x00000000, size 0x00000001 +ext $t0, $t1, 0, 1 :: rt 0x00000001 rs 0xffffffff, pos 0x00000000, size 0x00000001 +ext $t0, $t1, 0, 1 :: rt 0x00000000 rs 0x98765432, pos 0x00000000, size 0x00000001 +ext $t0, $t1, 0, 1 :: rt 0x00000001 rs 0xff865421, pos 0x00000000, size 0x00000001 +ext $t0, $t1, 0, 4 :: rt 0x00000000 rs 0x00000000, pos 0x00000000, size 0x00000004 +ext $t0, $t1, 0, 4 :: rt 0x0000000f rs 0xffffffff, pos 0x00000000, size 0x00000004 +ext $t0, $t1, 0, 4 :: rt 0x00000002 rs 0x98765432, pos 0x00000000, size 0x00000004 +ext $t0, $t1, 0, 4 :: rt 0x00000001 rs 0xff865421, pos 0x00000000, size 0x00000004 +ext $t0, $t1, 0, 4 :: rt 0x00000000 rs 0x00000000, pos 0x00000000, size 0x00000004 +ext $t0, $t1, 0, 4 :: rt 0x0000000f rs 0xffffffff, pos 0x00000000, size 0x00000004 +ext $t0, $t1, 0, 4 :: rt 0x00000002 rs 0x98765432, pos 0x00000000, size 0x00000004 +ext $t0, $t1, 0, 4 :: rt 0x00000001 rs 0xff865421, pos 0x00000000, size 0x00000004 +ext $t0, $t1, 0, 4 :: rt 0x00000000 rs 0x00000000, pos 0x00000000, size 0x00000004 +ext $t0, $t1, 0, 4 :: rt 0x0000000f rs 0xffffffff, pos 0x00000000, size 0x00000004 +ext $t0, $t1, 0, 4 :: rt 0x00000002 rs 0x98765432, pos 0x00000000, size 0x00000004 +ext $t0, $t1, 0, 4 :: rt 0x00000001 rs 0xff865421, pos 0x00000000, size 0x00000004 +ext $t0, $t1, 0, 4 :: rt 0x00000000 rs 0x00000000, pos 0x00000000, size 0x00000004 +ext $t0, $t1, 0, 4 :: rt 0x0000000f rs 0xffffffff, pos 0x00000000, size 0x00000004 +ext $t0, $t1, 0, 4 :: rt 0x00000002 rs 0x98765432, pos 0x00000000, size 0x00000004 +ext $t0, $t1, 0, 4 :: rt 0x00000001 rs 0xff865421, pos 0x00000000, size 0x00000004 +ext $t0, $t1, 0, 16 :: rt 0x00000000 rs 0x00000000, pos 0x00000000, size 0x00000010 +ext $t0, $t1, 0, 16 :: rt 0x0000ffff rs 0xffffffff, pos 0x00000000, size 0x00000010 +ext $t0, $t1, 0, 16 :: rt 0x00005432 rs 0x98765432, pos 0x00000000, size 0x00000010 +ext $t0, $t1, 0, 16 :: rt 0x00005421 rs 0xff865421, pos 0x00000000, size 0x00000010 +ext $t0, $t1, 0, 16 :: rt 0x00000000 rs 0x00000000, pos 0x00000000, size 0x00000010 +ext $t0, $t1, 0, 16 :: rt 0x0000ffff rs 0xffffffff, pos 0x00000000, size 0x00000010 +ext $t0, $t1, 0, 16 :: rt 0x00005432 rs 0x98765432, pos 0x00000000, size 0x00000010 +ext $t0, $t1, 0, 16 :: rt 0x00005421 rs 0xff865421, pos 0x00000000, size 0x00000010 +ext $t0, $t1, 0, 16 :: rt 0x00000000 rs 0x00000000, pos 0x00000000, size 0x00000010 +ext $t0, $t1, 0, 16 :: rt 0x0000ffff rs 0xffffffff, pos 0x00000000, size 0x00000010 +ext $t0, $t1, 0, 16 :: rt 0x00005432 rs 0x98765432, pos 0x00000000, size 0x00000010 +ext $t0, $t1, 0, 16 :: rt 0x00005421 rs 0xff865421, pos 0x00000000, size 0x00000010 +ext $t0, $t1, 0, 16 :: rt 0x00000000 rs 0x00000000, pos 0x00000000, size 0x00000010 +ext $t0, $t1, 0, 16 :: rt 0x0000ffff rs 0xffffffff, pos 0x00000000, size 0x00000010 +ext $t0, $t1, 0, 16 :: rt 0x00005432 rs 0x98765432, pos 0x00000000, size 0x00000010 +ext $t0, $t1, 0, 16 :: rt 0x00005421 rs 0xff865421, pos 0x00000000, size 0x00000010 +ext $t0, $t1, 0, 32 :: rt 0x00000000 rs 0x00000000, pos 0x00000000, size 0x00000020 +ext $t0, $t1, 0, 32 :: rt 0xffffffff rs 0xffffffff, pos 0x00000000, size 0x00000020 +ext $t0, $t1, 0, 32 :: rt 0x98765432 rs 0x98765432, pos 0x00000000, size 0x00000020 +ext $t0, $t1, 0, 32 :: rt 0xff865421 rs 0xff865421, pos 0x00000000, size 0x00000020 +ext $t0, $t1, 0, 32 :: rt 0x00000000 rs 0x00000000, pos 0x00000000, size 0x00000020 +ext $t0, $t1, 0, 32 :: rt 0xffffffff rs 0xffffffff, pos 0x00000000, size 0x00000020 +ext $t0, $t1, 0, 32 :: rt 0x98765432 rs 0x98765432, pos 0x00000000, size 0x00000020 +ext $t0, $t1, 0, 32 :: rt 0xff865421 rs 0xff865421, pos 0x00000000, size 0x00000020 +ext $t0, $t1, 0, 32 :: rt 0x00000000 rs 0x00000000, pos 0x00000000, size 0x00000020 +ext $t0, $t1, 0, 32 :: rt 0xffffffff rs 0xffffffff, pos 0x00000000, size 0x00000020 +ext $t0, $t1, 0, 32 :: rt 0x98765432 rs 0x98765432, pos 0x00000000, size 0x00000020 +ext $t0, $t1, 0, 32 :: rt 0xff865421 rs 0xff865421, pos 0x00000000, size 0x00000020 +ext $t0, $t1, 0, 32 :: rt 0x00000000 rs 0x00000000, pos 0x00000000, size 0x00000020 +ext $t0, $t1, 0, 32 :: rt 0xffffffff rs 0xffffffff, pos 0x00000000, size 0x00000020 +ext $t0, $t1, 0, 32 :: rt 0x98765432 rs 0x98765432, pos 0x00000000, size 0x00000020 +ext $t0, $t1, 0, 32 :: rt 0xff865421 rs 0xff865421, pos 0x00000000, size 0x00000020 +ext $t0, $t1, 4, 1 :: rt 0x00000000 rs 0x00000000, pos 0x00000004, size 0x00000001 +ext $t0, $t1, 4, 1 :: rt 0x00000001 rs 0xffffffff, pos 0x00000004, size 0x00000001 +ext $t0, $t1, 4, 1 :: rt 0x00000001 rs 0x98765432, pos 0x00000004, size 0x00000001 +ext $t0, $t1, 4, 1 :: rt 0x00000000 rs 0xff865421, pos 0x00000004, size 0x00000001 +ext $t0, $t1, 4, 1 :: rt 0x00000000 rs 0x00000000, pos 0x00000004, size 0x00000001 +ext $t0, $t1, 4, 1 :: rt 0x00000001 rs 0xffffffff, pos 0x00000004, size 0x00000001 +ext $t0, $t1, 4, 1 :: rt 0x00000001 rs 0x98765432, pos 0x00000004, size 0x00000001 +ext $t0, $t1, 4, 1 :: rt 0x00000000 rs 0xff865421, pos 0x00000004, size 0x00000001 +ext $t0, $t1, 4, 1 :: rt 0x00000000 rs 0x00000000, pos 0x00000004, size 0x00000001 +ext $t0, $t1, 4, 1 :: rt 0x00000001 rs 0xffffffff, pos 0x00000004, size 0x00000001 +ext $t0, $t1, 4, 1 :: rt 0x00000001 rs 0x98765432, pos 0x00000004, size 0x00000001 +ext $t0, $t1, 4, 1 :: rt 0x00000000 rs 0xff865421, pos 0x00000004, size 0x00000001 +ext $t0, $t1, 4, 1 :: rt 0x00000000 rs 0x00000000, pos 0x00000004, size 0x00000001 +ext $t0, $t1, 4, 1 :: rt 0x00000001 rs 0xffffffff, pos 0x00000004, size 0x00000001 +ext $t0, $t1, 4, 1 :: rt 0x00000001 rs 0x98765432, pos 0x00000004, size 0x00000001 +ext $t0, $t1, 4, 1 :: rt 0x00000000 rs 0xff865421, pos 0x00000004, size 0x00000001 +ext $t0, $t1, 4, 4 :: rt 0x00000000 rs 0x00000000, pos 0x00000004, size 0x00000004 +ext $t0, $t1, 4, 4 :: rt 0x0000000f rs 0xffffffff, pos 0x00000004, size 0x00000004 +ext $t0, $t1, 4, 4 :: rt 0x00000003 rs 0x98765432, pos 0x00000004, size 0x00000004 +ext $t0, $t1, 4, 4 :: rt 0x00000002 rs 0xff865421, pos 0x00000004, size 0x00000004 +ext $t0, $t1, 4, 4 :: rt 0x00000000 rs 0x00000000, pos 0x00000004, size 0x00000004 +ext $t0, $t1, 4, 4 :: rt 0x0000000f rs 0xffffffff, pos 0x00000004, size 0x00000004 +ext $t0, $t1, 4, 4 :: rt 0x00000003 rs 0x98765432, pos 0x00000004, size 0x00000004 +ext $t0, $t1, 4, 4 :: rt 0x00000002 rs 0xff865421, pos 0x00000004, size 0x00000004 +ext $t0, $t1, 4, 4 :: rt 0x00000000 rs 0x00000000, pos 0x00000004, size 0x00000004 +ext $t0, $t1, 4, 4 :: rt 0x0000000f rs 0xffffffff, pos 0x00000004, size 0x0... [truncated message content] |