diff options
Diffstat (limited to 'sim/testsuite/sim/fr30/lduh.cgs')
-rw-r--r-- | sim/testsuite/sim/fr30/lduh.cgs | 115 |
1 files changed, 115 insertions, 0 deletions
diff --git a/sim/testsuite/sim/fr30/lduh.cgs b/sim/testsuite/sim/fr30/lduh.cgs new file mode 100644 index 00000000000..7d36b75cbcc --- /dev/null +++ b/sim/testsuite/sim/fr30/lduh.cgs @@ -0,0 +1,115 @@ +# fr30 testcase for +# mach(): fr30 +# lduh $Rj,$Ri +# lduh @($R13,$Rj),$Ri +# lduh @($R14,$disp9),$Ri + + .include "testutils.inc" + + START + + .text + .global lduh +lduh: + ; Test lduh $Rj,$Ri + mvi_h_mem #0x0000beef,sp + set_cc 0x0f ; condition codes should not change + lduh @sp,r7 + test_cc 1 1 1 1 + test_h_gr 0,r7 + + mvi_h_mem #0x0001beef,sp + set_cc 0x07 ; condition codes should not change + lduh @sp,r7 + test_cc 0 1 1 1 + test_h_gr 1,r7 + + mvi_h_mem #0x7fffbeef,sp + set_cc 0x0b ; condition codes should not change + lduh @sp,r7 + test_cc 1 0 1 1 + test_h_gr 0x7fff,r7 + + mvi_h_mem #0x8000beef,sp + set_cc 0x0d ; condition codes should not change + lduh @sp,r7 + test_cc 1 1 0 1 + test_h_gr 0x8000,r7 + + mvi_h_mem #0xffffbeef,sp + set_cc 0x0e ; condition codes should not change + lduh @sp,r7 + test_cc 1 1 1 0 + test_h_gr 0xffff,r7 + + ; Test lduh @($R13,$Rj),$Ri + mvr_h_gr sp,r13 + inci_h_gr -8,r13 + mvi_h_gr 8,r8 + + mvi_h_mem #0x0000beef,sp + set_cc 0x0f ; condition codes should not change + lduh @(r13,r8),r7 + test_cc 1 1 1 1 + test_h_gr 0,r7 + + mvi_h_mem #0x0001beef,sp + set_cc 0x07 ; condition codes should not change + lduh @(r13,r8),r7 + test_cc 0 1 1 1 + test_h_gr 1,r7 + + mvi_h_mem #0x7fffbeef,sp + set_cc 0x0b ; condition codes should not change + lduh @(r13,r8),r7 + test_cc 1 0 1 1 + test_h_gr 0x7fff,r7 + + mvi_h_mem #0x8000beef,sp + set_cc 0x0d ; condition codes should not change + lduh @(r13,r8),r7 + test_cc 1 1 0 1 + test_h_gr 0x8000,r7 + + mvi_h_mem #0xffffbeef,sp + set_cc 0x0e ; condition codes should not change + lduh @(r13,r8),r7 + test_cc 1 1 1 0 + test_h_gr 0xffff,r7 + + ; Test lduh @($R14,$disp9),$Ri + mvi_h_mem #0xdeadbeef,sp + mvr_h_gr sp,r14 + mvi_h_gr -0xfe,r8 + add_h_gr r8,r14 + + set_cc 0x0f ; condition codes should not change + lduh @(r14,0xfe),r7 + test_cc 1 1 1 1 + test_h_gr 0xdead,r7 + + inci_h_gr 0x7e,r14 + set_cc 0x07 ; condition codes should not change + lduh @(r14,0x80),r7 + test_cc 0 1 1 1 + test_h_gr 0xdead,r7 + + inci_h_gr 0x80,r14 + set_cc 0x0b ; condition codes should not change + lduh @(r14,0x0),r7 + test_cc 1 0 1 1 + test_h_gr 0xdead,r7 + + inci_h_gr 0x80,r14 + set_cc 0x0d ; condition codes should not change + lduh @(r14,-0x80),r7 + test_cc 1 1 0 1 + test_h_gr 0xdead,r7 + + inci_h_gr 0x80,r14 + set_cc 0x0e ; condition codes should not change + lduh @(r14,-0x100),r7 + test_cc 1 1 1 0 + test_h_gr 0xdead,r7 + + pass |