]> git.ipfire.org Git - thirdparty/binutils-gdb.git/blob - sim/testsuite/sim/bfin/c_ccflag_a0a1.S
* elfxx-tilegx.c (tilegx_elf_relocate_section): Silence bogus warning.
[thirdparty/binutils-gdb.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