1 // reg-based SHIFT test program.
4 .include "testutils.inc"
8 // Test FEXT with no sign extension
12 R1.
L = 0x0810;
// pos
=8 len
=16
13 R7 = EXTRACT
( R0, R1.
L ) (Z
);
14 DBGA
( R7.
L , 0x34de );
19 R1.
L = 0x0814;
// pos
=8 len
=20
20 R7 = EXTRACT
( R0, R1.
L ) (Z
);
21 DBGA
( R7.
L , 0x34de );
22 DBGA
( R7.H
, 0x0002 );
26 R1.
L = 0x0800;
// pos
=8 len
=0
27 R7 = EXTRACT
( R0, R1.
L ) (Z
);
33 R1.
L = 0x0001;
// pos
=0 len
=1
34 R7 = EXTRACT
( R0, R1.
L ) (Z
);
40 R1.
L = 0x0101;
// pos
=1 len
=1
41 R7 = EXTRACT
( R0, R1.
L ) (Z
);
44 CC
= AZ;
R7 = CC; DBGA
( R7.
L , 0x1 );
45 CC
= AN;
R7 = CC; DBGA
( R7.
L , 0x0 );
49 R1.
L = 0x1810;
// pos
=24 len
=16
50 R7 = EXTRACT
( R0, R1.
L ) (Z
);
51 DBGA
( R7.
L , 0x00ff );
56 R1.
L = 0x0020;
// pos
=0 len
=32 is like pos
=0 len
=0
57 R7 = EXTRACT
( R0, R1.
L ) (Z
);
60 CC
= AZ;
R7 = CC; DBGA
( R7.
L , 0x1 );
61 CC
= AN;
R7 = CC; DBGA
( R7.
L , 0x0 );
65 R1.
L = 0x2020;
// pos
=32 len
=32 is like pos
=0 len
=0
66 R7 = EXTRACT
( R0, R1.
L ) (Z
);
72 R1.
L = 0x1f01;
// pos
=31 len
=1
73 R7 = EXTRACT
( R0, R1.
L ) (Z
);
79 R1.
L = 0x1000;
// pos
=16 len
=0
80 R7 = EXTRACT
( R0, R1.
L ) (Z
);
84 // Test FEXT with sign extension
88 R1.
L = 0x0810;
// pos
=8 len
=16
89 R7 = EXTRACT
( R0, R1.
L ) (X
);
90 DBGA
( R7.
L , 0xf4de );
91 DBGA
( R7.H
, 0xffff );
92 CC
= AZ;
R7 = CC; DBGA
( R7.
L , 0x0 );
93 CC
= AN;
R7 = CC; DBGA
( R7.
L , 0x1 );
97 R1.
L = 0x0810;
// pos
=8 len
=16
98 R7 = EXTRACT
( R0, R1.
L ) (X
);
99 DBGA
( R7.
L , 0x34de );
100 DBGA
( R7.H
, 0x0000 );
101 CC
= AZ;
R7 = CC; DBGA
( R7.
L , 0x0 );
102 CC
= AN;
R7 = CC; DBGA
( R7.
L , 0x0 );
106 R1.
L = 0x1f01;
// pos
=31 len
=1
107 R7 = EXTRACT
( R0, R1.
L ) (X
);
108 DBGA
( R7.
L , 0xffff );
109 DBGA
( R7.H
, 0xffff );
110 CC
= AZ;
R7 = CC; DBGA
( R7.
L , 0x0 );
111 CC
= AN;
R7 = CC; DBGA
( R7.
L , 0x1 );
115 R1.
L = 0x1f02;
// pos
=31 len
=2
116 R7 = EXTRACT
( R0, R1.
L ) (X
);
117 DBGA
( R7.
L , 0x0001 );
118 DBGA
( R7.H
, 0x0000 );
119 CC
= AZ;
R7 = CC; DBGA
( R7.
L , 0x0 );
120 CC
= AN;
R7 = CC; DBGA
( R7.
L , 0x0 );
124 R1.
L = 0x101f;
// pos
=16 len
=31
125 R7 = EXTRACT
( R0, R1.
L ) (X
);
126 DBGA
( R7.
L , 0xffff );
127 DBGA
( R7.H
, 0x0000 );
128 CC
= AZ;
R7 = CC; DBGA
( R7.
L , 0x0 );
129 CC
= AN;
R7 = CC; DBGA
( R7.
L , 0x0 );
133 R1.
L = 0x1001;
// pos
=16 len
=1
134 R7 = EXTRACT
( R0, R1.
L ) (X
);
135 DBGA
( R7.
L , 0xffff );
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 = 0x1000;
// pos
=16 len
=0
143 R7 = EXTRACT
( R0, R1.
L ) (X
);
146 CC
= AZ;
R7 = CC; DBGA
( R7.
L , 0x1 );
147 CC
= AN;
R7 = CC; DBGA
( R7.
L , 0x0 );