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 );