Upload Tizen:Base source
[external/gdb.git] / sim / testsuite / sim / cris / asm / ccs-v32.ms
1 # mach: crisv32
2 # output: bf\n0\n80\n20\n10\n8\n4\n2\n1\n40\nfade040\n3ade0040\nfade040\n42\n
3
4 ; Check flag settings.
5
6  .include "testutils.inc"
7  start
8  clear.d r3
9  setf pixnzvc   ; Setting U(ser mode) would restrict tests of other flags.
10  move ccs,r3
11  dumpr3
12
13  clear.d r3
14  clearf puixnzvc
15  move ccs,r3
16  dumpr3
17
18  .macro testf BIT
19  clear.d r3
20  clearf puixnzvc
21  setf \BIT
22  move ccs,r3
23  dumpr3
24  .endm
25
26  testf p
27  testf i
28  testf x
29  testf n
30  testf z
31  testf v
32  testf c
33  testf u        ; Can't test i-flag or clear u after this point.
34
35  .macro test_get_cc N Z V C
36  clearf znvc
37  move ((\N << 3)|(\Z << 2)|(\V << 1)|\C),ccs
38  test_cc \N \Z \V \C
39  setf znvc
40  move ((\N << 3)|(\Z << 2)|(\V << 1)|\C),ccs
41  test_cc \N \Z \V \C
42  move.d ((\N << 3)|(\Z << 2)|(\V << 1)|\C),r4
43  setf znvc
44  move r4,ccs
45  test_cc \N \Z \V \C
46  clearf znvc
47  move r4,ccs
48  test_cc \N \Z \V \C
49  .endm
50
51  test_get_cc 1 0 0 0
52  test_get_cc 0 1 0 0
53  test_get_cc 0 0 1 0
54  test_get_cc 0 0 0 1
55
56 ; Test that the U bit sticks.
57  move 0x0fade000,ccs
58  move ccs,r3
59  dumpr3
60
61 ; Check that the M and Q bits can't be set in user mode.
62  move 0xfade0000,ccs
63  move ccs,r3
64  dumpr3
65
66  move 0x0fade000,ccs
67  move ccs,r3
68  dumpr3
69
70  move.d 0x42,r3
71  dumpr3
72
73  quit