1 // reg-based SHIFT test program.
4 .include "testutils.inc"
8 // Test FDEP with no sign extension
12 R1.
L = 0x0c08;
// pos
=12 len
=8
14 R7 = DEPOSIT
( R0, R1 );
15 DBGA
( R7.
L , 0xfead );
16 DBGA
( R7.H
, 0x123f );
20 R1.
L = 0x0c04;
// pos
=12 len
=4
22 R7 = DEPOSIT
( R0, R1 );
23 DBGA
( R7.
L , 0xfead );
24 DBGA
( R7.H
, 0x1234 );
28 R1.
L = 0x0c05;
// pos
=12 len
=5
30 R7 = DEPOSIT
( R0, R1 );
31 DBGA
( R7.
L , 0xfead );
32 DBGA
( R7.H
, 0x1235 );
36 R1.
L = 0x0010;
// pos
=0 len
=16
38 R7 = DEPOSIT
( R0, R1 );
39 DBGA
( R7.
L , 0xffff );
40 DBGA
( R7.H
, 0x1234 );
44 R1.
L = 0x0011;
// pos
=0 len
=17
46 R7 = DEPOSIT
( R0, R1 );
47 DBGA
( R7.
L , 0xffff );
48 DBGA
( R7.H
, 0x1234 );
52 R1.
L = 0x0114;
// pos
=1 len
=20
54 R7 = DEPOSIT
( R0, R1 );
55 DBGA
( R7.
L , 0xffff );
56 DBGA
( R7.H
, 0x1235 );
60 R1.
L = 0x001f;
// pos
=0 len
=31
62 R7 = DEPOSIT
( R0, R1 );
63 DBGA
( R7.
L , 0xffff );
64 DBGA
( R7.H
, 0x1234 );
68 R1.
L = 0x1c04;
// pos
=28 len
=4
70 R7 = DEPOSIT
( R0, R1 );
71 DBGA
( R7.
L , 0xdead );
72 DBGA
( R7.H
, 0xf234 );
76 R1.
L = 0x1d04;
// pos
=29 len
=4
78 R7 = DEPOSIT
( R0, R1 );
79 DBGA
( R7.
L , 0xdead );
80 DBGA
( R7.H
, 0xe234 );
84 R1.
L = 0x1f04;
// pos
=31 len
=4
86 R7 = DEPOSIT
( R0, R1 );
87 DBGA
( R7.
L , 0xdead );
88 DBGA
( R7.H
, 0x8234 );
92 R1.
L = 0x2004;
// pos
=32 len
=4, same as pos
=0 len
=4
94 R7 = DEPOSIT
( R0, R1 );
95 DBGA
( R7.
L , 0xdeaf );
96 DBGA
( R7.H
, 0x0234 );
98 // Test FDEP with sign extension
102 R1.
L = 0x0c08;
// pos
=12 len
=8
104 R7 = DEPOSIT
( R0, R1 ) (X
);
105 DBGA
( R7.
L , 0xfead );
106 DBGA
( R7.H
, 0xffff );
107 CC
= AZ;
R7 = CC; DBGA
( R7.
L , 0x0 );
108 CC
= AN;
R7 = CC; DBGA
( R7.
L , 0x1 );
112 R1.
L = 0x0c08;
// pos
=12 len
=8
114 R7 = DEPOSIT
( R0, R1 ) (X
);
115 DBGA
( R7.
L , 0xfead );
116 DBGA
( R7.H
, 0x0007 );
117 CC
= AZ;
R7 = CC; DBGA
( R7.
L , 0x0 );
118 CC
= AN;
R7 = CC; DBGA
( R7.
L , 0x0 );
122 R1.
L = 0x0110;
// pos
=1 len
=16
124 R7 = DEPOSIT
( R0, R1 ) (X
);
125 DBGA
( R7.
L , 0xfffe );
126 DBGA
( R7.H
, 0xffff );
127 CC
= AZ;
R7 = CC; DBGA
( R7.
L , 0x0 );
128 CC
= AN;
R7 = CC; DBGA
( R7.
L , 0x1 );
132 R1.
L = 0x0101;
// pos
=1 len
=1
134 R7 = DEPOSIT
( R0, R1 ) (X
);
135 DBGA
( R7.
L , 0xfffe );
136 DBGA
( R7.H
, 0xffff );
137 CC
= AZ;
R7 = CC; DBGA
( R7.
L , 0x0 );
138 CC
= AN;
R7 = CC; DBGA
( R7.
L , 0x1 );
142 R1.
L = 0x0102;
// pos
=1 len
=2
144 R7 = DEPOSIT
( R0, R1 ) (X
);
145 DBGA
( R7.
L , 0x0002 );
146 DBGA
( R7.H
, 0x0000 );
147 CC
= AZ;
R7 = CC; DBGA
( R7.
L , 0x0 );
148 CC
= AN;
R7 = CC; DBGA
( R7.
L , 0x0 );
152 R1.
L = 0x0002;
// pos
=0 len
=2
154 R7 = DEPOSIT
( R0, R1 ) (X
);
155 DBGA
( R7.
L , 0x0001 );
156 DBGA
( R7.H
, 0x0000 );
157 CC
= AZ;
R7 = CC; DBGA
( R7.
L , 0x0 );
158 CC
= AN;
R7 = CC; DBGA
( R7.
L , 0x0 );
162 R1.
L = 0x0000;
// pos
=0 len
=0
164 R7 = DEPOSIT
( R0, R1 ) (X
);
165 DBGA
( R7.
L , 0x0000 );
166 DBGA
( R7.H
, 0x0000 );
167 CC
= AZ;
R7 = CC; DBGA
( R7.
L , 0x1 );
168 CC
= AN;
R7 = CC; DBGA
( R7.
L , 0x0 );