xref: /qemu/tests/tcg/cris/bare/check_movsm.s (revision d4f6e58f)
1*d4f6e58fSAlex Bennée# mach: crisv3 crisv8 crisv10 crisv32
2*d4f6e58fSAlex Bennée# output: 5\nfffffff5\n5\nfffffff5\n0\n
3*d4f6e58fSAlex Bennée
4*d4f6e58fSAlex Bennée; Movs between registers.  Check that sign-extension is performed and the
5*d4f6e58fSAlex Bennée; full register is set.
6*d4f6e58fSAlex Bennée
7*d4f6e58fSAlex Bennée .include "testutils.inc"
8*d4f6e58fSAlex Bennée
9*d4f6e58fSAlex Bennée .data
10*d4f6e58fSAlex Bennéex:
11*d4f6e58fSAlex Bennée .byte 5,-11
12*d4f6e58fSAlex Bennée .word 5,-11
13*d4f6e58fSAlex Bennée .word 0
14*d4f6e58fSAlex Bennée
15*d4f6e58fSAlex Bennée start
16*d4f6e58fSAlex Bennée move.d x,r5
17*d4f6e58fSAlex Bennée
18*d4f6e58fSAlex Bennée moveq -1,r3
19*d4f6e58fSAlex Bennée movs.b [r5+],r3
20*d4f6e58fSAlex Bennée test_move_cc 0 0 0 0
21*d4f6e58fSAlex Bennée checkr3 5
22*d4f6e58fSAlex Bennée
23*d4f6e58fSAlex Bennée moveq 0,r3
24*d4f6e58fSAlex Bennée movs.b [r5],r3
25*d4f6e58fSAlex Bennée test_move_cc 1 0 0 0
26*d4f6e58fSAlex Bennée addq 1,r5
27*d4f6e58fSAlex Bennée checkr3 fffffff5
28*d4f6e58fSAlex Bennée
29*d4f6e58fSAlex Bennée moveq -1,r3
30*d4f6e58fSAlex Bennée movs.w [r5+],r3
31*d4f6e58fSAlex Bennée test_move_cc 0 0 0 0
32*d4f6e58fSAlex Bennée checkr3 5
33*d4f6e58fSAlex Bennée
34*d4f6e58fSAlex Bennée moveq 0,r3
35*d4f6e58fSAlex Bennée movs.w [r5],r3
36*d4f6e58fSAlex Bennée test_move_cc 1 0 0 0
37*d4f6e58fSAlex Bennée addq 2,r5
38*d4f6e58fSAlex Bennée checkr3 fffffff5
39*d4f6e58fSAlex Bennée
40*d4f6e58fSAlex Bennée movs.w [r5],r3
41*d4f6e58fSAlex Bennée test_move_cc 0 1 0 0
42*d4f6e58fSAlex Bennée checkr3 0
43*d4f6e58fSAlex Bennée
44*d4f6e58fSAlex Bennée quit
45