[Testing] Add missing ALU instruction tests
This commit is contained in:
92
src/xenia/cpu/ppc/testing/instr_rldimi.s
Normal file
92
src/xenia/cpu/ppc/testing/instr_rldimi.s
Normal file
@@ -0,0 +1,92 @@
|
||||
.macro make_full_test_constant dest, a, b, c, d
|
||||
lis \dest, \a
|
||||
ori \dest, \dest, \b
|
||||
sldi \dest, \dest, 32
|
||||
lis r3, \c
|
||||
ori r3, r3, \d
|
||||
clrldi r3, r3, 32
|
||||
or \dest, \dest, r3
|
||||
.endm
|
||||
|
||||
test_rldimi_1:
|
||||
#_ REGISTER_IN r3 0xFFFFFFFFFFFFFFFF
|
||||
#_ REGISTER_IN r4 0x0123456789ABCDEF
|
||||
rldimi r3, r4, 0, 0
|
||||
blr
|
||||
#_ REGISTER_OUT r3 0x0123456789abcdef
|
||||
#_ REGISTER_OUT r4 0x0123456789ABCDEF
|
||||
|
||||
test_rldimi_1_constant:
|
||||
li r3, -1
|
||||
make_full_test_constant r4, 0x0123, 0x4567, 0x89AB, 0xCDEF
|
||||
rldimi r3, r4, 0, 0
|
||||
blr
|
||||
#_ REGISTER_OUT r3 0x0123456789abcdef
|
||||
#_ REGISTER_OUT r4 0x0123456789ABCDEF
|
||||
|
||||
test_rldimi_2:
|
||||
#_ REGISTER_IN r3 0x0000000000000000
|
||||
#_ REGISTER_IN r4 0x0123456789ABCDEF
|
||||
rldimi r3, r4, 8, 48
|
||||
blr
|
||||
#_ REGISTER_OUT r3 0x000000000000ef00
|
||||
#_ REGISTER_OUT r4 0x0123456789ABCDEF
|
||||
|
||||
test_rldimi_2_constant:
|
||||
li r3, 0
|
||||
make_full_test_constant r4, 0x0123, 0x4567, 0x89AB, 0xCDEF
|
||||
rldimi r3, r4, 8, 48
|
||||
blr
|
||||
#_ REGISTER_OUT r3 0x0000000089abefef
|
||||
#_ REGISTER_OUT r4 0x0123456789ABCDEF
|
||||
|
||||
test_rldimi_3:
|
||||
#_ REGISTER_IN r3 0xFFFFFFFFFFFFFFFF
|
||||
#_ REGISTER_IN r4 0x0123456789ABCDEF
|
||||
rldimi r3, r4, 32, 32
|
||||
blr
|
||||
#_ REGISTER_OUT r3 0x89ABCDEF01234567
|
||||
#_ REGISTER_OUT r4 0x0123456789ABCDEF
|
||||
|
||||
test_rldimi_3_constant:
|
||||
li r3, -1
|
||||
make_full_test_constant r4, 0x0123, 0x4567, 0x89AB, 0xCDEF
|
||||
rldimi r3, r4, 32, 32
|
||||
blr
|
||||
#_ REGISTER_OUT r3 0x89ABCDEF01234567
|
||||
#_ REGISTER_OUT r4 0x0123456789ABCDEF
|
||||
|
||||
test_rldimi_4:
|
||||
#_ REGISTER_IN r3 0xAAAAAAAAAAAAAAAA
|
||||
#_ REGISTER_IN r4 0x00000000FFFFFFFF
|
||||
rldimi r3, r4, 16, 32
|
||||
blr
|
||||
#_ REGISTER_OUT r3 0xAAAAAAAAFFFFAAAA
|
||||
#_ REGISTER_OUT r4 0x00000000FFFFFFFF
|
||||
|
||||
test_rldimi_4_constant:
|
||||
li r3, -1
|
||||
srdi r3, r3, 1
|
||||
sldi r3, r3, 1
|
||||
li r4, -1
|
||||
clrldi r4, r4, 32
|
||||
rldimi r3, r4, 16, 32
|
||||
blr
|
||||
#_ REGISTER_OUT r3 0xFFFFFFFFFFFFFFFE
|
||||
#_ REGISTER_OUT r4 0x00000000FFFFFFFF
|
||||
|
||||
test_rldimi_5:
|
||||
#_ REGISTER_IN r3 0x0000000000000000
|
||||
#_ REGISTER_IN r4 0xFFFFFFFFFFFFFFFF
|
||||
rldimi r3, r4, 56, 0
|
||||
blr
|
||||
#_ REGISTER_OUT r3 0xFF00000000000000
|
||||
#_ REGISTER_OUT r4 0xFFFFFFFFFFFFFFFF
|
||||
|
||||
test_rldimi_5_constant:
|
||||
li r3, 0
|
||||
li r4, -1
|
||||
rldimi r3, r4, 56, 0
|
||||
blr
|
||||
#_ REGISTER_OUT r3 0xFF00000000000000
|
||||
#_ REGISTER_OUT r4 0xFFFFFFFFFFFFFFFF
|
||||
Reference in New Issue
Block a user