OSDN Git Service

8163417f391bb33bcb117959f421a6a39ea4dbd9
[pf3gnuchains/pf3gnuchains4x.git] / sim / testsuite / sim / bfin / c_ccflag_a0a1.S
1 //Original:/testcases/core/c_ccflag_a0a1/c_ccflag_a0a1.dsp
2 // Spec Reference: ccflag a0-a1 (==, <, <=)
3 # mach: bfin
4
5 #include "test.h"
6 .include "testutils.inc"
7         start
8
9         imm32 r0, 0x12345778;
10         imm32 r1, 0x12345678;
11         imm32 r2, 0x056789ab;
12         imm32 r3, 0x80231345;
13
14         imm32 r4, 0x00770088;
15         imm32 r5, 0x009900aa;
16         imm32 r6, 0x00bb00cc;
17         imm32 r7, _UNSET;
18
19         ASTAT = R7;
20         R4 = ASTAT;
21         A0 = R0;
22         A1 = R0;
23
24 // positive a0 EQUAL to a1
25         CC = A0 == A1;
26         R5 = ASTAT;
27         CC = A0 < A1;
28         R6 = ASTAT;
29         CHECKREG r4, _UNSET;
30         CHECKREG r5, (_AC0|_CC|_AC0_COPY|_AZ);
31         CHECKREG r6, (_AC0|_AC0_COPY|_AZ);
32         CC = A0 <= A1;
33         R5 = ASTAT;
34         CC = A0 < A1;
35         R6 = ASTAT;
36         CC = A0 <= A1;
37         R7 = ASTAT;
38         CHECKREG r5, (_AC0|_CC|_AC0_COPY|_AZ);
39         CHECKREG r6, (_AC0|_AC0_COPY|_AZ);
40         CHECKREG r7, (_AC0|_CC|_AC0_COPY|_AZ);
41
42 // positive a0 GREATER than to positive a1
43         A1 = R1;
44         CC = A0 == A1;
45         R5 = ASTAT;
46         CC = A0 < A1;
47         R6 = ASTAT;
48         CC = A0 <= A1;
49         R7 = ASTAT;
50         CHECKREG r5, (_AC0|_AC0_COPY);  // carry
51         CHECKREG r6, (_AC0|_AC0_COPY);
52         CHECKREG r7, (_AC0|_AC0_COPY);
53
54 // positive a0 LESS  than to positive a1
55         A1 = R2;
56         CC = A0 == A1;
57         R5 = ASTAT;
58         CC = A0 < A1;
59         R6 = ASTAT;
60         CC = A0 <= A1;
61         R7 = ASTAT;
62         CHECKREG r5, (_AC0|_AC0_COPY);
63         CHECKREG r6, (_AC0|_AC0_COPY);
64         CHECKREG r7, (_AC0|_AC0_COPY);
65
66 // positive a0 GREATER than to neg a1
67         A1 = R3;
68         CC = A0 == A1;
69         R5 = ASTAT;
70         CC = A0 < A1;
71         R6 = ASTAT;
72         CC = A0 <= A1;
73         R7 = ASTAT;
74         CHECKREG r5, _UNSET;
75         CHECKREG r6, _UNSET;
76         CHECKREG r7, _UNSET;
77
78 // negative a0  and positive a1
79         imm32 r0, -1;
80         imm32 r1,  2;
81         imm32 r2, -3;
82         imm32 r3, -4;
83         A0 = R0;
84         A1 = R1;
85
86         R7 = 0;
87         ASTAT = R7;
88         R4 = ASTAT;
89
90         CC = A0 == A1;
91         R5 = ASTAT;
92         CC = A0 < A1;
93         R6 = ASTAT;
94         CC = A0 <= A1;
95         R7 = ASTAT;
96         CHECKREG r4, _UNSET;
97         CHECKREG r5, (_AC0|_AC0_COPY|_AN);
98         CHECKREG r6, (_AC0|_AC0_COPY|_CC|_AN);
99         CHECKREG r7, (_AC0|_AC0_COPY|_CC|_AN);
100
101 //  negative a0 LESS than neg a1
102         A0 = R3;
103         A1 = R4;
104         CC = A0 == A1;
105         R5 = ASTAT;
106         CC = A0 < A1;
107         R6 = ASTAT;
108         CC = A0 <= A1;
109         R7 = ASTAT;
110         CHECKREG r4, _UNSET;
111         CHECKREG r5, (_AC0|_AC0_COPY|_AN);
112         CHECKREG r6, (_AC0|_AC0_COPY|_CC|_AN);
113         CHECKREG r7, (_AC0|_AC0_COPY|_CC|_AN);
114
115 // negative a0 GREATER neg a1
116         A0 = R0;
117         A1 = R3;
118         CC = A0 == A1;
119         R5 = ASTAT;
120         CC = A0 < A1;
121         R6 = ASTAT;
122         CC = A0 <= A1;
123         R7 = ASTAT;
124         CHECKREG r4, _UNSET;
125         CHECKREG r5, (_AC0|_AC0_COPY);
126         CHECKREG r6, (_AC0|_AC0_COPY);
127         CHECKREG r7, (_AC0|_AC0_COPY);
128
129 // negative a0  EQUAL neg imm3
130         A0 = R3;
131         A1 = R3;
132         CC = A0 == A1;
133         R5 = ASTAT;
134         CC = A0 < A1;
135         R6 = ASTAT;
136         CC = A0 <= A1;
137         R7 = ASTAT;
138         CHECKREG r4, _UNSET;
139         CHECKREG r5, (_AC0|_CC|_AC0_COPY|_AZ);
140         CHECKREG r6, (_AC0|_AC0_COPY|_AZ);
141         CHECKREG r7, (_AC0|_CC|_AC0_COPY|_AZ);
142
143         pass