diff --git a/src/xenia/cpu/ppc/testing/instr_rlwinm.s b/src/xenia/cpu/ppc/testing/instr_rlwinm.s index 21ad6307f..2e4dbdb05 100644 --- a/src/xenia/cpu/ppc/testing/instr_rlwinm.s +++ b/src/xenia/cpu/ppc/testing/instr_rlwinm.s @@ -240,3 +240,24 @@ test_extrwi_cr_3_constant: #_ REGISTER_OUT r5 0xFFFFFFFF00000000 #_ REGISTER_OUT r7 0x0000000000000000 #_ REGISTER_OUT r12 0x20000000 + +test_rlwinm_10: + #_ REGISTER_IN r7 0x01234567 + rlwinm r6, r7, 31, 31, 1 + blr + #_ REGISTER_OUT r6 0x8091A2B380000001 + #_ REGISTER_OUT r7 0x01234567 + +test_rlwinm_11: + #_ REGISTER_IN r8 0x0123456789ABCDEF + rlwinm r6, r8, 8, 2, 0 + blr + #_ REGISTER_OUT r6 0xABCDEF89ABCDEF89 + #_ REGISTER_OUT r8 0x1 + +test_rlwinm_12: + #_ REGISTER_IN r4 0xFFFFFFFFFFFFFFFF + rlwinm r7, r4, 31, 30, 1 + blr + #_ REGISTER_OUT r4 0xFFFFFFFFFFFFFFFF + #_ REGISTER_OUT r7 0xFFFFFFFFC0000003 diff --git a/src/xenia/cpu/ppc/testing/instr_rlwnm.s b/src/xenia/cpu/ppc/testing/instr_rlwnm.s index 6406996e6..dccae1c50 100644 --- a/src/xenia/cpu/ppc/testing/instr_rlwnm.s +++ b/src/xenia/cpu/ppc/testing/instr_rlwnm.s @@ -191,3 +191,25 @@ test_rlwnm_10_constant: #_ REGISTER_OUT r3 0x12345678 #_ REGISTER_OUT r4 0x12345678 #_ REGISTER_OUT r5 32 + +test_rlwnm_11: + #_ REGISTER_IN r0 0x1 + rlwnm r0, r0, r0, 1, 0 + blr + #_ REGISTER_OUT r0 0x0000000200000002 + +test_rlwnm_12: + #_ REGISTER_IN r3 0xFFFFFFFF + rlwnm r0, r3, r3, 30, 1 + blr + #_ REGISTER_OUT r0 0x1 + #_ REGISTER_OUT r3 0xFFFFFFFFC0000003 + +test_rlwnm_13: + #_ REGISTER_IN r7 0x01234567 + #_ REGISTER_IN r8 0x0123456789ABCDEFull + rlwnm r6, r8, r7, 31, 30 + blr + #_ REGISTER_OUT r6 0xD5E6F7C4D5E6F7C4 + #_ REGISTER_OUT r7 0x01234567 + #_ REGISTER_OUT r8 0x0123456789ABCDEFull