binutils/
[external/binutils.git] / sim / testsuite / sim / bfin / a0shift.S
1 # mach: bfin
2
3 #include "test.h"
4 .include "testutils.inc"
5         start
6
7 // 0xfffffe371c
8         r0 = 0;
9         r1 = 0;
10         r2 = 0;
11         r3 = 0;
12         r4 = 0;
13         r5 = 0;
14         r6 = 0;
15         r7 = 0;
16         a1 = a0 =0;
17         astat = R0;
18
19         R6.L = 0x8000;
20         R5.H = 0x8000;
21
22 // load acc with values;
23         R0.L = 0xc062;
24         R0.H = 0xffee;
25         A0.w = R0;
26         R0.L = 0xc52c;
27         A0.x = R0;
28         R0.L = 0x8d10;
29         R0.H = 0x34c;
30         A1.w = R0;
31         R0.L = 0xe10c;
32         A1.x = R0;
33 // load regs with values;
34         R0.L = 0xe844;
35         R0.H = 0x4aba;
36         R1.L = 0xa294;
37         R1.H = 0x52ea;
38         R2.L = 0xafda;
39         R2.H = 0x5c32;
40 // end load regs and acc;
41         R0.H = (A1 = R5.L * R6.H), R0.L = (A0 += R5.L * R6.H) (FU);
42 P0 = ASTAT;
43 CHECKREG P0, (_VS|_V|_V_COPY);
44
45                 CHECKREG R0, 0xffff;
46 R0 = A1.w
47 CHECKREG R0, 0;
48 R0 = A1.x
49 CHECKREG R0, 0;
50 R0 = A0.w
51 CHECKREG R0, 0xffeec062;
52 R0 = A0.x
53 CHECKREG R0, 0x2c;
54                 P0 = ASTAT;
55                 CHECKREG P0, (_VS|_V|_V_COPY);
56         R4 = R6 +|- R5 , R3 = R6 -|+ R5;
57                 CHECKREG R3, 0x80008000;
58                 CHECKREG R4, 0x80008000;
59                 P0 = ASTAT;
60                 CHECKREG P0, (_VS|_V|_V_COPY|_AN);
61         A1 = R7.L * R2.L (M), A0 -= R7.L * R2.H (IS);
62                 P0 = ASTAT;
63                 CHECKREG P0, (_VS|_V|_V_COPY|_AN);
64         R7.H = R1.H * R3.L (TFU);
65                 CHECKREG R7, 0x29750000;
66                 P0 = ASTAT;
67                 CHECKREG P0, (_VS|_AN);
68         R7.H = ( A1 -= R2.L * R5.H ), A0 = R2.L * R5.H;
69                 CHECKREG R7, 0xafda0000;
70 R0 = A1.w
71 CHECKREG R0, 0xafda0000;
72 R0 = A1.x
73 CHECKREG R0, 0xffffffff;
74 R0 = A0.w
75 CHECKREG R0, 0x50260000;
76 R0 = A0.x
77 CHECKREG R0, 0x0;
78                 P0 = ASTAT;
79                 CHECKREG P0, (_VS|_AN);
80         R3 = R7.L * R6.H, R2 = R7.L * R6.H (IS);
81                 CHECKREG R3, 0;
82                 CHECKREG R2, 0;
83                 P0 = ASTAT;
84                 CHECKREG P0, (_VS|_AN);
85         R1.H = (A1 += R7.L * R4.H) (M), R1.L = (A0 = R7.H * R4.H) (FU);
86                 CHECKREG R1, 0xafda57ed;
87                 P0 = ASTAT;
88 R0 = A1.w
89 CHECKREG R0, 0xafda0000;
90 R0 = A1.x
91 CHECKREG R0, 0xffffffff;
92 R0 = A0.w
93 CHECKREG R0, 0x57ed0000;
94 R0 = A0.x
95 CHECKREG R0, 0x0;
96                 CHECKREG P0, (_VS|_AN);
97         R3 = R6.H * R5.L (FU);
98                 CHECKREG R3, 0;
99                 P0 = ASTAT;
100                 CHECKREG P0, (_VS|_AN);
101         R5.H = ( A1 += R3.L * R1.L ) (M), A0 -= R3.H * R1.H (ISS2);
102                 CHECKREG R5, 0x80000000;
103 R0 = A1.w
104 CHECKREG R0, 0xafda0000;
105 R0 = A1.x
106 CHECKREG R0, 0xffffffff;
107 R0 = A0.w
108 CHECKREG R0, 0x57ed0000;
109 R0 = A0.x
110 CHECKREG R0, 0x0;
111                 P0 = ASTAT;
112                 CHECKREG P0, (_VS|_V|_V_COPY|_AN);
113         R3 = R3 +|- R5 , R6 = R3 -|+ R5 (CO);
114                 CHECKREG R3, 0x80000000;
115                 CHECKREG R6, 0x00008000;
116                 P0 = ASTAT;
117                 CHECKREG P0, (_VS|_V|_V_COPY|_AN|_AZ);
118         R7 = ( A1 += R4.L * R1.L ) (M),  R6 = ( A0 += R4.L * R1.H );
119 R0 = A1.w
120 CHECKREG R0, 0x83e38000;
121 R0 = A1.x
122 CHECKREG R0, 0xffffffff;
123 R0 = A0.w
124 CHECKREG R0, 0xa8130000;
125 R0 = A0.x
126 CHECKREG R0, 0x0;
127                 CHECKREG R6, 0x7fffffff
128                 CHECKREG R7, 0x83e38000
129                 P0 = ASTAT;
130                 CHECKREG P0, (_VS|_V|_V_COPY|_AN|_AZ);
131         IF CC P2 = R1;
132         R2.H = (A1 = R7.L * R5.H) (M), R2.L = (A0 = R7.L * R5.H) (ISS2);
133                 CHECKREG R2, 0x80007fff
134                 P0 = ASTAT;
135                 CHECKREG P0, (_VS|_V|_V_COPY|_AN|_AZ);
136         R3.H = R4.H * R2.H, R3.L = R4.L * R2.L (T);
137                 CHECKREG R3, 0x7fff8001
138                 P0 = ASTAT;
139                 CHECKREG P0, (_VS|_V|_V_COPY|_AN|_AZ);
140         R7 = ( A1 = R7.H * R1.H ) (M), A0 -= R7.H * R1.H (FU);
141                 CHECKREG R7, 0xaabe7c4e
142                 P0 = ASTAT;
143                 CHECKREG P0, (_VS|_AV0S|_AV0|_AN|_AZ);
144         R0.H = R7.L * R4.H (M), R0.L = R7.L * R4.H (TFU);
145                 CHECKREG R0, 0x3e273e27
146                 P0 = ASTAT;
147                 CHECKREG P0, (_VS|_AV0S|_AV0|_AN|_AZ);
148         R5 = ( A1 = R7.L * R7.L ),  R4 = ( A0 -= R7.H * R7.H )  (ISS2);
149                 CHECKREG R5, 0x78b74f88
150                 CHECKREG R4, 0xc73635f8
151 R0 = A1.w
152 CHECKREG R0, 0x3c5ba7c4;
153 R0 = A1.x
154 CHECKREG R0, 0x0;
155 R0 = A0.w
156 CHECKREG R0, 0xe39b1afc;
157 R0 = A0.x
158 CHECKREG R0, 0xffffffff;
159                 R0 = ASTAT;
160                 CHECKREG r0, (_VS|_AV0S|_AZ|_AN);
161         A0 = A0 >> 2;
162                 R0 = ASTAT;
163                 checkreg r0, (_VS|_AV0S);
164                 R0 = A0.x;
165                 DBGA (R0.L, 0x3f);
166                 R0 = A0.w;
167                 checkreg r0, 0xF8E6C6BF;
168
169         pass