xref: /qemu/tests/tcg/cris/bare/check_btst.s (revision abff1abf)
1# mach: crisv0 crisv3 crisv8 crisv10 crisv32
2# output: 1111\n
3
4 .include "testutils.inc"
5 start
6 clearf nzvc
7 moveq -1,r3
8 .if 1 ;..asm.arch.cris.v32
9 .else
10 setf vc
11 .endif
12 btstq 0,r3
13 test_cc 1 0 0 0
14
15 moveq 2,r3
16 btstq 1,r3
17 test_cc 1 0 0 0
18
19 moveq 4,r3
20 btstq 1,r3
21 test_cc 0 1 0 0
22
23 moveq -1,r3
24 btstq 31,r3
25 test_cc 1 0 0 0
26
27 move.d 0x5a67f19f,r3
28 btstq 12,r3
29 test_cc 1 0 0 0
30
31 move.d 0xda67f19f,r3
32 move.d 29,r4
33 btst r4,r3
34 test_cc 0 0 0 0
35
36 move.d 0xda67f19f,r3
37 move.d 32,r4
38 btst r4,r3
39 test_cc 1 0 0 0
40
41 move.d 0xda67f191,r3
42 move.d 33,r4
43 btst r4,r3
44 test_cc 0 0 0 0
45
46 moveq -1,r3
47 moveq 0,r4
48 btst r4,r3
49 test_cc 1 0 0 0
50
51 moveq 2,r3
52 moveq 1,r4
53 btst r4,r3
54 test_cc 1 0 0 0
55
56 moveq -1,r3
57 moveq 31,r4
58 btst r4,r3
59 test_cc 1 0 0 0
60
61 moveq 4,r3
62 btstq 1,r3
63 test_cc 0 1 0 0
64
65 moveq -1,r3
66 moveq 15,r4
67 btst r4,r3
68 test_cc 1 0 0 0
69
70 move.d 0x5a67f19f,r3
71 moveq 12,r4
72 btst r4,r3
73 test_cc 1 0 0 0
74
75 move.d 0x5a678000,r3
76 moveq 11,r4
77 btst r4,r3
78 test_cc 0 1 0 0
79
80 move.d 0x5a67f19f,r3
81 btst r3,r3
82 test_cc 0 0 0 0
83
84 move.d 0x1111,r3
85 checkr3 1111
86
87 ; check that X gets cleared and that only the NZ flags are touched.
88 ;; move.d	0xff, $r0
89 ;; move $r0, $ccs
90 ;; btst r3,r3
91 ;; move $ccs, $r0
92 ;; and.d 0xff, $r0
93 ;; cmp.d	0xe3, $r0
94 ;; test_cc 0 1 0 0
95
96 quit
97