|
|
1.1 root 1: 1 00000000 LL0:
2: 2 00000000 .data
3: 3 00000db8 * .text
4: 4 00000000 .align 1
5: 5 00000000 .globl _pipe_6
6: 6 00000000 _pipe_6:
7: 7 0002A0B4 0000 .word L215
8: 8 0002A0B6 # #include "fpp_defs.h"
9: 9 0002A0B6 #
10: 10 0002A0B6 #
11: 11 0002A0B6 # /*****************************************************************************
12: 12 0002A0B6 # *
13: 13 0002A0B6 # * PIPELINE TEST #6 MONITOR
14: 14 0002A0B6 # *
15: 15 0002A0B6 # * This test will do:
16: 16 0002A0B6 # *
17: 17 0002A0B6 # * LDF(0) ADDF(y) STF CVLF(x) SUBF(0) STF
18: 18 0002A0B6 # *
19: 19 0002A0B6 # * where x is the fmacro1 CVLF data, and y is the expected result of the CVLF.
20: 20 0002A0B6 # * This test verifies the CVLF after the STF and the SUBF after the CVLF.
21: 21 0002A0B6 # *****************************************************************************/
22: 22 0002A0B6 # pipe_6()
23: 23 0002A0B6 # {
24: 24 0002A0B6 13 00a8 jbr L217
25: 25 0002A0B9 L218:
26: 26 0002A0B9 # asm(".globl _pipeline_6_t");
27: 27 0002A0B9 .globl _pipeline_6_t
28: 28 0002A0B9 # asm("_pipeline_6_t:"); /* entry address */
29: 29 0002A0B9 _pipeline_6_t:
30: 30 0002A0B9 # if( (cycle == 1) && (prt_hdrs) ) /* print headers on 1st cycle */
31: 31 0002A0B9 1d effffffff5 01 cmpl _cycle,$1
32: 32 0002A0C0 21 15 jneq L219
33: 33 0002A0C2 5d efffffffec tstl _prt_hdrs
34: 34 0002A0C8 31 0d jeql L219
35: 35 0002A0CA # {
36: 36 0002A0CA # writes(" PIPE_6 ");
37: 37 0002A0CA .data 1
38: 38 00000db8 * L221:
39: 39 00000db8 * 20504950455F362000 .ascii " PIPE_6 \0"
40: 40 00000dc1 * .text
41: 41 0002A0CA dd 8f00000db8 pushl $L221
42: 42 0002A0D0 fe 08 efffffffdd callf $8,_writes
43: 43 0002A0D7 # }
44: 44 0002A0D7 # subtest = 1;
45: 45 0002A0D7 L219:
46: 46 0002A0D7 0d 01 efffffffd6 movl $1,_subtest
47: 47 0002A0DE # pipe6_1(); /* data in REGs, no NOPs */
48: 48 0002A0DE fe 04 ef0000007f callf $4,_pipe6_1
49: 49 0002A0E5 # subtest++; /* increment subtest num */
50: 50 0002A0E5 6d efffffffc9 incl _subtest
51: 51 0002A0EB # pipe6_2(); /* data in REGs, 1 NOP */
52: 52 0002A0EB fe 04 ef0000016a callf $4,_pipe6_2
53: 53 0002A0F2 # subtest++; /* increment subtest num */
54: 54 0002A0F2 6d efffffffbc incl _subtest
55: 55 0002A0F8 # pipe6_3(); /* data in REGs, 2 NOPs */
56: 56 0002A0F8 fe 04 ef0000025b callf $4,_pipe6_3
57: 57 0002A0FF # subtest++; /* increment subtest num */
58: 58 0002A0FF 6d efffffffaf incl _subtest
59: 59 0002A105 # pipe6_4(); /* data in REGs, 3 NOPs */
60: 60 0002A105 fe 04 ef00000350 callf $4,_pipe6_4
61: 61 0002A10C # subtest++; /* increment subtest num */
62: 62 0002A10C 6d efffffffa2 incl _subtest
63: 63 0002A112 # pipe6_5(); /* data in CACHE, no NOPs */
64: 64 0002A112 fe 04 ef0000044b callf $4,_pipe6_5
65: 65 0002A119 # subtest++; /* increment subtest num */
66: 66 0002A119 6d efffffff95 incl _subtest
67: 67 0002A11F # pipe6_6(); /* data in CACHE, 1 NOP */
68: 68 0002A11F fe 04 ef0000052c callf $4,_pipe6_6
69: 69 0002A126 # subtest++; /* increment subtest num */
70: 70 0002A126 6d efffffff88 incl _subtest
71: 71 0002A12C # pipe6_7(); /* data in CACHE, 2 NOPs */
72: 72 0002A12C fe 04 ef00000611 callf $4,_pipe6_7
73: 73 0002A133 # subtest++; /* increment subtest num */
74: 74 0002A133 6d efffffff7b incl _subtest
75: 75 0002A139 # pipe6_8(); /* data in CACHE, 3 NOPs */
76: 76 0002A139 fe 04 ef000006fc callf $4,_pipe6_8
77: 77 0002A140 # subtest++; /* increment subtest num */
78: 78 0002A140 6d efffffff6e incl _subtest
79: 79 0002A146 # pipe6_9(); /* data on STACK, no NOPs */
80: 80 0002A146 fe 04 ef000007eb callf $4,_pipe6_9
81: 81 0002A14D # subtest++; /* increment subtest num */
82: 82 0002A14D 6d efffffff61 incl _subtest
83: 83 0002A153 # pipe6_10(); /* data via FP no NOPs */
84: 84 0002A153 fe 04 ef00000972 callf $4,_pipe6_10
85: 85 0002A15A # asm("jmp *return"); /* return to the test monitor */
86: 86 0002A15A 71 ffffffff54 jmp *return
87: 87 0002A160 # }
88: 88 0002A160 40 ret#2
89: 89 0002A161 .set L215,0x0
90: 90 0002A161 L217:
91: 91 0002A161 13 ff55 jbr L218
92: 92 0002A164 .data
93: 93 00000db8 * .text
94: 94 0002A164 .align 1
95: 95 0002A164 .globl _pipe6_1
96: 96 0002A164 _pipe6_1:
97: 97 0002A164 0000 .word L232
98: 98 0002A166 #
99: 99 0002A166 #
100: 100 0002A166 #
101: 101 0002A166 #
102: 102 0002A166 #
103: 103 0002A166 #
104: 104 0002A166 # /************************************************************************
105: 105 0002A166 # *
106: 106 0002A166 # * SUBTEST 1
107: 107 0002A166 # * data in registers, no NO-OPs
108: 108 0002A166 # *
109: 109 0002A166 # ************************************************************************/
110: 110 0002A166 # pipe6_1()
111: 111 0002A166 # {
112: 112 0002A166 13 00f0 jbr L234
113: 113 0002A169 L235:
114: 114 0002A169 # force_loop = FALSE; /* clear the force_loop flag */
115: 115 0002A169 4d efffffff45 clrl _force_loop
116: 116 0002A16F # index = 0;
117: 117 0002A16F 4d efffffff3f clrl _index
118: 118 0002A175 # do
119: 119 0002A175 L238:
120: 120 0002A175 # {
121: 121 0002A175 # sgl_value_1 = cvlf_1_data[index].ld; /* get operand 1 */
122: 122 0002A175 0d efffffff39 50 movl _index,r0
123: 123 0002A17C 48 03 50 50 shll $3,r0,r0
124: 124 0002A180 0d e000000000 efffffff29 movl _cvlf_1_data(r0),_sgl_value_1
125: 125 0002A18B # sgl_expected = cvlf_1_data[index].exp; /* get expected results */
126: 126 0002A18B 0d efffffff23 50 movl _index,r0
127: 127 0002A192 48 03 50 50 shll $3,r0,r0
128: 128 0002A196 0d e000000004 efffffff13 movl _cvlf_1_data+4(r0),_sgl_expected
129: 129 0002A1A1 # sgl_value_2 = 0; /* floating '0' */
130: 130 0002A1A1 4d efffffff0d clrl _sgl_value_2
131: 131 0002A1A7 # /*
132: 132 0002A1A7 # * If LOOP ON ERROR is set, this is the loop for this subtest.
133: 133 0002A1A7 # * The force loop flag is set after the first error.
134: 134 0002A1A7 # */
135: 135 0002A1A7 # asm("_pipe6_1_lp1:");
136: 136 0002A1A7 _pipe6_1_lp1:
137: 137 0002A1A7 # asm("movl _sgl_value_1,r4"); /* move the data to r4 */
138: 138 0002A1A7 0d efffffff07 54 movl _sgl_value_1,r4
139: 139 0002A1AE # asm("movl _sgl_value_2,r5"); /* move data to r5 */
140: 140 0002A1AE 0d efffffff00 55 movl _sgl_value_2,r5
141: 141 0002A1B5 # asm("movl _sgl_expected,r6"); /* save the expected result*/
142: 142 0002A1B5 0d effffffef9 56 movl _sgl_expected,r6
143: 143 0002A1BC # asm("ldf r5"); /* load a floating '0' */
144: 144 0002A1BC 06 55 ldf r5
145: 145 0002A1BE # asm("addf r6"); /* add the expected value */
146: 146 0002A1BE c6 56 addf r6
147: 147 0002A1C0 # asm("stf r7"); /* store the result */
148: 148 0002A1C0 26 57 stf r7
149: 149 0002A1C2 # asm("cvlf r4"); /* convert the operand */
150: 150 0002A1C2 76 54 cvlf r4
151: 151 0002A1C4 # asm("subf r5"); /* subtract a floating '0' */
152: 152 0002A1C4 d6 55 subf r5
153: 153 0002A1C6 # asm("stf r8"); /* store the result */
154: 154 0002A1C6 26 58 stf r8
155: 155 0002A1C8 # if( force_loop )
156: 156 0002A1C8 5d effffffee6 tstl _force_loop
157: 157 0002A1CE 31 02 jeql L239
158: 158 0002A1D0 # asm("brb _pipe6_1_lp1");; /* loop on the error */
159: 159 0002A1D0 11 d5 brb _pipe6_1_lp1
160: 160 0002A1D2 L239:
161: 161 0002A1D2 # /*
162: 162 0002A1D2 # * verify the results
163: 163 0002A1D2 # */
164: 164 0002A1D2 # asm("movl r7,_sgl_st_acc"); /* get the 1st store value */
165: 165 0002A1D2 0d 57 effffffedb movl r7,_sgl_st_acc
166: 166 0002A1D9 # asm("movl r8,_sgl_value_6"); /* get the 2nd store value */
167: 167 0002A1D9 0d 58 effffffed4 movl r8,_sgl_value_6
168: 168 0002A1E0 # if( (sgl_st_acc != sgl_expected) || /* COMPARE the values */
169: 169 0002A1E0 # (sgl_value_6 != sgl_expected) )
170: 170 0002A1E0 1d effffffece effffffec9 cmpl _sgl_st_acc,_sgl_expected
171: 171 0002A1EB 21 0d jneq L9999
172: 172 0002A1ED 1d effffffec1 effffffebc cmpl _sgl_value_6,_sgl_expected
173: 173 0002A1F8 31 45 jeql L240
174: 174 0002A1FA L9999:
175: 175 0002A1FA # {
176: 176 0002A1FA # errcnt++; /* bump the error count */
177: 177 0002A1FA 6d effffffeb4 incl _errcnt
178: 178 0002A200 # if ( prt_error )
179: 179 0002A200 5d effffffeae tstl _prt_error
180: 180 0002A206 31 0d jeql L241
181: 181 0002A208 # print_pipe6_er("Reg. Data, no NO-OPs");
182: 182 0002A208 .data 1
183: 183 00000dc1 * L243:
184: 184 00000dc1 * 5265672E20446174612C206E6 .ascii "Reg. Data, no NO-OPs\0"
185: F204E4F2D4F507300
186: 185 00000dd6 * .text
187: 186 0002A208 dd 8f00000dc1 pushl $L243
188: 187 0002A20E fe 08 ef00000a93 callf $8,_print_pipe6_er
189: 188 0002A215 # if ( halt_flg ) /* halt on error? */
190: 189 0002A215 L241:
191: 190 0002A215 5d effffffe99 tstl _halt_flg
192: 191 0002A21B 31 0d jeql L244
193: 192 0002A21D # pipe6_er_hlt( subtest );
194: 193 0002A21D dd effffffe91 pushl _subtest
195: 194 0002A223 fe 08 ef00000bc6 callf $8,_pipe6_er_hlt
196: 195 0002A22A # if ( loop_on_err ) {
197: 196 0002A22A L244:
198: 197 0002A22A 5d effffffe84 tstl _loop_on_err
199: 198 0002A230 31 0d jeql L246
200: 199 0002A232 # force_loop = TRUE; /* set the force loop flag */
201: 200 0002A232 0d 01 effffffe7b movl $1,_force_loop
202: 201 0002A239 # asm("jmp _pipe6_1_lp1"); /* and loop */
203: 202 0002A239 71 efffffff68 jmp _pipe6_1_lp1
204: 203 0002A23F # }
205: 204 0002A23F # } /* end of compare error */
206: 205 0002A23F L246:
207: 206 0002A23F # } while( index++ < max_cvlf_1_index );
208: 207 0002A23F L240:
209: 208 0002A23F L237:
210: 209 0002A23F 0d effffffe6f 50 movl _index,r0
211: 210 0002A246 6d effffffe68 incl _index
212: 211 0002A24C 1d 50 effffffe61 cmpl r0,_max_cvlf_1_index
213: 212 0002A253 81 03 13 ff1d jlss L238
214: 213 0002A258 L236:
215: 214 0002A258 # } /* end of subtest 1 */
216: 215 0002A258 40 ret#2
217: 216 0002A259 .set L232,0x0
218: 217 0002A259 L234:
219: 218 0002A259 13 ff0d jbr L235
220: 219 0002A25C .data
221: 220 00000db8 * .text
222: 221 0002A25C .align 1
223: 222 0002A25C .globl _pipe6_2
224: 223 0002A25C _pipe6_2:
225: 224 0002A25C 0000 .word L247
226: 225 0002A25E #
227: 226 0002A25E #
228: 227 0002A25E #
229: 228 0002A25E #
230: 229 0002A25E #
231: 230 0002A25E #
232: 231 0002A25E # /************************************************************************
233: 232 0002A25E # *
234: 233 0002A25E # * SUBTEST 2
235: 234 0002A25E # * data in registers, 1 NO-OP
236: 235 0002A25E # *
237: 236 0002A25E # ************************************************************************/
238: 237 0002A25E # pipe6_2()
239: 238 0002A25E # {
240: 239 0002A25E 13 00f5 jbr L249
241: 240 0002A261 L250:
242: 241 0002A261 # force_loop = FALSE; /* clear the force_loop flag */
243: 242 0002A261 4d effffffe4d clrl _force_loop
244: 243 0002A267 # index = 0;
245: 244 0002A267 4d effffffe47 clrl _index
246: 245 0002A26D # do
247: 246 0002A26D L253:
248: 247 0002A26D # {
249: 248 0002A26D # sgl_value_1 = cvlf_1_data[index].ld; /* get operand 1 */
250: 249 0002A26D 0d effffffe41 50 movl _index,r0
251: 250 0002A274 48 03 50 50 shll $3,r0,r0
252: 251 0002A278 0d e000000000 effffffe31 movl _cvlf_1_data(r0),_sgl_value_1
253: 252 0002A283 # sgl_expected = cvlf_1_data[index].exp; /* get expected results */
254: 253 0002A283 0d effffffe2b 50 movl _index,r0
255: 254 0002A28A 48 03 50 50 shll $3,r0,r0
256: 255 0002A28E 0d e000000004 effffffe1b movl _cvlf_1_data+4(r0),_sgl_expected
257: 256 0002A299 # sgl_value_2 = 0x00000000; /* floating '0' */
258: 257 0002A299 4d effffffe15 clrl _sgl_value_2
259: 258 0002A29F # /*
260: 259 0002A29F # * If LOOP ON ERROR is set, this is the loop for this subtest.
261: 260 0002A29F # * The force loop flag is set after the first error.
262: 261 0002A29F # */
263: 262 0002A29F # asm("_pipe6_2_lp1:");
264: 263 0002A29F _pipe6_2_lp1:
265: 264 0002A29F # asm("movl _sgl_value_1,r4"); /* move the data to r4 */
266: 265 0002A29F 0d effffffe0f 54 movl _sgl_value_1,r4
267: 266 0002A2A6 # asm("movl _sgl_value_2,r5"); /* move data to r5 */
268: 267 0002A2A6 0d effffffe08 55 movl _sgl_value_2,r5
269: 268 0002A2AD # asm("movl _sgl_expected,r6"); /* save the expected result*/
270: 269 0002A2AD 0d effffffe01 56 movl _sgl_expected,r6
271: 270 0002A2B4 # asm("ldf r5"); /* load a floating '0' */
272: 271 0002A2B4 06 55 ldf r5
273: 272 0002A2B6 # asm("nop");
274: 273 0002A2B6 10 nop
275: 274 0002A2B7 # asm("addf r6"); /* add the expected value */
276: 275 0002A2B7 c6 56 addf r6
277: 276 0002A2B9 # asm("nop");
278: 277 0002A2B9 10 nop
279: 278 0002A2BA # asm("stf r7"); /* store the result */
280: 279 0002A2BA 26 57 stf r7
281: 280 0002A2BC # asm("nop");
282: 281 0002A2BC 10 nop
283: 282 0002A2BD # asm("cvlf r4"); /* convert the operand */
284: 283 0002A2BD 76 54 cvlf r4
285: 284 0002A2BF # asm("nop");
286: 285 0002A2BF 10 nop
287: 286 0002A2C0 # asm("subf r5"); /* subtract a floating '0' */
288: 287 0002A2C0 d6 55 subf r5
289: 288 0002A2C2 # asm("nop");
290: 289 0002A2C2 10 nop
291: 290 0002A2C3 # asm("stf r8"); /* store the result */
292: 291 0002A2C3 26 58 stf r8
293: 292 0002A2C5 # if( force_loop )
294: 293 0002A2C5 5d effffffde9 tstl _force_loop
295: 294 0002A2CB 31 02 jeql L254
296: 295 0002A2CD # asm("brb _pipe6_2_lp1");; /* loop on the error */
297: 296 0002A2CD 11 d0 brb _pipe6_2_lp1
298: 297 0002A2CF L254:
299: 298 0002A2CF # /*
300: 299 0002A2CF # * verify the results
301: 300 0002A2CF # */
302: 301 0002A2CF # asm("movl r7,_sgl_st_acc"); /* get the 1st store value */
303: 302 0002A2CF 0d 57 effffffdde movl r7,_sgl_st_acc
304: 303 0002A2D6 # asm("movl r8,_sgl_value_6"); /* get the 2nd store value */
305: 304 0002A2D6 0d 58 effffffdd7 movl r8,_sgl_value_6
306: 305 0002A2DD # if( (sgl_st_acc != sgl_expected) || /* COMPARE the values */
307: 306 0002A2DD # (sgl_value_6 != sgl_expected) )
308: 307 0002A2DD 1d effffffdd1 effffffdcc cmpl _sgl_st_acc,_sgl_expected
309: 308 0002A2E8 21 0d jneq L9998
310: 309 0002A2EA 1d effffffdc4 effffffdbf cmpl _sgl_value_6,_sgl_expected
311: 310 0002A2F5 31 45 jeql L255
312: 311 0002A2F7 L9998:
313: 312 0002A2F7 # {
314: 313 0002A2F7 # errcnt++; /* bump the error count */
315: 314 0002A2F7 6d effffffdb7 incl _errcnt
316: 315 0002A2FD # if ( prt_error )
317: 316 0002A2FD 5d effffffdb1 tstl _prt_error
318: 317 0002A303 31 0d jeql L256
319: 318 0002A305 # print_pipe6_er("Reg. Data, 1 NO-OP");
320: 319 0002A305 .data 1
321: 320 00000dd6 * L257:
322: 321 00000dd6 * 5265672E20446174612C20312 .ascii "Reg. Data, 1 NO-OP\0"
323: 04E4F2D4F5000
324: 322 00000de9 * .text
325: 323 0002A305 dd 8f00000dd6 pushl $L257
326: 324 0002A30B fe 08 ef00000996 callf $8,_print_pipe6_er
327: 325 0002A312 # if ( halt_flg ) /* halt on error? */
328: 326 0002A312 L256:
329: 327 0002A312 5d effffffd9c tstl _halt_flg
330: 328 0002A318 31 0d jeql L258
331: 329 0002A31A # pipe6_er_hlt( subtest );
332: 330 0002A31A dd effffffd94 pushl _subtest
333: 331 0002A320 fe 08 ef00000ac9 callf $8,_pipe6_er_hlt
334: 332 0002A327 # if ( loop_on_err ) {
335: 333 0002A327 L258:
336: 334 0002A327 5d effffffd87 tstl _loop_on_err
337: 335 0002A32D 31 0d jeql L259
338: 336 0002A32F # force_loop = TRUE; /* set the force loop flag */
339: 337 0002A32F 0d 01 effffffd7e movl $1,_force_loop
340: 338 0002A336 # asm("jmp _pipe6_2_lp1"); /* and loop */
341: 339 0002A336 71 efffffff63 jmp _pipe6_2_lp1
342: 340 0002A33C # }
343: 341 0002A33C # } /* end of compare error */
344: 342 0002A33C L259:
345: 343 0002A33C # } while( index++ < max_cvlf_1_index );
346: 344 0002A33C L255:
347: 345 0002A33C L252:
348: 346 0002A33C 0d effffffd72 50 movl _index,r0
349: 347 0002A343 6d effffffd6b incl _index
350: 348 0002A349 1d 50 effffffd64 cmpl r0,_max_cvlf_1_index
351: 349 0002A350 81 03 13 ff18 jlss L253
352: 350 0002A355 L251:
353: 351 0002A355 # } /* end of subtest 2 */
354: 352 0002A355 40 ret#2
355: 353 0002A356 .set L247,0x0
356: 354 0002A356 L249:
357: 355 0002A356 13 ff08 jbr L250
358: 356 0002A359 .data
359: 357 00000db8 * .text
360: 358 0002A359 00 .align 1
361: 359 0002A35A .globl _pipe6_3
362: 360 0002A35A _pipe6_3:
363: 361 0002A35A 0000 .word L260
364: 362 0002A35C #
365: 363 0002A35C #
366: 364 0002A35C #
367: 365 0002A35C #
368: 366 0002A35C #
369: 367 0002A35C #
370: 368 0002A35C # /************************************************************************
371: 369 0002A35C # *
372: 370 0002A35C # * SUBTEST 3
373: 371 0002A35C # * data in registers, 2 NO-OPs
374: 372 0002A35C # *
375: 373 0002A35C # ************************************************************************/
376: 374 0002A35C # pipe6_3()
377: 375 0002A35C # {
378: 376 0002A35C 13 00fa jbr L262
379: 377 0002A35F L263:
380: 378 0002A35F # force_loop = FALSE; /* clear the force_loop flag */
381: 379 0002A35F 4d effffffd4f clrl _force_loop
382: 380 0002A365 # index = 0;
383: 381 0002A365 4d effffffd49 clrl _index
384: 382 0002A36B # do
385: 383 0002A36B L266:
386: 384 0002A36B # {
387: 385 0002A36B # sgl_value_1 = cvlf_1_data[index].ld; /* get operand 1 */
388: 386 0002A36B 0d effffffd43 50 movl _index,r0
389: 387 0002A372 48 03 50 50 shll $3,r0,r0
390: 388 0002A376 0d e000000000 effffffd33 movl _cvlf_1_data(r0),_sgl_value_1
391: 389 0002A381 # sgl_expected = cvlf_1_data[index].exp; /* get expected results */
392: 390 0002A381 0d effffffd2d 50 movl _index,r0
393: 391 0002A388 48 03 50 50 shll $3,r0,r0
394: 392 0002A38C 0d e000000004 effffffd1d movl _cvlf_1_data+4(r0),_sgl_expected
395: 393 0002A397 # sgl_value_2 = 0x00000000; /* floating '0' */
396: 394 0002A397 4d effffffd17 clrl _sgl_value_2
397: 395 0002A39D # /*
398: 396 0002A39D # * If LOOP ON ERROR is set, this is the loop for this subtest.
399: 397 0002A39D # * The force loop flag is set after the first error.
400: 398 0002A39D # */
401: 399 0002A39D # asm("_pipe6_3_lp1:");
402: 400 0002A39D _pipe6_3_lp1:
403: 401 0002A39D # asm("movl _sgl_value_1,r4"); /* move the data to r4 */
404: 402 0002A39D 0d effffffd11 54 movl _sgl_value_1,r4
405: 403 0002A3A4 # asm("movl _sgl_value_2,r5"); /* move data to r5 */
406: 404 0002A3A4 0d effffffd0a 55 movl _sgl_value_2,r5
407: 405 0002A3AB # asm("movl _sgl_expected,r6"); /* save the expected result*/
408: 406 0002A3AB 0d effffffd03 56 movl _sgl_expected,r6
409: 407 0002A3B2 # asm("ldf r5"); /* load a floating '0' */
410: 408 0002A3B2 06 55 ldf r5
411: 409 0002A3B4 # asm("nop");
412: 410 0002A3B4 10 nop
413: 411 0002A3B5 # asm("nop");
414: 412 0002A3B5 10 nop
415: 413 0002A3B6 # asm("addf r6"); /* add the expected value */
416: 414 0002A3B6 c6 56 addf r6
417: 415 0002A3B8 # asm("nop");
418: 416 0002A3B8 10 nop
419: 417 0002A3B9 # asm("nop");
420: 418 0002A3B9 10 nop
421: 419 0002A3BA # asm("stf r7"); /* store the result */
422: 420 0002A3BA 26 57 stf r7
423: 421 0002A3BC # asm("nop");
424: 422 0002A3BC 10 nop
425: 423 0002A3BD # asm("nop");
426: 424 0002A3BD 10 nop
427: 425 0002A3BE # asm("cvlf r4"); /* convert the operand */
428: 426 0002A3BE 76 54 cvlf r4
429: 427 0002A3C0 # asm("nop");
430: 428 0002A3C0 10 nop
431: 429 0002A3C1 # asm("nop");
432: 430 0002A3C1 10 nop
433: 431 0002A3C2 # asm("subf r5"); /* subtract a floating '0' */
434: 432 0002A3C2 d6 55 subf r5
435: 433 0002A3C4 # asm("nop");
436: 434 0002A3C4 10 nop
437: 435 0002A3C5 # asm("nop");
438: 436 0002A3C5 10 nop
439: 437 0002A3C6 # asm("stf r8"); /* store the result */
440: 438 0002A3C6 26 58 stf r8
441: 439 0002A3C8 # if( force_loop )
442: 440 0002A3C8 5d effffffce6 tstl _force_loop
443: 441 0002A3CE 31 02 jeql L267
444: 442 0002A3D0 # asm("brb _pipe6_3_lp1");; /* loop on the error */
445: 443 0002A3D0 11 cb brb _pipe6_3_lp1
446: 444 0002A3D2 L267:
447: 445 0002A3D2 # /*
448: 446 0002A3D2 # * verify the results
449: 447 0002A3D2 # */
450: 448 0002A3D2 # asm("movl r7,_sgl_st_acc"); /* get the 1st store value */
451: 449 0002A3D2 0d 57 effffffcdb movl r7,_sgl_st_acc
452: 450 0002A3D9 # asm("movl r8,_sgl_value_6"); /* get the 2nd store value */
453: 451 0002A3D9 0d 58 effffffcd4 movl r8,_sgl_value_6
454: 452 0002A3E0 # if( (sgl_st_acc != sgl_expected) || /* COMPARE the values */
455: 453 0002A3E0 # (sgl_value_6 != sgl_expected) )
456: 454 0002A3E0 1d effffffcce effffffcc9 cmpl _sgl_st_acc,_sgl_expected
457: 455 0002A3EB 21 0d jneq L9997
458: 456 0002A3ED 1d effffffcc1 effffffcbc cmpl _sgl_value_6,_sgl_expected
459: 457 0002A3F8 31 45 jeql L268
460: 458 0002A3FA L9997:
461: 459 0002A3FA # {
462: 460 0002A3FA # errcnt++; /* bump the error count */
463: 461 0002A3FA 6d effffffcb4 incl _errcnt
464: 462 0002A400 # if ( prt_error )
465: 463 0002A400 5d effffffcae tstl _prt_error
466: 464 0002A406 31 0d jeql L269
467: 465 0002A408 # print_pipe6_er("Reg. Data, 2 NO-OPs");
468: 466 0002A408 .data 1
469: 467 00000de9 * L270:
470: 468 00000de9 * 5265672E20446174612C20322 .ascii "Reg. Data, 2 NO-OPs\0"
471: 04E4F2D4F507300
472: 469 00000dfd * .text
473: 470 0002A408 dd 8f00000de9 pushl $L270
474: 471 0002A40E fe 08 ef00000893 callf $8,_print_pipe6_er
475: 472 0002A415 # if ( halt_flg ) /* halt on error? */
476: 473 0002A415 L269:
477: 474 0002A415 5d effffffc99 tstl _halt_flg
478: 475 0002A41B 31 0d jeql L271
479: 476 0002A41D # pipe6_er_hlt( subtest );
480: 477 0002A41D dd effffffc91 pushl _subtest
481: 478 0002A423 fe 08 ef000009c6 callf $8,_pipe6_er_hlt
482: 479 0002A42A # if ( loop_on_err ) {
483: 480 0002A42A L271:
484: 481 0002A42A 5d effffffc84 tstl _loop_on_err
485: 482 0002A430 31 0d jeql L272
486: 483 0002A432 # force_loop = TRUE; /* set the force loop flag */
487: 484 0002A432 0d 01 effffffc7b movl $1,_force_loop
488: 485 0002A439 # asm("jmp _pipe6_3_lp1"); /* and loop */
489: 486 0002A439 71 efffffff5e jmp _pipe6_3_lp1
490: 487 0002A43F # }
491: 488 0002A43F # } /* end of compare error */
492: 489 0002A43F L272:
493: 490 0002A43F # } while( index++ < max_cvlf_1_index );
494: 491 0002A43F L268:
495: 492 0002A43F L265:
496: 493 0002A43F 0d effffffc6f 50 movl _index,r0
497: 494 0002A446 6d effffffc68 incl _index
498: 495 0002A44C 1d 50 effffffc61 cmpl r0,_max_cvlf_1_index
499: 496 0002A453 81 03 13 ff13 jlss L266
500: 497 0002A458 L264:
501: 498 0002A458 # } /* end of subtest 3 */
502: 499 0002A458 40 ret#2
503: 500 0002A459 .set L260,0x0
504: 501 0002A459 L262:
505: 502 0002A459 13 ff03 jbr L263
506: 503 0002A45C .data
507: 504 00000db8 * .text
508: 505 0002A45C .align 1
509: 506 0002A45C .globl _pipe6_4
510: 507 0002A45C _pipe6_4:
511: 508 0002A45C 0000 .word L273
512: 509 0002A45E #
513: 510 0002A45E #
514: 511 0002A45E #
515: 512 0002A45E #
516: 513 0002A45E #
517: 514 0002A45E #
518: 515 0002A45E # /************************************************************************
519: 516 0002A45E # *
520: 517 0002A45E # * SUBTEST 4
521: 518 0002A45E # * data in registers, 3 NO-OPs
522: 519 0002A45E # *
523: 520 0002A45E # ************************************************************************/
524: 521 0002A45E # pipe6_4()
525: 522 0002A45E # {
526: 523 0002A45E 13 00ff jbr L275
527: 524 0002A461 L276:
528: 525 0002A461 # force_loop = FALSE; /* clear the force_loop flag */
529: 526 0002A461 4d effffffc4d clrl _force_loop
530: 527 0002A467 # index = 0;
531: 528 0002A467 4d effffffc47 clrl _index
532: 529 0002A46D # do
533: 530 0002A46D L279:
534: 531 0002A46D # {
535: 532 0002A46D # sgl_value_1 = cvlf_1_data[index].ld; /* get operand 1 */
536: 533 0002A46D 0d effffffc41 50 movl _index,r0
537: 534 0002A474 48 03 50 50 shll $3,r0,r0
538: 535 0002A478 0d e000000000 effffffc31 movl _cvlf_1_data(r0),_sgl_value_1
539: 536 0002A483 # sgl_expected = cvlf_1_data[index].exp; /* get expected results */
540: 537 0002A483 0d effffffc2b 50 movl _index,r0
541: 538 0002A48A 48 03 50 50 shll $3,r0,r0
542: 539 0002A48E 0d e000000004 effffffc1b movl _cvlf_1_data+4(r0),_sgl_expected
543: 540 0002A499 # sgl_value_2 = 0x00000000; /* floating '0' */
544: 541 0002A499 4d effffffc15 clrl _sgl_value_2
545: 542 0002A49F # /*
546: 543 0002A49F # * If LOOP ON ERROR is set, this is the loop for this subtest.
547: 544 0002A49F # * The force loop flag is set after the first error.
548: 545 0002A49F # */
549: 546 0002A49F # asm("_pipe6_4_lp1:");
550: 547 0002A49F _pipe6_4_lp1:
551: 548 0002A49F # asm("movl _sgl_value_1,r4"); /* move the data to r4 */
552: 549 0002A49F 0d effffffc0f 54 movl _sgl_value_1,r4
553: 550 0002A4A6 # asm("movl _sgl_value_2,r5"); /* move data to r5 */
554: 551 0002A4A6 0d effffffc08 55 movl _sgl_value_2,r5
555: 552 0002A4AD # asm("movl _sgl_expected,r6"); /* save the expected result*/
556: 553 0002A4AD 0d effffffc01 56 movl _sgl_expected,r6
557: 554 0002A4B4 # asm("ldf r5"); /* load a floating '0' */
558: 555 0002A4B4 06 55 ldf r5
559: 556 0002A4B6 # asm("nop");
560: 557 0002A4B6 10 nop
561: 558 0002A4B7 # asm("nop");
562: 559 0002A4B7 10 nop
563: 560 0002A4B8 # asm("nop");
564: 561 0002A4B8 10 nop
565: 562 0002A4B9 # asm("addf r6"); /* add the expected value */
566: 563 0002A4B9 c6 56 addf r6
567: 564 0002A4BB # asm("nop");
568: 565 0002A4BB 10 nop
569: 566 0002A4BC # asm("nop");
570: 567 0002A4BC 10 nop
571: 568 0002A4BD # asm("nop");
572: 569 0002A4BD 10 nop
573: 570 0002A4BE # asm("stf r7"); /* store the result */
574: 571 0002A4BE 26 57 stf r7
575: 572 0002A4C0 # asm("nop");
576: 573 0002A4C0 10 nop
577: 574 0002A4C1 # asm("nop");
578: 575 0002A4C1 10 nop
579: 576 0002A4C2 # asm("nop");
580: 577 0002A4C2 10 nop
581: 578 0002A4C3 # asm("cvlf r4"); /* convert the operand */
582: 579 0002A4C3 76 54 cvlf r4
583: 580 0002A4C5 # asm("nop");
584: 581 0002A4C5 10 nop
585: 582 0002A4C6 # asm("nop");
586: 583 0002A4C6 10 nop
587: 584 0002A4C7 # asm("nop");
588: 585 0002A4C7 10 nop
589: 586 0002A4C8 # asm("subf r5"); /* subtract a floating '0' */
590: 587 0002A4C8 d6 55 subf r5
591: 588 0002A4CA # asm("nop");
592: 589 0002A4CA 10 nop
593: 590 0002A4CB # asm("nop");
594: 591 0002A4CB 10 nop
595: 592 0002A4CC # asm("nop");
596: 593 0002A4CC 10 nop
597: 594 0002A4CD # asm("stf r8"); /* store the result */
598: 595 0002A4CD 26 58 stf r8
599: 596 0002A4CF # if( force_loop )
600: 597 0002A4CF 5d effffffbdf tstl _force_loop
601: 598 0002A4D5 31 02 jeql L280
602: 599 0002A4D7 # asm("brb _pipe6_4_lp1");; /* loop on the error */
603: 600 0002A4D7 11 c6 brb _pipe6_4_lp1
604: 601 0002A4D9 L280:
605: 602 0002A4D9 # /*
606: 603 0002A4D9 # * verify the results
607: 604 0002A4D9 # */
608: 605 0002A4D9 # asm("movl r7,_sgl_st_acc"); /* get the 1st store value */
609: 606 0002A4D9 0d 57 effffffbd4 movl r7,_sgl_st_acc
610: 607 0002A4E0 # asm("movl r8,_sgl_value_6"); /* get the 2nd store value */
611: 608 0002A4E0 0d 58 effffffbcd movl r8,_sgl_value_6
612: 609 0002A4E7 # if( (sgl_st_acc != sgl_expected) || /* COMPARE the values */
613: 610 0002A4E7 # (sgl_value_6 != sgl_expected) )
614: 611 0002A4E7 1d effffffbc7 effffffbc2 cmpl _sgl_st_acc,_sgl_expected
615: 612 0002A4F2 21 0d jneq L9996
616: 613 0002A4F4 1d effffffbba effffffbb5 cmpl _sgl_value_6,_sgl_expected
617: 614 0002A4FF 31 45 jeql L281
618: 615 0002A501 L9996:
619: 616 0002A501 # {
620: 617 0002A501 # errcnt++; /* bump the error count */
621: 618 0002A501 6d effffffbad incl _errcnt
622: 619 0002A507 # if ( prt_error )
623: 620 0002A507 5d effffffba7 tstl _prt_error
624: 621 0002A50D 31 0d jeql L282
625: 622 0002A50F # print_pipe6_er("Reg. Data, 3 NO-OPs");
626: 623 0002A50F .data 1
627: 624 00000dfd * L283:
628: 625 00000dfd * 5265672E20446174612C20332 .ascii "Reg. Data, 3 NO-OPs\0"
629: 04E4F2D4F507300
630: 626 00000e11 * .text
631: 627 0002A50F dd 8f00000dfd pushl $L283
632: 628 0002A515 fe 08 ef0000078c callf $8,_print_pipe6_er
633: 629 0002A51C # if ( halt_flg ) /* halt on error? */
634: 630 0002A51C L282:
635: 631 0002A51C 5d effffffb92 tstl _halt_flg
636: 632 0002A522 31 0d jeql L284
637: 633 0002A524 # pipe6_er_hlt( subtest );
638: 634 0002A524 dd effffffb8a pushl _subtest
639: 635 0002A52A fe 08 ef000008bf callf $8,_pipe6_er_hlt
640: 636 0002A531 # if ( loop_on_err ) {
641: 637 0002A531 L284:
642: 638 0002A531 5d effffffb7d tstl _loop_on_err
643: 639 0002A537 31 0d jeql L285
644: 640 0002A539 # force_loop = TRUE; /* set the force loop flag */
645: 641 0002A539 0d 01 effffffb74 movl $1,_force_loop
646: 642 0002A540 # asm("jmp _pipe6_4_lp1"); /* and loop */
647: 643 0002A540 71 efffffff59 jmp _pipe6_4_lp1
648: 644 0002A546 # }
649: 645 0002A546 # } /* end of compare error */
650: 646 0002A546 L285:
651: 647 0002A546 # } while( index++ < max_cvlf_1_index );
652: 648 0002A546 L281:
653: 649 0002A546 L278:
654: 650 0002A546 0d effffffb68 50 movl _index,r0
655: 651 0002A54D 6d effffffb61 incl _index
656: 652 0002A553 1d 50 effffffb5a cmpl r0,_max_cvlf_1_index
657: 653 0002A55A 81 03 13 ff0e jlss L279
658: 654 0002A55F L277:
659: 655 0002A55F # } /* end of subtest 4 */
660: 656 0002A55F 40 ret#2
661: 657 0002A560 .set L273,0x0
662: 658 0002A560 L275:
663: 659 0002A560 13 fefe jbr L276
664: 660 0002A563 .data
665: 661 00000db8 * .text
666: 662 0002A563 00 .align 1
667: 663 0002A564 .globl _pipe6_5
668: 664 0002A564 _pipe6_5:
669: 665 0002A564 0000 .word L286
670: 666 0002A566 #
671: 667 0002A566 #
672: 668 0002A566 #
673: 669 0002A566 #
674: 670 0002A566 #
675: 671 0002A566 #
676: 672 0002A566 #
677: 673 0002A566 # /************************************************************************
678: 674 0002A566 # *
679: 675 0002A566 # * SUBTEST 5
680: 676 0002A566 # * data in Cache, no NO-OPs
681: 677 0002A566 # *
682: 678 0002A566 # ************************************************************************/
683: 679 0002A566 # pipe6_5()
684: 680 0002A566 # {
685: 681 0002A566 13 00e5 jbr L288
686: 682 0002A569 L289:
687: 683 0002A569 # force_loop = FALSE; /* clear the force_loop flag */
688: 684 0002A569 4d effffffb45 clrl _force_loop
689: 685 0002A56F # index = 0;
690: 686 0002A56F 4d effffffb3f clrl _index
691: 687 0002A575 # do
692: 688 0002A575 L292:
693: 689 0002A575 # {
694: 690 0002A575 # sgl_value_1 = cvlf_1_data[index].ld; /* get operand 1 */
695: 691 0002A575 0d effffffb39 50 movl _index,r0
696: 692 0002A57C 48 03 50 50 shll $3,r0,r0
697: 693 0002A580 0d e000000000 effffffb29 movl _cvlf_1_data(r0),_sgl_value_1
698: 694 0002A58B # sgl_expected = cvlf_1_data[index].exp; /* get expected results */
699: 695 0002A58B 0d effffffb23 50 movl _index,r0
700: 696 0002A592 48 03 50 50 shll $3,r0,r0
701: 697 0002A596 0d e000000004 effffffb13 movl _cvlf_1_data+4(r0),_sgl_expected
702: 698 0002A5A1 # sgl_value_2 = 0x00000000; /* floating '0' */
703: 699 0002A5A1 4d effffffb0d clrl _sgl_value_2
704: 700 0002A5A7 # /*
705: 701 0002A5A7 # * If LOOP ON ERROR is set, this is the loop for this subtest.
706: 702 0002A5A7 # * The force loop flag is set after the first error.
707: 703 0002A5A7 # */
708: 704 0002A5A7 # asm("_pipe6_5_lp1:");
709: 705 0002A5A7 _pipe6_5_lp1:
710: 706 0002A5A7 # asm("ldf _sgl_value_2"); /* load a floating '0' */
711: 707 0002A5A7 06 effffffb07 ldf _sgl_value_2
712: 708 0002A5AD # asm("addf _sgl_expected"); /* add the expected value */
713: 709 0002A5AD c6 effffffb01 addf _sgl_expected
714: 710 0002A5B3 # asm("stf _sgl_st_acc"); /* store the result */
715: 711 0002A5B3 26 effffffafb stf _sgl_st_acc
716: 712 0002A5B9 # asm("cvlf _sgl_value_1"); /* convert the int operand */
717: 713 0002A5B9 76 effffffaf5 cvlf _sgl_value_1
718: 714 0002A5BF # asm("subf _sgl_value_2"); /* subtract a floating '0' */
719: 715 0002A5BF d6 effffffaef subf _sgl_value_2
720: 716 0002A5C5 # asm("stf _sgl_value_6"); /* store the result */
721: 717 0002A5C5 26 effffffae9 stf _sgl_value_6
722: 718 0002A5CB # if( force_loop )
723: 719 0002A5CB 5d effffffae3 tstl _force_loop
724: 720 0002A5D1 31 02 jeql L293
725: 721 0002A5D3 # asm("brb _pipe6_5_lp1");; /* loop on the error */
726: 722 0002A5D3 11 d2 brb _pipe6_5_lp1
727: 723 0002A5D5 L293:
728: 724 0002A5D5 # /*
729: 725 0002A5D5 # * verify the results
730: 726 0002A5D5 # */
731: 727 0002A5D5 # if( (sgl_st_acc != sgl_expected) || /* COMPARE the values */
732: 728 0002A5D5 # (sgl_value_6 != sgl_expected) )
733: 729 0002A5D5 1d effffffad9 effffffad4 cmpl _sgl_st_acc,_sgl_expected
734: 730 0002A5E0 21 0d jneq L9995
735: 731 0002A5E2 1d effffffacc effffffac7 cmpl _sgl_value_6,_sgl_expected
736: 732 0002A5ED 31 45 jeql L294
737: 733 0002A5EF L9995:
738: 734 0002A5EF # {
739: 735 0002A5EF # errcnt++; /* bump the error count */
740: 736 0002A5EF 6d effffffabf incl _errcnt
741: 737 0002A5F5 # if ( prt_error )
742: 738 0002A5F5 5d effffffab9 tstl _prt_error
743: 739 0002A5FB 31 0d jeql L295
744: 740 0002A5FD # print_pipe6_er("Cache Data, no NO-OPs");
745: 741 0002A5FD .data 1
746: 742 00000e11 * L296:
747: 743 00000e11 * 436163686520446174612C206 .ascii "Cache Data, no NO-OPs\0"
748: E6F204E4F2D4F507300
749: 744 00000e27 * .text
750: 745 0002A5FD dd 8f00000e11 pushl $L296
751: 746 0002A603 fe 08 ef0000069e callf $8,_print_pipe6_er
752: 747 0002A60A # if ( halt_flg ) /* halt on error? */
753: 748 0002A60A L295:
754: 749 0002A60A 5d effffffaa4 tstl _halt_flg
755: 750 0002A610 31 0d jeql L297
756: 751 0002A612 # pipe6_er_hlt( subtest );
757: 752 0002A612 dd effffffa9c pushl _subtest
758: 753 0002A618 fe 08 ef000007d1 callf $8,_pipe6_er_hlt
759: 754 0002A61F # if ( loop_on_err ) {
760: 755 0002A61F L297:
761: 756 0002A61F 5d effffffa8f tstl _loop_on_err
762: 757 0002A625 31 0d jeql L298
763: 758 0002A627 # force_loop = TRUE; /* set the force loop flag */
764: 759 0002A627 0d 01 effffffa86 movl $1,_force_loop
765: 760 0002A62E # asm("jmp _pipe6_5_lp1"); /* and loop */
766: 761 0002A62E 71 efffffff73 jmp _pipe6_5_lp1
767: 762 0002A634 # }
768: 763 0002A634 # } /* end of compare error */
769: 764 0002A634 L298:
770: 765 0002A634 # } while( index++ < max_cvlf_1_index );
771: 766 0002A634 L294:
772: 767 0002A634 L291:
773: 768 0002A634 0d effffffa7a 50 movl _index,r0
774: 769 0002A63B 6d effffffa73 incl _index
775: 770 0002A641 1d 50 effffffa6c cmpl r0,_max_cvlf_1_index
776: 771 0002A648 81 03 13 ff28 jlss L292
777: 772 0002A64D L290:
778: 773 0002A64D # } /* end of subtest 5 */
779: 774 0002A64D 40 ret#2
780: 775 0002A64E .set L286,0x0
781: 776 0002A64E L288:
782: 777 0002A64E 13 ff18 jbr L289
783: 778 0002A651 .data
784: 779 00000db8 * .text
785: 780 0002A651 00 .align 1
786: 781 0002A652 .globl _pipe6_6
787: 782 0002A652 _pipe6_6:
788: 783 0002A652 0000 .word L299
789: 784 0002A654 #
790: 785 0002A654 #
791: 786 0002A654 #
792: 787 0002A654 #
793: 788 0002A654 #
794: 789 0002A654 #
795: 790 0002A654 # /************************************************************************
796: 791 0002A654 # *
797: 792 0002A654 # * SUBTEST 6
798: 793 0002A654 # * data in Cache, 1 NO-OP
799: 794 0002A654 # *
800: 795 0002A654 # ************************************************************************/
801: 796 0002A654 # pipe6_6()
802: 797 0002A654 # {
803: 798 0002A654 13 00ea jbr L301
804: 799 0002A657 L302:
805: 800 0002A657 # force_loop = FALSE; /* clear the force_loop flag */
806: 801 0002A657 4d effffffa57 clrl _force_loop
807: 802 0002A65D # index = 0;
808: 803 0002A65D 4d effffffa51 clrl _index
809: 804 0002A663 # do
810: 805 0002A663 L305:
811: 806 0002A663 # {
812: 807 0002A663 # sgl_value_1 = cvlf_1_data[index].ld; /* get operand 1 */
813: 808 0002A663 0d effffffa4b 50 movl _index,r0
814: 809 0002A66A 48 03 50 50 shll $3,r0,r0
815: 810 0002A66E 0d e000000000 effffffa3b movl _cvlf_1_data(r0),_sgl_value_1
816: 811 0002A679 # sgl_expected = cvlf_1_data[index].exp; /* get expected results */
817: 812 0002A679 0d effffffa35 50 movl _index,r0
818: 813 0002A680 48 03 50 50 shll $3,r0,r0
819: 814 0002A684 0d e000000004 effffffa25 movl _cvlf_1_data+4(r0),_sgl_expected
820: 815 0002A68F # sgl_value_2 = 0x00000000; /* floating '0' */
821: 816 0002A68F 4d effffffa1f clrl _sgl_value_2
822: 817 0002A695 # /*
823: 818 0002A695 # * If LOOP ON ERROR is set, this is the loop for this subtest.
824: 819 0002A695 # * The force loop flag is set after the first error.
825: 820 0002A695 # */
826: 821 0002A695 # asm("_pipe6_6_lp1:");
827: 822 0002A695 _pipe6_6_lp1:
828: 823 0002A695 # asm("ldf _sgl_value_2"); /* load a floating '0' */
829: 824 0002A695 06 effffffa19 ldf _sgl_value_2
830: 825 0002A69B # asm("nop");
831: 826 0002A69B 10 nop
832: 827 0002A69C # asm("addf _sgl_expected"); /* add the expected value */
833: 828 0002A69C c6 effffffa12 addf _sgl_expected
834: 829 0002A6A2 # asm("nop");
835: 830 0002A6A2 10 nop
836: 831 0002A6A3 # asm("stf _sgl_st_acc"); /* store the result */
837: 832 0002A6A3 26 effffffa0b stf _sgl_st_acc
838: 833 0002A6A9 # asm("nop");
839: 834 0002A6A9 10 nop
840: 835 0002A6AA # asm("cvlf _sgl_value_1"); /* convert the int operand */
841: 836 0002A6AA 76 effffffa04 cvlf _sgl_value_1
842: 837 0002A6B0 # asm("nop");
843: 838 0002A6B0 10 nop
844: 839 0002A6B1 # asm("subf _sgl_value_2"); /* subtract a floating '0' */
845: 840 0002A6B1 d6 effffff9fd subf _sgl_value_2
846: 841 0002A6B7 # asm("nop");
847: 842 0002A6B7 10 nop
848: 843 0002A6B8 # asm("stf _sgl_value_6"); /* store the result */
849: 844 0002A6B8 26 effffff9f6 stf _sgl_value_6
850: 845 0002A6BE # if( force_loop )
851: 846 0002A6BE 5d effffff9f0 tstl _force_loop
852: 847 0002A6C4 31 02 jeql L306
853: 848 0002A6C6 # asm("brb _pipe6_6_lp1");; /* loop on the error */
854: 849 0002A6C6 11 cd brb _pipe6_6_lp1
855: 850 0002A6C8 L306:
856: 851 0002A6C8 # /*
857: 852 0002A6C8 # * verify the results
858: 853 0002A6C8 # */
859: 854 0002A6C8 # if( (sgl_st_acc != sgl_expected) || /* COMPARE the values */
860: 855 0002A6C8 # (sgl_value_6 != sgl_expected) )
861: 856 0002A6C8 1d effffff9e6 effffff9e1 cmpl _sgl_st_acc,_sgl_expected
862: 857 0002A6D3 21 0d jneq L9994
863: 858 0002A6D5 1d effffff9d9 effffff9d4 cmpl _sgl_value_6,_sgl_expected
864: 859 0002A6E0 31 45 jeql L307
865: 860 0002A6E2 L9994:
866: 861 0002A6E2 # {
867: 862 0002A6E2 # errcnt++; /* bump the error count */
868: 863 0002A6E2 6d effffff9cc incl _errcnt
869: 864 0002A6E8 # if ( prt_error )
870: 865 0002A6E8 5d effffff9c6 tstl _prt_error
871: 866 0002A6EE 31 0d jeql L308
872: 867 0002A6F0 # print_pipe6_er("Cache Data, 1 NO-OP");
873: 868 0002A6F0 .data 1
874: 869 00000e27 * L309:
875: 870 00000e27 * 436163686520446174612C203 .ascii "Cache Data, 1 NO-OP\0"
876: 1204E4F2D4F5000
877: 871 00000e3b * .text
878: 872 0002A6F0 dd 8f00000e27 pushl $L309
879: 873 0002A6F6 fe 08 ef000005ab callf $8,_print_pipe6_er
880: 874 0002A6FD # if ( halt_flg ) /* halt on error? */
881: 875 0002A6FD L308:
882: 876 0002A6FD 5d effffff9b1 tstl _halt_flg
883: 877 0002A703 31 0d jeql L310
884: 878 0002A705 # pipe6_er_hlt( subtest );
885: 879 0002A705 dd effffff9a9 pushl _subtest
886: 880 0002A70B fe 08 ef000006de callf $8,_pipe6_er_hlt
887: 881 0002A712 # if ( loop_on_err ) {
888: 882 0002A712 L310:
889: 883 0002A712 5d effffff99c tstl _loop_on_err
890: 884 0002A718 31 0d jeql L311
891: 885 0002A71A # force_loop = TRUE; /* set the force loop flag */
892: 886 0002A71A 0d 01 effffff993 movl $1,_force_loop
893: 887 0002A721 # asm("jmp _pipe6_6_lp1"); /* and loop */
894: 888 0002A721 71 efffffff6e jmp _pipe6_6_lp1
895: 889 0002A727 # }
896: 890 0002A727 # } /* end of compare error */
897: 891 0002A727 L311:
898: 892 0002A727 # } while( index++ < max_cvlf_1_index );
899: 893 0002A727 L307:
900: 894 0002A727 L304:
901: 895 0002A727 0d effffff987 50 movl _index,r0
902: 896 0002A72E 6d effffff980 incl _index
903: 897 0002A734 1d 50 effffff979 cmpl r0,_max_cvlf_1_index
904: 898 0002A73B 81 03 13 ff23 jlss L305
905: 899 0002A740 L303:
906: 900 0002A740 # } /* end of subtest 6 */
907: 901 0002A740 40 ret#2
908: 902 0002A741 .set L299,0x0
909: 903 0002A741 L301:
910: 904 0002A741 13 ff13 jbr L302
911: 905 0002A744 .data
912: 906 00000db8 * .text
913: 907 0002A744 .align 1
914: 908 0002A744 .globl _pipe6_7
915: 909 0002A744 _pipe6_7:
916: 910 0002A744 0000 .word L312
917: 911 0002A746 #
918: 912 0002A746 #
919: 913 0002A746 #
920: 914 0002A746 #
921: 915 0002A746 #
922: 916 0002A746 #
923: 917 0002A746 # /************************************************************************
924: 918 0002A746 # *
925: 919 0002A746 # * SUBTEST 7
926: 920 0002A746 # * data in Cache, 2 NO-OPs
927: 921 0002A746 # *
928: 922 0002A746 # ************************************************************************/
929: 923 0002A746 # pipe6_7()
930: 924 0002A746 # {
931: 925 0002A746 13 00ef jbr L314
932: 926 0002A749 L315:
933: 927 0002A749 # force_loop = FALSE; /* clear the force_loop flag */
934: 928 0002A749 4d effffff965 clrl _force_loop
935: 929 0002A74F # index = 0;
936: 930 0002A74F 4d effffff95f clrl _index
937: 931 0002A755 # do
938: 932 0002A755 L318:
939: 933 0002A755 # {
940: 934 0002A755 # sgl_value_1 = cvlf_1_data[index].ld; /* get operand 1 */
941: 935 0002A755 0d effffff959 50 movl _index,r0
942: 936 0002A75C 48 03 50 50 shll $3,r0,r0
943: 937 0002A760 0d e000000000 effffff949 movl _cvlf_1_data(r0),_sgl_value_1
944: 938 0002A76B # sgl_expected = cvlf_1_data[index].exp; /* get expected results */
945: 939 0002A76B 0d effffff943 50 movl _index,r0
946: 940 0002A772 48 03 50 50 shll $3,r0,r0
947: 941 0002A776 0d e000000004 effffff933 movl _cvlf_1_data+4(r0),_sgl_expected
948: 942 0002A781 # sgl_value_2 = 0x00000000; /* floating '0' */
949: 943 0002A781 4d effffff92d clrl _sgl_value_2
950: 944 0002A787 # /*
951: 945 0002A787 # * If LOOP ON ERROR is set, this is the loop for this subtest.
952: 946 0002A787 # * The force loop flag is set after the first error.
953: 947 0002A787 # */
954: 948 0002A787 # asm("_pipe6_7_lp1:");
955: 949 0002A787 _pipe6_7_lp1:
956: 950 0002A787 # asm("ldf _sgl_value_2"); /* load a floating '0' */
957: 951 0002A787 06 effffff927 ldf _sgl_value_2
958: 952 0002A78D # asm("nop");
959: 953 0002A78D 10 nop
960: 954 0002A78E # asm("nop");
961: 955 0002A78E 10 nop
962: 956 0002A78F # asm("addf _sgl_expected"); /* add the expected value */
963: 957 0002A78F c6 effffff91f addf _sgl_expected
964: 958 0002A795 # asm("nop");
965: 959 0002A795 10 nop
966: 960 0002A796 # asm("nop");
967: 961 0002A796 10 nop
968: 962 0002A797 # asm("stf _sgl_st_acc"); /* store the result */
969: 963 0002A797 26 effffff917 stf _sgl_st_acc
970: 964 0002A79D # asm("nop");
971: 965 0002A79D 10 nop
972: 966 0002A79E # asm("nop");
973: 967 0002A79E 10 nop
974: 968 0002A79F # asm("cvlf _sgl_value_1"); /* convert the int operand */
975: 969 0002A79F 76 effffff90f cvlf _sgl_value_1
976: 970 0002A7A5 # asm("nop");
977: 971 0002A7A5 10 nop
978: 972 0002A7A6 # asm("nop");
979: 973 0002A7A6 10 nop
980: 974 0002A7A7 # asm("subf _sgl_value_2"); /* subtract a floating '0' */
981: 975 0002A7A7 d6 effffff907 subf _sgl_value_2
982: 976 0002A7AD # asm("nop");
983: 977 0002A7AD 10 nop
984: 978 0002A7AE # asm("nop");
985: 979 0002A7AE 10 nop
986: 980 0002A7AF # asm("stf _sgl_value_6"); /* store the result */
987: 981 0002A7AF 26 effffff8ff stf _sgl_value_6
988: 982 0002A7B5 # if( force_loop )
989: 983 0002A7B5 5d effffff8f9 tstl _force_loop
990: 984 0002A7BB 31 02 jeql L319
991: 985 0002A7BD # asm("brb _pipe6_7_lp1");; /* loop on the error */
992: 986 0002A7BD 11 c8 brb _pipe6_7_lp1
993: 987 0002A7BF L319:
994: 988 0002A7BF # /*
995: 989 0002A7BF # * verify the results
996: 990 0002A7BF # */
997: 991 0002A7BF # if( (sgl_st_acc != sgl_expected) || /* COMPARE the values */
998: 992 0002A7BF # (sgl_value_6 != sgl_expected) )
999: 993 0002A7BF 1d effffff8ef effffff8ea cmpl _sgl_st_acc,_sgl_expected
1000: 994 0002A7CA 21 0d jneq L9993
1001: 995 0002A7CC 1d effffff8e2 effffff8dd cmpl _sgl_value_6,_sgl_expected
1002: 996 0002A7D7 31 45 jeql L320
1003: 997 0002A7D9 L9993:
1004: 998 0002A7D9 # {
1005: 999 0002A7D9 # errcnt++; /* bump the error count */
1006: 1000 0002A7D9 6d effffff8d5 incl _errcnt
1007: 1001 0002A7DF # if ( prt_error )
1008: 1002 0002A7DF 5d effffff8cf tstl _prt_error
1009: 1003 0002A7E5 31 0d jeql L321
1010: 1004 0002A7E7 # print_pipe6_er("Cache Data, 2 NO-OPs");
1011: 1005 0002A7E7 .data 1
1012: 1006 00000e3b * L322:
1013: 1007 00000e3b * 436163686520446174612C203 .ascii "Cache Data, 2 NO-OPs\0"
1014: 2204E4F2D4F507300
1015: 1008 00000e50 * .text
1016: 1009 0002A7E7 dd 8f00000e3b pushl $L322
1017: 1010 0002A7ED fe 08 ef000004b4 callf $8,_print_pipe6_er
1018: 1011 0002A7F4 # if ( halt_flg ) /* halt on error? */
1019: 1012 0002A7F4 L321:
1020: 1013 0002A7F4 5d effffff8ba tstl _halt_flg
1021: 1014 0002A7FA 31 0d jeql L323
1022: 1015 0002A7FC # pipe6_er_hlt( subtest );
1023: 1016 0002A7FC dd effffff8b2 pushl _subtest
1024: 1017 0002A802 fe 08 ef000005e7 callf $8,_pipe6_er_hlt
1025: 1018 0002A809 # if ( loop_on_err ) {
1026: 1019 0002A809 L323:
1027: 1020 0002A809 5d effffff8a5 tstl _loop_on_err
1028: 1021 0002A80F 31 0d jeql L324
1029: 1022 0002A811 # force_loop = TRUE; /* set the force loop flag */
1030: 1023 0002A811 0d 01 effffff89c movl $1,_force_loop
1031: 1024 0002A818 # asm("jmp _pipe6_7_lp1"); /* and loop */
1032: 1025 0002A818 71 efffffff69 jmp _pipe6_7_lp1
1033: 1026 0002A81E # }
1034: 1027 0002A81E # } /* end of compare error */
1035: 1028 0002A81E L324:
1036: 1029 0002A81E # } while( index++ < max_cvlf_1_index );
1037: 1030 0002A81E L320:
1038: 1031 0002A81E L317:
1039: 1032 0002A81E 0d effffff890 50 movl _index,r0
1040: 1033 0002A825 6d effffff889 incl _index
1041: 1034 0002A82B 1d 50 effffff882 cmpl r0,_max_cvlf_1_index
1042: 1035 0002A832 81 03 13 ff1e jlss L318
1043: 1036 0002A837 L316:
1044: 1037 0002A837 # } /* end of subtest 7 */
1045: 1038 0002A837 40 ret#2
1046: 1039 0002A838 .set L312,0x0
1047: 1040 0002A838 L314:
1048: 1041 0002A838 13 ff0e jbr L315
1049: 1042 0002A83B .data
1050: 1043 00000db8 * .text
1051: 1044 0002A83B 00 .align 1
1052: 1045 0002A83C .globl _pipe6_8
1053: 1046 0002A83C _pipe6_8:
1054: 1047 0002A83C 0000 .word L325
1055: 1048 0002A83E #
1056: 1049 0002A83E #
1057: 1050 0002A83E #
1058: 1051 0002A83E #
1059: 1052 0002A83E #
1060: 1053 0002A83E #
1061: 1054 0002A83E # /************************************************************************
1062: 1055 0002A83E # *
1063: 1056 0002A83E # * SUBTEST 8
1064: 1057 0002A83E # * data in Cache, 3 NO-OPs
1065: 1058 0002A83E # *
1066: 1059 0002A83E # ************************************************************************/
1067: 1060 0002A83E # pipe6_8()
1068: 1061 0002A83E # {
1069: 1062 0002A83E 13 00f4 jbr L327
1070: 1063 0002A841 L328:
1071: 1064 0002A841 # force_loop = FALSE; /* clear the force_loop flag */
1072: 1065 0002A841 4d effffff86d clrl _force_loop
1073: 1066 0002A847 # index = 0;
1074: 1067 0002A847 4d effffff867 clrl _index
1075: 1068 0002A84D # do
1076: 1069 0002A84D L331:
1077: 1070 0002A84D # {
1078: 1071 0002A84D # sgl_value_1 = cvlf_1_data[index].ld; /* get operand 1 */
1079: 1072 0002A84D 0d effffff861 50 movl _index,r0
1080: 1073 0002A854 48 03 50 50 shll $3,r0,r0
1081: 1074 0002A858 0d e000000000 effffff851 movl _cvlf_1_data(r0),_sgl_value_1
1082: 1075 0002A863 # sgl_expected = cvlf_1_data[index].exp; /* get expected results */
1083: 1076 0002A863 0d effffff84b 50 movl _index,r0
1084: 1077 0002A86A 48 03 50 50 shll $3,r0,r0
1085: 1078 0002A86E 0d e000000004 effffff83b movl _cvlf_1_data+4(r0),_sgl_expected
1086: 1079 0002A879 # sgl_value_2 = 0x00000000; /* floating '0' */
1087: 1080 0002A879 4d effffff835 clrl _sgl_value_2
1088: 1081 0002A87F # /*
1089: 1082 0002A87F # * If LOOP ON ERROR is set, this is the loop for this subtest.
1090: 1083 0002A87F # * The force loop flag is set after the first error.
1091: 1084 0002A87F # */
1092: 1085 0002A87F # asm("_pipe6_8_lp1:");
1093: 1086 0002A87F _pipe6_8_lp1:
1094: 1087 0002A87F # asm("ldf _sgl_value_2"); /* load a floating '0' */
1095: 1088 0002A87F 06 effffff82f ldf _sgl_value_2
1096: 1089 0002A885 # asm("nop");
1097: 1090 0002A885 10 nop
1098: 1091 0002A886 # asm("nop");
1099: 1092 0002A886 10 nop
1100: 1093 0002A887 # asm("nop");
1101: 1094 0002A887 10 nop
1102: 1095 0002A888 # asm("addf _sgl_expected"); /* add the expected value */
1103: 1096 0002A888 c6 effffff826 addf _sgl_expected
1104: 1097 0002A88E # asm("nop");
1105: 1098 0002A88E 10 nop
1106: 1099 0002A88F # asm("nop");
1107: 1100 0002A88F 10 nop
1108: 1101 0002A890 # asm("nop");
1109: 1102 0002A890 10 nop
1110: 1103 0002A891 # asm("stf _sgl_st_acc"); /* store the result */
1111: 1104 0002A891 26 effffff81d stf _sgl_st_acc
1112: 1105 0002A897 # asm("nop");
1113: 1106 0002A897 10 nop
1114: 1107 0002A898 # asm("nop");
1115: 1108 0002A898 10 nop
1116: 1109 0002A899 # asm("nop");
1117: 1110 0002A899 10 nop
1118: 1111 0002A89A # asm("cvlf _sgl_value_1"); /* convert the int operand */
1119: 1112 0002A89A 76 effffff814 cvlf _sgl_value_1
1120: 1113 0002A8A0 # asm("nop");
1121: 1114 0002A8A0 10 nop
1122: 1115 0002A8A1 # asm("nop");
1123: 1116 0002A8A1 10 nop
1124: 1117 0002A8A2 # asm("nop");
1125: 1118 0002A8A2 10 nop
1126: 1119 0002A8A3 # asm("subf _sgl_value_2"); /* subtract a floating '0' */
1127: 1120 0002A8A3 d6 effffff80b subf _sgl_value_2
1128: 1121 0002A8A9 # asm("nop");
1129: 1122 0002A8A9 10 nop
1130: 1123 0002A8AA # asm("nop");
1131: 1124 0002A8AA 10 nop
1132: 1125 0002A8AB # asm("nop");
1133: 1126 0002A8AB 10 nop
1134: 1127 0002A8AC # asm("stf _sgl_value_6"); /* store the result */
1135: 1128 0002A8AC 26 effffff802 stf _sgl_value_6
1136: 1129 0002A8B2 # if( force_loop )
1137: 1130 0002A8B2 5d effffff7fc tstl _force_loop
1138: 1131 0002A8B8 31 02 jeql L332
1139: 1132 0002A8BA # asm("brb _pipe6_8_lp1");; /* loop on the error */
1140: 1133 0002A8BA 11 c3 brb _pipe6_8_lp1
1141: 1134 0002A8BC L332:
1142: 1135 0002A8BC # /*
1143: 1136 0002A8BC # * verify the results
1144: 1137 0002A8BC # */
1145: 1138 0002A8BC # if( (sgl_st_acc != sgl_expected) || /* COMPARE the values */
1146: 1139 0002A8BC # (sgl_value_6 != sgl_expected) )
1147: 1140 0002A8BC 1d effffff7f2 effffff7ed cmpl _sgl_st_acc,_sgl_expected
1148: 1141 0002A8C7 21 0d jneq L9992
1149: 1142 0002A8C9 1d effffff7e5 effffff7e0 cmpl _sgl_value_6,_sgl_expected
1150: 1143 0002A8D4 31 45 jeql L333
1151: 1144 0002A8D6 L9992:
1152: 1145 0002A8D6 # {
1153: 1146 0002A8D6 # errcnt++; /* bump the error count */
1154: 1147 0002A8D6 6d effffff7d8 incl _errcnt
1155: 1148 0002A8DC # if ( prt_error )
1156: 1149 0002A8DC 5d effffff7d2 tstl _prt_error
1157: 1150 0002A8E2 31 0d jeql L334
1158: 1151 0002A8E4 # print_pipe6_er("Cache Data, 3 NO-OPs");
1159: 1152 0002A8E4 .data 1
1160: 1153 00000e50 * L335:
1161: 1154 00000e50 * 436163686520446174612C203 .ascii "Cache Data, 3 NO-OPs\0"
1162: 3204E4F2D4F507300
1163: 1155 00000e65 * .text
1164: 1156 0002A8E4 dd 8f00000e50 pushl $L335
1165: 1157 0002A8EA fe 08 ef000003b7 callf $8,_print_pipe6_er
1166: 1158 0002A8F1 # if ( halt_flg ) /* halt on error? */
1167: 1159 0002A8F1 L334:
1168: 1160 0002A8F1 5d effffff7bd tstl _halt_flg
1169: 1161 0002A8F7 31 0d jeql L336
1170: 1162 0002A8F9 # pipe6_er_hlt( subtest );
1171: 1163 0002A8F9 dd effffff7b5 pushl _subtest
1172: 1164 0002A8FF fe 08 ef000004ea callf $8,_pipe6_er_hlt
1173: 1165 0002A906 # if ( loop_on_err ) {
1174: 1166 0002A906 L336:
1175: 1167 0002A906 5d effffff7a8 tstl _loop_on_err
1176: 1168 0002A90C 31 0d jeql L337
1177: 1169 0002A90E # force_loop = TRUE; /* set the force loop flag */
1178: 1170 0002A90E 0d 01 effffff79f movl $1,_force_loop
1179: 1171 0002A915 # asm("jmp _pipe6_8_lp1"); /* and loop */
1180: 1172 0002A915 71 efffffff64 jmp _pipe6_8_lp1
1181: 1173 0002A91B # }
1182: 1174 0002A91B # } /* end of compare error */
1183: 1175 0002A91B L337:
1184: 1176 0002A91B # } while( index++ < max_cvlf_1_index );
1185: 1177 0002A91B L333:
1186: 1178 0002A91B L330:
1187: 1179 0002A91B 0d effffff793 50 movl _index,r0
1188: 1180 0002A922 6d effffff78c incl _index
1189: 1181 0002A928 1d 50 effffff785 cmpl r0,_max_cvlf_1_index
1190: 1182 0002A92F 81 03 13 ff19 jlss L331
1191: 1183 0002A934 L329:
1192: 1184 0002A934 # } /* end of subtest 8 */
1193: 1185 0002A934 40 ret#2
1194: 1186 0002A935 .set L325,0x0
1195: 1187 0002A935 L327:
1196: 1188 0002A935 13 ff09 jbr L328
1197: 1189 0002A938 .data
1198: 1190 00000db8 * .text
1199: 1191 0002A938 .align 1
1200: 1192 0002A938 .globl _pipe6_9
1201: 1193 0002A938 _pipe6_9:
1202: 1194 0002A938 0000 .word L338
1203: 1195 0002A93A #
1204: 1196 0002A93A #
1205: 1197 0002A93A #
1206: 1198 0002A93A #
1207: 1199 0002A93A #
1208: 1200 0002A93A #
1209: 1201 0002A93A # /*****************************************************************************
1210: 1202 0002A93A # *
1211: 1203 0002A93A # * SUBTEST 9
1212: 1204 0002A93A # * data on the stack, no NO-OPs
1213: 1205 0002A93A # *
1214: 1206 0002A93A # *****************************************************************************/
1215: 1207 0002A93A # pipe6_9()
1216: 1208 0002A93A # {
1217: 1209 0002A93A 13 018b jbr L340
1218: 1210 0002A93D L341:
1219: 1211 0002A93D # asm("moval (r13),_pre_event_fp"); /* save the frame pointer */
1220: 1212 0002A93D ed 6d effffff770 moval (r13),_pre_event_fp
1221: 1213 0002A944 # asm("moval (r14),_pre_event_sp"); /* save the stack pointer */
1222: 1214 0002A944 ed 6e effffff769 moval (r14),_pre_event_sp
1223: 1215 0002A94B # force_loop = FALSE; /* clear the force_loop flag */
1224: 1216 0002A94B 4d effffff763 clrl _force_loop
1225: 1217 0002A951 # index = 0;
1226: 1218 0002A951 4d effffff75d clrl _index
1227: 1219 0002A957 # do
1228: 1220 0002A957 L344:
1229: 1221 0002A957 # {
1230: 1222 0002A957 # sgl_value_1 = cvlf_1_data[index].ld; /* get operand 1 */
1231: 1223 0002A957 0d effffff757 50 movl _index,r0
1232: 1224 0002A95E 48 03 50 50 shll $3,r0,r0
1233: 1225 0002A962 0d e000000000 effffff747 movl _cvlf_1_data(r0),_sgl_value_1
1234: 1226 0002A96D # sgl_expected = cvlf_1_data[index].exp; /* get expected results */
1235: 1227 0002A96D 0d effffff741 50 movl _index,r0
1236: 1228 0002A974 48 03 50 50 shll $3,r0,r0
1237: 1229 0002A978 0d e000000004 effffff731 movl _cvlf_1_data+4(r0),_sgl_expected
1238: 1230 0002A983 # sgl_value_2 = 0x00000000; /* floating '0' */
1239: 1231 0002A983 4d effffff72b clrl _sgl_value_2
1240: 1232 0002A989 # asm("moval _pointer_data,_sgl_value_4");/* init / final SP value */
1241: 1233 0002A989 ed effffff725 effffff720 moval _pointer_data,_sgl_value_4
1242: 1234 0002A994 # /*
1243: 1235 0002A994 # * If LOOP ON ERROR is set, this is the loop for this subtest.
1244: 1236 0002A994 # * The force loop flag is set after the first error.
1245: 1237 0002A994 # */
1246: 1238 0002A994 # asm("_pipe6_9_lp1:");
1247: 1239 0002A994 _pipe6_9_lp1:
1248: 1240 0002A994 # asm("moval _pointer_data,r14"); /* set the stack pointer */
1249: 1241 0002A994 ed effffff71a 5e moval _pointer_data,r14
1250: 1242 0002A99B # asm("movl _sgl_value_2,-(r14)"); /* push a floating '0' */
1251: 1243 0002A99B 0d effffff713 7e movl _sgl_value_2,-(r14)
1252: 1244 0002A9A2 # asm("movl _sgl_value_1,-(r14)"); /* push the operand */
1253: 1245 0002A9A2 0d effffff70c 7e movl _sgl_value_1,-(r14)
1254: 1246 0002A9A9 # asm("movl _sgl_expected,-(r14)"); /* push the expected result*/
1255: 1247 0002A9A9 0d effffff705 7e movl _sgl_expected,-(r14)
1256: 1248 0002A9B0 # asm("movl _sgl_value_2,-(r14)"); /* push a floating '0' */
1257: 1249 0002A9B0 0d effffff6fe 7e movl _sgl_value_2,-(r14)
1258: 1250 0002A9B7 # /*
1259: 1251 0002A9B7 # * now pop the data off the stack
1260: 1252 0002A9B7 # */
1261: 1253 0002A9B7 #
1262: 1254 0002A9B7 # asm("ldf (r14)+"); /* load the '0' value */
1263: 1255 0002A9B7 06 8e ldf (r14)+
1264: 1256 0002A9B9 # asm("addf (r14)+"); /* add the expected result */
1265: 1257 0002A9B9 c6 8e addf (r14)+
1266: 1258 0002A9BB # asm("stf r5"); /* store the result */
1267: 1259 0002A9BB 26 55 stf r5
1268: 1260 0002A9BD # asm("cvlf (r14)+"); /* convert the integer op */
1269: 1261 0002A9BD 76 8e cvlf (r14)+
1270: 1262 0002A9BF # asm("subf (r14)+"); /* subtract a floating '0' */
1271: 1263 0002A9BF d6 8e subf (r14)+
1272: 1264 0002A9C1 # asm("stf r6"); /* store the result */
1273: 1265 0002A9C1 26 56 stf r6
1274: 1266 0002A9C3 # if( force_loop )
1275: 1267 0002A9C3 5d effffff6eb tstl _force_loop
1276: 1268 0002A9C9 31 02 jeql L345
1277: 1269 0002A9CB # asm("brb _pipe6_9_lp1");; /* loop on the error */
1278: 1270 0002A9CB 11 c7 brb _pipe6_9_lp1
1279: 1271 0002A9CD L345:
1280: 1272 0002A9CD # /*
1281: 1273 0002A9CD # * verify the results
1282: 1274 0002A9CD # */
1283: 1275 0002A9CD # asm("movl r5,_sgl_st_acc"); /* get the 1st store value */
1284: 1276 0002A9CD 0d 55 effffff6e0 movl r5,_sgl_st_acc
1285: 1277 0002A9D4 # asm("movl r6,_sgl_value_6"); /* get the 2nd store value */
1286: 1278 0002A9D4 0d 56 effffff6d9 movl r6,_sgl_value_6
1287: 1279 0002A9DB # asm("moval (r14),_sgl_value_5"); /* save the stack pointer */
1288: 1280 0002A9DB ed 6e effffff6d2 moval (r14),_sgl_value_5
1289: 1281 0002A9E2 # if( (sgl_st_acc != sgl_expected) || /* verify the results... */
1290: 1282 0002A9E2 # (sgl_value_6 != sgl_expected) ||
1291: 1283 0002A9E2 # (sgl_value_5 != sgl_value_4) ) /* ... and the final SP */
1292: 1284 0002A9E2 1d effffff6cc effffff6c7 cmpl _sgl_st_acc,_sgl_expected
1293: 1285 0002A9ED 21 1d jneq L9991
1294: 1286 0002A9EF 1d effffff6bf effffff6ba cmpl _sgl_value_6,_sgl_expected
1295: 1287 0002A9FA 21 10 jneq L9991
1296: 1288 0002A9FC 1d effffff6b2 effffff6ad cmpl _sgl_value_5,_sgl_value_4
1297: 1289 0002AA07 21 03 13 0094 jeql L346
1298: 1290 0002AA0C L9991:
1299: 1291 0002AA0C # {
1300: 1292 0002AA0C # asm("movl _pre_event_fp,r13"); /* restore frame pointer */
1301: 1293 0002AA0C 0d effffff6a2 5d movl _pre_event_fp,r13
1302: 1294 0002AA13 # asm("movl _pre_event_sp,r14"); /* restore stack pointer */
1303: 1295 0002AA13 0d effffff69b 5e movl _pre_event_sp,r14
1304: 1296 0002AA1A # errcnt++; /* bump the error count */
1305: 1297 0002AA1A 6d effffff694 incl _errcnt
1306: 1298 0002AA20 # if ( prt_error ) {
1307: 1299 0002AA20 5d effffff68e tstl _prt_error
1308: 1300 0002AA26 31 4e jeql L347
1309: 1301 0002AA28 # print_pipe4_er("POP data from the STACK");
1310: 1302 0002AA28 .data 1
1311: 1303 00000e65 * L349:
1312: 1304 00000e65 * 504F5020646174612066726F6 .ascii "POP data from the STACK\0"
1313: D2074686520535441434B00
1314: 1305 00000e7d * .text
1315: 1306 0002AA28 dd 8f00000e65 pushl $L349
1316: 1307 0002AA2E fe 08 effffff67f callf $8,_print_pipe4_er
1317: 1308 0002AA35 # writes("final Stack Pointer = ");
1318: 1309 0002AA35 .data 1
1319: 1310 00000e7d * L350:
1320: 1311 00000e7d * 66696E616C20537461636B205 .ascii "final Stack Pointer = \0"
1321: 06F696E746572203D2000
1322: 1312 00000e94 * .text
1323: 1313 0002AA35 dd 8f00000e7d pushl $L350
1324: 1314 0002AA3B fe 08 effffff672 callf $8,_writes
1325: 1315 0002AA42 # write32h( sgl_value_5 );
1326: 1316 0002AA42 dd effffff66c pushl _sgl_value_5
1327: 1317 0002AA48 fe 08 effffff665 callf $8,_write32h
1328: 1318 0002AA4F # writes(", expected SP = ");
1329: 1319 0002AA4F .data 1
1330: 1320 00000e94 * L352:
1331: 1321 00000e94 * 2C20206578706563746564205 .ascii ", expected SP = \0"
1332: 350203D2000
1333: 1322 00000ea6 * .text
1334: 1323 0002AA4F dd 8f00000e94 pushl $L352
1335: 1324 0002AA55 fe 08 effffff658 callf $8,_writes
1336: 1325 0002AA5C # write32h( sgl_value_4 );
1337: 1326 0002AA5C dd effffff652 pushl _sgl_value_4
1338: 1327 0002AA62 fe 08 effffff64b callf $8,_write32h
1339: 1328 0002AA69 # writes("\n");
1340: 1329 0002AA69 .data 1
1341: 1330 00000ea6 * L353:
1342: 1331 00000ea6 * 0A00 .ascii "\12\0"
1343: 1332 00000ea8 * .text
1344: 1333 0002AA69 dd 8f00000ea6 pushl $L353
1345: 1334 0002AA6F fe 08 effffff63e callf $8,_writes
1346: 1335 0002AA76 # }
1347: 1336 0002AA76 # if ( halt_flg ) /* halt on error? */
1348: 1337 0002AA76 L347:
1349: 1338 0002AA76 5d effffff638 tstl _halt_flg
1350: 1339 0002AA7C 31 0d jeql L354
1351: 1340 0002AA7E # pipe6_er_hlt( subtest );
1352: 1341 0002AA7E dd effffff630 pushl _subtest
1353: 1342 0002AA84 fe 08 ef00000365 callf $8,_pipe6_er_hlt
1354: 1343 0002AA8B # if ( loop_on_err ) {
1355: 1344 0002AA8B L354:
1356: 1345 0002AA8B 5d effffff623 tstl _loop_on_err
1357: 1346 0002AA91 31 0d jeql L355
1358: 1347 0002AA93 # force_loop = TRUE; /* set the force loop flag */
1359: 1348 0002AA93 0d 01 effffff61a movl $1,_force_loop
1360: 1349 0002AA9A # asm("jmp _pipe6_9_lp1"); /* and loop */
1361: 1350 0002AA9A 71 effffffef4 jmp _pipe6_9_lp1
1362: 1351 0002AAA0 # }
1363: 1352 0002AAA0 # } /* end of compare error */
1364: 1353 0002AAA0 L355:
1365: 1354 0002AAA0 # } while( index++ < max_cvlf_1_index );
1366: 1355 0002AAA0 L346:
1367: 1356 0002AAA0 L343:
1368: 1357 0002AAA0 0d effffff60e 50 movl _index,r0
1369: 1358 0002AAA7 6d effffff607 incl _index
1370: 1359 0002AAAD 1d 50 effffff600 cmpl r0,_max_cvlf_1_index
1371: 1360 0002AAB4 81 03 13 fe9e jlss L344
1372: 1361 0002AAB9 L342:
1373: 1362 0002AAB9 # asm("movl _pre_event_fp,r13"); /* restore the frame pointer */
1374: 1363 0002AAB9 0d effffff5f5 5d movl _pre_event_fp,r13
1375: 1364 0002AAC0 # asm("movl _pre_event_sp,r14"); /* restore the stack pointer */
1376: 1365 0002AAC0 0d effffff5ee 5e movl _pre_event_sp,r14
1377: 1366 0002AAC7 # } /* end of subtest 9 */
1378: 1367 0002AAC7 40 ret#2
1379: 1368 0002AAC8 .set L338,0x0
1380: 1369 0002AAC8 L340:
1381: 1370 0002AAC8 13 fe72 jbr L341
1382: 1371 0002AACB .data
1383: 1372 00000db8 * .text
1384: 1373 0002AACB 00 .align 1
1385: 1374 0002AACC .globl _pipe6_10
1386: 1375 0002AACC _pipe6_10:
1387: 1376 0002AACC 0000 .word L356
1388: 1377 0002AACE #
1389: 1378 0002AACE #
1390: 1379 0002AACE #
1391: 1380 0002AACE #
1392: 1381 0002AACE #
1393: 1382 0002AACE #
1394: 1383 0002AACE # /******************************************************************************
1395: 1384 0002AACE # *
1396: 1385 0002AACE # * SUBTEST 10
1397: 1386 0002AACE # * get data via indexed FRAME pointer
1398: 1387 0002AACE # *
1399: 1388 0002AACE # * ADDR INDEX DATA
1400: 1389 0002AACE # * pointer_data 4 <the 1st STF result goes here>
1401: 1390 0002AACE # * pointer_data-4 3 <the 2nd STF result goes here>
1402: 1391 0002AACE # * pointer_data-8 2 <integer operand>
1403: 1392 0002AACE # * pointer_data-12 1 <floating '0'>
1404: 1393 0002AACE # * pointer_data-16 0 <floating operand> ( point FP here )
1405: 1394 0002AACE # *
1406: 1395 0002AACE # ******************************************************************************/
1407: 1396 0002AACE # pipe6_10()
1408: 1397 0002AACE # {
1409: 1398 0002AACE 13 01d3 jbr L358
1410: 1399 0002AAD1 L359:
1411: 1400 0002AAD1 # asm("moval (r13),_pre_event_fp"); /* save the frame pointer */
1412: 1401 0002AAD1 ed 6d effffff5dc moval (r13),_pre_event_fp
1413: 1402 0002AAD8 # asm("moval (r14),_pre_event_sp"); /* save the stack pointer */
1414: 1403 0002AAD8 ed 6e effffff5d5 moval (r14),_pre_event_sp
1415: 1404 0002AADF # force_loop = FALSE; /* clear the force_loop flag */
1416: 1405 0002AADF 4d effffff5cf clrl _force_loop
1417: 1406 0002AAE5 # index = 0;
1418: 1407 0002AAE5 4d effffff5c9 clrl _index
1419: 1408 0002AAEB # do
1420: 1409 0002AAEB L362:
1421: 1410 0002AAEB # {
1422: 1411 0002AAEB # sgl_value_1 = cvlf_1_data[index].ld; /* get operand 1 */
1423: 1412 0002AAEB 0d effffff5c3 50 movl _index,r0
1424: 1413 0002AAF2 48 03 50 50 shll $3,r0,r0
1425: 1414 0002AAF6 0d e000000000 effffff5b3 movl _cvlf_1_data(r0),_sgl_value_1
1426: 1415 0002AB01 # sgl_expected = cvlf_1_data[index].exp; /* get expected results */
1427: 1416 0002AB01 0d effffff5ad 50 movl _index,r0
1428: 1417 0002AB08 48 03 50 50 shll $3,r0,r0
1429: 1418 0002AB0C 0d e000000004 effffff59d movl _cvlf_1_data+4(r0),_sgl_expected
1430: 1419 0002AB17 # sgl_value_2 = 0x00000000; /* floating '0' */
1431: 1420 0002AB17 4d effffff597 clrl _sgl_value_2
1432: 1421 0002AB1D # asm("moval _pointer_data,_sgl_value_4"); /* get store data's addr */
1433: 1422 0002AB1D ed effffff591 effffff58c moval _pointer_data,_sgl_value_4
1434: 1423 0002AB28 # sgl_value_4 -= 8; /* decrement it by 8 (bytes)*/
1435: 1424 0002AB28 2c 08 effffff585 subl2 $8,_sgl_value_4
1436: 1425 0002AB2F # asm("movl _sgl_value_1,*_sgl_value_4"); /* set the integer op. */
1437: 1426 0002AB2F 0d effffff57f fffffff57a movl _sgl_value_1,*_sgl_value_4
1438: 1427 0002AB3A # sgl_value_4 -= 4; /* decrement it by 4 (bytes)*/
1439: 1428 0002AB3A 2c 04 effffff573 subl2 $4,_sgl_value_4
1440: 1429 0002AB41 # asm("movl _sgl_value_2,*_sgl_value_4"); /* set the floating '0' */
1441: 1430 0002AB41 0d effffff56d fffffff568 movl _sgl_value_2,*_sgl_value_4
1442: 1431 0002AB4C # sgl_value_4 -= 4; /* get FRAME PTR address */
1443: 1432 0002AB4C 2c 04 effffff561 subl2 $4,_sgl_value_4
1444: 1433 0002AB53 # asm("movl _sgl_expected,*_sgl_value_4"); /* set the floating op. */
1445: 1434 0002AB53 0d effffff55b fffffff556 movl _sgl_expected,*_sgl_value_4
1446: 1435 0002AB5E # /*
1447: 1436 0002AB5E # * If LOOP ON ERROR is set, this is the loop for this subtest.
1448: 1437 0002AB5E # * The force loop flag is set after the first error.
1449: 1438 0002AB5E # */
1450: 1439 0002AB5E # asm("_pipe6_10_lp1:");
1451: 1440 0002AB5E _pipe6_10_lp1:
1452: 1441 0002AB5E # asm("movl _sgl_value_4,r13"); /* set the FRAME POINTER */
1453: 1442 0002AB5E 0d effffff550 5d movl _sgl_value_4,r13
1454: 1443 0002AB65 # asm("movl $1,r1"); /* r1 index = 1 ( '0' ) */
1455: 1444 0002AB65 0d 01 51 movl $1,r1
1456: 1445 0002AB68 # asm("movl $2,r2"); /* r2 index = 2 (int. op.) */
1457: 1446 0002AB68 0d 02 52 movl $2,r2
1458: 1447 0002AB6B # asm("movl $3,r3"); /* r3 index = 3 (2nd store) */
1459: 1448 0002AB6B 0d 03 53 movl $3,r3
1460: 1449 0002AB6E # asm("movl $4,r4"); /* r4 index = 4 (1st store) */
1461: 1450 0002AB6E 0d 04 54 movl $4,r4
1462: 1451 0002AB71 # asm("clrl r5"); /* r5 index = 0 (sgl. op.) */
1463: 1452 0002AB71 4d 55 clrl r5
1464: 1453 0002AB73 # asm("ldf (r13)[r1]"); /* load a '0' (indx=1) */
1465: 1454 0002AB73 06 416d ldf (r13)[r1]
1466: 1455 0002AB76 # asm("addf (r13)[r5]"); /* add the operand (indx=0) */
1467: 1456 0002AB76 c6 456d addf (r13)[r5]
1468: 1457 0002AB79 # asm("stf (r13)[r4]"); /* 1st store (indx=4) */
1469: 1458 0002AB79 26 446d stf (r13)[r4]
1470: 1459 0002AB7C # asm("cvlf (r13)[r2]"); /* convert the int (indx=2) */
1471: 1460 0002AB7C 76 426d cvlf (r13)[r2]
1472: 1461 0002AB7F # asm("subf (r13)[r1]"); /* subtract a '0' (indx=1) */
1473: 1462 0002AB7F d6 416d subf (r13)[r1]
1474: 1463 0002AB82 # asm("stf (r13)[r3]"); /* 2nd store (indx=3) */
1475: 1464 0002AB82 26 436d stf (r13)[r3]
1476: 1465 0002AB85 # if( force_loop )
1477: 1466 0002AB85 5d effffff529 tstl _force_loop
1478: 1467 0002AB8B 31 02 jeql L363
1479: 1468 0002AB8D # asm("brb _pipe6_10_lp1");; /* loop on the error */
1480: 1469 0002AB8D 11 cf brb _pipe6_10_lp1
1481: 1470 0002AB8F L363:
1482: 1471 0002AB8F # /*
1483: 1472 0002AB8F # * verify the results
1484: 1473 0002AB8F # */
1485: 1474 0002AB8F # sgl_st_acc = pointer_data; /* save 1st stored value */
1486: 1475 0002AB8F 0d effffff51f effffff51a movl _pointer_data,_sgl_st_acc
1487: 1476 0002AB9A # asm("moval _pointer_data,_sgl_value_5"); /* get addr of 1st stf */
1488: 1477 0002AB9A ed effffff514 effffff50f moval _pointer_data,_sgl_value_5
1489: 1478 0002ABA5 # sgl_value_5 -= 4; /* decrement by 4 (bytes) */
1490: 1479 0002ABA5 2c 04 effffff508 subl2 $4,_sgl_value_5
1491: 1480 0002ABAC # asm("movl *_sgl_value_5,_sgl_value_6"); /* save 2nd store value */
1492: 1481 0002ABAC 0d fffffff502 effffff4fd movl *_sgl_value_5,_sgl_value_6
1493: 1482 0002ABB7 # asm("moval (r13),_sgl_value_5"); /* save the frame pointer */
1494: 1483 0002ABB7 ed 6d effffff4f6 moval (r13),_sgl_value_5
1495: 1484 0002ABBE # if( (sgl_st_acc != sgl_expected) || /* verify the results... */
1496: 1485 0002ABBE # (sgl_value_6 != sgl_expected) ||
1497: 1486 0002ABBE # (sgl_value_5 != sgl_value_4) ) /* ... and the final FP */
1498: 1487 0002ABBE 1d effffff4f0 effffff4eb cmpl _sgl_st_acc,_sgl_expected
1499: 1488 0002ABC9 21 1d jneq L9990
1500: 1489 0002ABCB 1d effffff4e3 effffff4de cmpl _sgl_value_6,_sgl_expected
1501: 1490 0002ABD6 21 10 jneq L9990
1502: 1491 0002ABD8 1d effffff4d6 effffff4d1 cmpl _sgl_value_5,_sgl_value_4
1503: 1492 0002ABE3 21 03 13 0094 jeql L364
1504: 1493 0002ABE8 L9990:
1505: 1494 0002ABE8 # {
1506: 1495 0002ABE8 # asm("movl _pre_event_fp,r13"); /* restore frame pointer */
1507: 1496 0002ABE8 0d effffff4c6 5d movl _pre_event_fp,r13
1508: 1497 0002ABEF # asm("movl _pre_event_sp,r14"); /* restore stack pointer */
1509: 1498 0002ABEF 0d effffff4bf 5e movl _pre_event_sp,r14
1510: 1499 0002ABF6 # errcnt++; /* bump the error count */
1511: 1500 0002ABF6 6d effffff4b8 incl _errcnt
1512: 1501 0002ABFC # if ( prt_error ) {
1513: 1502 0002ABFC 5d effffff4b2 tstl _prt_error
1514: 1503 0002AC02 31 4e jeql L365
1515: 1504 0002AC04 # print_pipe6_er("indexed FP addressing");
1516: 1505 0002AC04 .data 1
1517: 1506 00000ea8 * L366:
1518: 1507 00000ea8 * 696E646578656420465020616 .ascii "indexed FP addressing\0"
1519: 46472657373696E6700
1520: 1508 00000ebe * .text
1521: 1509 0002AC04 dd 8f00000ea8 pushl $L366
1522: 1510 0002AC0A fe 08 ef00000097 callf $8,_print_pipe6_er
1523: 1511 0002AC11 # writes("final Frame Pointer = ");
1524: 1512 0002AC11 .data 1
1525: 1513 00000ebe * L367:
1526: 1514 00000ebe * 66696E616C204672616D65205 .ascii "final Frame Pointer = \0"
1527: 06F696E746572203D2000
1528: 1515 00000ed5 * .text
1529: 1516 0002AC11 dd 8f00000ebe pushl $L367
1530: 1517 0002AC17 fe 08 effffff496 callf $8,_writes
1531: 1518 0002AC1E # writeh( sgl_value_5 );
1532: 1519 0002AC1E dd effffff490 pushl _sgl_value_5
1533: 1520 0002AC24 fe 08 effffff489 callf $8,_writeh
1534: 1521 0002AC2B # writes(", expected FP = ");
1535: 1522 0002AC2B .data 1
1536: 1523 00000ed5 * L369:
1537: 1524 00000ed5 * 2C20206578706563746564204 .ascii ", expected FP = \0"
1538: 650203D2000
1539: 1525 00000ee7 * .text
1540: 1526 0002AC2B dd 8f00000ed5 pushl $L369
1541: 1527 0002AC31 fe 08 effffff47c callf $8,_writes
1542: 1528 0002AC38 # writeh( sgl_value_4 );
1543: 1529 0002AC38 dd effffff476 pushl _sgl_value_4
1544: 1530 0002AC3E fe 08 effffff46f callf $8,_writeh
1545: 1531 0002AC45 # writes("\n");
1546: 1532 0002AC45 .data 1
1547: 1533 00000ee7 * L370:
1548: 1534 00000ee7 * 0A00 .ascii "\12\0"
1549: 1535 00000ee9 * .text
1550: 1536 0002AC45 dd 8f00000ee7 pushl $L370
1551: 1537 0002AC4B fe 08 effffff462 callf $8,_writes
1552: 1538 0002AC52 # }
1553: 1539 0002AC52 # if ( halt_flg ) /* halt on error? */
1554: 1540 0002AC52 L365:
1555: 1541 0002AC52 5d effffff45c tstl _halt_flg
1556: 1542 0002AC58 31 0d jeql L371
1557: 1543 0002AC5A # pipe6_er_hlt( subtest );
1558: 1544 0002AC5A dd effffff454 pushl _subtest
1559: 1545 0002AC60 fe 08 ef00000189 callf $8,_pipe6_er_hlt
1560: 1546 0002AC67 # if ( loop_on_err ) {
1561: 1547 0002AC67 L371:
1562: 1548 0002AC67 5d effffff447 tstl _loop_on_err
1563: 1549 0002AC6D 31 0d jeql L372
1564: 1550 0002AC6F # force_loop = TRUE; /* set the force loop flag */
1565: 1551 0002AC6F 0d 01 effffff43e movl $1,_force_loop
1566: 1552 0002AC76 # asm("jmp _pipe6_10_lp1"); /* and loop */
1567: 1553 0002AC76 71 effffffee2 jmp _pipe6_10_lp1
1568: 1554 0002AC7C # }
1569: 1555 0002AC7C # } /* end of compare error */
1570: 1556 0002AC7C L372:
1571: 1557 0002AC7C # } while( index++ < max_cvlf_1_index );
1572: 1558 0002AC7C L364:
1573: 1559 0002AC7C L361:
1574: 1560 0002AC7C 0d effffff432 50 movl _index,r0
1575: 1561 0002AC83 6d effffff42b incl _index
1576: 1562 0002AC89 1d 50 effffff424 cmpl r0,_max_cvlf_1_index
1577: 1563 0002AC90 81 03 13 fe56 jlss L362
1578: 1564 0002AC95 L360:
1579: 1565 0002AC95 # asm("movl _pre_event_fp,r13"); /* restore the frame pointer */
1580: 1566 0002AC95 0d effffff419 5d movl _pre_event_fp,r13
1581: 1567 0002AC9C # asm("movl _pre_event_sp,r14"); /* restore the stack pointer */
1582: 1568 0002AC9C 0d effffff412 5e movl _pre_event_sp,r14
1583: 1569 0002ACA3 # } /* end of subtest 10 */
1584: 1570 0002ACA3 40 ret#2
1585: 1571 0002ACA4 .set L356,0x0
1586: 1572 0002ACA4 L358:
1587: 1573 0002ACA4 13 fe2a jbr L359
1588: 1574 0002ACA7 .data
1589: 1575 00000db8 * .text
1590: 1576 0002ACA7 00 .align 1
1591: 1577 0002ACA8 .globl _print_pipe6_er
1592: 1578 0002ACA8 _print_pipe6_er:
1593: 1579 0002ACA8 0000 .word L373
1594: 1580 0002ACAA #
1595: 1581 0002ACAA #
1596: 1582 0002ACAA # /******************************************************************************
1597: 1583 0002ACAA # *
1598: 1584 0002ACAA # *
1599: 1585 0002ACAA # * print an error in the following form
1600: 1586 0002ACAA # *
1601: 1587 0002ACAA # * operand 1 = xxxxxxxx, 1st store = xxxxxxxx, data index = dd
1602: 1588 0002ACAA # * operand 2 = xxxxxxxx, 2nd store = xxxxxxxx
1603: 1589 0002ACAA # * expected Acc = xxxxxxxx
1604: 1590 0002ACAA # *
1605: 1591 0002ACAA # ******************************************************************************/
1606: 1592 0002ACAA # print_pipe6_er(msg)
1607: 1593 0002ACAA # char *msg;
1608: 1594 0002ACAA # {
1609: 1595 0002ACAA 13 0140 jbr L375
1610: 1596 0002ACAD L376:
1611: 1597 0002ACAD # writes("\n"); /* start a new print line */
1612: 1598 0002ACAD .data 1
1613: 1599 00000ee9 * L377:
1614: 1600 00000ee9 * 0A00 .ascii "\12\0"
1615: 1601 00000eeb * .text
1616: 1602 0002ACAD dd 8f00000ee9 pushl $L377
1617: 1603 0002ACB3 fe 08 effffff3fa callf $8,_writes
1618: 1604 0002ACBA # writes("cycle: ");
1619: 1605 0002ACBA .data 1
1620: 1606 00000eeb * L378:
1621: 1607 00000eeb * 6379636C653A2000 .ascii "cycle: \0"
1622: 1608 00000ef3 * .text
1623: 1609 0002ACBA dd 8f00000eeb pushl $L378
1624: 1610 0002ACC0 fe 08 effffff3ed callf $8,_writes
1625: 1611 0002ACC7 # writed( cycle );
1626: 1612 0002ACC7 dd effffff3e7 pushl _cycle
1627: 1613 0002ACCD fe 08 effffff3e0 callf $8,_writed
1628: 1614 0002ACD4 # writes(" test ");
1629: 1615 0002ACD4 .data 1
1630: 1616 00000ef3 * L380:
1631: 1617 00000ef3 * 20746573742000 .ascii " test \0"
1632: 1618 00000efa * .text
1633: 1619 0002ACD4 dd 8f00000ef3 pushl $L380
1634: 1620 0002ACDA fe 08 effffff3d3 callf $8,_writes
1635: 1621 0002ACE1 # writed( test_no );
1636: 1622 0002ACE1 dd effffff3cd pushl _test_no
1637: 1623 0002ACE7 fe 08 effffff3c6 callf $8,_writed
1638: 1624 0002ACEE # writes(" (Pipe 6), subtest ");
1639: 1625 0002ACEE .data 1
1640: 1626 00000efa * L381:
1641: 1627 00000efa * 202028506970652036292C207 .ascii " (Pipe 6), subtest \0"
1642: 37562746573742000
1643: 1628 00000f0f * .text
1644: 1629 0002ACEE dd 8f00000efa pushl $L381
1645: 1630 0002ACF4 fe 08 effffff3b9 callf $8,_writes
1646: 1631 0002ACFB # writed( subtest );
1647: 1632 0002ACFB dd effffff3b3 pushl _subtest
1648: 1633 0002AD01 fe 08 effffff3ac callf $8,_writed
1649: 1634 0002AD08 # writes(" error - ");
1650: 1635 0002AD08 .data 1
1651: 1636 00000f0f * L382:
1652: 1637 00000f0f * 206572726F72202D2000 .ascii " error - \0"
1653: 1638 00000f19 * .text
1654: 1639 0002AD08 dd 8f00000f0f pushl $L382
1655: 1640 0002AD0E fe 08 effffff39f callf $8,_writes
1656: 1641 0002AD15 # writes( msg );
1657: 1642 0002AD15 dd ad04 pushl 4(fp)
1658: 1643 0002AD18 fe 08 effffff395 callf $8,_writes
1659: 1644 0002AD1F # writec('\n');
1660: 1645 0002AD1F dd 0a pushl $10
1661: 1646 0002AD21 fe 08 effffff38c callf $8,_writec
1662: 1647 0002AD28 # writes(" LDF(0.0), ADDF(op1), STF, CVLF(op2), SUBF(0.0), STF\n");
1663: 1648 0002AD28 .data 1
1664: 1649 00000f19 * L384:
1665: 1650 00000f19 * 20204C444628302E30292C204 .ascii " LDF(0.0), ADDF(op1), STF, CVLF(op2), SUBF(0.0), STF\12\0"
1666: 1444446286F7031292C205354
1667: 462C2043564C46286F7032292
1668: C205355424628302E30292C20
1669: 5354460A00
1670: 1651 00000f50 * .text
1671: 1652 0002AD28 dd 8f00000f19 pushl $L384
1672: 1653 0002AD2E fe 08 effffff37f callf $8,_writes
1673: 1654 0002AD35 # writes("operand 1 = ");
1674: 1655 0002AD35 .data 1
1675: 1656 00000f50 * L385:
1676: 1657 00000f50 * 6F706572616E642031203D200 .ascii "operand 1 = \0"
1677: 0
1678: 1658 00000f5d * .text
1679: 1659 0002AD35 dd 8f00000f50 pushl $L385
1680: 1660 0002AD3B fe 08 effffff372 callf $8,_writes
1681: 1661 0002AD42 # write32h( sgl_expected );
1682: 1662 0002AD42 dd effffff36c pushl _sgl_expected
1683: 1663 0002AD48 fe 08 effffff365 callf $8,_write32h
1684: 1664 0002AD4F # writes(", 1st store = ");
1685: 1665 0002AD4F .data 1
1686: 1666 00000f5d * L386:
1687: 1667 00000f5d * 2C2020203173742073746F726 .ascii ", 1st store = \0"
1688: 5203D2000
1689: 1668 00000f6e * .text
1690: 1669 0002AD4F dd 8f00000f5d pushl $L386
1691: 1670 0002AD55 fe 08 effffff358 callf $8,_writes
1692: 1671 0002AD5C # write32h( sgl_st_acc );
1693: 1672 0002AD5C dd effffff352 pushl _sgl_st_acc
1694: 1673 0002AD62 fe 08 effffff34b callf $8,_write32h
1695: 1674 0002AD69 # writes(", data index = ");
1696: 1675 0002AD69 .data 1
1697: 1676 00000f6e * L387:
1698: 1677 00000f6e * 2C2020206461746120696E646 .ascii ", data index = \0"
1699: 578203D2000
1700: 1678 00000f80 * .text
1701: 1679 0002AD69 dd 8f00000f6e pushl $L387
1702: 1680 0002AD6F fe 08 effffff33e callf $8,_writes
1703: 1681 0002AD76 # writed( index );
1704: 1682 0002AD76 dd effffff338 pushl _index
1705: 1683 0002AD7C fe 08 effffff331 callf $8,_writed
1706: 1684 0002AD83 # writec('\n');
1707: 1685 0002AD83 dd 0a pushl $10
1708: 1686 0002AD85 fe 08 effffff328 callf $8,_writec
1709: 1687 0002AD8C # writes("operand 2 = ");
1710: 1688 0002AD8C .data 1
1711: 1689 00000f80 * L388:
1712: 1690 00000f80 * 6F706572616E642032203D200 .ascii "operand 2 = \0"
1713: 0
1714: 1691 00000f8d * .text
1715: 1692 0002AD8C dd 8f00000f80 pushl $L388
1716: 1693 0002AD92 fe 08 effffff31b callf $8,_writes
1717: 1694 0002AD99 # write32h( sgl_value_1 );
1718: 1695 0002AD99 dd effffff315 pushl _sgl_value_1
1719: 1696 0002AD9F fe 08 effffff30e callf $8,_write32h
1720: 1697 0002ADA6 # writes(", 2nd store = ");
1721: 1698 0002ADA6 .data 1
1722: 1699 00000f8d * L389:
1723: 1700 00000f8d * 2C202020326E642073746F726 .ascii ", 2nd store = \0"
1724: 5203D2000
1725: 1701 00000f9e * .text
1726: 1702 0002ADA6 dd 8f00000f8d pushl $L389
1727: 1703 0002ADAC fe 08 effffff301 callf $8,_writes
1728: 1704 0002ADB3 # write32h( sgl_value_6 );
1729: 1705 0002ADB3 dd effffff2fb pushl _sgl_value_6
1730: 1706 0002ADB9 fe 08 effffff2f4 callf $8,_write32h
1731: 1707 0002ADC0 # writec('\n');
1732: 1708 0002ADC0 dd 0a pushl $10
1733: 1709 0002ADC2 fe 08 effffff2eb callf $8,_writec
1734: 1710 0002ADC9 # writes(" expected Acc = ");
1735: 1711 0002ADC9 .data 1
1736: 1712 00000f9e * L390:
1737: 1713 00000f9e * 2020202020202020202020202 .ascii " expected Acc = \0"
1738: 0202020202020202065787065
1739: 6374656420416363203D2000
1740: 1714 00000fc3 * .text
1741: 1715 0002ADC9 dd 8f00000f9e pushl $L390
1742: 1716 0002ADCF fe 08 effffff2de callf $8,_writes
1743: 1717 0002ADD6 # write32h( sgl_expected );
1744: 1718 0002ADD6 dd effffff2d8 pushl _sgl_expected
1745: 1719 0002ADDC fe 08 effffff2d1 callf $8,_write32h
1746: 1720 0002ADE3 # writec('\n');
1747: 1721 0002ADE3 dd 0a pushl $10
1748: 1722 0002ADE5 fe 08 effffff2c8 callf $8,_writec
1749: 1723 0002ADEC # }
1750: 1724 0002ADEC 40 ret#2
1751: 1725 0002ADED .set L373,0x0
1752: 1726 0002ADED L375:
1753: 1727 0002ADED 13 febd jbr L376
1754: 1728 0002ADF0 .data
1755: 1729 00000db8 * .text
1756: 1730 0002ADF0 .align 1
1757: 1731 0002ADF0 .globl _pipe6_er_hlt
1758: 1732 0002ADF0 _pipe6_er_hlt:
1759: 1733 0002ADF0 0000 .word L391
1760: 1734 0002ADF2 #
1761: 1735 0002ADF2 #
1762: 1736 0002ADF2 #
1763: 1737 0002ADF2 #
1764: 1738 0002ADF2 #
1765: 1739 0002ADF2 # /******************************************************************************
1766: 1740 0002ADF2 # *
1767: 1741 0002ADF2 # * HALT ON ERROR ROUTINE
1768: 1742 0002ADF2 # *
1769: 1743 0002ADF2 # * halt with the necessary information saved in the registers
1770: 1744 0002ADF2 # *
1771: 1745 0002ADF2 # ******************************************************************************/
1772: 1746 0002ADF2 # pipe6_er_hlt( subtest )
1773: 1747 0002ADF2 # int subtest;
1774: 1748 0002ADF2 # {
1775: 1749 0002ADF2 11 75 jbr L393
1776: 1750 0002ADF4 L394:
1777: 1751 0002ADF4 # asm("movl _test_no,r0"); /* r0 = test number */
1778: 1752 0002ADF4 0d effffff2ba 50 movl _test_no,r0
1779: 1753 0002ADFB # asm("movl _subtest,r1"); /* r1 = subtest number */
1780: 1754 0002ADFB 0d effffff2b3 51 movl _subtest,r1
1781: 1755 0002AE02 # asm("movl $1,r2"); /* r2 = error code */
1782: 1756 0002AE02 0d 01 52 movl $1,r2
1783: 1757 0002AE05 # asm("movl _cycle,r3"); /* r3 = cycle count */
1784: 1758 0002AE05 0d effffff2a9 53 movl _cycle,r3
1785: 1759 0002AE0C # asm("movl _sgl_expected,r4"); /* r4 = 1st operand */
1786: 1760 0002AE0C 0d effffff2a2 54 movl _sgl_expected,r4
1787: 1761 0002AE13 # asm("movl _sgl_value_1,r5"); /* r5 = 2nd operand */
1788: 1762 0002AE13 0d effffff29b 55 movl _sgl_value_1,r5
1789: 1763 0002AE1A # asm("movl _sgl_st_acc,r6"); /* r6 = 1st word stored */
1790: 1764 0002AE1A 0d effffff294 56 movl _sgl_st_acc,r6
1791: 1765 0002AE21 # asm("movl _sgl_value_6,r7"); /* r6 = 2nd word stored */
1792: 1766 0002AE21 0d effffff28d 57 movl _sgl_value_6,r7
1793: 1767 0002AE28 # asm("movl _sgl_expected,r8"); /* r8 = sgl expected */
1794: 1768 0002AE28 0d effffff286 58 movl _sgl_expected,r8
1795: 1769 0002AE2F # asm("movl _index,r9"); /* r9 = data index */
1796: 1770 0002AE2F 0d effffff27f 59 movl _index,r9
1797: 1771 0002AE36 # asm("movl _sgl_value_2,r10"); /* r10 = floating zero */
1798: 1772 0002AE36 0d effffff278 5a movl _sgl_value_2,r10
1799: 1773 0002AE3D # if( subtest == 9 ) {
1800: 1774 0002AE3D 1d ad04 09 cmpl 4(fp),$9
1801: 1775 0002AE41 21 10 jneq L395
1802: 1776 0002AE43 # asm("movl _sgl_value_5,r11"); /* r11= final SP value */
1803: 1777 0002AE43 0d effffff26b 5b movl _sgl_value_5,r11
1804: 1778 0002AE4A # asm("movl _sgl_value_4,r12"); /* r12= expected SP value */
1805: 1779 0002AE4A 0d effffff264 5c movl _sgl_value_4,r12
1806: 1780 0002AE51 # } else
1807: 1781 0002AE51 11 14 jbr L396
1808: 1782 0002AE53 L395:
1809: 1783 0002AE53 # if( subtest == 10 ) {
1810: 1784 0002AE53 1d ad04 0a cmpl 4(fp),$10
1811: 1785 0002AE57 21 0e jneq L397
1812: 1786 0002AE59 # asm("movl _sgl_value_5,r11"); /* r11= final FP value */
1813: 1787 0002AE59 0d effffff255 5b movl _sgl_value_5,r11
1814: 1788 0002AE60 # asm("movl _sgl_value_4,r12"); /* r12= expected FP value */
1815: 1789 0002AE60 0d effffff24e 5c movl _sgl_value_4,r12
1816: 1790 0002AE67 # };
1817: 1791 0002AE67 L397:
1818: 1792 0002AE67 L396:
1819: 1793 0002AE67 # asm(".globl _pipe6_1_hlt");
1820: 1794 0002AE67 .globl _pipe6_1_hlt
1821: 1795 0002AE67 # asm("_pipe6_1_hlt:"); /* PC after the halt */
1822: 1796 0002AE67 _pipe6_1_hlt:
1823: 1797 0002AE67 # asm("halt"); /* HALT ... */
1824: 1798 0002AE67 00 halt
1825: 1799 0002AE68 # } /* end of halt on error */
1826: 1800 0002AE68 40 ret#2
1827: 1801 0002AE69 .set L391,0x0
1828: 1802 0002AE69 L393:
1829: 1803 0002AE69 11 89 jbr L394
1830: 1804 0002AE6B .data
1831: 1804 00054F1F .data
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.