diff options
Diffstat (limited to 'sim/testsuite/sim/fr30/dmov.cgs')
-rw-r--r-- | sim/testsuite/sim/fr30/dmov.cgs | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/sim/testsuite/sim/fr30/dmov.cgs b/sim/testsuite/sim/fr30/dmov.cgs new file mode 100644 index 00000000000..bd2e5cc45ff --- /dev/null +++ b/sim/testsuite/sim/fr30/dmov.cgs @@ -0,0 +1,73 @@ +# fr30 testcase for dmov +# mach(): fr30 + + .include "testutils.inc" + START + + .text + .global dmov +dmov: + ; Test dmov @$dir10,$R13 + mvi_h_gr 0xdeadbeef,r1 + mvi_h_gr 0x200,r2 + mvr_h_mem r1,r2 + set_cc 0x0f ; Condition codes shouldn't change + dmov @0x200,r13 + test_cc 1 1 1 1 + test_h_gr 0xdeadbeef,r13 + + ; Test dmov $R13,@$dir10 + mvi_h_gr 0xbeefdead,r13 + set_cc 0x0e ; Condition codes shouldn't change + dmov r13,@0x200 + test_cc 1 1 1 0 + test_h_mem 0xbeefdead,r2 + + ; Test dmov @$dir10,@R13+ + mvi_h_gr 0x1fc,r13 + set_cc 0x0d ; Condition codes shouldn't change + dmov @0x200,@r13+ + test_cc 1 1 0 1 + mvi_h_gr 0x1fc,r2 + test_h_mem 0xbeefdead,r2 + inci_h_gr 4,r2 + test_h_mem 0xbeefdead,r2 + test_h_gr 0x200,r13 + + ; Test dmov @$R13+,@$dir10 + mvi_h_gr 0x1fc,r13 + mvi_h_mem 0xdeadbeef,r13 + set_cc 0x0c ; Condition codes shouldn't change + dmov @r13+,@0x200 + test_cc 1 1 0 0 + mvi_h_gr 0x1fc,r2 + test_h_mem 0xdeadbeef,r2 + inci_h_gr 4,r2 + test_h_mem 0xdeadbeef,r2 + test_h_gr 0x200,r13 + + ; Test dmov @$dir10,@-R15 + mvi_h_gr 0x200,r15 + mvi_h_mem 0xdeadbeef,r15 + set_cc 0x0b ; Condition codes shouldn't change + dmov @0x200,@-r15 + test_cc 1 0 1 1 + mvi_h_gr 0x1fc,r2 + test_h_mem 0xdeadbeef,r2 + inci_h_gr 4,r2 + test_h_mem 0xdeadbeef,r2 + test_h_gr 0x1fc,r15 + + ; Test dmov @$R15+,@$dir10 + mvi_h_gr 0x1fc,r15 + mvi_h_mem 0xbeefdead,r15 + set_cc 0x0a ; Condition codes shouldn't change + dmov @r15+,@0x200 + test_cc 1 0 1 0 + mvi_h_gr 0x1fc,r2 + test_h_mem 0xbeefdead,r2 + inci_h_gr 4,r2 + test_h_mem 0xbeefdead,r2 + test_h_gr 0x200,r15 + + pass |