1 // Immediate SHIFT test program.
2 // Test
r4 = ASHIFT
(r2 by
10);
3 // Test
r4 = LSHIFT
(r2 by
10);
4 // Test
r4 = ROT
(r2 by
10);
7 .include "testutils.inc"
29 // left by largest positive magnitude of
31 (0x1f)
30 // 8000 0001 -> 8000 0000
34 DBGA
( R6.
L , 0x0000 );
35 DBGA
( R6.H
, 0x8000 );
36 CC
= AZ;
R7 = CC; DBGA
( R7.
L , 0x0 );
37 CC
= AN;
R7 = CC; DBGA
( R7.
L , 0x1 );
38 CC
= AC0;
R7 = CC; DBGA
( R7.
L , 0x0 );
39 CC
= AV0;
R7 = CC; DBGA
( R7.
L , 0x0 );
40 CC
= AV1;
R7 = CC; DBGA
( R7.
L , 0x0 );
44 // 8000 0001 -> 0000 0002
46 DBGA
( R6.
L , 0x0002 );
47 DBGA
( R6.H
, 0x0000 );
48 CC
= AZ;
R7 = CC; DBGA
( R7.
L , 0x0 );
49 CC
= AN;
R7 = CC; DBGA
( R7.
L , 0x0 );
50 CC
= AC0;
R7 = CC; DBGA
( R7.
L , 0x0 );
51 CC
= AV0;
R7 = CC; DBGA
( R7.
L , 0x0 );
52 CC
= AV1;
R7 = CC; DBGA
( R7.
L , 0x0 );
56 // 8000 0001 -> c000
0000
60 DBGA
( R6.
L , 0x0000 );
61 DBGA
( R6.H
, 0xc000 );
62 CC
= AZ;
R7 = CC; DBGA
( R7.
L , 0x0 );
63 CC
= AN;
R7 = CC; DBGA
( R7.
L , 0x1 );
64 CC
= AC0;
R7 = CC; DBGA
( R7.
L , 0x0 );
65 CC
= AV0;
R7 = CC; DBGA
( R7.
L , 0x0 );
66 CC
= AV1;
R7 = CC; DBGA
( R7.
L , 0x0 );
69 // right by largest negative magnitude of
-31
70 // 8000 0001 -> ffff ffff
72 DBGA
( R6.
L , 0xffff );
73 DBGA
( R6.H
, 0xffff );
76 // left by largest positive magnitude of
31 (0x1f)
77 // 8000 0001 -> 8000 0000
79 DBGA
( R6.
L , 0x0000 );
80 DBGA
( R6.H
, 0x8000 );
84 // 8000 0001 -> 0000 0002
86 DBGA
( R6.
L , 0x0002 );
87 DBGA
( R6.H
, 0x0000 );
91 // 8000 0001 -> 4000 0000
93 DBGA
( R6.
L , 0x0000 );
94 DBGA
( R6.H
, 0x4000 );
97 // right by largest negative magnitude of
-31
98 // 8000 0001 -> 0000 0001
100 DBGA
( R6.
L , 0x0001 );
101 DBGA
( R6.H
, 0x0000 );
105 // 8000 0001 -> 0000 0002 cc
=1
109 DBGA
( R6.
L , 0x0002 );
110 DBGA
( R6.H
, 0x0000 );
112 DBGA
( R7.
L , 0x0001 );
116 // 8000 0001 -> 4000 0000 cc
=1
120 DBGA
( R6.
L , 0x0000 );
121 DBGA
( R6.H
, 0x4000 );
123 DBGA
( R7.
L , 0x0001 );
126 // right by largest positive magnitude of
31
127 // 8000 0001 -> a000
0000 cc
=0
131 DBGA
( R6.
L , 0x0000 );
132 DBGA
( R6.H
, 0xa000 );
134 DBGA
( R7.
L , 0x0000 );
137 // right by largest positive magnitude of
31 with cc
=1
138 // 8000 0001 cc
=1 -> a000
0000 cc
=0
142 DBGA
( R6.
L , 0x0000 );
143 DBGA
( R6.H
, 0xe000 );
145 DBGA
( R7.
L , 0x0000 );
148 // right by largest negative magnitude of
-31
149 // 8000 0001 -> 0000 0005 cc
=0
153 DBGA
( R6.
L , 0x0005 );
154 DBGA
( R6.H
, 0x0000 );
156 DBGA
( R7.
L , 0x0000 );
159 // right by largest negative magnitude of
-31 with cc
=1
160 // 8000 0001 cc
=1 -> 0000 0007 cc
=0
164 DBGA
( R6.
L , 0x0007 );
165 DBGA
( R6.H
, 0x0000 );
167 DBGA
( R7.
L , 0x0000 );
171 // 8000 0001 cc
=1 -> 0000 00e0 cc
=0
175 DBGA
( R6.
L , 0x00e0 );
176 DBGA
( R6.H
, 0x0000 );
178 DBGA
( R7.
L , 0x0000 );
181 // 8000 0001 -> 8000 000
185 DBGA
( R6.
L , 0x0001 );
186 DBGA
( R6.H
, 0x8000 );
188 DBGA
( R7.
L , 0x0001 );
195 DBGA
( R6.
L , 0x0000 );
196 DBGA
( R6.H
, 0x0000 );
197 CC
= AZ;
R7 = CC; DBGA
( R7.
L , 0x1 );
198 CC
= AN;
R7 = CC; DBGA
( R7.
L , 0x0 );
199 CC
= AC0;
R7 = CC; DBGA
( R7.
L , 0x0 );
200 CC
= AV0;
R7 = CC; DBGA
( R7.
L , 0x0 );
201 CC
= AV1;
R7 = CC; DBGA
( R7.
L , 0x0 );