[Testing] Add a lot more missing instruction tests
This commit is contained in:
90
src/xenia/cpu/ppc/testing/instr_subfx.s
Normal file
90
src/xenia/cpu/ppc/testing/instr_subfx.s
Normal file
@@ -0,0 +1,90 @@
|
||||
test_subfx_1:
|
||||
#_ REGISTER_IN r4 0x0000000000003000
|
||||
#_ REGISTER_IN r5 0x0000000000001000
|
||||
subf. r3, r4, r5
|
||||
mfcr r12
|
||||
blr
|
||||
#_ REGISTER_OUT r3 0xFFFFFFFFFFFFE000
|
||||
#_ REGISTER_OUT r12 0x0000000080000000
|
||||
|
||||
test_subfx_1_constant:
|
||||
li r4, 0x3000
|
||||
li r5, 0x1000
|
||||
subf. r3, r4, r5
|
||||
mfcr r12
|
||||
blr
|
||||
#_ REGISTER_OUT r3 0xFFFFFFFFFFFFE000
|
||||
#_ REGISTER_OUT r12 0x0000000080000000
|
||||
|
||||
test_subfx_underflow:
|
||||
#_ REGISTER_IN r4 0x8000000000000000
|
||||
#_ REGISTER_IN r5 0x0000000000000001
|
||||
subf. r3, r4, r5
|
||||
mfcr r12
|
||||
blr
|
||||
#_ REGISTER_OUT r3 0x8000000000000001
|
||||
#_ REGISTER_OUT r12 0x0000000040000000
|
||||
|
||||
test_subfx_negative:
|
||||
#_ REGISTER_IN r4 0x0000000000000001
|
||||
#_ REGISTER_IN r5 0xFFFFFFFFFFFFFFFF
|
||||
subf. r3, r4, r5
|
||||
mfcr r12
|
||||
blr
|
||||
#_ REGISTER_OUT r3 0xFFFFFFFFFFFFFFFE
|
||||
#_ REGISTER_OUT r12 0x0000000080000000
|
||||
|
||||
test_subfcx_1:
|
||||
#_ REGISTER_IN r4 0x0000000000003000
|
||||
#_ REGISTER_IN r5 0x0000000000001000
|
||||
subfc. r3, r4, r5
|
||||
mfcr r12
|
||||
blr
|
||||
#_ REGISTER_OUT r3 0xFFFFFFFFFFFFE000
|
||||
#_ REGISTER_OUT r12 0x0000000080000000
|
||||
|
||||
test_subfcx_borrow:
|
||||
#_ REGISTER_IN r4 0x0000000000000002
|
||||
#_ REGISTER_IN r5 0x0000000000000001
|
||||
subfc. r3, r4, r5
|
||||
mfcr r12
|
||||
blr
|
||||
#_ REGISTER_OUT r3 0xFFFFFFFFFFFFFFFF
|
||||
#_ REGISTER_OUT r12 0x0000000080000000
|
||||
|
||||
test_subfex_1:
|
||||
#_ REGISTER_IN r4 0x0000000000003000
|
||||
#_ REGISTER_IN r5 0x0000000000001000
|
||||
#_ REGISTER_IN r0 0x0000000000000000
|
||||
mtxer r0
|
||||
subfe. r3, r4, r5
|
||||
mfcr r12
|
||||
mfxer r6
|
||||
blr
|
||||
#_ REGISTER_OUT r3 0xFFFFFFFFFFFFDFFF
|
||||
#_ REGISTER_OUT r6 0x0000000000000000
|
||||
#_ REGISTER_OUT r12 0x0000000080000000
|
||||
|
||||
test_subfmex_1:
|
||||
#_ REGISTER_IN r4 0x0000000000001000
|
||||
#_ REGISTER_IN r0 0x0000000000000000
|
||||
mtxer r0
|
||||
subfme. r3, r4
|
||||
mfcr r12
|
||||
mfxer r6
|
||||
blr
|
||||
#_ REGISTER_OUT r3 0xFFFFFFFFFFFFEFFE
|
||||
#_ REGISTER_OUT r6 0x0000000020000000
|
||||
#_ REGISTER_OUT r12 0x0000000080000000
|
||||
|
||||
test_subfzex_1:
|
||||
#_ REGISTER_IN r4 0x0000000000001000
|
||||
#_ REGISTER_IN r0 0x0000000000000000
|
||||
mtxer r0
|
||||
subfze. r3, r4
|
||||
mfcr r12
|
||||
mfxer r6
|
||||
blr
|
||||
#_ REGISTER_OUT r3 0xFFFFFFFFFFFFEFFF
|
||||
#_ REGISTER_OUT r6 0x0000000000000000
|
||||
#_ REGISTER_OUT r12 0x0000000080000000
|
||||
Reference in New Issue
Block a user