|
|
1.1 root 1: 1 00000000 LL0:
2: 2 00000000 .data
3: 3 000005a8 * .text
4: 4 00000000 .align 1
5: 5 00000000 .globl _pipe_11
6: 6 00000000 _pipe_11:
7: 7 0002CF54 0000 .word L215
8: 8 0002CF56 # #include "fpp_defs.h"
9: 9 0002CF56 #
10: 10 0002CF56 #
11: 11 0002CF56 # /*****************************************************************************
12: 12 0002CF56 # *
13: 13 0002CF56 # * PIPELINE TEST #11 MONITOR
14: 14 0002CF56 # *
15: 15 0002CF56 # * This test will do a series of 2, 3, 4, 5, and 6 NEGFs.
16: 16 0002CF56 # *
17: 17 0002CF56 # *****************************************************************************/
18: 18 0002CF56 # pipe_11()
19: 19 0002CF56 # {
20: 20 0002CF56 11 48 jbr L217
21: 21 0002CF58 L218:
22: 22 0002CF58 # asm(".globl _pipeline_11_t");
23: 23 0002CF58 .globl _pipeline_11_t
24: 24 0002CF58 # asm("_pipeline_11_t:"); /* entry address */
25: 25 0002CF58 _pipeline_11_t:
26: 26 0002CF58 # if( (cycle == 1) && (prt_hdrs) ) /* print headers on 1st cycle */
27: 27 0002CF58 1d effffffff6 01 cmpl _cycle,$1
28: 28 0002CF5F 21 15 jneq L219
29: 29 0002CF61 5d efffffffed tstl _prt_hdrs
30: 30 0002CF67 31 0d jeql L219
31: 31 0002CF69 # {
32: 32 0002CF69 # writes(" PIPE_11");
33: 33 0002CF69 .data 1
34: 34 000005a8 * L221:
35: 35 000005a8 * 20504950455F313100 .ascii " PIPE_11\0"
36: 36 000005b1 * .text
37: 37 0002CF69 dd 8f000005a8 pushl $L221
38: 38 0002CF6F fe 08 efffffffde callf $8,_writes
39: 39 0002CF76 # }
40: 40 0002CF76 # pipe11_1(); /* do 2 NEGFs */
41: 41 0002CF76 L219:
42: 42 0002CF76 fe 04 ef00000025 callf $4,_pipe11_1
43: 43 0002CF7D # pipe11_2(); /* do 3 NEGFs */
44: 44 0002CF7D fe 04 ef000000e2 callf $4,_pipe11_2
45: 45 0002CF84 # pipe11_3(); /* do 4 NEGFs */
46: 46 0002CF84 fe 04 ef000001b3 callf $4,_pipe11_3
47: 47 0002CF8B # pipe11_4(); /* do 5 NEGFs */
48: 48 0002CF8B fe 04 ef00000272 callf $4,_pipe11_4
49: 49 0002CF92 # pipe11_5(); /* do 6 NEGFs */
50: 50 0002CF92 fe 04 ef00000345 callf $4,_pipe11_5
51: 51 0002CF99 # asm("jmp *return"); /* return to the test monitor */
52: 52 0002CF99 71 ffffffffb5 jmp *return
53: 53 0002CF9F # }
54: 54 0002CF9F 40 ret#2
55: 55 0002CFA0 .set L215,0x0
56: 56 0002CFA0 L217:
57: 57 0002CFA0 11 b6 jbr L218
58: 58 0002CFA2 .data
59: 59 000005a8 * .text
60: 60 0002CFA2 .align 1
61: 61 0002CFA2 .globl _pipe11_1
62: 62 0002CFA2 _pipe11_1:
63: 63 0002CFA2 0000 .word L227
64: 64 0002CFA4 #
65: 65 0002CFA4 #
66: 66 0002CFA4 #
67: 67 0002CFA4 #
68: 68 0002CFA4 #
69: 69 0002CFA4 #
70: 70 0002CFA4 # /************************************************************************
71: 71 0002CFA4 # *
72: 72 0002CFA4 # * SUBTEST 1 : 2 NEGFs
73: 73 0002CFA4 # *
74: 74 0002CFA4 # ************************************************************************/
75: 75 0002CFA4 # pipe11_1()
76: 76 0002CFA4 # {
77: 77 0002CFA4 13 00bb jbr L229
78: 78 0002CFA7 L230:
79: 79 0002CFA7 # subtest = 1;
80: 80 0002CFA7 0d 01 efffffffa6 movl $1,_subtest
81: 81 0002CFAE # force_loop = FALSE;
82: 82 0002CFAE 4d efffffffa0 clrl _force_loop
83: 83 0002CFB4 # for( index = 0; index < max_ldf_1_index; index++ )
84: 84 0002CFB4 4d efffffff9a clrl _index
85: 85 0002CFBA L233:
86: 86 0002CFBA 1d efffffff94 efffffff8f cmpl _index,_max_ldf_1_index
87: 87 0002CFC5 91 03 13 0097 jgeq L232
88: 88 0002CFCA # {
89: 89 0002CFCA # sgl_value_1 = ldf_1_data[index].ld; /* get operand 1 */
90: 90 0002CFCA 0d efffffff84 50 movl _index,r0
91: 91 0002CFD1 48 03 50 50 shll $3,r0,r0
92: 92 0002CFD5 0d e000000000 efffffff74 movl _ldf_1_data(r0),_sgl_value_1
93: 93 0002CFE0 # sgl_expected = ldf_1_data[index].exp; /* get expected results */
94: 94 0002CFE0 0d efffffff6e 50 movl _index,r0
95: 95 0002CFE7 48 03 50 50 shll $3,r0,r0
96: 96 0002CFEB 0d e000000004 efffffff5e movl _ldf_1_data+4(r0),_sgl_expected
97: 97 0002CFF6 # /*
98: 98 0002CFF6 # * If LOOP ON ERROR is set, this is the loop for this subtest.
99: 99 0002CFF6 # * The force loop flag is set after the first error.
100: 100 0002CFF6 # */
101: 101 0002CFF6 # asm("_pipe11_1_lp1:");
102: 102 0002CFF6 _pipe11_1_lp1:
103: 103 0002CFF6 # asm("ldf _sgl_value_1"); /* load the operand */
104: 104 0002CFF6 06 efffffff58 ldf _sgl_value_1
105: 105 0002CFFC # asm("negf"); /* negate it ( twice ) */
106: 106 0002CFFC b6 negf
107: 107 0002CFFD # asm("negf");
108: 108 0002CFFD b6 negf
109: 109 0002CFFE # asm("stf _sgl_st_acc"); /* store the result */
110: 110 0002CFFE 26 efffffff50 stf _sgl_st_acc
111: 111 0002D004 # if( force_loop )
112: 112 0002D004 5d efffffff4a tstl _force_loop
113: 113 0002D00A 31 02 jeql L234
114: 114 0002D00C # asm("brb _pipe11_1_lp1"); /* loop on an error */
115: 115 0002D00C 11 e8 brb _pipe11_1_lp1
116: 116 0002D00E # /*
117: 117 0002D00E # * verify the results
118: 118 0002D00E # */
119: 119 0002D00E # if( sgl_st_acc != sgl_expected ) { /* COMPARE the values */
120: 120 0002D00E L234:
121: 121 0002D00E 1d efffffff40 efffffff3b cmpl _sgl_st_acc,_sgl_expected
122: 122 0002D019 31 3d jeql L235
123: 123 0002D01B # errcnt++; /* bump the error count */
124: 124 0002D01B 6d efffffff33 incl _errcnt
125: 125 0002D021 # if( prt_error )
126: 126 0002D021 5d efffffff2d tstl _prt_error
127: 127 0002D027 31 09 jeql L236
128: 128 0002D029 # pipe11_print( 2 ); /* print error msg -2 NEGFS*/
129: 129 0002D029 dd 02 pushl $2
130: 130 0002D02B fe 08 ef00000374 callf $8,_pipe11_print
131: 131 0002D032 # if( halt_flg ) /* halt on error? */
132: 132 0002D032 L236:
133: 133 0002D032 5d efffffff1c tstl _halt_flg
134: 134 0002D038 31 09 jeql L238
135: 135 0002D03A # pipe11_halt( 2 ); /* error halt -2 NEGFS */
136: 136 0002D03A dd 02 pushl $2
137: 137 0002D03C fe 08 ef0000046b callf $8,_pipe11_halt
138: 138 0002D043 # if( loop_on_err ) {
139: 139 0002D043 L238:
140: 140 0002D043 5d efffffff0b tstl _loop_on_err
141: 141 0002D049 31 0d jeql L240
142: 142 0002D04B # force_loop = TRUE; /* set the force loop flag */
143: 143 0002D04B 0d 01 efffffff02 movl $1,_force_loop
144: 144 0002D052 # asm("jmp _pipe11_1_lp1"); /* and loop */
145: 145 0002D052 71 efffffff9e jmp _pipe11_1_lp1
146: 146 0002D058 # }
147: 147 0002D058 # }
148: 148 0002D058 L240:
149: 149 0002D058 # } /* end of FOR loop */
150: 150 0002D058 L235:
151: 151 0002D058 L231:
152: 152 0002D058 6d effffffef6 incl _index
153: 153 0002D05E 13 ff59 jbr L233
154: 154 0002D061 L232:
155: 155 0002D061 # } /* end of subtest 1 */
156: 156 0002D061 40 ret#2
157: 157 0002D062 .set L227,0x0
158: 158 0002D062 L229:
159: 159 0002D062 13 ff42 jbr L230
160: 160 0002D065 .data
161: 161 000005a8 * .text
162: 162 0002D065 00 .align 1
163: 163 0002D066 .globl _pipe11_2
164: 164 0002D066 _pipe11_2:
165: 165 0002D066 0000 .word L241
166: 166 0002D068 #
167: 167 0002D068 #
168: 168 0002D068 #
169: 169 0002D068 #
170: 170 0002D068 #
171: 171 0002D068 # /************************************************************************
172: 172 0002D068 # *
173: 173 0002D068 # * SUBTEST 2 : 3 NEGFs
174: 174 0002D068 # *
175: 175 0002D068 # ************************************************************************/
176: 176 0002D068 # pipe11_2()
177: 177 0002D068 # {
178: 178 0002D068 13 00cf jbr L243
179: 179 0002D06B L244:
180: 180 0002D06B # subtest = 2;
181: 181 0002D06B 0d 02 effffffee2 movl $2,_subtest
182: 182 0002D072 # force_loop = FALSE;
183: 183 0002D072 4d effffffedc clrl _force_loop
184: 184 0002D078 # for( index = 0; index < max_ldf_1_index; index++ )
185: 185 0002D078 4d effffffed6 clrl _index
186: 186 0002D07E L247:
187: 187 0002D07E 1d effffffed0 effffffecb cmpl _index,_max_ldf_1_index
188: 188 0002D089 91 03 13 00ab jgeq L246
189: 189 0002D08E # {
190: 190 0002D08E # sgl_value_1 = ldf_1_data[index].ld; /* get operand 1 */
191: 191 0002D08E 0d effffffec0 50 movl _index,r0
192: 192 0002D095 48 03 50 50 shll $3,r0,r0
193: 193 0002D099 0d e000000000 effffffeb0 movl _ldf_1_data(r0),_sgl_value_1
194: 194 0002D0A4 # sgl_expected = ldf_1_data[index].exp; /* get expected results */
195: 195 0002D0A4 0d effffffeaa 50 movl _index,r0
196: 196 0002D0AB 48 03 50 50 shll $3,r0,r0
197: 197 0002D0AF 0d e000000004 effffffe9a movl _ldf_1_data+4(r0),_sgl_expected
198: 198 0002D0BA # if( sgl_expected )
199: 199 0002D0BA 5d effffffe94 tstl _sgl_expected
200: 200 0002D0C0 31 0b jeql L248
201: 201 0002D0C2 # sgl_expected ^= 0x80000000; /* negate exptd results */
202: 202 0002D0C2 cc 8f80000000 effffffe87 xorl2 $-2147483648,_sgl_expected
203: 203 0002D0CD # /*
204: 204 0002D0CD # * If LOOP ON ERROR is set, this is the loop for this subtest.
205: 205 0002D0CD # * The force loop flag is set after the first error.
206: 206 0002D0CD # */
207: 207 0002D0CD # asm("_pipe11_2_lp1:");
208: 208 0002D0CD L248:
209: 209 0002D0CD _pipe11_2_lp1:
210: 210 0002D0CD # asm("ldf _sgl_value_1"); /* load the operand */
211: 211 0002D0CD 06 effffffe81 ldf _sgl_value_1
212: 212 0002D0D3 # asm("negf"); /* negate it ( 3 times ) */
213: 213 0002D0D3 b6 negf
214: 214 0002D0D4 # asm("negf");
215: 215 0002D0D4 b6 negf
216: 216 0002D0D5 # asm("negf");
217: 217 0002D0D5 b6 negf
218: 218 0002D0D6 # asm("stf _sgl_st_acc"); /* store the result */
219: 219 0002D0D6 26 effffffe78 stf _sgl_st_acc
220: 220 0002D0DC # if( force_loop )
221: 221 0002D0DC 5d effffffe72 tstl _force_loop
222: 222 0002D0E2 31 02 jeql L249
223: 223 0002D0E4 # asm("brb _pipe11_2_lp1"); /* loop on an error */
224: 224 0002D0E4 11 e7 brb _pipe11_2_lp1
225: 225 0002D0E6 # /*
226: 226 0002D0E6 # * verify the results
227: 227 0002D0E6 # */
228: 228 0002D0E6 # if( sgl_st_acc != sgl_expected ) { /* COMPARE the values */
229: 229 0002D0E6 L249:
230: 230 0002D0E6 1d effffffe68 effffffe63 cmpl _sgl_st_acc,_sgl_expected
231: 231 0002D0F1 31 3d jeql L250
232: 232 0002D0F3 # errcnt++; /* bump the error count */
233: 233 0002D0F3 6d effffffe5b incl _errcnt
234: 234 0002D0F9 # if( prt_error )
235: 235 0002D0F9 5d effffffe55 tstl _prt_error
236: 236 0002D0FF 31 09 jeql L251
237: 237 0002D101 # pipe11_print( 3 ); /* print error msg -3 NEGFS*/
238: 238 0002D101 dd 03 pushl $3
239: 239 0002D103 fe 08 ef0000029c callf $8,_pipe11_print
240: 240 0002D10A # if( halt_flg ) /* halt on error? */
241: 241 0002D10A L251:
242: 242 0002D10A 5d effffffe44 tstl _halt_flg
243: 243 0002D110 31 09 jeql L252
244: 244 0002D112 # pipe11_halt( 3 ); /* error halt -3 NEGFS */
245: 245 0002D112 dd 03 pushl $3
246: 246 0002D114 fe 08 ef00000393 callf $8,_pipe11_halt
247: 247 0002D11B # if( loop_on_err ) {
248: 248 0002D11B L252:
249: 249 0002D11B 5d effffffe33 tstl _loop_on_err
250: 250 0002D121 31 0d jeql L253
251: 251 0002D123 # force_loop = TRUE; /* set the force loop flag */
252: 252 0002D123 0d 01 effffffe2a movl $1,_force_loop
253: 253 0002D12A # asm("jmp _pipe11_2_lp1"); /* and loop */
254: 254 0002D12A 71 efffffff9d jmp _pipe11_2_lp1
255: 255 0002D130 # }
256: 256 0002D130 # }
257: 257 0002D130 L253:
258: 258 0002D130 # } /* end of FOR loop */
259: 259 0002D130 L250:
260: 260 0002D130 L245:
261: 261 0002D130 6d effffffe1e incl _index
262: 262 0002D136 13 ff45 jbr L247
263: 263 0002D139 L246:
264: 264 0002D139 # } /* end of subtest 2 */
265: 265 0002D139 40 ret#2
266: 266 0002D13A .set L241,0x0
267: 267 0002D13A L243:
268: 268 0002D13A 13 ff2e jbr L244
269: 269 0002D13D .data
270: 270 000005a8 * .text
271: 271 0002D13D 00 .align 1
272: 272 0002D13E .globl _pipe11_3
273: 273 0002D13E _pipe11_3:
274: 274 0002D13E 0000 .word L254
275: 275 0002D140 #
276: 276 0002D140 #
277: 277 0002D140 #
278: 278 0002D140 #
279: 279 0002D140 #
280: 280 0002D140 # /************************************************************************
281: 281 0002D140 # *
282: 282 0002D140 # * SUBTEST 3 : 4 NEGFs
283: 283 0002D140 # *
284: 284 0002D140 # ************************************************************************/
285: 285 0002D140 # pipe11_3()
286: 286 0002D140 # {
287: 287 0002D140 13 00bd jbr L256
288: 288 0002D143 L257:
289: 289 0002D143 # subtest = 3;
290: 290 0002D143 0d 03 effffffe0a movl $3,_subtest
291: 291 0002D14A # force_loop = FALSE;
292: 292 0002D14A 4d effffffe04 clrl _force_loop
293: 293 0002D150 # for( index = 0; index < max_ldf_1_index; index++ )
294: 294 0002D150 4d effffffdfe clrl _index
295: 295 0002D156 L260:
296: 296 0002D156 1d effffffdf8 effffffdf3 cmpl _index,_max_ldf_1_index
297: 297 0002D161 91 03 13 0099 jgeq L259
298: 298 0002D166 # {
299: 299 0002D166 # sgl_value_1 = ldf_1_data[index].ld; /* get operand 1 */
300: 300 0002D166 0d effffffde8 50 movl _index,r0
301: 301 0002D16D 48 03 50 50 shll $3,r0,r0
302: 302 0002D171 0d e000000000 effffffdd8 movl _ldf_1_data(r0),_sgl_value_1
303: 303 0002D17C # sgl_expected = ldf_1_data[index].exp; /* get expected results */
304: 304 0002D17C 0d effffffdd2 50 movl _index,r0
305: 305 0002D183 48 03 50 50 shll $3,r0,r0
306: 306 0002D187 0d e000000004 effffffdc2 movl _ldf_1_data+4(r0),_sgl_expected
307: 307 0002D192 # /*
308: 308 0002D192 # * If LOOP ON ERROR is set, this is the loop for this subtest.
309: 309 0002D192 # * The force loop flag is set after the first error.
310: 310 0002D192 # */
311: 311 0002D192 # asm("_pipe11_3_lp1:");
312: 312 0002D192 _pipe11_3_lp1:
313: 313 0002D192 # asm("ldf _sgl_value_1"); /* load the operand */
314: 314 0002D192 06 effffffdbc ldf _sgl_value_1
315: 315 0002D198 # asm("negf"); /* negate it ( 4 times ) */
316: 316 0002D198 b6 negf
317: 317 0002D199 # asm("negf");
318: 318 0002D199 b6 negf
319: 319 0002D19A # asm("negf");
320: 320 0002D19A b6 negf
321: 321 0002D19B # asm("negf");
322: 322 0002D19B b6 negf
323: 323 0002D19C # asm("stf _sgl_st_acc"); /* store the result */
324: 324 0002D19C 26 effffffdb2 stf _sgl_st_acc
325: 325 0002D1A2 # if( force_loop )
326: 326 0002D1A2 5d effffffdac tstl _force_loop
327: 327 0002D1A8 31 02 jeql L261
328: 328 0002D1AA # asm("brb _pipe11_3_lp1"); /* loop on an error */
329: 329 0002D1AA 11 e6 brb _pipe11_3_lp1
330: 330 0002D1AC # /*
331: 331 0002D1AC # * verify the results
332: 332 0002D1AC # */
333: 333 0002D1AC # if( sgl_st_acc != sgl_expected ) { /* COMPARE the values */
334: 334 0002D1AC L261:
335: 335 0002D1AC 1d effffffda2 effffffd9d cmpl _sgl_st_acc,_sgl_expected
336: 336 0002D1B7 31 3d jeql L262
337: 337 0002D1B9 # errcnt++; /* bump the error count */
338: 338 0002D1B9 6d effffffd95 incl _errcnt
339: 339 0002D1BF # if( prt_error )
340: 340 0002D1BF 5d effffffd8f tstl _prt_error
341: 341 0002D1C5 31 09 jeql L263
342: 342 0002D1C7 # pipe11_print( 4 ); /* print error msg -4 NEGFS*/
343: 343 0002D1C7 dd 04 pushl $4
344: 344 0002D1C9 fe 08 ef000001d6 callf $8,_pipe11_print
345: 345 0002D1D0 # if( halt_flg ) /* halt on error? */
346: 346 0002D1D0 L263:
347: 347 0002D1D0 5d effffffd7e tstl _halt_flg
348: 348 0002D1D6 31 09 jeql L264
349: 349 0002D1D8 # pipe11_halt( 4 ); /* error halt -4 NEGFS */
350: 350 0002D1D8 dd 04 pushl $4
351: 351 0002D1DA fe 08 ef000002cd callf $8,_pipe11_halt
352: 352 0002D1E1 # if( loop_on_err ) {
353: 353 0002D1E1 L264:
354: 354 0002D1E1 5d effffffd6d tstl _loop_on_err
355: 355 0002D1E7 31 0d jeql L265
356: 356 0002D1E9 # force_loop = TRUE; /* set the force loop flag */
357: 357 0002D1E9 0d 01 effffffd64 movl $1,_force_loop
358: 358 0002D1F0 # asm("jmp _pipe11_3_lp1"); /* and loop */
359: 359 0002D1F0 71 efffffff9c jmp _pipe11_3_lp1
360: 360 0002D1F6 # }
361: 361 0002D1F6 # }
362: 362 0002D1F6 L265:
363: 363 0002D1F6 # } /* end of FOR loop */
364: 364 0002D1F6 L262:
365: 365 0002D1F6 L258:
366: 366 0002D1F6 6d effffffd58 incl _index
367: 367 0002D1FC 13 ff57 jbr L260
368: 368 0002D1FF L259:
369: 369 0002D1FF # } /* end of subtest 3 */
370: 370 0002D1FF 40 ret#2
371: 371 0002D200 .set L254,0x0
372: 372 0002D200 L256:
373: 373 0002D200 13 ff40 jbr L257
374: 374 0002D203 .data
375: 375 000005a8 * .text
376: 376 0002D203 00 .align 1
377: 377 0002D204 .globl _pipe11_4
378: 378 0002D204 _pipe11_4:
379: 379 0002D204 0000 .word L266
380: 380 0002D206 #
381: 381 0002D206 #
382: 382 0002D206 #
383: 383 0002D206 #
384: 384 0002D206 #
385: 385 0002D206 #
386: 386 0002D206 # /************************************************************************
387: 387 0002D206 # *
388: 388 0002D206 # * SUBTEST 4 : 5 NEGFs
389: 389 0002D206 # *
390: 390 0002D206 # ************************************************************************/
391: 391 0002D206 # pipe11_4()
392: 392 0002D206 # {
393: 393 0002D206 13 00d1 jbr L268
394: 394 0002D209 L269:
395: 395 0002D209 # subtest = 4;
396: 396 0002D209 0d 04 effffffd44 movl $4,_subtest
397: 397 0002D210 # force_loop = FALSE;
398: 398 0002D210 4d effffffd3e clrl _force_loop
399: 399 0002D216 # for( index = 0; index < max_ldf_1_index; index++ )
400: 400 0002D216 4d effffffd38 clrl _index
401: 401 0002D21C L272:
402: 402 0002D21C 1d effffffd32 effffffd2d cmpl _index,_max_ldf_1_index
403: 403 0002D227 91 03 13 00ad jgeq L271
404: 404 0002D22C # {
405: 405 0002D22C # sgl_value_1 = ldf_1_data[index].ld; /* get operand 1 */
406: 406 0002D22C 0d effffffd22 50 movl _index,r0
407: 407 0002D233 48 03 50 50 shll $3,r0,r0
408: 408 0002D237 0d e000000000 effffffd12 movl _ldf_1_data(r0),_sgl_value_1
409: 409 0002D242 # sgl_expected = ldf_1_data[index].exp; /* get expected results */
410: 410 0002D242 0d effffffd0c 50 movl _index,r0
411: 411 0002D249 48 03 50 50 shll $3,r0,r0
412: 412 0002D24D 0d e000000004 effffffcfc movl _ldf_1_data+4(r0),_sgl_expected
413: 413 0002D258 # if( sgl_expected )
414: 414 0002D258 5d effffffcf6 tstl _sgl_expected
415: 415 0002D25E 31 0b jeql L273
416: 416 0002D260 # sgl_expected ^= 0x80000000; /* negate exptd results */
417: 417 0002D260 cc 8f80000000 effffffce9 xorl2 $-2147483648,_sgl_expected
418: 418 0002D26B # /*
419: 419 0002D26B # * If LOOP ON ERROR is set, this is the loop for this subtest.
420: 420 0002D26B # * The force loop flag is set after the first error.
421: 421 0002D26B # */
422: 422 0002D26B # asm("_pipe11_4_lp1:");
423: 423 0002D26B L273:
424: 424 0002D26B _pipe11_4_lp1:
425: 425 0002D26B # asm("ldf _sgl_value_1"); /* load the operand */
426: 426 0002D26B 06 effffffce3 ldf _sgl_value_1
427: 427 0002D271 # asm("negf"); /* negate it ( 5 times ) */
428: 428 0002D271 b6 negf
429: 429 0002D272 # asm("negf");
430: 430 0002D272 b6 negf
431: 431 0002D273 # asm("negf");
432: 432 0002D273 b6 negf
433: 433 0002D274 # asm("negf");
434: 434 0002D274 b6 negf
435: 435 0002D275 # asm("negf");
436: 436 0002D275 b6 negf
437: 437 0002D276 # asm("stf _sgl_st_acc"); /* store the result */
438: 438 0002D276 26 effffffcd8 stf _sgl_st_acc
439: 439 0002D27C # if( force_loop )
440: 440 0002D27C 5d effffffcd2 tstl _force_loop
441: 441 0002D282 31 02 jeql L274
442: 442 0002D284 # asm("brb _pipe11_4_lp1"); /* loop on an error */
443: 443 0002D284 11 e5 brb _pipe11_4_lp1
444: 444 0002D286 # /*
445: 445 0002D286 # * verify the results
446: 446 0002D286 # */
447: 447 0002D286 # if( sgl_st_acc != sgl_expected ) { /* COMPARE the values */
448: 448 0002D286 L274:
449: 449 0002D286 1d effffffcc8 effffffcc3 cmpl _sgl_st_acc,_sgl_expected
450: 450 0002D291 31 3d jeql L275
451: 451 0002D293 # errcnt++; /* bump the error count */
452: 452 0002D293 6d effffffcbb incl _errcnt
453: 453 0002D299 # if( prt_error )
454: 454 0002D299 5d effffffcb5 tstl _prt_error
455: 455 0002D29F 31 09 jeql L276
456: 456 0002D2A1 # pipe11_print( 5 ); /* print error msg -5 NEGFS*/
457: 457 0002D2A1 dd 05 pushl $5
458: 458 0002D2A3 fe 08 ef000000fc callf $8,_pipe11_print
459: 459 0002D2AA # if( halt_flg ) /* halt on error? */
460: 460 0002D2AA L276:
461: 461 0002D2AA 5d effffffca4 tstl _halt_flg
462: 462 0002D2B0 31 09 jeql L277
463: 463 0002D2B2 # pipe11_halt( 5 ); /* error halt -5 NEGFS */
464: 464 0002D2B2 dd 05 pushl $5
465: 465 0002D2B4 fe 08 ef000001f3 callf $8,_pipe11_halt
466: 466 0002D2BB # if( loop_on_err ) {
467: 467 0002D2BB L277:
468: 468 0002D2BB 5d effffffc93 tstl _loop_on_err
469: 469 0002D2C1 31 0d jeql L278
470: 470 0002D2C3 # force_loop = TRUE; /* set the force loop flag */
471: 471 0002D2C3 0d 01 effffffc8a movl $1,_force_loop
472: 472 0002D2CA # asm("jmp _pipe11_4_lp1"); /* and loop */
473: 473 0002D2CA 71 efffffff9b jmp _pipe11_4_lp1
474: 474 0002D2D0 # }
475: 475 0002D2D0 # }
476: 476 0002D2D0 L278:
477: 477 0002D2D0 # } /* end of FOR loop */
478: 478 0002D2D0 L275:
479: 479 0002D2D0 L270:
480: 480 0002D2D0 6d effffffc7e incl _index
481: 481 0002D2D6 13 ff43 jbr L272
482: 482 0002D2D9 L271:
483: 483 0002D2D9 # } /* end of subtest 4 */
484: 484 0002D2D9 40 ret#2
485: 485 0002D2DA .set L266,0x0
486: 486 0002D2DA L268:
487: 487 0002D2DA 13 ff2c jbr L269
488: 488 0002D2DD .data
489: 489 000005a8 * .text
490: 490 0002D2DD 00 .align 1
491: 491 0002D2DE .globl _pipe11_5
492: 492 0002D2DE _pipe11_5:
493: 493 0002D2DE 0000 .word L279
494: 494 0002D2E0 #
495: 495 0002D2E0 #
496: 496 0002D2E0 #
497: 497 0002D2E0 #
498: 498 0002D2E0 #
499: 499 0002D2E0 # /************************************************************************
500: 500 0002D2E0 # *
501: 501 0002D2E0 # * SUBTEST 5 : 6 NEGFs
502: 502 0002D2E0 # *
503: 503 0002D2E0 # ************************************************************************/
504: 504 0002D2E0 # pipe11_5()
505: 505 0002D2E0 # {
506: 506 0002D2E0 13 00bf jbr L281
507: 507 0002D2E3 L282:
508: 508 0002D2E3 # subtest = 5;
509: 509 0002D2E3 0d 05 effffffc6a movl $5,_subtest
510: 510 0002D2EA # force_loop = FALSE;
511: 511 0002D2EA 4d effffffc64 clrl _force_loop
512: 512 0002D2F0 # for( index = 0; index < max_ldf_1_index; index++ )
513: 513 0002D2F0 4d effffffc5e clrl _index
514: 514 0002D2F6 L285:
515: 515 0002D2F6 1d effffffc58 effffffc53 cmpl _index,_max_ldf_1_index
516: 516 0002D301 91 03 13 009b jgeq L284
517: 517 0002D306 # {
518: 518 0002D306 # sgl_value_1 = ldf_1_data[index].ld; /* get operand 1 */
519: 519 0002D306 0d effffffc48 50 movl _index,r0
520: 520 0002D30D 48 03 50 50 shll $3,r0,r0
521: 521 0002D311 0d e000000000 effffffc38 movl _ldf_1_data(r0),_sgl_value_1
522: 522 0002D31C # sgl_expected = ldf_1_data[index].exp; /* get expected results */
523: 523 0002D31C 0d effffffc32 50 movl _index,r0
524: 524 0002D323 48 03 50 50 shll $3,r0,r0
525: 525 0002D327 0d e000000004 effffffc22 movl _ldf_1_data+4(r0),_sgl_expected
526: 526 0002D332 # /*
527: 527 0002D332 # * If LOOP ON ERROR is set, this is the loop for this subtest.
528: 528 0002D332 # * The force loop flag is set after the first error.
529: 529 0002D332 # */
530: 530 0002D332 # asm("_pipe11_5_lp1:");
531: 531 0002D332 _pipe11_5_lp1:
532: 532 0002D332 # asm("ldf _sgl_value_1"); /* load the operand */
533: 533 0002D332 06 effffffc1c ldf _sgl_value_1
534: 534 0002D338 # asm("negf"); /* negate it ( 6 times ) */
535: 535 0002D338 b6 negf
536: 536 0002D339 # asm("negf");
537: 537 0002D339 b6 negf
538: 538 0002D33A # asm("negf");
539: 539 0002D33A b6 negf
540: 540 0002D33B # asm("negf");
541: 541 0002D33B b6 negf
542: 542 0002D33C # asm("negf");
543: 543 0002D33C b6 negf
544: 544 0002D33D # asm("negf");
545: 545 0002D33D b6 negf
546: 546 0002D33E # asm("stf _sgl_st_acc"); /* store the result */
547: 547 0002D33E 26 effffffc10 stf _sgl_st_acc
548: 548 0002D344 # if( force_loop )
549: 549 0002D344 5d effffffc0a tstl _force_loop
550: 550 0002D34A 31 02 jeql L286
551: 551 0002D34C # asm("brb _pipe11_5_lp1"); /* loop on an error */
552: 552 0002D34C 11 e4 brb _pipe11_5_lp1
553: 553 0002D34E # /*
554: 554 0002D34E # * verify the results
555: 555 0002D34E # */
556: 556 0002D34E # if( sgl_st_acc != sgl_expected ) { /* COMPARE the values */
557: 557 0002D34E L286:
558: 558 0002D34E 1d effffffc00 effffffbfb cmpl _sgl_st_acc,_sgl_expected
559: 559 0002D359 31 3d jeql L287
560: 560 0002D35B # errcnt++; /* bump the error count */
561: 561 0002D35B 6d effffffbf3 incl _errcnt
562: 562 0002D361 # if( prt_error )
563: 563 0002D361 5d effffffbed tstl _prt_error
564: 564 0002D367 31 09 jeql L288
565: 565 0002D369 # pipe11_print( 6 ); /* print error msg -6 NEGFS*/
566: 566 0002D369 dd 06 pushl $6
567: 567 0002D36B fe 08 ef00000034 callf $8,_pipe11_print
568: 568 0002D372 # if( halt_flg ) /* halt on error? */
569: 569 0002D372 L288:
570: 570 0002D372 5d effffffbdc tstl _halt_flg
571: 571 0002D378 31 09 jeql L289
572: 572 0002D37A # pipe11_halt( 6 ); /* error halt -6 NEGFS */
573: 573 0002D37A dd 06 pushl $6
574: 574 0002D37C fe 08 ef0000012b callf $8,_pipe11_halt
575: 575 0002D383 # if( loop_on_err ) {
576: 576 0002D383 L289:
577: 577 0002D383 5d effffffbcb tstl _loop_on_err
578: 578 0002D389 31 0d jeql L290
579: 579 0002D38B # force_loop = TRUE; /* set the force loop flag */
580: 580 0002D38B 0d 01 effffffbc2 movl $1,_force_loop
581: 581 0002D392 # asm("jmp _pipe11_5_lp1"); /* and loop */
582: 582 0002D392 71 efffffff9a jmp _pipe11_5_lp1
583: 583 0002D398 # }
584: 584 0002D398 # }
585: 585 0002D398 L290:
586: 586 0002D398 # } /* end of FOR loop */
587: 587 0002D398 L287:
588: 588 0002D398 L283:
589: 589 0002D398 6d effffffbb6 incl _index
590: 590 0002D39E 13 ff55 jbr L285
591: 591 0002D3A1 L284:
592: 592 0002D3A1 # } /* end of subtest 5 */
593: 593 0002D3A1 40 ret#2
594: 594 0002D3A2 .set L279,0x0
595: 595 0002D3A2 L281:
596: 596 0002D3A2 13 ff3e jbr L282
597: 597 0002D3A5 .data
598: 598 000005a8 * .text
599: 599 0002D3A5 00 .align 1
600: 600 0002D3A6 .globl _pipe11_print
601: 601 0002D3A6 _pipe11_print:
602: 602 0002D3A6 0000 .word L291
603: 603 0002D3A8 #
604: 604 0002D3A8 #
605: 605 0002D3A8 #
606: 606 0002D3A8 #
607: 607 0002D3A8 # /****************************************************************************
608: 608 0002D3A8 # *
609: 609 0002D3A8 # * PRINT AN ERROR MESSAGE
610: 610 0002D3A8 # *
611: 611 0002D3A8 # * cycle dd PIPELINE 11, subtest dd error
612: 612 0002D3A8 # * LDF op, {NEGF}, STF
613: 613 0002D3A8 # * operand = xxxxxxxx, final Acc = xxxxxxxx, data index = xxxxxxxx
614: 614 0002D3A8 # * expected Acc = xxxxxxxx
615: 615 0002D3A8 # ****************************************************************************/
616: 616 0002D3A8 # pipe11_print( nop_count )
617: 617 0002D3A8 # int nop_count; /* # of NEGF instructions */
618: 618 0002D3A8 # {
619: 619 0002D3A8 13 0100 jbr L293
620: 620 0002D3AB L294:
621: 621 0002D3AB # writes(" \n"); /* start a new print line */
622: 622 0002D3AB .data 1
623: 623 000005b1 * L295:
624: 624 000005b1 * 200A00 .ascii " \12\0"
625: 625 000005b4 * .text
626: 626 0002D3AB dd 8f000005b1 pushl $L295
627: 627 0002D3B1 fe 08 effffffb9c callf $8,_writes
628: 628 0002D3B8 # writes("cycle: ");
629: 629 0002D3B8 .data 1
630: 630 000005b4 * L296:
631: 631 000005b4 * 6379636C653A2000 .ascii "cycle: \0"
632: 632 000005bc * .text
633: 633 0002D3B8 dd 8f000005b4 pushl $L296
634: 634 0002D3BE fe 08 effffffb8f callf $8,_writes
635: 635 0002D3C5 # writed( cycle );
636: 636 0002D3C5 dd effffffb89 pushl _cycle
637: 637 0002D3CB fe 08 effffffb82 callf $8,_writed
638: 638 0002D3D2 # writes(" (Pipe 11), subtest ");
639: 639 0002D3D2 .data 1
640: 640 000005bc * L298:
641: 641 000005bc * 20202850697065203131292C2 .ascii " (Pipe 11), subtest \0"
642: 0737562746573742000
643: 642 000005d2 * .text
644: 643 0002D3D2 dd 8f000005bc pushl $L298
645: 644 0002D3D8 fe 08 effffffb75 callf $8,_writes
646: 645 0002D3DF # writed( subtest );
647: 646 0002D3DF dd effffffb6f pushl _subtest
648: 647 0002D3E5 fe 08 effffffb68 callf $8,_writed
649: 648 0002D3EC # writes(" error\n");
650: 649 0002D3EC .data 1
651: 650 000005d2 * L299:
652: 651 000005d2 * 206572726F720A00 .ascii " error\12\0"
653: 652 000005da * .text
654: 653 0002D3EC dd 8f000005d2 pushl $L299
655: 654 0002D3F2 fe 08 effffffb5b callf $8,_writes
656: 655 0002D3F9 # writes(" LDF(op), NEGF");
657: 656 0002D3F9 .data 1
658: 657 000005da * L300:
659: 658 000005da * 204C4446286F70292C204E454 .ascii " LDF(op), NEGF\0"
660: 74600
661: 659 000005e9 * .text
662: 660 0002D3F9 dd 8f000005da pushl $L300
663: 661 0002D3FF fe 08 effffffb4e callf $8,_writes
664: 662 0002D406 # while( --nop_count )
665: 663 0002D406 L301:
666: 664 0002D406 7d ad04 decl 4(fp)
667: 665 0002D409 31 0f jeql L302
668: 666 0002D40B # writes(", NEGF");
669: 667 0002D40B .data 1
670: 668 000005e9 * L303:
671: 669 000005e9 * 2C204E45474600 .ascii ", NEGF\0"
672: 670 000005f0 * .text
673: 671 0002D40B dd 8f000005e9 pushl $L303
674: 672 0002D411 fe 08 effffffb3c callf $8,_writes
675: 673 0002D418 11 ec jbr L301
676: 674 0002D41A L302:
677: 675 0002D41A # writes(", STF\n");
678: 676 0002D41A .data 1
679: 677 000005f0 * L304:
680: 678 000005f0 * 2C205354460A00 .ascii ", STF\12\0"
681: 679 000005f7 * .text
682: 680 0002D41A dd 8f000005f0 pushl $L304
683: 681 0002D420 fe 08 effffffb2d callf $8,_writes
684: 682 0002D427 # writec('\n');
685: 683 0002D427 dd 0a pushl $10
686: 684 0002D429 fe 08 effffffb24 callf $8,_writec
687: 685 0002D430 # writes("operand = ");
688: 686 0002D430 .data 1
689: 687 000005f7 * L306:
690: 688 000005f7 * 6F706572616E64203D2000 .ascii "operand = \0"
691: 689 00000602 * .text
692: 690 0002D430 dd 8f000005f7 pushl $L306
693: 691 0002D436 fe 08 effffffb17 callf $8,_writes
694: 692 0002D43D # write32h( sgl_value_1 );
695: 693 0002D43D dd effffffb11 pushl _sgl_value_1
696: 694 0002D443 fe 08 effffffb0a callf $8,_write32h
697: 695 0002D44A # writes(", final Acc = ");
698: 696 0002D44A .data 1
699: 697 00000602 * L308:
700: 698 00000602 * 2C2020202066696E616C20416 .ascii ", final Acc = \0"
701: 363203D2000
702: 699 00000614 * .text
703: 700 0002D44A dd 8f00000602 pushl $L308
704: 701 0002D450 fe 08 effffffafd callf $8,_writes
705: 702 0002D457 # write32h( sgl_st_acc );
706: 703 0002D457 dd effffffaf7 pushl _sgl_st_acc
707: 704 0002D45D fe 08 effffffaf0 callf $8,_write32h
708: 705 0002D464 # writes(", data index = ");
709: 706 0002D464 .data 1
710: 707 00000614 * L309:
711: 708 00000614 * 2C2020206461746120696E646 .ascii ", data index = \0"
712: 578203D2000
713: 709 00000626 * .text
714: 710 0002D464 dd 8f00000614 pushl $L309
715: 711 0002D46A fe 08 effffffae3 callf $8,_writes
716: 712 0002D471 # writed( index );
717: 713 0002D471 dd effffffadd pushl _index
718: 714 0002D477 fe 08 effffffad6 callf $8,_writed
719: 715 0002D47E # writec('\n');
720: 716 0002D47E dd 0a pushl $10
721: 717 0002D480 fe 08 effffffacd callf $8,_writec
722: 718 0002D487 # writes(" expected Acc = ");
723: 719 0002D487 .data 1
724: 720 00000626 * L310:
725: 721 00000626 * 2020202020202020202020202 .ascii " expected Acc = \0"
726: 0202020202020206578706563
727: 74656420416363203D2000
728: 722 0000064a * .text
729: 723 0002D487 dd 8f00000626 pushl $L310
730: 724 0002D48D fe 08 effffffac0 callf $8,_writes
731: 725 0002D494 # write32h( sgl_expected );
732: 726 0002D494 dd effffffaba pushl _sgl_expected
733: 727 0002D49A fe 08 effffffab3 callf $8,_write32h
734: 728 0002D4A1 # writec('\n');
735: 729 0002D4A1 dd 0a pushl $10
736: 730 0002D4A3 fe 08 effffffaaa callf $8,_writec
737: 731 0002D4AA # }
738: 732 0002D4AA 40 ret#2
739: 733 0002D4AB .set L291,0x0
740: 734 0002D4AB L293:
741: 735 0002D4AB 13 fefd jbr L294
742: 736 0002D4AE .data
743: 737 000005a8 * .text
744: 738 0002D4AE .align 1
745: 739 0002D4AE .globl _pipe11_halt
746: 740 0002D4AE _pipe11_halt:
747: 741 0002D4AE 0000 .word L311
748: 742 0002D4B0 #
749: 743 0002D4B0 #
750: 744 0002D4B0 #
751: 745 0002D4B0 # /****************************************************************************
752: 746 0002D4B0 # *
753: 747 0002D4B0 # * SET UP THE REGISTERS AND HALT
754: 748 0002D4B0 # *
755: 749 0002D4B0 # ****************************************************************************/
756: 750 0002D4B0 # pipe11_halt( nop_count )
757: 751 0002D4B0 # int nop_count; /* # of NEGF instructions */
758: 752 0002D4B0 # {
759: 753 0002D4B0 11 45 jbr L313
760: 754 0002D4B2 L314:
761: 755 0002D4B2 # sgl_dummy1 = nop_count;
762: 756 0002D4B2 0d ad04 effffffa9a movl 4(fp),_sgl_dummy1
763: 757 0002D4BA # asm("movl _test_no,r0"); /* r0 = test number */
764: 758 0002D4BA 0d effffffa94 50 movl _test_no,r0
765: 759 0002D4C1 # asm("movl _subtest,r1"); /* r1 = subtest number */
766: 760 0002D4C1 0d effffffa8d 51 movl _subtest,r1
767: 761 0002D4C8 # asm("movl $1,r2"); /* r2 = error code */
768: 762 0002D4C8 0d 01 52 movl $1,r2
769: 763 0002D4CB # asm("movl _cycle,r3"); /* r3 = cycle count */
770: 764 0002D4CB 0d effffffa83 53 movl _cycle,r3
771: 765 0002D4D2 # asm("movl _sgl_dummy1,r4"); /* r4 = # of NEGFS */
772: 766 0002D4D2 0d effffffa7c 54 movl _sgl_dummy1,r4
773: 767 0002D4D9 # asm("movl _sgl_value_1,r5"); /* r5 = sgl operand */
774: 768 0002D4D9 0d effffffa75 55 movl _sgl_value_1,r5
775: 769 0002D4E0 # asm("movl _sgl_st_acc,r6"); /* r6 = sgl stored */
776: 770 0002D4E0 0d effffffa6e 56 movl _sgl_st_acc,r6
777: 771 0002D4E7 # asm("movl _sgl_expected,r7"); /* r7 = sgl expected */
778: 772 0002D4E7 0d effffffa67 57 movl _sgl_expected,r7
779: 773 0002D4EE # asm("movl _index,r8"); /* r8 = data index */
780: 774 0002D4EE 0d effffffa60 58 movl _index,r8
781: 775 0002D4F5 # asm("halt"); /* HALT ... */
782: 776 0002D4F5 00 halt
783: 777 0002D4F6 # }
784: 778 0002D4F6 40 ret#2
785: 779 0002D4F7 .set L311,0x0
786: 780 0002D4F7 L313:
787: 781 0002D4F7 11 b9 jbr L314
788: 782 0002D4F9 .data
789: 782 0005A44D .data
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.