93 lines
2.1 KiB
ArmAsm
93 lines
2.1 KiB
ArmAsm
.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
|