redream/test/asm/fmov_store.s

58 lines
1.1 KiB
ArmAsm

test_fmov_store_single:
# REGISTER_IN fr0 0x10a00000
# FMOV.S FRm,@Rn 1111nnnnmmmm1010
mov.l .DATA_OUT, r0
fmov.s fr0, @r0
mov.l @r0, r2
rts
nop
# REGISTER_OUT r2 0x10a00000
# TODO it'd be really nice to verify that this is correct for the real hardware
test_fmov_store_double_sz0:
# REGISTER_IN dr0 0x10a0000020e00000
# FMOV DRm,@Rn 1111nnnnmmm01010
mov.l .DATA_OUT, r0
fmov dr0, @r0
mov.l @r0+, r2
mov.l @r0, r3
rts
nop
# REGISTER_OUT r2 0x10a00000
# REGISTER_OUT r3 0x0
test_fmov_store_double_sz1:
# REGISTER_IN fpscr 0x00140001
# REGISTER_IN dr0 0x20a0000030e00000
# FMOV DRm,@Rn 1111nnnnmmm01010
mov.l .DATA_OUT, r0
fmov dr0, @r0
mov.l @r0+, r2
mov.l @r0, r3
rts
nop
# REGISTER_OUT r2 0x20a00000
# REGISTER_OUT r3 0x30e00000
test_fmov_store_double_bank_sz1:
# REGISTER_IN fpscr 0x00140001
# REGISTER_IN xd0 0x30a0000040e00000
# FMOV XDm,@Rn 1111nnnnmmm11010
mov.l .DATA_OUT, r0
fmov xd0, @r0
mov.l @r0+, r2
mov.l @r0, r3
rts
nop
# REGISTER_OUT r2 0x30a00000
# REGISTER_OUT r3 0x40e00000
.align 4
.DATA:
.long 0x0
.long 0x0
.align 4
.DATA_OUT:
.long .DATA