1 // Immediate dual
16b SHIFT test program.
2 // Test
r4 = ASHIFT
/ASHIFT
(r2 by
10);
3 // Test
r4 = ASHIFT
/ASHIFT
(r2 by
10) S;
4 // Test
r4 = LSHIFT
/LSHIFT
(r2 by
10);
7 .include "testutils.inc"
12 // left by largest positive magnitude of
15 (0xf)
19 DBGA
( R6.
L , 0x8000 );
20 DBGA
( R6.H
, 0x0000 );
21 CC
= AZ;
R7 = CC; DBGA
( R7.
L , 0x1 );
22 CC
= AN;
R7 = CC; DBGA
( R7.
L , 0x1 );
23 CC
= AC0;
R7 = CC; DBGA
( R7.
L , 0x0 );
24 CC
= AV0;
R7 = CC; DBGA
( R7.
L , 0x0 );
25 CC
= AV1;
R7 = CC; DBGA
( R7.
L , 0x0 );
28 // left by largest positive magnitude of
15 (0xf) with saturation
33 R6 = R0 << 15 (V
, S
);
34 DBGA
( R6.
L , 0x8000 );
35 DBGA
( R6.H
, 0x7fff );
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 );
49 DBGA
( R6.
L , 0x0002 );
50 DBGA
( R6.H
, 0x0200 );
51 CC
= AZ;
R7 = CC; DBGA
( R7.
L , 0x0 );
52 CC
= AN;
R7 = CC; DBGA
( R7.
L , 0x0 );
53 CC
= AC0;
R7 = CC; DBGA
( R7.
L , 0x0 );
54 CC
= AV0;
R7 = CC; DBGA
( R7.
L , 0x0 );
55 CC
= AV1;
R7 = CC; DBGA
( R7.
L , 0x0 );
58 // left by
1 saturating
64 DBGA
( R6.
L , 0x8000 );
65 DBGA
( R6.H
, 0x0200 );
66 CC
= AZ;
R7 = CC; DBGA
( R7.
L , 0x0 );
67 CC
= AN;
R7 = CC; DBGA
( R7.
L , 0x1 );
68 CC
= AC0;
R7 = CC; DBGA
( R7.
L , 0x0 );
69 CC
= AV0;
R7 = CC; DBGA
( R7.
L , 0x0 );
70 CC
= AV1;
R7 = CC; DBGA
( R7.
L , 0x0 );
73 // left by
15 saturating
78 R6 = R0 << 15 (V
, S
);
79 DBGA
( R6.
L , 0x8000 );
80 DBGA
( R6.H
, 0x0000 );
81 CC
= AZ;
R7 = CC; DBGA
( R7.
L , 0x1 );
82 CC
= AN;
R7 = CC; DBGA
( R7.
L , 0x1 );
83 CC
= AC0;
R7 = CC; DBGA
( R7.
L , 0x0 );
84 CC
= AV0;
R7 = CC; DBGA
( R7.
L , 0x0 );
85 CC
= AV1;
R7 = CC; DBGA
( R7.
L , 0x0 );
94 DBGA
( R6.
L , 0xffff );
95 DBGA
( R6.H
, 0x0000 );
96 CC
= AZ;
R7 = CC; DBGA
( R7.
L , 0x1 );
97 CC
= AN;
R7 = CC; DBGA
( R7.
L , 0x1 );
98 CC
= AC0;
R7 = CC; DBGA
( R7.
L , 0x0 );
99 CC
= AV0;
R7 = CC; DBGA
( R7.
L , 0x0 );
100 CC
= AV1;
R7 = CC; DBGA
( R7.
L , 0x0 );
103 // right by
15 (sat has no effect
)
109 DBGA
( R6.
L , 0xffff );
110 DBGA
( R6.H
, 0x0000 );
111 CC
= AZ;
R7 = CC; DBGA
( R7.
L , 0x1 );
112 CC
= AN;
R7 = CC; DBGA
( R7.
L , 0x1 );
113 CC
= AC0;
R7 = CC; DBGA
( R7.
L , 0x0 );
114 CC
= AV0;
R7 = CC; DBGA
( R7.
L , 0x0 );
115 CC
= AV1;
R7 = CC; DBGA
( R7.
L , 0x0 );
124 DBGA
( R6.
L , 0x0001 );
125 DBGA
( R6.H
, 0x0000 );
126 CC
= AZ;
R7 = CC; DBGA
( R7.
L , 0x1 );
127 CC
= AN;
R7 = CC; DBGA
( R7.
L , 0x0 );
128 CC
= AC0;
R7 = CC; DBGA
( R7.
L , 0x0 );
129 CC
= AV0;
R7 = CC; DBGA
( R7.
L , 0x0 );
130 CC
= AV1;
R7 = CC; DBGA
( R7.
L , 0x0 );