diff options
Diffstat (limited to 'sim/testsuite/frv/srai.cgs')
-rw-r--r-- | sim/testsuite/frv/srai.cgs | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/sim/testsuite/frv/srai.cgs b/sim/testsuite/frv/srai.cgs new file mode 100644 index 0000000..02b9654 --- /dev/null +++ b/sim/testsuite/frv/srai.cgs @@ -0,0 +1,34 @@ +# frv testcase for srai $GRi,$GRj,$GRk +# mach: all + + .include "testutils.inc" + + start + + .global srai +srai: + set_gr_limmed 0x8000,0x0000,gr8 + set_icc 0x05,0 ; Set mask opposite of expected + srai gr8,0x7e0,gr8 ; Shift by 0 + test_icc 0 1 0 1 icc0 + test_gr_limmed 0x8000,0x0000,gr8 + + set_gr_limmed 0x8000,0x0000,gr8 + set_icc 0x0f,0 ; Set mask opposite of expected + srai gr8,-31,gr8 ; Shift by 1 + test_icc 1 1 1 1 icc0 + test_gr_limmed 0xc000,0x0000,gr8 + + set_gr_limmed 0x8000,0x0000,gr8 + set_icc 0x0f,0 ; Set mask opposite of expected + srai gr8,31,gr8 ; Shift by 31 + test_icc 1 1 1 1 icc0 + test_gr_immed -1,gr8 + + set_gr_limmed 0x4000,0x0000,gr8 + set_icc 0x0a,0 ; Set mask opposite of expected + srai gr8,31,gr8 ; clear register + test_icc 1 0 1 0 icc0 + test_gr_immed 0x00000000,gr8 + + pass |