[Testing] Add a lot more missing instruction tests
This commit is contained in:
40
src/xenia/cpu/ppc/testing/instr_stvx.s
Normal file
40
src/xenia/cpu/ppc/testing/instr_stvx.s
Normal file
@@ -0,0 +1,40 @@
|
||||
test_stvx_1:
|
||||
# Basic 16-byte aligned store
|
||||
#_ MEMORY_IN 0x0000000010001000 [CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC]
|
||||
#_ REGISTER_IN r4 0x0000000010001000
|
||||
#_ REGISTER_IN v3 [01020304, 05060708, 090A0B0C, 0D0E0F10]
|
||||
li r5, 0
|
||||
stvx v3, r4, r5
|
||||
blr
|
||||
#_ REGISTER_OUT r4 0x0000000010001000
|
||||
#_ REGISTER_OUT r5 0
|
||||
#_ REGISTER_OUT v3 [01020304, 05060708, 090A0B0C, 0D0E0F10]
|
||||
#_ MEMORY_OUT 10001000 0102030405060708090A0B0C0D0E0F10
|
||||
|
||||
test_stvx_2:
|
||||
# Test with offset
|
||||
#_ MEMORY_IN 0x0000000010001000 [CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC]
|
||||
#_ MEMORY_IN 0x0000000010001010 [CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC]
|
||||
#_ REGISTER_IN r4 0x0000000010001000
|
||||
#_ REGISTER_IN v3 [AABBCCDD, EEFF0011, 22334455, 66778899]
|
||||
li r5, 16
|
||||
stvx v3, r4, r5
|
||||
blr
|
||||
#_ REGISTER_OUT r4 0x0000000010001000
|
||||
#_ REGISTER_OUT r5 16
|
||||
#_ REGISTER_OUT v3 [AABBCCDD, EEFF0011, 22334455, 66778899]
|
||||
#_ MEMORY_OUT 10001010 AABBCCDDEEFF00112233445566778899
|
||||
|
||||
test_stvx_3:
|
||||
# Test unaligned address (should mask to 16-byte boundary)
|
||||
#_ MEMORY_IN 0x0000000010001000 [CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC, CC]
|
||||
#_ REGISTER_IN r4 0x0000000010001000
|
||||
#_ REGISTER_IN v3 [11223344, 55667788, 99AABBCC, DDEEFF00]
|
||||
li r5, 13 # unaligned
|
||||
stvx v3, r4, r5
|
||||
blr
|
||||
#_ REGISTER_OUT r4 0x0000000010001000
|
||||
#_ REGISTER_OUT r5 13
|
||||
#_ REGISTER_OUT v3 [11223344, 55667788, 99AABBCC, DDEEFF00]
|
||||
# Should store to aligned address 0x10001000
|
||||
#_ MEMORY_OUT 10001000 112233445566778899AABBCCDDEEFF00
|
||||
Reference in New Issue
Block a user