26 lines
654 B
ArmAsm
26 lines
654 B
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_rlwimi:
|
|
#_ REGISTER_IN r4 0xCAFEBABE90003000
|
|
#_ REGISTER_IN r6 0xDEADBEEF00000003
|
|
rlwimi r6, r4, 2, 0, 0x1D
|
|
blr
|
|
#_ REGISTER_OUT r4 0xCAFEBABE90003000
|
|
#_ REGISTER_OUT r6 0xDEADBEEF4000C003
|
|
|
|
test_rlwimi_constant:
|
|
make_full_test_constant r4, 0xCAFE, 0xBABE, 0x9000, 0x3000
|
|
make_full_test_constant r6, 0xDEAD, 0xBEEF, 0x0000, 0x0003
|
|
rlwimi r6, r4, 2, 0, 0x1D
|
|
blr
|
|
#_ REGISTER_OUT r4 0xCAFEBABE90003000
|
|
#_ REGISTER_OUT r6 0xDEADBEEF4000C003
|