diff --git a/src/xenia/cpu/ppc/testing/instr_nandx.s b/src/xenia/cpu/ppc/testing/instr_nandx.s new file mode 100644 index 000000000..44e716b92 --- /dev/null +++ b/src/xenia/cpu/ppc/testing/instr_nandx.s @@ -0,0 +1,35 @@ +test_nandx_1: + #_ REGISTER_IN r4 0xFFFFFFFF + #_ REGISTER_IN r5 0xFFFFFFFF + nand. r3, r4, r5 + blr + #_ REGISTER_OUT r3 0xFFFFFFFF00000000 + #_ REGISTER_OUT r4 0xFFFFFFFF + #_ REGISTER_OUT r5 0xFFFFFFFF + +test_nandx_2: + #_ REGISTER_IN r4 0xAAAAAAAA + #_ REGISTER_IN r5 0x55555555 + nand. r3, r4, r5 + blr + #_ REGISTER_OUT r3 0xFFFFFFFFFFFFFFFF + #_ REGISTER_OUT r4 0xAAAAAAAA + #_ REGISTER_OUT r5 0x55555555 + +test_nandx_3: + #_ REGISTER_IN r4 0xFFFF0000 + #_ REGISTER_IN r5 0xFFFF0000 + nand. r3, r4, r5 + blr + #_ REGISTER_OUT r3 0xFFFFFFFF0000FFFF + #_ REGISTER_OUT r4 0xFFFF0000 + #_ REGISTER_OUT r5 0xFFFF0000 + +test_nandx_4: + #_ REGISTER_IN r4 0x00000000 + #_ REGISTER_IN r5 0xFFFFFFFF + nand. r3, r4, r5 + blr + #_ REGISTER_OUT r3 0xFFFFFFFFFFFFFFFF + #_ REGISTER_OUT r4 0x00000000 + #_ REGISTER_OUT r5 0xFFFFFFFF diff --git a/src/xenia/cpu/ppc/testing/instr_orx.s b/src/xenia/cpu/ppc/testing/instr_orx.s new file mode 100644 index 000000000..bca1d4981 --- /dev/null +++ b/src/xenia/cpu/ppc/testing/instr_orx.s @@ -0,0 +1,35 @@ +test_orx_1: + #_ REGISTER_IN r4 0xFFFF0000 + #_ REGISTER_IN r5 0x0000FFFF + or. r3, r4, r5 + blr + #_ REGISTER_OUT r3 0xFFFFFFFF + #_ REGISTER_OUT r4 0xFFFF0000 + #_ REGISTER_OUT r5 0x0000FFFF + +test_orx_2: + #_ REGISTER_IN r4 0xAAAAAAAA + #_ REGISTER_IN r5 0x55555555 + or. r3, r4, r5 + blr + #_ REGISTER_OUT r3 0xFFFFFFFF + #_ REGISTER_OUT r4 0xAAAAAAAA + #_ REGISTER_OUT r5 0x55555555 + +test_orx_3: + #_ REGISTER_IN r4 0x00000000 + #_ REGISTER_IN r5 0x12345678 + or. r3, r4, r5 + blr + #_ REGISTER_OUT r3 0x12345678 + #_ REGISTER_OUT r4 0x00000000 + #_ REGISTER_OUT r5 0x12345678 + +test_orx_4: + #_ REGISTER_IN r4 0xFFFFFFFF + #_ REGISTER_IN r5 0x00000000 + or. r3, r4, r5 + blr + #_ REGISTER_OUT r3 0xFFFFFFFF + #_ REGISTER_OUT r4 0xFFFFFFFF + #_ REGISTER_OUT r5 0x00000000 diff --git a/src/xenia/cpu/ppc/testing/instr_stfiwx.s b/src/xenia/cpu/ppc/testing/instr_stfiwx.s new file mode 100644 index 000000000..bf43ece76 --- /dev/null +++ b/src/xenia/cpu/ppc/testing/instr_stfiwx.s @@ -0,0 +1,31 @@ +test_stfiwx_1: + #_ REGISTER_IN r4 0x0000000010001000 + li r5, 0 + #_ REGISTER_IN f3 0x3F800000 + stfiwx f3, r4, r5 + blr + #_ MEMORY_OUT 10001000 3F800000 + +test_stfiwx_2: + #_ REGISTER_IN r4 0x0000000010001000 + li r5, 4 + #_ REGISTER_IN f3 0x12345678 + stfiwx f3, r4, r5 + blr + #_ MEMORY_OUT 10001004 12345678 + +test_stfiwx_3: + #_ REGISTER_IN r4 0x0000000010001000 + li r5, 0 + #_ REGISTER_IN f3 0xFFFFFFFF + stfiwx f3, r4, r5 + blr + #_ MEMORY_OUT 10001000 FFFFFFFF + +test_stfiwx_4: + #_ REGISTER_IN r4 0x0000000010001000 + li r5, 0 + #_ REGISTER_IN f3 0x00000000 + stfiwx f3, r4, r5 + blr + #_ MEMORY_OUT 10001000 00000000 diff --git a/src/xenia/cpu/ppc/testing/instr_stvebx.s b/src/xenia/cpu/ppc/testing/instr_stvebx.s new file mode 100644 index 000000000..8ca23b215 --- /dev/null +++ b/src/xenia/cpu/ppc/testing/instr_stvebx.s @@ -0,0 +1,31 @@ +test_stvebx_1: + #_ REGISTER_IN r4 0x0000000010001000 + li r5, 0 + #_ REGISTER_IN v3 [01020304, 05060708, 090A0B0C, 0D0E0F10] + stvebx v3, r4, r5 + blr + #_ MEMORY_OUT 10001000 01 + +test_stvebx_2: + #_ REGISTER_IN r4 0x0000000010001000 + li r5, 1 + #_ REGISTER_IN v3 [01020304, 05060708, 090A0B0C, 0D0E0F10] + stvebx v3, r4, r5 + blr + #_ MEMORY_OUT 10001001 02 + +test_stvebx_3: + #_ REGISTER_IN r4 0x0000000010001000 + li r5, 15 + #_ REGISTER_IN v3 [01020304, 05060708, 090A0B0C, 0D0E0F10] + stvebx v3, r4, r5 + blr + #_ MEMORY_OUT 1000100F 10 + +test_stvebx_4: + #_ REGISTER_IN r4 0x0000000010001000 + li r5, 8 + #_ REGISTER_IN v3 [01020304, 05060708, 090A0B0C, 0D0E0F10] + stvebx v3, r4, r5 + blr + #_ MEMORY_OUT 10001008 09 diff --git a/src/xenia/cpu/ppc/testing/instr_stvehx.s b/src/xenia/cpu/ppc/testing/instr_stvehx.s new file mode 100644 index 000000000..e92fe9c5b --- /dev/null +++ b/src/xenia/cpu/ppc/testing/instr_stvehx.s @@ -0,0 +1,31 @@ +test_stvehx_1: + #_ REGISTER_IN r4 0x0000000010001000 + li r5, 0 + #_ REGISTER_IN v3 [01020304, 05060708, 090A0B0C, 0D0E0F10] + stvehx v3, r4, r5 + blr + #_ MEMORY_OUT 10001000 0102 + +test_stvehx_2: + #_ REGISTER_IN r4 0x0000000010001000 + li r5, 2 + #_ REGISTER_IN v3 [01020304, 05060708, 090A0B0C, 0D0E0F10] + stvehx v3, r4, r5 + blr + #_ MEMORY_OUT 10001002 0304 + +test_stvehx_3: + #_ REGISTER_IN r4 0x0000000010001000 + li r5, 14 + #_ REGISTER_IN v3 [01020304, 05060708, 090A0B0C, 0D0E0F10] + stvehx v3, r4, r5 + blr + #_ MEMORY_OUT 1000100E 0F10 + +test_stvehx_4: + #_ REGISTER_IN r4 0x0000000010001000 + li r5, 8 + #_ REGISTER_IN v3 [01020304, 05060708, 090A0B0C, 0D0E0F10] + stvehx v3, r4, r5 + blr + #_ MEMORY_OUT 10001008 090A diff --git a/src/xenia/cpu/ppc/testing/instr_xorx.s b/src/xenia/cpu/ppc/testing/instr_xorx.s new file mode 100644 index 000000000..09a10db01 --- /dev/null +++ b/src/xenia/cpu/ppc/testing/instr_xorx.s @@ -0,0 +1,35 @@ +test_xorx_1: + #_ REGISTER_IN r4 0xFFFF0000 + #_ REGISTER_IN r5 0x0000FFFF + xor. r3, r4, r5 + blr + #_ REGISTER_OUT r3 0xFFFFFFFF + #_ REGISTER_OUT r4 0xFFFF0000 + #_ REGISTER_OUT r5 0x0000FFFF + +test_xorx_2: + #_ REGISTER_IN r4 0xAAAAAAAA + #_ REGISTER_IN r5 0x55555555 + xor. r3, r4, r5 + blr + #_ REGISTER_OUT r3 0xFFFFFFFF + #_ REGISTER_OUT r4 0xAAAAAAAA + #_ REGISTER_OUT r5 0x55555555 + +test_xorx_3: + #_ REGISTER_IN r4 0x12345678 + #_ REGISTER_IN r5 0x12345678 + xor. r3, r4, r5 + blr + #_ REGISTER_OUT r3 0x00000000 + #_ REGISTER_OUT r4 0x12345678 + #_ REGISTER_OUT r5 0x12345678 + +test_xorx_4: + #_ REGISTER_IN r4 0xFFFFFFFF + #_ REGISTER_IN r5 0x00000000 + xor. r3, r4, r5 + blr + #_ REGISTER_OUT r3 0xFFFFFFFF + #_ REGISTER_OUT r4 0xFFFFFFFF + #_ REGISTER_OUT r5 0x00000000