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