|
|
1.1 root 1: 1 00000000 LL0:
2: 2 00000000 .data
3: 3 00000d5c * .text
4: 4 00000000 .align 1
5: 5 00000000 .globl _pipe_8
6: 6 00000000 _pipe_8:
7: 7 0002BC54 0000 .word L215
8: 8 0002BC56 # #include "fpp_defs.h"
9: 9 0002BC56 #
10: 10 0002BC56 #
11: 11 0002BC56 # /*****************************************************************************
12: 12 0002BC56 # *
13: 13 0002BC56 # * PIPELINE TEST #8 MONITOR
14: 14 0002BC56 # *
15: 15 0002BC56 # * This test will do:
16: 16 0002BC56 # *
17: 17 0002BC56 # * LDF(1), SUBF(2), MULF(x), ADDF(x), ADDF(x), STF
18: 18 0002BC56 # *
19: 19 0002BC56 # * where x is the fmacro1 LDF data.
20: 20 0002BC56 # *****************************************************************************/
21: 21 0002BC56 # pipe_8()
22: 22 0002BC56 # {
23: 23 0002BC56 13 00a8 jbr L217
24: 24 0002BC59 L218:
25: 25 0002BC59 # asm(".globl _pipeline_8_t");
26: 26 0002BC59 .globl _pipeline_8_t
27: 27 0002BC59 # asm("_pipeline_8_t:"); /* entry address */
28: 28 0002BC59 _pipeline_8_t:
29: 29 0002BC59 # if( (cycle == 1) && (prt_hdrs) ) /* print headers on 1st cycle */
30: 30 0002BC59 1d effffffff5 01 cmpl _cycle,$1
31: 31 0002BC60 21 15 jneq L219
32: 32 0002BC62 5d efffffffec tstl _prt_hdrs
33: 33 0002BC68 31 0d jeql L219
34: 34 0002BC6A # {
35: 35 0002BC6A # writes("\n PIPE_8 ");
36: 36 0002BC6A .data 1
37: 37 00000d5c * L221:
38: 38 00000d5c * 0A20504950455F382000 .ascii "\12 PIPE_8 \0"
39: 39 00000d66 * .text
40: 40 0002BC6A dd 8f00000d5c pushl $L221
41: 41 0002BC70 fe 08 efffffffdd callf $8,_writes
42: 42 0002BC77 # }
43: 43 0002BC77 # subtest = 1;
44: 44 0002BC77 L219:
45: 45 0002BC77 0d 01 efffffffd6 movl $1,_subtest
46: 46 0002BC7E # pipe8_1(); /* data in REGs, no NOPs */
47: 47 0002BC7E fe 04 ef0000007f callf $4,_pipe8_1
48: 48 0002BC85 # subtest++; /* increment subtest num */
49: 49 0002BC85 6d efffffffc9 incl _subtest
50: 50 0002BC8B # pipe8_2(); /* data in REGs, 1 NOP */
51: 51 0002BC8B fe 04 ef00000166 callf $4,_pipe8_2
52: 52 0002BC92 # subtest++; /* increment subtest num */
53: 53 0002BC92 6d efffffffbc incl _subtest
54: 54 0002BC98 # pipe8_3(); /* data in REGs, 2 NOPs */
55: 55 0002BC98 fe 04 ef00000253 callf $4,_pipe8_3
56: 56 0002BC9F # subtest++; /* increment subtest num */
57: 57 0002BC9F 6d efffffffaf incl _subtest
58: 58 0002BCA5 # pipe8_4(); /* data in REGs, 3 NOPs */
59: 59 0002BCA5 fe 04 ef00000344 callf $4,_pipe8_4
60: 60 0002BCAC # subtest++; /* increment subtest num */
61: 61 0002BCAC 6d efffffffa2 incl _subtest
62: 62 0002BCB2 # pipe8_5(); /* data in CACHE, no NOPs */
63: 63 0002BCB2 fe 04 ef0000043b callf $4,_pipe8_5
64: 64 0002BCB9 # subtest++; /* increment subtest num */
65: 65 0002BCB9 6d efffffff95 incl _subtest
66: 66 0002BCBF # pipe8_6(); /* data in CACHE, 1 NOP */
67: 67 0002BCBF fe 04 ef0000051e callf $4,_pipe8_6
68: 68 0002BCC6 # subtest++; /* increment subtest num */
69: 69 0002BCC6 6d efffffff88 incl _subtest
70: 70 0002BCCC # pipe8_7(); /* data in CACHE, 2 NOPs */
71: 71 0002BCCC fe 04 ef00000607 callf $4,_pipe8_7
72: 72 0002BCD3 # subtest++; /* increment subtest num */
73: 73 0002BCD3 6d efffffff7b incl _subtest
74: 74 0002BCD9 # pipe8_8(); /* data in CACHE, 3 NOPs */
75: 75 0002BCD9 fe 04 ef000006f4 callf $4,_pipe8_8
76: 76 0002BCE0 # subtest++; /* increment subtest num */
77: 77 0002BCE0 6d efffffff6e incl _subtest
78: 78 0002BCE6 # pipe8_9(); /* data on STACK, no NOPs */
79: 79 0002BCE6 fe 04 ef000007e7 callf $4,_pipe8_9
80: 80 0002BCED # subtest++; /* increment subtest num */
81: 81 0002BCED 6d efffffff61 incl _subtest
82: 82 0002BCF3 # pipe8_10(); /* data via FP no NOPs */
83: 83 0002BCF3 fe 04 ef00000970 callf $4,_pipe8_10
84: 84 0002BCFA # asm("jmp *return"); /* return to the test monitor */
85: 85 0002BCFA 71 ffffffff54 jmp *return
86: 86 0002BD00 # }
87: 87 0002BD00 40 ret#2
88: 88 0002BD01 .set L215,0x0
89: 89 0002BD01 L217:
90: 90 0002BD01 13 ff55 jbr L218
91: 91 0002BD04 .data
92: 92 00000d5c * .text
93: 93 0002BD04 .align 1
94: 94 0002BD04 .globl _pipe8_1
95: 95 0002BD04 _pipe8_1:
96: 96 0002BD04 0000 .word L232
97: 97 0002BD06 #
98: 98 0002BD06 #
99: 99 0002BD06 #
100: 100 0002BD06 #
101: 101 0002BD06 #
102: 102 0002BD06 #
103: 103 0002BD06 # /************************************************************************
104: 104 0002BD06 # *
105: 105 0002BD06 # * SUBTEST 1
106: 106 0002BD06 # * data in registers, no NO-OPs
107: 107 0002BD06 # *
108: 108 0002BD06 # ************************************************************************/
109: 109 0002BD06 # pipe8_1()
110: 110 0002BD06 # {
111: 111 0002BD06 13 00ec jbr L234
112: 112 0002BD09 L235:
113: 113 0002BD09 # force_loop = FALSE; /* clear force_loop flag */
114: 114 0002BD09 4d efffffff45 clrl _force_loop
115: 115 0002BD0F # index = 0;
116: 116 0002BD0F 4d efffffff3f clrl _index
117: 117 0002BD15 # do
118: 118 0002BD15 L238:
119: 119 0002BD15 # {
120: 120 0002BD15 # sgl_value_1 = ldf_1_data[index].ld; /* get operand 1 */
121: 121 0002BD15 0d efffffff39 50 movl _index,r0
122: 122 0002BD1C 48 03 50 50 shll $3,r0,r0
123: 123 0002BD20 0d e000000000 efffffff29 movl _ldf_1_data(r0),_sgl_value_1
124: 124 0002BD2B # sgl_expected = ldf_1_data[index].exp; /* get expected results */
125: 125 0002BD2B 0d efffffff23 50 movl _index,r0
126: 126 0002BD32 48 03 50 50 shll $3,r0,r0
127: 127 0002BD36 0d e000000004 efffffff13 movl _ldf_1_data+4(r0),_sgl_expected
128: 128 0002BD41 # sgl_value_2 = 0x40800000; /* floating '1' */
129: 129 0002BD41 0d 8f40800000 efffffff08 movl $1082130432,_sgl_value_2
130: 130 0002BD4C # sgl_value_3 = 0x41000000; /* floating '2' */
131: 131 0002BD4C 0d 8f41000000 effffffefd movl $1090519040,_sgl_value_3
132: 132 0002BD57 # /*
133: 133 0002BD57 # * If LOOP ON ERROR is set, this is the loop for this subtest.
134: 134 0002BD57 # * The force loop flag is set after the first error.
135: 135 0002BD57 # */
136: 136 0002BD57 # asm("_pipe8_1_lp1:");
137: 137 0002BD57 _pipe8_1_lp1:
138: 138 0002BD57 # asm("movl _sgl_value_1,r4"); /* move the data to r4 */
139: 139 0002BD57 0d effffffef7 54 movl _sgl_value_1,r4
140: 140 0002BD5E # asm("movl _sgl_value_2,r5"); /* move data to r5 */
141: 141 0002BD5E 0d effffffef0 55 movl _sgl_value_2,r5
142: 142 0002BD65 # asm("movl _sgl_value_3,r6"); /* move data to r6 */
143: 143 0002BD65 0d effffffee9 56 movl _sgl_value_3,r6
144: 144 0002BD6C # asm("ldf r5"); /* 1.0 to the ACC. ( 1.0 ) */
145: 145 0002BD6C 06 55 ldf r5
146: 146 0002BD6E # asm("subf r6"); /* minus 2.0 (-1.0 ) */
147: 147 0002BD6E d6 56 subf r6
148: 148 0002BD70 # asm("mulf r4"); /* *'s the operand ( -op ) */
149: 149 0002BD70 e6 54 mulf r4
150: 150 0002BD72 # asm("addf r4"); /* + the operand ( 0 ) */
151: 151 0002BD72 c6 54 addf r4
152: 152 0002BD74 # asm("addf r4"); /* + the operand ( +op ) */
153: 153 0002BD74 c6 54 addf r4
154: 154 0002BD76 # asm("stf r7"); /* store the result */
155: 155 0002BD76 26 57 stf r7
156: 156 0002BD78 # if( force_loop )
157: 157 0002BD78 5d effffffed6 tstl _force_loop
158: 158 0002BD7E 31 02 jeql L239
159: 159 0002BD80 # asm("brb _pipe8_1_lp1");; /* loop on the error */
160: 160 0002BD80 11 d5 brb _pipe8_1_lp1
161: 161 0002BD82 L239:
162: 162 0002BD82 # /*
163: 163 0002BD82 # * verify the results
164: 164 0002BD82 # */
165: 165 0002BD82 # asm("movl r7,_sgl_st_acc"); /* get the result */
166: 166 0002BD82 0d 57 effffffecb movl r7,_sgl_st_acc
167: 167 0002BD89 # if( sgl_st_acc != sgl_expected ) /* COMPARE the values */
168: 168 0002BD89 1d effffffec5 effffffec0 cmpl _sgl_st_acc,_sgl_expected
169: 169 0002BD94 31 45 jeql L240
170: 170 0002BD96 # {
171: 171 0002BD96 # errcnt++; /* bump the error count */
172: 172 0002BD96 6d effffffeb8 incl _errcnt
173: 173 0002BD9C # if ( prt_error )
174: 174 0002BD9C 5d effffffeb2 tstl _prt_error
175: 175 0002BDA2 31 0d jeql L241
176: 176 0002BDA4 # print_pipe8_er("Reg. Data, no NO-OPs");
177: 177 0002BDA4 .data 1
178: 178 00000d66 * L243:
179: 179 00000d66 * 5265672E20446174612C206E6 .ascii "Reg. Data, no NO-OPs\0"
180: F204E4F2D4F507300
181: 180 00000d7b * .text
182: 181 0002BDA4 dd 8f00000d66 pushl $L243
183: 182 0002BDAA fe 08 ef00000a7f callf $8,_print_pipe8_er
184: 183 0002BDB1 # if ( halt_flg )
185: 184 0002BDB1 L241:
186: 185 0002BDB1 5d effffffe9d tstl _halt_flg
187: 186 0002BDB7 31 0d jeql L244
188: 187 0002BDB9 # pipe8_er_hlt( subtest );
189: 188 0002BDB9 dd effffffe95 pushl _subtest
190: 189 0002BDBF fe 08 ef00000b76 callf $8,_pipe8_er_hlt
191: 190 0002BDC6 # if ( loop_on_err ) {
192: 191 0002BDC6 L244:
193: 192 0002BDC6 5d effffffe88 tstl _loop_on_err
194: 193 0002BDCC 31 0d jeql L246
195: 194 0002BDCE # force_loop = TRUE; /* set the force loop flag */
196: 195 0002BDCE 0d 01 effffffe7f movl $1,_force_loop
197: 196 0002BDD5 # asm("jmp _pipe8_1_lp1"); /* and loop */
198: 197 0002BDD5 71 efffffff7c jmp _pipe8_1_lp1
199: 198 0002BDDB # }
200: 199 0002BDDB # } /* end of compare error */
201: 200 0002BDDB L246:
202: 201 0002BDDB # } while( index++ < max_ldf_1_index );
203: 202 0002BDDB L240:
204: 203 0002BDDB L237:
205: 204 0002BDDB 0d effffffe73 50 movl _index,r0
206: 205 0002BDE2 6d effffffe6c incl _index
207: 206 0002BDE8 1d 50 effffffe65 cmpl r0,_max_ldf_1_index
208: 207 0002BDEF 81 03 13 ff21 jlss L238
209: 208 0002BDF4 L236:
210: 209 0002BDF4 # } /* end of subtest 1 */
211: 210 0002BDF4 40 ret#2
212: 211 0002BDF5 .set L232,0x0
213: 212 0002BDF5 L234:
214: 213 0002BDF5 13 ff11 jbr L235
215: 214 0002BDF8 .data
216: 215 00000d5c * .text
217: 216 0002BDF8 .align 1
218: 217 0002BDF8 .globl _pipe8_2
219: 218 0002BDF8 _pipe8_2:
220: 219 0002BDF8 0000 .word L247
221: 220 0002BDFA #
222: 221 0002BDFA #
223: 222 0002BDFA #
224: 223 0002BDFA #
225: 224 0002BDFA #
226: 225 0002BDFA #
227: 226 0002BDFA # /************************************************************************
228: 227 0002BDFA # *
229: 228 0002BDFA # * SUBTEST 2
230: 229 0002BDFA # * data in registers, 1 NO-OP
231: 230 0002BDFA # *
232: 231 0002BDFA # ************************************************************************/
233: 232 0002BDFA # pipe8_2()
234: 233 0002BDFA # {
235: 234 0002BDFA 13 00f1 jbr L249
236: 235 0002BDFD L250:
237: 236 0002BDFD # force_loop = FALSE; /* clear force_loop flag */
238: 237 0002BDFD 4d effffffe51 clrl _force_loop
239: 238 0002BE03 # index = 0;
240: 239 0002BE03 4d effffffe4b clrl _index
241: 240 0002BE09 # do
242: 241 0002BE09 L253:
243: 242 0002BE09 # {
244: 243 0002BE09 # sgl_value_1 = ldf_1_data[index].ld; /* get operand 1 */
245: 244 0002BE09 0d effffffe45 50 movl _index,r0
246: 245 0002BE10 48 03 50 50 shll $3,r0,r0
247: 246 0002BE14 0d e000000000 effffffe35 movl _ldf_1_data(r0),_sgl_value_1
248: 247 0002BE1F # sgl_expected = ldf_1_data[index].exp; /* get expected results */
249: 248 0002BE1F 0d effffffe2f 50 movl _index,r0
250: 249 0002BE26 48 03 50 50 shll $3,r0,r0
251: 250 0002BE2A 0d e000000004 effffffe1f movl _ldf_1_data+4(r0),_sgl_expected
252: 251 0002BE35 # sgl_value_2 = 0x40800000; /* floating '1' */
253: 252 0002BE35 0d 8f40800000 effffffe14 movl $1082130432,_sgl_value_2
254: 253 0002BE40 # sgl_value_3 = 0x41000000; /* floating '2' */
255: 254 0002BE40 0d 8f41000000 effffffe09 movl $1090519040,_sgl_value_3
256: 255 0002BE4B # /*
257: 256 0002BE4B # * If LOOP ON ERROR is set, this is the loop for this subtest.
258: 257 0002BE4B # * The force loop flag is set after the first error.
259: 258 0002BE4B # */
260: 259 0002BE4B # asm("_pipe8_2_lp1:");
261: 260 0002BE4B _pipe8_2_lp1:
262: 261 0002BE4B # asm("movl _sgl_value_1,r4"); /* move the data to r4 */
263: 262 0002BE4B 0d effffffe03 54 movl _sgl_value_1,r4
264: 263 0002BE52 # asm("movl _sgl_value_2,r5"); /* move data to r5 */
265: 264 0002BE52 0d effffffdfc 55 movl _sgl_value_2,r5
266: 265 0002BE59 # asm("movl _sgl_value_3,r6"); /* move data to r6 */
267: 266 0002BE59 0d effffffdf5 56 movl _sgl_value_3,r6
268: 267 0002BE60 # asm("ldf r5"); /* 1.0 to the ACC. ( 1.0 ) */
269: 268 0002BE60 06 55 ldf r5
270: 269 0002BE62 # asm("nop");
271: 270 0002BE62 10 nop
272: 271 0002BE63 # asm("subf r6"); /* minus 2.0 (-1.0 ) */
273: 272 0002BE63 d6 56 subf r6
274: 273 0002BE65 # asm("nop");
275: 274 0002BE65 10 nop
276: 275 0002BE66 # asm("mulf r4"); /* *'s the operand ( -op ) */
277: 276 0002BE66 e6 54 mulf r4
278: 277 0002BE68 # asm("nop");
279: 278 0002BE68 10 nop
280: 279 0002BE69 # asm("addf r4"); /* + the operand ( 0 ) */
281: 280 0002BE69 c6 54 addf r4
282: 281 0002BE6B # asm("nop");
283: 282 0002BE6B 10 nop
284: 283 0002BE6C # asm("addf r4"); /* + the operand ( +op ) */
285: 284 0002BE6C c6 54 addf r4
286: 285 0002BE6E # asm("nop");
287: 286 0002BE6E 10 nop
288: 287 0002BE6F # asm("stf r7"); /* store the result */
289: 288 0002BE6F 26 57 stf r7
290: 289 0002BE71 # if( force_loop )
291: 290 0002BE71 5d effffffddd tstl _force_loop
292: 291 0002BE77 31 02 jeql L254
293: 292 0002BE79 # asm("brb _pipe8_2_lp1");; /* loop on the error */
294: 293 0002BE79 11 d0 brb _pipe8_2_lp1
295: 294 0002BE7B L254:
296: 295 0002BE7B # /*
297: 296 0002BE7B # * verify the results
298: 297 0002BE7B # */
299: 298 0002BE7B # asm("movl r7,_sgl_st_acc"); /* get the result */
300: 299 0002BE7B 0d 57 effffffdd2 movl r7,_sgl_st_acc
301: 300 0002BE82 # if( sgl_st_acc != sgl_expected ) /* COMPARE the values */
302: 301 0002BE82 1d effffffdcc effffffdc7 cmpl _sgl_st_acc,_sgl_expected
303: 302 0002BE8D 31 45 jeql L255
304: 303 0002BE8F # {
305: 304 0002BE8F # errcnt++; /* bump the error count */
306: 305 0002BE8F 6d effffffdbf incl _errcnt
307: 306 0002BE95 # if ( prt_error )
308: 307 0002BE95 5d effffffdb9 tstl _prt_error
309: 308 0002BE9B 31 0d jeql L256
310: 309 0002BE9D # print_pipe8_er("Reg. Data, 1 NO-OP");
311: 310 0002BE9D .data 1
312: 311 00000d7b * L257:
313: 312 00000d7b * 5265672E20446174612C20312 .ascii "Reg. Data, 1 NO-OP\0"
314: 04E4F2D4F5000
315: 313 00000d8e * .text
316: 314 0002BE9D dd 8f00000d7b pushl $L257
317: 315 0002BEA3 fe 08 ef00000986 callf $8,_print_pipe8_er
318: 316 0002BEAA # if ( halt_flg )
319: 317 0002BEAA L256:
320: 318 0002BEAA 5d effffffda4 tstl _halt_flg
321: 319 0002BEB0 31 0d jeql L258
322: 320 0002BEB2 # pipe8_er_hlt( subtest );
323: 321 0002BEB2 dd effffffd9c pushl _subtest
324: 322 0002BEB8 fe 08 ef00000a7d callf $8,_pipe8_er_hlt
325: 323 0002BEBF # if ( loop_on_err ) {
326: 324 0002BEBF L258:
327: 325 0002BEBF 5d effffffd8f tstl _loop_on_err
328: 326 0002BEC5 31 0d jeql L259
329: 327 0002BEC7 # force_loop = TRUE; /* set the force loop flag */
330: 328 0002BEC7 0d 01 effffffd86 movl $1,_force_loop
331: 329 0002BECE # asm("jmp _pipe8_2_lp1"); /* and loop */
332: 330 0002BECE 71 efffffff77 jmp _pipe8_2_lp1
333: 331 0002BED4 # }
334: 332 0002BED4 # } /* end of compare error */
335: 333 0002BED4 L259:
336: 334 0002BED4 # } while( index++ < max_ldf_1_index );
337: 335 0002BED4 L255:
338: 336 0002BED4 L252:
339: 337 0002BED4 0d effffffd7a 50 movl _index,r0
340: 338 0002BEDB 6d effffffd73 incl _index
341: 339 0002BEE1 1d 50 effffffd6c cmpl r0,_max_ldf_1_index
342: 340 0002BEE8 81 03 13 ff1c jlss L253
343: 341 0002BEED L251:
344: 342 0002BEED # } /* end of subtest 2 */
345: 343 0002BEED 40 ret#2
346: 344 0002BEEE .set L247,0x0
347: 345 0002BEEE L249:
348: 346 0002BEEE 13 ff0c jbr L250
349: 347 0002BEF1 .data
350: 348 00000d5c * .text
351: 349 0002BEF1 00 .align 1
352: 350 0002BEF2 .globl _pipe8_3
353: 351 0002BEF2 _pipe8_3:
354: 352 0002BEF2 0000 .word L260
355: 353 0002BEF4 #
356: 354 0002BEF4 #
357: 355 0002BEF4 #
358: 356 0002BEF4 #
359: 357 0002BEF4 #
360: 358 0002BEF4 #
361: 359 0002BEF4 # /************************************************************************
362: 360 0002BEF4 # *
363: 361 0002BEF4 # * SUBTEST 3
364: 362 0002BEF4 # * data in registers, 2 NO-OPs
365: 363 0002BEF4 # *
366: 364 0002BEF4 # ************************************************************************/
367: 365 0002BEF4 # pipe8_3()
368: 366 0002BEF4 # {
369: 367 0002BEF4 13 00f6 jbr L262
370: 368 0002BEF7 L263:
371: 369 0002BEF7 # force_loop = FALSE; /* clear force_loop flag */
372: 370 0002BEF7 4d effffffd57 clrl _force_loop
373: 371 0002BEFD # index = 0;
374: 372 0002BEFD 4d effffffd51 clrl _index
375: 373 0002BF03 # do
376: 374 0002BF03 L266:
377: 375 0002BF03 # {
378: 376 0002BF03 # sgl_value_1 = ldf_1_data[index].ld; /* get operand 1 */
379: 377 0002BF03 0d effffffd4b 50 movl _index,r0
380: 378 0002BF0A 48 03 50 50 shll $3,r0,r0
381: 379 0002BF0E 0d e000000000 effffffd3b movl _ldf_1_data(r0),_sgl_value_1
382: 380 0002BF19 # sgl_expected = ldf_1_data[index].exp; /* get expected results */
383: 381 0002BF19 0d effffffd35 50 movl _index,r0
384: 382 0002BF20 48 03 50 50 shll $3,r0,r0
385: 383 0002BF24 0d e000000004 effffffd25 movl _ldf_1_data+4(r0),_sgl_expected
386: 384 0002BF2F # sgl_value_2 = 0x40800000; /* floating '1' */
387: 385 0002BF2F 0d 8f40800000 effffffd1a movl $1082130432,_sgl_value_2
388: 386 0002BF3A # sgl_value_3 = 0x41000000; /* floating '2' */
389: 387 0002BF3A 0d 8f41000000 effffffd0f movl $1090519040,_sgl_value_3
390: 388 0002BF45 # /*
391: 389 0002BF45 # * If LOOP ON ERROR is set, this is the loop for this subtest.
392: 390 0002BF45 # * The force loop flag is set after the first error.
393: 391 0002BF45 # */
394: 392 0002BF45 # asm("_pipe8_3_lp1:");
395: 393 0002BF45 _pipe8_3_lp1:
396: 394 0002BF45 # asm("movl _sgl_value_1,r4"); /* move the data to r4 */
397: 395 0002BF45 0d effffffd09 54 movl _sgl_value_1,r4
398: 396 0002BF4C # asm("movl _sgl_value_2,r5"); /* move data to r5 */
399: 397 0002BF4C 0d effffffd02 55 movl _sgl_value_2,r5
400: 398 0002BF53 # asm("movl _sgl_value_3,r6"); /* move data to r6 */
401: 399 0002BF53 0d effffffcfb 56 movl _sgl_value_3,r6
402: 400 0002BF5A # asm("ldf r5"); /* 1.0 to the ACC. ( 1.0 ) */
403: 401 0002BF5A 06 55 ldf r5
404: 402 0002BF5C # asm("nop");
405: 403 0002BF5C 10 nop
406: 404 0002BF5D # asm("nop");
407: 405 0002BF5D 10 nop
408: 406 0002BF5E # asm("subf r6"); /* minus 2.0 (-1.0 ) */
409: 407 0002BF5E d6 56 subf r6
410: 408 0002BF60 # asm("nop");
411: 409 0002BF60 10 nop
412: 410 0002BF61 # asm("nop");
413: 411 0002BF61 10 nop
414: 412 0002BF62 # asm("mulf r4"); /* *'s the operand ( -op ) */
415: 413 0002BF62 e6 54 mulf r4
416: 414 0002BF64 # asm("nop");
417: 415 0002BF64 10 nop
418: 416 0002BF65 # asm("nop");
419: 417 0002BF65 10 nop
420: 418 0002BF66 # asm("addf r4"); /* + the operand ( 0 ) */
421: 419 0002BF66 c6 54 addf r4
422: 420 0002BF68 # asm("nop");
423: 421 0002BF68 10 nop
424: 422 0002BF69 # asm("nop");
425: 423 0002BF69 10 nop
426: 424 0002BF6A # asm("addf r4"); /* + the operand ( +op ) */
427: 425 0002BF6A c6 54 addf r4
428: 426 0002BF6C # asm("nop");
429: 427 0002BF6C 10 nop
430: 428 0002BF6D # asm("nop");
431: 429 0002BF6D 10 nop
432: 430 0002BF6E # asm("stf r7"); /* store the result */
433: 431 0002BF6E 26 57 stf r7
434: 432 0002BF70 # if( force_loop )
435: 433 0002BF70 5d effffffcde tstl _force_loop
436: 434 0002BF76 31 02 jeql L267
437: 435 0002BF78 # asm("brb _pipe8_3_lp1");; /* loop on the error */
438: 436 0002BF78 11 cb brb _pipe8_3_lp1
439: 437 0002BF7A L267:
440: 438 0002BF7A # /*
441: 439 0002BF7A # * verify the results
442: 440 0002BF7A # */
443: 441 0002BF7A # asm("movl r7,_sgl_st_acc"); /* get the result */
444: 442 0002BF7A 0d 57 effffffcd3 movl r7,_sgl_st_acc
445: 443 0002BF81 # if( sgl_st_acc != sgl_expected ) /* COMPARE the values */
446: 444 0002BF81 1d effffffccd effffffcc8 cmpl _sgl_st_acc,_sgl_expected
447: 445 0002BF8C 31 45 jeql L268
448: 446 0002BF8E # {
449: 447 0002BF8E # errcnt++; /* bump the error count */
450: 448 0002BF8E 6d effffffcc0 incl _errcnt
451: 449 0002BF94 # if ( prt_error )
452: 450 0002BF94 5d effffffcba tstl _prt_error
453: 451 0002BF9A 31 0d jeql L269
454: 452 0002BF9C # print_pipe8_er("Reg. Data, 2 NO-OPs");
455: 453 0002BF9C .data 1
456: 454 00000d8e * L270:
457: 455 00000d8e * 5265672E20446174612C20322 .ascii "Reg. Data, 2 NO-OPs\0"
458: 04E4F2D4F507300
459: 456 00000da2 * .text
460: 457 0002BF9C dd 8f00000d8e pushl $L270
461: 458 0002BFA2 fe 08 ef00000887 callf $8,_print_pipe8_er
462: 459 0002BFA9 # if ( halt_flg )
463: 460 0002BFA9 L269:
464: 461 0002BFA9 5d effffffca5 tstl _halt_flg
465: 462 0002BFAF 31 0d jeql L271
466: 463 0002BFB1 # pipe8_er_hlt( subtest );
467: 464 0002BFB1 dd effffffc9d pushl _subtest
468: 465 0002BFB7 fe 08 ef0000097e callf $8,_pipe8_er_hlt
469: 466 0002BFBE # if ( loop_on_err ) {
470: 467 0002BFBE L271:
471: 468 0002BFBE 5d effffffc90 tstl _loop_on_err
472: 469 0002BFC4 31 0d jeql L272
473: 470 0002BFC6 # force_loop = TRUE; /* set the force loop flag */
474: 471 0002BFC6 0d 01 effffffc87 movl $1,_force_loop
475: 472 0002BFCD # asm("jmp _pipe8_3_lp1"); /* and loop */
476: 473 0002BFCD 71 efffffff72 jmp _pipe8_3_lp1
477: 474 0002BFD3 # }
478: 475 0002BFD3 # } /* end of compare error */
479: 476 0002BFD3 L272:
480: 477 0002BFD3 # } while( index++ < max_ldf_1_index );
481: 478 0002BFD3 L268:
482: 479 0002BFD3 L265:
483: 480 0002BFD3 0d effffffc7b 50 movl _index,r0
484: 481 0002BFDA 6d effffffc74 incl _index
485: 482 0002BFE0 1d 50 effffffc6d cmpl r0,_max_ldf_1_index
486: 483 0002BFE7 81 03 13 ff17 jlss L266
487: 484 0002BFEC L264:
488: 485 0002BFEC # } /* end of subtest 3 */
489: 486 0002BFEC 40 ret#2
490: 487 0002BFED .set L260,0x0
491: 488 0002BFED L262:
492: 489 0002BFED 13 ff07 jbr L263
493: 490 0002BFF0 .data
494: 491 00000d5c * .text
495: 492 0002BFF0 .align 1
496: 493 0002BFF0 .globl _pipe8_4
497: 494 0002BFF0 _pipe8_4:
498: 495 0002BFF0 0000 .word L273
499: 496 0002BFF2 #
500: 497 0002BFF2 #
501: 498 0002BFF2 #
502: 499 0002BFF2 #
503: 500 0002BFF2 #
504: 501 0002BFF2 #
505: 502 0002BFF2 # /************************************************************************
506: 503 0002BFF2 # *
507: 504 0002BFF2 # * SUBTEST 4
508: 505 0002BFF2 # * data in registers, 3 NO-OPs
509: 506 0002BFF2 # *
510: 507 0002BFF2 # ************************************************************************/
511: 508 0002BFF2 # pipe8_4()
512: 509 0002BFF2 # {
513: 510 0002BFF2 13 00fb jbr L275
514: 511 0002BFF5 L276:
515: 512 0002BFF5 # force_loop = FALSE; /* clear force_loop flag */
516: 513 0002BFF5 4d effffffc59 clrl _force_loop
517: 514 0002BFFB # index = 0;
518: 515 0002BFFB 4d effffffc53 clrl _index
519: 516 0002C001 # do
520: 517 0002C001 L279:
521: 518 0002C001 # {
522: 519 0002C001 # sgl_value_1 = ldf_1_data[index].ld; /* get operand 1 */
523: 520 0002C001 0d effffffc4d 50 movl _index,r0
524: 521 0002C008 48 03 50 50 shll $3,r0,r0
525: 522 0002C00C 0d e000000000 effffffc3d movl _ldf_1_data(r0),_sgl_value_1
526: 523 0002C017 # sgl_expected = ldf_1_data[index].exp; /* get expected results */
527: 524 0002C017 0d effffffc37 50 movl _index,r0
528: 525 0002C01E 48 03 50 50 shll $3,r0,r0
529: 526 0002C022 0d e000000004 effffffc27 movl _ldf_1_data+4(r0),_sgl_expected
530: 527 0002C02D # sgl_value_2 = 0x40800000; /* floating '1' */
531: 528 0002C02D 0d 8f40800000 effffffc1c movl $1082130432,_sgl_value_2
532: 529 0002C038 # sgl_value_3 = 0x41000000; /* floating '2' */
533: 530 0002C038 0d 8f41000000 effffffc11 movl $1090519040,_sgl_value_3
534: 531 0002C043 # /*
535: 532 0002C043 # * If LOOP ON ERROR is set, this is the loop for this subtest.
536: 533 0002C043 # * The force loop flag is set after the first error.
537: 534 0002C043 # */
538: 535 0002C043 # asm("_pipe8_4_lp1:");
539: 536 0002C043 _pipe8_4_lp1:
540: 537 0002C043 # asm("movl _sgl_value_1,r4"); /* move the data to r4 */
541: 538 0002C043 0d effffffc0b 54 movl _sgl_value_1,r4
542: 539 0002C04A # asm("movl _sgl_value_2,r5"); /* move data to r5 */
543: 540 0002C04A 0d effffffc04 55 movl _sgl_value_2,r5
544: 541 0002C051 # asm("movl _sgl_value_3,r6"); /* move data to r6 */
545: 542 0002C051 0d effffffbfd 56 movl _sgl_value_3,r6
546: 543 0002C058 # asm("ldf r5"); /* 1.0 to the ACC. ( 1.0 ) */
547: 544 0002C058 06 55 ldf r5
548: 545 0002C05A # asm("nop");
549: 546 0002C05A 10 nop
550: 547 0002C05B # asm("nop");
551: 548 0002C05B 10 nop
552: 549 0002C05C # asm("nop");
553: 550 0002C05C 10 nop
554: 551 0002C05D # asm("subf r6"); /* minus 2.0 (-1.0 ) */
555: 552 0002C05D d6 56 subf r6
556: 553 0002C05F # asm("nop");
557: 554 0002C05F 10 nop
558: 555 0002C060 # asm("nop");
559: 556 0002C060 10 nop
560: 557 0002C061 # asm("nop");
561: 558 0002C061 10 nop
562: 559 0002C062 # asm("mulf r4"); /* *'s the operand ( -op ) */
563: 560 0002C062 e6 54 mulf r4
564: 561 0002C064 # asm("nop");
565: 562 0002C064 10 nop
566: 563 0002C065 # asm("nop");
567: 564 0002C065 10 nop
568: 565 0002C066 # asm("nop");
569: 566 0002C066 10 nop
570: 567 0002C067 # asm("addf r4"); /* + the operand ( 0 ) */
571: 568 0002C067 c6 54 addf r4
572: 569 0002C069 # asm("nop");
573: 570 0002C069 10 nop
574: 571 0002C06A # asm("nop");
575: 572 0002C06A 10 nop
576: 573 0002C06B # asm("nop");
577: 574 0002C06B 10 nop
578: 575 0002C06C # asm("addf r4"); /* + the operand ( +op ) */
579: 576 0002C06C c6 54 addf r4
580: 577 0002C06E # asm("nop");
581: 578 0002C06E 10 nop
582: 579 0002C06F # asm("nop");
583: 580 0002C06F 10 nop
584: 581 0002C070 # asm("nop");
585: 582 0002C070 10 nop
586: 583 0002C071 # asm("stf r7"); /* store the result */
587: 584 0002C071 26 57 stf r7
588: 585 0002C073 # if( force_loop )
589: 586 0002C073 5d effffffbdb tstl _force_loop
590: 587 0002C079 31 02 jeql L280
591: 588 0002C07B # asm("brb _pipe8_4_lp1");; /* loop on the error */
592: 589 0002C07B 11 c6 brb _pipe8_4_lp1
593: 590 0002C07D L280:
594: 591 0002C07D # /*
595: 592 0002C07D # * verify the results
596: 593 0002C07D # */
597: 594 0002C07D # asm("movl r7,_sgl_st_acc"); /* get the result */
598: 595 0002C07D 0d 57 effffffbd0 movl r7,_sgl_st_acc
599: 596 0002C084 # if( sgl_st_acc != sgl_expected ) /* COMPARE the values */
600: 597 0002C084 1d effffffbca effffffbc5 cmpl _sgl_st_acc,_sgl_expected
601: 598 0002C08F 31 45 jeql L281
602: 599 0002C091 # {
603: 600 0002C091 # errcnt++; /* bump the error count */
604: 601 0002C091 6d effffffbbd incl _errcnt
605: 602 0002C097 # if ( prt_error )
606: 603 0002C097 5d effffffbb7 tstl _prt_error
607: 604 0002C09D 31 0d jeql L282
608: 605 0002C09F # print_pipe8_er("Reg. Data, 3 NO-OPs");
609: 606 0002C09F .data 1
610: 607 00000da2 * L283:
611: 608 00000da2 * 5265672E20446174612C20332 .ascii "Reg. Data, 3 NO-OPs\0"
612: 04E4F2D4F507300
613: 609 00000db6 * .text
614: 610 0002C09F dd 8f00000da2 pushl $L283
615: 611 0002C0A5 fe 08 ef00000784 callf $8,_print_pipe8_er
616: 612 0002C0AC # if ( halt_flg )
617: 613 0002C0AC L282:
618: 614 0002C0AC 5d effffffba2 tstl _halt_flg
619: 615 0002C0B2 31 0d jeql L284
620: 616 0002C0B4 # pipe8_er_hlt( subtest );
621: 617 0002C0B4 dd effffffb9a pushl _subtest
622: 618 0002C0BA fe 08 ef0000087b callf $8,_pipe8_er_hlt
623: 619 0002C0C1 # if ( loop_on_err ) {
624: 620 0002C0C1 L284:
625: 621 0002C0C1 5d effffffb8d tstl _loop_on_err
626: 622 0002C0C7 31 0d jeql L285
627: 623 0002C0C9 # force_loop = TRUE; /* set the force loop flag */
628: 624 0002C0C9 0d 01 effffffb84 movl $1,_force_loop
629: 625 0002C0D0 # asm("jmp _pipe8_4_lp1"); /* and loop */
630: 626 0002C0D0 71 efffffff6d jmp _pipe8_4_lp1
631: 627 0002C0D6 # }
632: 628 0002C0D6 # } /* end of compare error */
633: 629 0002C0D6 L285:
634: 630 0002C0D6 # } while( index++ < max_ldf_1_index );
635: 631 0002C0D6 L281:
636: 632 0002C0D6 L278:
637: 633 0002C0D6 0d effffffb78 50 movl _index,r0
638: 634 0002C0DD 6d effffffb71 incl _index
639: 635 0002C0E3 1d 50 effffffb6a cmpl r0,_max_ldf_1_index
640: 636 0002C0EA 81 03 13 ff12 jlss L279
641: 637 0002C0EF L277:
642: 638 0002C0EF # } /* end of subtest 4 */
643: 639 0002C0EF 40 ret#2
644: 640 0002C0F0 .set L273,0x0
645: 641 0002C0F0 L275:
646: 642 0002C0F0 13 ff02 jbr L276
647: 643 0002C0F3 .data
648: 644 00000d5c * .text
649: 645 0002C0F3 00 .align 1
650: 646 0002C0F4 .globl _pipe8_5
651: 647 0002C0F4 _pipe8_5:
652: 648 0002C0F4 0000 .word L286
653: 649 0002C0F6 #
654: 650 0002C0F6 #
655: 651 0002C0F6 #
656: 652 0002C0F6 #
657: 653 0002C0F6 #
658: 654 0002C0F6 #
659: 655 0002C0F6 #
660: 656 0002C0F6 # /************************************************************************
661: 657 0002C0F6 # *
662: 658 0002C0F6 # * SUBTEST 5
663: 659 0002C0F6 # * data in Cache, no NO-OPs
664: 660 0002C0F6 # *
665: 661 0002C0F6 # ************************************************************************/
666: 662 0002C0F6 # pipe8_5()
667: 663 0002C0F6 # {
668: 664 0002C0F6 13 00e8 jbr L288
669: 665 0002C0F9 L289:
670: 666 0002C0F9 # force_loop = FALSE; /* clear force_loop flag */
671: 667 0002C0F9 4d effffffb55 clrl _force_loop
672: 668 0002C0FF # index = 0;
673: 669 0002C0FF 4d effffffb4f clrl _index
674: 670 0002C105 # do
675: 671 0002C105 L292:
676: 672 0002C105 # {
677: 673 0002C105 # sgl_value_1 = ldf_1_data[index].ld; /* get operand 1 */
678: 674 0002C105 0d effffffb49 50 movl _index,r0
679: 675 0002C10C 48 03 50 50 shll $3,r0,r0
680: 676 0002C110 0d e000000000 effffffb39 movl _ldf_1_data(r0),_sgl_value_1
681: 677 0002C11B # sgl_expected = ldf_1_data[index].exp; /* get expected results */
682: 678 0002C11B 0d effffffb33 50 movl _index,r0
683: 679 0002C122 48 03 50 50 shll $3,r0,r0
684: 680 0002C126 0d e000000004 effffffb23 movl _ldf_1_data+4(r0),_sgl_expected
685: 681 0002C131 # sgl_value_2 = 0x40800000; /* floating '1' */
686: 682 0002C131 0d 8f40800000 effffffb18 movl $1082130432,_sgl_value_2
687: 683 0002C13C # sgl_value_3 = 0x41000000; /* floating '2' */
688: 684 0002C13C 0d 8f41000000 effffffb0d movl $1090519040,_sgl_value_3
689: 685 0002C147 # /*
690: 686 0002C147 # * If LOOP ON ERROR is set, this is the loop for this subtest.
691: 687 0002C147 # * The force loop flag is set after the first error.
692: 688 0002C147 # */
693: 689 0002C147 # asm("_pipe8_5_lp1:");
694: 690 0002C147 _pipe8_5_lp1:
695: 691 0002C147 # asm("ldf _sgl_value_2"); /* 1.0 to the ACC. ( 1.0 ) */
696: 692 0002C147 06 effffffb07 ldf _sgl_value_2
697: 693 0002C14D # asm("subf _sgl_value_3"); /* minus 2.0 (-1.0 ) */
698: 694 0002C14D d6 effffffb01 subf _sgl_value_3
699: 695 0002C153 # asm("mulf _sgl_value_1"); /* *'s the operand ( -op ) */
700: 696 0002C153 e6 effffffafb mulf _sgl_value_1
701: 697 0002C159 # asm("addf _sgl_value_1"); /* + the operand ( 0 ) */
702: 698 0002C159 c6 effffffaf5 addf _sgl_value_1
703: 699 0002C15F # asm("addf _sgl_value_1"); /* + the operand ( +op ) */
704: 700 0002C15F c6 effffffaef addf _sgl_value_1
705: 701 0002C165 # asm("stf _sgl_st_acc"); /* store the result */
706: 702 0002C165 26 effffffae9 stf _sgl_st_acc
707: 703 0002C16B # if( force_loop )
708: 704 0002C16B 5d effffffae3 tstl _force_loop
709: 705 0002C171 31 02 jeql L293
710: 706 0002C173 # asm("brb _pipe8_5_lp1");; /* loop on the error */
711: 707 0002C173 11 d2 brb _pipe8_5_lp1
712: 708 0002C175 L293:
713: 709 0002C175 # /*
714: 710 0002C175 # * verify the results
715: 711 0002C175 # */
716: 712 0002C175 # if( sgl_st_acc != sgl_expected ) /* COMPARE the values */
717: 713 0002C175 1d effffffad9 effffffad4 cmpl _sgl_st_acc,_sgl_expected
718: 714 0002C180 31 45 jeql L294
719: 715 0002C182 # {
720: 716 0002C182 # errcnt++; /* bump the error count */
721: 717 0002C182 6d effffffacc incl _errcnt
722: 718 0002C188 # if ( prt_error )
723: 719 0002C188 5d effffffac6 tstl _prt_error
724: 720 0002C18E 31 0d jeql L295
725: 721 0002C190 # print_pipe8_er("Cache Data, no NO-OPs");
726: 722 0002C190 .data 1
727: 723 00000db6 * L296:
728: 724 00000db6 * 436163686520446174612C206 .ascii "Cache Data, no NO-OPs\0"
729: E6F204E4F2D4F507300
730: 725 00000dcc * .text
731: 726 0002C190 dd 8f00000db6 pushl $L296
732: 727 0002C196 fe 08 ef00000693 callf $8,_print_pipe8_er
733: 728 0002C19D # if ( halt_flg )
734: 729 0002C19D L295:
735: 730 0002C19D 5d effffffab1 tstl _halt_flg
736: 731 0002C1A3 31 0d jeql L297
737: 732 0002C1A5 # pipe8_er_hlt( subtest );
738: 733 0002C1A5 dd effffffaa9 pushl _subtest
739: 734 0002C1AB fe 08 ef0000078a callf $8,_pipe8_er_hlt
740: 735 0002C1B2 # if ( loop_on_err ) {
741: 736 0002C1B2 L297:
742: 737 0002C1B2 5d effffffa9c tstl _loop_on_err
743: 738 0002C1B8 31 0d jeql L298
744: 739 0002C1BA # force_loop = TRUE; /* set the force loop flag */
745: 740 0002C1BA 0d 01 effffffa93 movl $1,_force_loop
746: 741 0002C1C1 # asm("jmp _pipe8_5_lp1"); /* and loop */
747: 742 0002C1C1 71 efffffff80 jmp _pipe8_5_lp1
748: 743 0002C1C7 # }
749: 744 0002C1C7 # } /* end of compare error */
750: 745 0002C1C7 L298:
751: 746 0002C1C7 # } while( index++ < max_ldf_1_index );
752: 747 0002C1C7 L294:
753: 748 0002C1C7 L291:
754: 749 0002C1C7 0d effffffa87 50 movl _index,r0
755: 750 0002C1CE 6d effffffa80 incl _index
756: 751 0002C1D4 1d 50 effffffa79 cmpl r0,_max_ldf_1_index
757: 752 0002C1DB 81 03 13 ff25 jlss L292
758: 753 0002C1E0 L290:
759: 754 0002C1E0 # } /* end of subtest 5 */
760: 755 0002C1E0 40 ret#2
761: 756 0002C1E1 .set L286,0x0
762: 757 0002C1E1 L288:
763: 758 0002C1E1 13 ff15 jbr L289
764: 759 0002C1E4 .data
765: 760 00000d5c * .text
766: 761 0002C1E4 .align 1
767: 762 0002C1E4 .globl _pipe8_6
768: 763 0002C1E4 _pipe8_6:
769: 764 0002C1E4 0000 .word L299
770: 765 0002C1E6 #
771: 766 0002C1E6 #
772: 767 0002C1E6 #
773: 768 0002C1E6 #
774: 769 0002C1E6 #
775: 770 0002C1E6 #
776: 771 0002C1E6 # /************************************************************************
777: 772 0002C1E6 # *
778: 773 0002C1E6 # * SUBTEST 6
779: 774 0002C1E6 # * data in Cache, 1 NO-OP
780: 775 0002C1E6 # *
781: 776 0002C1E6 # ************************************************************************/
782: 777 0002C1E6 # pipe8_6()
783: 778 0002C1E6 # {
784: 779 0002C1E6 13 00ed jbr L301
785: 780 0002C1E9 L302:
786: 781 0002C1E9 # force_loop = FALSE; /* clear force_loop flag */
787: 782 0002C1E9 4d effffffa65 clrl _force_loop
788: 783 0002C1EF # index = 0;
789: 784 0002C1EF 4d effffffa5f clrl _index
790: 785 0002C1F5 # do
791: 786 0002C1F5 L305:
792: 787 0002C1F5 # {
793: 788 0002C1F5 # sgl_value_1 = ldf_1_data[index].ld; /* get operand 1 */
794: 789 0002C1F5 0d effffffa59 50 movl _index,r0
795: 790 0002C1FC 48 03 50 50 shll $3,r0,r0
796: 791 0002C200 0d e000000000 effffffa49 movl _ldf_1_data(r0),_sgl_value_1
797: 792 0002C20B # sgl_expected = ldf_1_data[index].exp; /* get expected results */
798: 793 0002C20B 0d effffffa43 50 movl _index,r0
799: 794 0002C212 48 03 50 50 shll $3,r0,r0
800: 795 0002C216 0d e000000004 effffffa33 movl _ldf_1_data+4(r0),_sgl_expected
801: 796 0002C221 # sgl_value_2 = 0x40800000; /* floating '1' */
802: 797 0002C221 0d 8f40800000 effffffa28 movl $1082130432,_sgl_value_2
803: 798 0002C22C # sgl_value_3 = 0x41000000; /* floating '2' */
804: 799 0002C22C 0d 8f41000000 effffffa1d movl $1090519040,_sgl_value_3
805: 800 0002C237 # /*
806: 801 0002C237 # * If LOOP ON ERROR is set, this is the loop for this subtest.
807: 802 0002C237 # * The force loop flag is set after the first error.
808: 803 0002C237 # */
809: 804 0002C237 # asm("_pipe8_6_lp1:");
810: 805 0002C237 _pipe8_6_lp1:
811: 806 0002C237 # asm("ldf _sgl_value_2"); /* 1.0 to the ACC. ( 1.0 ) */
812: 807 0002C237 06 effffffa17 ldf _sgl_value_2
813: 808 0002C23D # asm("nop");
814: 809 0002C23D 10 nop
815: 810 0002C23E # asm("subf _sgl_value_3"); /* minus 2.0 (-1.0 ) */
816: 811 0002C23E d6 effffffa10 subf _sgl_value_3
817: 812 0002C244 # asm("nop");
818: 813 0002C244 10 nop
819: 814 0002C245 # asm("mulf _sgl_value_1"); /* *'s the operand ( -op ) */
820: 815 0002C245 e6 effffffa09 mulf _sgl_value_1
821: 816 0002C24B # asm("nop");
822: 817 0002C24B 10 nop
823: 818 0002C24C # asm("addf _sgl_value_1"); /* + the operand ( 0 ) */
824: 819 0002C24C c6 effffffa02 addf _sgl_value_1
825: 820 0002C252 # asm("nop");
826: 821 0002C252 10 nop
827: 822 0002C253 # asm("addf _sgl_value_1"); /* + the operand ( +op ) */
828: 823 0002C253 c6 effffff9fb addf _sgl_value_1
829: 824 0002C259 # asm("nop");
830: 825 0002C259 10 nop
831: 826 0002C25A # asm("stf _sgl_st_acc"); /* store the result */
832: 827 0002C25A 26 effffff9f4 stf _sgl_st_acc
833: 828 0002C260 # if( force_loop )
834: 829 0002C260 5d effffff9ee tstl _force_loop
835: 830 0002C266 31 02 jeql L306
836: 831 0002C268 # asm("brb _pipe8_6_lp1");; /* loop on the error */
837: 832 0002C268 11 cd brb _pipe8_6_lp1
838: 833 0002C26A L306:
839: 834 0002C26A # /*
840: 835 0002C26A # * verify the results
841: 836 0002C26A # */
842: 837 0002C26A # if( sgl_st_acc != sgl_expected ) /* COMPARE the values */
843: 838 0002C26A 1d effffff9e4 effffff9df cmpl _sgl_st_acc,_sgl_expected
844: 839 0002C275 31 45 jeql L307
845: 840 0002C277 # {
846: 841 0002C277 # errcnt++; /* bump the error count */
847: 842 0002C277 6d effffff9d7 incl _errcnt
848: 843 0002C27D # if ( prt_error )
849: 844 0002C27D 5d effffff9d1 tstl _prt_error
850: 845 0002C283 31 0d jeql L308
851: 846 0002C285 # print_pipe8_er("Cache Data, 1 NO-OP");
852: 847 0002C285 .data 1
853: 848 00000dcc * L309:
854: 849 00000dcc * 436163686520446174612C203 .ascii "Cache Data, 1 NO-OP\0"
855: 1204E4F2D4F5000
856: 850 00000de0 * .text
857: 851 0002C285 dd 8f00000dcc pushl $L309
858: 852 0002C28B fe 08 ef0000059e callf $8,_print_pipe8_er
859: 853 0002C292 # if ( halt_flg )
860: 854 0002C292 L308:
861: 855 0002C292 5d effffff9bc tstl _halt_flg
862: 856 0002C298 31 0d jeql L310
863: 857 0002C29A # pipe8_er_hlt( subtest );
864: 858 0002C29A dd effffff9b4 pushl _subtest
865: 859 0002C2A0 fe 08 ef00000695 callf $8,_pipe8_er_hlt
866: 860 0002C2A7 # if ( loop_on_err ) {
867: 861 0002C2A7 L310:
868: 862 0002C2A7 5d effffff9a7 tstl _loop_on_err
869: 863 0002C2AD 31 0d jeql L311
870: 864 0002C2AF # force_loop = TRUE; /* set the force loop flag */
871: 865 0002C2AF 0d 01 effffff99e movl $1,_force_loop
872: 866 0002C2B6 # asm("jmp _pipe8_6_lp1"); /* and loop */
873: 867 0002C2B6 71 efffffff7b jmp _pipe8_6_lp1
874: 868 0002C2BC # }
875: 869 0002C2BC # } /* end of compare error */
876: 870 0002C2BC L311:
877: 871 0002C2BC # } while( index++ < max_ldf_1_index );
878: 872 0002C2BC L307:
879: 873 0002C2BC L304:
880: 874 0002C2BC 0d effffff992 50 movl _index,r0
881: 875 0002C2C3 6d effffff98b incl _index
882: 876 0002C2C9 1d 50 effffff984 cmpl r0,_max_ldf_1_index
883: 877 0002C2D0 81 03 13 ff20 jlss L305
884: 878 0002C2D5 L303:
885: 879 0002C2D5 # } /* end of subtest 6 */
886: 880 0002C2D5 40 ret#2
887: 881 0002C2D6 .set L299,0x0
888: 882 0002C2D6 L301:
889: 883 0002C2D6 13 ff10 jbr L302
890: 884 0002C2D9 .data
891: 885 00000d5c * .text
892: 886 0002C2D9 00 .align 1
893: 887 0002C2DA .globl _pipe8_7
894: 888 0002C2DA _pipe8_7:
895: 889 0002C2DA 0000 .word L312
896: 890 0002C2DC #
897: 891 0002C2DC #
898: 892 0002C2DC #
899: 893 0002C2DC #
900: 894 0002C2DC #
901: 895 0002C2DC #
902: 896 0002C2DC # /************************************************************************
903: 897 0002C2DC # *
904: 898 0002C2DC # * SUBTEST 7
905: 899 0002C2DC # * data in Cache, 2 NO-OPs
906: 900 0002C2DC # *
907: 901 0002C2DC # ************************************************************************/
908: 902 0002C2DC # pipe8_7()
909: 903 0002C2DC # {
910: 904 0002C2DC 13 00f2 jbr L314
911: 905 0002C2DF L315:
912: 906 0002C2DF # force_loop = FALSE; /* clear force_loop flag */
913: 907 0002C2DF 4d effffff96f clrl _force_loop
914: 908 0002C2E5 # index = 0;
915: 909 0002C2E5 4d effffff969 clrl _index
916: 910 0002C2EB # do
917: 911 0002C2EB L318:
918: 912 0002C2EB # {
919: 913 0002C2EB # sgl_value_1 = ldf_1_data[index].ld; /* get operand 1 */
920: 914 0002C2EB 0d effffff963 50 movl _index,r0
921: 915 0002C2F2 48 03 50 50 shll $3,r0,r0
922: 916 0002C2F6 0d e000000000 effffff953 movl _ldf_1_data(r0),_sgl_value_1
923: 917 0002C301 # sgl_expected = ldf_1_data[index].exp; /* get expected results */
924: 918 0002C301 0d effffff94d 50 movl _index,r0
925: 919 0002C308 48 03 50 50 shll $3,r0,r0
926: 920 0002C30C 0d e000000004 effffff93d movl _ldf_1_data+4(r0),_sgl_expected
927: 921 0002C317 # sgl_value_2 = 0x40800000; /* floating '1' */
928: 922 0002C317 0d 8f40800000 effffff932 movl $1082130432,_sgl_value_2
929: 923 0002C322 # sgl_value_3 = 0x41000000; /* floating '2' */
930: 924 0002C322 0d 8f41000000 effffff927 movl $1090519040,_sgl_value_3
931: 925 0002C32D # /*
932: 926 0002C32D # * If LOOP ON ERROR is set, this is the loop for this subtest.
933: 927 0002C32D # * The force loop flag is set after the first error.
934: 928 0002C32D # */
935: 929 0002C32D # asm("_pipe8_7_lp1:");
936: 930 0002C32D _pipe8_7_lp1:
937: 931 0002C32D # asm("ldf _sgl_value_2"); /* 1.0 to the ACC. ( 1.0 ) */
938: 932 0002C32D 06 effffff921 ldf _sgl_value_2
939: 933 0002C333 # asm("nop");
940: 934 0002C333 10 nop
941: 935 0002C334 # asm("nop");
942: 936 0002C334 10 nop
943: 937 0002C335 # asm("subf _sgl_value_3"); /* minus 2.0 (-1.0 ) */
944: 938 0002C335 d6 effffff919 subf _sgl_value_3
945: 939 0002C33B # asm("nop");
946: 940 0002C33B 10 nop
947: 941 0002C33C # asm("nop");
948: 942 0002C33C 10 nop
949: 943 0002C33D # asm("mulf _sgl_value_1"); /* *'s the operand ( -op ) */
950: 944 0002C33D e6 effffff911 mulf _sgl_value_1
951: 945 0002C343 # asm("nop");
952: 946 0002C343 10 nop
953: 947 0002C344 # asm("nop");
954: 948 0002C344 10 nop
955: 949 0002C345 # asm("addf _sgl_value_1"); /* + the operand ( 0 ) */
956: 950 0002C345 c6 effffff909 addf _sgl_value_1
957: 951 0002C34B # asm("nop");
958: 952 0002C34B 10 nop
959: 953 0002C34C # asm("nop");
960: 954 0002C34C 10 nop
961: 955 0002C34D # asm("addf _sgl_value_1"); /* + the operand ( +op ) */
962: 956 0002C34D c6 effffff901 addf _sgl_value_1
963: 957 0002C353 # asm("nop");
964: 958 0002C353 10 nop
965: 959 0002C354 # asm("nop");
966: 960 0002C354 10 nop
967: 961 0002C355 # asm("stf _sgl_st_acc"); /* store the result */
968: 962 0002C355 26 effffff8f9 stf _sgl_st_acc
969: 963 0002C35B # if( force_loop )
970: 964 0002C35B 5d effffff8f3 tstl _force_loop
971: 965 0002C361 31 02 jeql L319
972: 966 0002C363 # asm("brb _pipe8_7_lp1");; /* loop on the error */
973: 967 0002C363 11 c8 brb _pipe8_7_lp1
974: 968 0002C365 L319:
975: 969 0002C365 # /*
976: 970 0002C365 # * verify the results
977: 971 0002C365 # */
978: 972 0002C365 # if( sgl_st_acc != sgl_expected ) /* COMPARE the values */
979: 973 0002C365 1d effffff8e9 effffff8e4 cmpl _sgl_st_acc,_sgl_expected
980: 974 0002C370 31 45 jeql L320
981: 975 0002C372 # {
982: 976 0002C372 # errcnt++; /* bump the error count */
983: 977 0002C372 6d effffff8dc incl _errcnt
984: 978 0002C378 # if ( prt_error )
985: 979 0002C378 5d effffff8d6 tstl _prt_error
986: 980 0002C37E 31 0d jeql L321
987: 981 0002C380 # print_pipe8_er("Cache Data, 2 NO-OPs");
988: 982 0002C380 .data 1
989: 983 00000de0 * L322:
990: 984 00000de0 * 436163686520446174612C203 .ascii "Cache Data, 2 NO-OPs\0"
991: 2204E4F2D4F507300
992: 985 00000df5 * .text
993: 986 0002C380 dd 8f00000de0 pushl $L322
994: 987 0002C386 fe 08 ef000004a3 callf $8,_print_pipe8_er
995: 988 0002C38D # if ( halt_flg )
996: 989 0002C38D L321:
997: 990 0002C38D 5d effffff8c1 tstl _halt_flg
998: 991 0002C393 31 0d jeql L323
999: 992 0002C395 # pipe8_er_hlt( subtest );
1000: 993 0002C395 dd effffff8b9 pushl _subtest
1001: 994 0002C39B fe 08 ef0000059a callf $8,_pipe8_er_hlt
1002: 995 0002C3A2 # if ( loop_on_err ) {
1003: 996 0002C3A2 L323:
1004: 997 0002C3A2 5d effffff8ac tstl _loop_on_err
1005: 998 0002C3A8 31 0d jeql L324
1006: 999 0002C3AA # force_loop = TRUE; /* set the force loop flag */
1007: 1000 0002C3AA 0d 01 effffff8a3 movl $1,_force_loop
1008: 1001 0002C3B1 # asm("jmp _pipe8_7_lp1"); /* and loop */
1009: 1002 0002C3B1 71 efffffff76 jmp _pipe8_7_lp1
1010: 1003 0002C3B7 # }
1011: 1004 0002C3B7 # } /* end of compare error */
1012: 1005 0002C3B7 L324:
1013: 1006 0002C3B7 # } while( index++ < max_ldf_1_index );
1014: 1007 0002C3B7 L320:
1015: 1008 0002C3B7 L317:
1016: 1009 0002C3B7 0d effffff897 50 movl _index,r0
1017: 1010 0002C3BE 6d effffff890 incl _index
1018: 1011 0002C3C4 1d 50 effffff889 cmpl r0,_max_ldf_1_index
1019: 1012 0002C3CB 81 03 13 ff1b jlss L318
1020: 1013 0002C3D0 L316:
1021: 1014 0002C3D0 # } /* end of subtest 7 */
1022: 1015 0002C3D0 40 ret#2
1023: 1016 0002C3D1 .set L312,0x0
1024: 1017 0002C3D1 L314:
1025: 1018 0002C3D1 13 ff0b jbr L315
1026: 1019 0002C3D4 .data
1027: 1020 00000d5c * .text
1028: 1021 0002C3D4 .align 1
1029: 1022 0002C3D4 .globl _pipe8_8
1030: 1023 0002C3D4 _pipe8_8:
1031: 1024 0002C3D4 0000 .word L325
1032: 1025 0002C3D6 #
1033: 1026 0002C3D6 #
1034: 1027 0002C3D6 #
1035: 1028 0002C3D6 #
1036: 1029 0002C3D6 #
1037: 1030 0002C3D6 #
1038: 1031 0002C3D6 # /************************************************************************
1039: 1032 0002C3D6 # *
1040: 1033 0002C3D6 # * SUBTEST 8
1041: 1034 0002C3D6 # * data in Cache, 3 NO-OPs
1042: 1035 0002C3D6 # *
1043: 1036 0002C3D6 # ************************************************************************/
1044: 1037 0002C3D6 # pipe8_8()
1045: 1038 0002C3D6 # {
1046: 1039 0002C3D6 13 00f7 jbr L327
1047: 1040 0002C3D9 L328:
1048: 1041 0002C3D9 # force_loop = FALSE; /* clear force_loop flag */
1049: 1042 0002C3D9 4d effffff875 clrl _force_loop
1050: 1043 0002C3DF # index = 0;
1051: 1044 0002C3DF 4d effffff86f clrl _index
1052: 1045 0002C3E5 # do
1053: 1046 0002C3E5 L331:
1054: 1047 0002C3E5 # {
1055: 1048 0002C3E5 # sgl_value_1 = ldf_1_data[index].ld; /* get operand 1 */
1056: 1049 0002C3E5 0d effffff869 50 movl _index,r0
1057: 1050 0002C3EC 48 03 50 50 shll $3,r0,r0
1058: 1051 0002C3F0 0d e000000000 effffff859 movl _ldf_1_data(r0),_sgl_value_1
1059: 1052 0002C3FB # sgl_expected = ldf_1_data[index].exp; /* get expected results */
1060: 1053 0002C3FB 0d effffff853 50 movl _index,r0
1061: 1054 0002C402 48 03 50 50 shll $3,r0,r0
1062: 1055 0002C406 0d e000000004 effffff843 movl _ldf_1_data+4(r0),_sgl_expected
1063: 1056 0002C411 # sgl_value_2 = 0x40800000; /* floating '1' */
1064: 1057 0002C411 0d 8f40800000 effffff838 movl $1082130432,_sgl_value_2
1065: 1058 0002C41C # sgl_value_3 = 0x41000000; /* floating '2' */
1066: 1059 0002C41C 0d 8f41000000 effffff82d movl $1090519040,_sgl_value_3
1067: 1060 0002C427 # /*
1068: 1061 0002C427 # * If LOOP ON ERROR is set, this is the loop for this subtest.
1069: 1062 0002C427 # * The force loop flag is set after the first error.
1070: 1063 0002C427 # */
1071: 1064 0002C427 # asm("_pipe8_8_lp1:");
1072: 1065 0002C427 _pipe8_8_lp1:
1073: 1066 0002C427 # asm("ldf _sgl_value_2"); /* 1.0 to the ACC. ( 1.0 ) */
1074: 1067 0002C427 06 effffff827 ldf _sgl_value_2
1075: 1068 0002C42D # asm("nop");
1076: 1069 0002C42D 10 nop
1077: 1070 0002C42E # asm("nop");
1078: 1071 0002C42E 10 nop
1079: 1072 0002C42F # asm("nop");
1080: 1073 0002C42F 10 nop
1081: 1074 0002C430 # asm("subf _sgl_value_3"); /* minus 2.0 (-1.0 ) */
1082: 1075 0002C430 d6 effffff81e subf _sgl_value_3
1083: 1076 0002C436 # asm("nop");
1084: 1077 0002C436 10 nop
1085: 1078 0002C437 # asm("nop");
1086: 1079 0002C437 10 nop
1087: 1080 0002C438 # asm("nop");
1088: 1081 0002C438 10 nop
1089: 1082 0002C439 # asm("mulf _sgl_value_1"); /* *'s the operand ( -op ) */
1090: 1083 0002C439 e6 effffff815 mulf _sgl_value_1
1091: 1084 0002C43F # asm("nop");
1092: 1085 0002C43F 10 nop
1093: 1086 0002C440 # asm("nop");
1094: 1087 0002C440 10 nop
1095: 1088 0002C441 # asm("nop");
1096: 1089 0002C441 10 nop
1097: 1090 0002C442 # asm("addf _sgl_value_1"); /* + the operand ( 0 ) */
1098: 1091 0002C442 c6 effffff80c addf _sgl_value_1
1099: 1092 0002C448 # asm("nop");
1100: 1093 0002C448 10 nop
1101: 1094 0002C449 # asm("nop");
1102: 1095 0002C449 10 nop
1103: 1096 0002C44A # asm("nop");
1104: 1097 0002C44A 10 nop
1105: 1098 0002C44B # asm("addf _sgl_value_1"); /* + the operand ( +op ) */
1106: 1099 0002C44B c6 effffff803 addf _sgl_value_1
1107: 1100 0002C451 # asm("nop");
1108: 1101 0002C451 10 nop
1109: 1102 0002C452 # asm("nop");
1110: 1103 0002C452 10 nop
1111: 1104 0002C453 # asm("nop");
1112: 1105 0002C453 10 nop
1113: 1106 0002C454 # asm("stf _sgl_st_acc"); /* store the result */
1114: 1107 0002C454 26 effffff7fa stf _sgl_st_acc
1115: 1108 0002C45A # if( force_loop )
1116: 1109 0002C45A 5d effffff7f4 tstl _force_loop
1117: 1110 0002C460 31 02 jeql L332
1118: 1111 0002C462 # asm("brb _pipe8_8_lp1");; /* loop on the error */
1119: 1112 0002C462 11 c3 brb _pipe8_8_lp1
1120: 1113 0002C464 L332:
1121: 1114 0002C464 # /*
1122: 1115 0002C464 # * verify the results
1123: 1116 0002C464 # */
1124: 1117 0002C464 # if( sgl_st_acc != sgl_expected ) /* COMPARE the values */
1125: 1118 0002C464 1d effffff7ea effffff7e5 cmpl _sgl_st_acc,_sgl_expected
1126: 1119 0002C46F 31 45 jeql L333
1127: 1120 0002C471 # {
1128: 1121 0002C471 # errcnt++; /* bump the error count */
1129: 1122 0002C471 6d effffff7dd incl _errcnt
1130: 1123 0002C477 # if ( prt_error )
1131: 1124 0002C477 5d effffff7d7 tstl _prt_error
1132: 1125 0002C47D 31 0d jeql L334
1133: 1126 0002C47F # print_pipe8_er("Cache Data, 3 NO-OPs");
1134: 1127 0002C47F .data 1
1135: 1128 00000df5 * L335:
1136: 1129 00000df5 * 436163686520446174612C203 .ascii "Cache Data, 3 NO-OPs\0"
1137: 3204E4F2D4F507300
1138: 1130 00000e0a * .text
1139: 1131 0002C47F dd 8f00000df5 pushl $L335
1140: 1132 0002C485 fe 08 ef000003a4 callf $8,_print_pipe8_er
1141: 1133 0002C48C # if ( halt_flg )
1142: 1134 0002C48C L334:
1143: 1135 0002C48C 5d effffff7c2 tstl _halt_flg
1144: 1136 0002C492 31 0d jeql L336
1145: 1137 0002C494 # pipe8_er_hlt( subtest );
1146: 1138 0002C494 dd effffff7ba pushl _subtest
1147: 1139 0002C49A fe 08 ef0000049b callf $8,_pipe8_er_hlt
1148: 1140 0002C4A1 # if ( loop_on_err ) {
1149: 1141 0002C4A1 L336:
1150: 1142 0002C4A1 5d effffff7ad tstl _loop_on_err
1151: 1143 0002C4A7 31 0d jeql L337
1152: 1144 0002C4A9 # force_loop = TRUE; /* set the force loop flag */
1153: 1145 0002C4A9 0d 01 effffff7a4 movl $1,_force_loop
1154: 1146 0002C4B0 # asm("jmp _pipe8_8_lp1"); /* and loop */
1155: 1147 0002C4B0 71 efffffff71 jmp _pipe8_8_lp1
1156: 1148 0002C4B6 # }
1157: 1149 0002C4B6 # } /* end of compare error */
1158: 1150 0002C4B6 L337:
1159: 1151 0002C4B6 # } while( index++ < max_ldf_1_index );
1160: 1152 0002C4B6 L333:
1161: 1153 0002C4B6 L330:
1162: 1154 0002C4B6 0d effffff798 50 movl _index,r0
1163: 1155 0002C4BD 6d effffff791 incl _index
1164: 1156 0002C4C3 1d 50 effffff78a cmpl r0,_max_ldf_1_index
1165: 1157 0002C4CA 81 03 13 ff16 jlss L331
1166: 1158 0002C4CF L329:
1167: 1159 0002C4CF # } /* end of subtest 8 */
1168: 1160 0002C4CF 40 ret#2
1169: 1161 0002C4D0 .set L325,0x0
1170: 1162 0002C4D0 L327:
1171: 1163 0002C4D0 13 ff06 jbr L328
1172: 1164 0002C4D3 .data
1173: 1165 00000d5c * .text
1174: 1166 0002C4D3 00 .align 1
1175: 1167 0002C4D4 .globl _pipe8_9
1176: 1168 0002C4D4 _pipe8_9:
1177: 1169 0002C4D4 0000 .word L338
1178: 1170 0002C4D6 #
1179: 1171 0002C4D6 #
1180: 1172 0002C4D6 #
1181: 1173 0002C4D6 #
1182: 1174 0002C4D6 #
1183: 1175 0002C4D6 #
1184: 1176 0002C4D6 # /*****************************************************************************
1185: 1177 0002C4D6 # *
1186: 1178 0002C4D6 # * SUBTEST 9
1187: 1179 0002C4D6 # * data on the stack, no NO-OPs
1188: 1180 0002C4D6 # *
1189: 1181 0002C4D6 # *****************************************************************************/
1190: 1182 0002C4D6 # pipe8_9()
1191: 1183 0002C4D6 # {
1192: 1184 0002C4D6 13 018e jbr L340
1193: 1185 0002C4D9 L341:
1194: 1186 0002C4D9 # asm("moval (r13),_pre_event_fp"); /* save the frame pointer */
1195: 1187 0002C4D9 ed 6d effffff774 moval (r13),_pre_event_fp
1196: 1188 0002C4E0 # asm("moval (r14),_pre_event_sp"); /* save the stack pointer */
1197: 1189 0002C4E0 ed 6e effffff76d moval (r14),_pre_event_sp
1198: 1190 0002C4E7 # force_loop = FALSE; /* clear force_loop flag */
1199: 1191 0002C4E7 4d effffff767 clrl _force_loop
1200: 1192 0002C4ED # index = 0;
1201: 1193 0002C4ED 4d effffff761 clrl _index
1202: 1194 0002C4F3 # do
1203: 1195 0002C4F3 L344:
1204: 1196 0002C4F3 # {
1205: 1197 0002C4F3 # sgl_value_1 = ldf_1_data[index].ld; /* get operand 1 */
1206: 1198 0002C4F3 0d effffff75b 50 movl _index,r0
1207: 1199 0002C4FA 48 03 50 50 shll $3,r0,r0
1208: 1200 0002C4FE 0d e000000000 effffff74b movl _ldf_1_data(r0),_sgl_value_1
1209: 1201 0002C509 # sgl_expected = ldf_1_data[index].exp; /* get expected results */
1210: 1202 0002C509 0d effffff745 50 movl _index,r0
1211: 1203 0002C510 48 03 50 50 shll $3,r0,r0
1212: 1204 0002C514 0d e000000004 effffff735 movl _ldf_1_data+4(r0),_sgl_expected
1213: 1205 0002C51F # sgl_value_2 = 0x40800000; /* floating '1' */
1214: 1206 0002C51F 0d 8f40800000 effffff72a movl $1082130432,_sgl_value_2
1215: 1207 0002C52A # sgl_value_3 = 0x41000000; /* floating '2' */
1216: 1208 0002C52A 0d 8f41000000 effffff71f movl $1090519040,_sgl_value_3
1217: 1209 0002C535 # asm("moval _pointer_data,_sgl_value_4");/* init / final SP value */
1218: 1210 0002C535 ed effffff719 effffff714 moval _pointer_data,_sgl_value_4
1219: 1211 0002C540 # /*
1220: 1212 0002C540 # * If LOOP ON ERROR is set, this is the loop for this subtest.
1221: 1213 0002C540 # * The force loop flag is set after the first error.
1222: 1214 0002C540 # */
1223: 1215 0002C540 # asm("_pipe8_9_lp1:");
1224: 1216 0002C540 _pipe8_9_lp1:
1225: 1217 0002C540 # asm("moval _pointer_data,r14"); /* set the stack pointer */
1226: 1218 0002C540 ed effffff70e 5e moval _pointer_data,r14
1227: 1219 0002C547 # asm("movl _sgl_value_1,-(r14)"); /* push the operand */
1228: 1220 0002C547 0d effffff707 7e movl _sgl_value_1,-(r14)
1229: 1221 0002C54E # asm("movl _sgl_value_1,-(r14)"); /* onto the stack */
1230: 1222 0002C54E 0d effffff700 7e movl _sgl_value_1,-(r14)
1231: 1223 0002C555 # asm("movl _sgl_value_1,-(r14)"); /* 3 times */
1232: 1224 0002C555 0d effffff6f9 7e movl _sgl_value_1,-(r14)
1233: 1225 0002C55C # asm("movl _sgl_value_3,-(r14)"); /* push a '2' on the stack */
1234: 1226 0002C55C 0d effffff6f2 7e movl _sgl_value_3,-(r14)
1235: 1227 0002C563 # asm("movl _sgl_value_2,-(r14)"); /* push a '1' on the stack */
1236: 1228 0002C563 0d effffff6eb 7e movl _sgl_value_2,-(r14)
1237: 1229 0002C56A # /*
1238: 1230 0002C56A # * now pop the data off the stack
1239: 1231 0002C56A # */
1240: 1232 0002C56A # asm("ldf (r14)+"); /* 1.0 to the ACC. ( 1.0 ) */
1241: 1233 0002C56A 06 8e ldf (r14)+
1242: 1234 0002C56C # asm("subf (r14)+"); /* minus 2.0 (-1.0 ) */
1243: 1235 0002C56C d6 8e subf (r14)+
1244: 1236 0002C56E # asm("mulf (r14)+"); /* *'s the operand ( -op ) */
1245: 1237 0002C56E e6 8e mulf (r14)+
1246: 1238 0002C570 # asm("addf (r14)+"); /* + the operand ( 0 ) */
1247: 1239 0002C570 c6 8e addf (r14)+
1248: 1240 0002C572 # asm("addf (r14)+"); /* + the operand ( +op ) */
1249: 1241 0002C572 c6 8e addf (r14)+
1250: 1242 0002C574 # asm("stf r5"); /* store the result */
1251: 1243 0002C574 26 55 stf r5
1252: 1244 0002C576 # if( force_loop )
1253: 1245 0002C576 5d effffff6d8 tstl _force_loop
1254: 1246 0002C57C 31 02 jeql L345
1255: 1247 0002C57E # asm("brb _pipe8_9_lp1");; /* loop on the error */
1256: 1248 0002C57E 11 c0 brb _pipe8_9_lp1
1257: 1249 0002C580 L345:
1258: 1250 0002C580 # /*
1259: 1251 0002C580 # * verify the results
1260: 1252 0002C580 # */
1261: 1253 0002C580 # asm("movl r5,_sgl_st_acc"); /* get the result */
1262: 1254 0002C580 0d 55 effffff6cd movl r5,_sgl_st_acc
1263: 1255 0002C587 # asm("moval (r14),_sgl_value_5"); /* save the stack pointer */
1264: 1256 0002C587 ed 6e effffff6c6 moval (r14),_sgl_value_5
1265: 1257 0002C58E # if( (sgl_st_acc != sgl_expected) || /* verify the result... */
1266: 1258 0002C58E # (sgl_value_5 != sgl_value_4) ) /* ... and the final SP */
1267: 1259 0002C58E 1d effffff6c0 effffff6bb cmpl _sgl_st_acc,_sgl_expected
1268: 1260 0002C599 21 10 jneq L9999
1269: 1261 0002C59B 1d effffff6b3 effffff6ae cmpl _sgl_value_5,_sgl_value_4
1270: 1262 0002C5A6 21 03 13 0094 jeql L346
1271: 1263 0002C5AB L9999:
1272: 1264 0002C5AB # {
1273: 1265 0002C5AB # asm("movl _pre_event_fp,r13"); /* restore frame pointer */
1274: 1266 0002C5AB 0d effffff6a3 5d movl _pre_event_fp,r13
1275: 1267 0002C5B2 # asm("movl _pre_event_sp,r14"); /* restore stack pointer */
1276: 1268 0002C5B2 0d effffff69c 5e movl _pre_event_sp,r14
1277: 1269 0002C5B9 # errcnt++; /* bump the error count */
1278: 1270 0002C5B9 6d effffff695 incl _errcnt
1279: 1271 0002C5BF # if ( prt_error ) {
1280: 1272 0002C5BF 5d effffff68f tstl _prt_error
1281: 1273 0002C5C5 31 4e jeql L347
1282: 1274 0002C5C7 # print_pipe8_er("POP data from the STACK");
1283: 1275 0002C5C7 .data 1
1284: 1276 00000e0a * L348:
1285: 1277 00000e0a * 504F5020646174612066726F6 .ascii "POP data from the STACK\0"
1286: D2074686520535441434B00
1287: 1278 00000e22 * .text
1288: 1279 0002C5C7 dd 8f00000e0a pushl $L348
1289: 1280 0002C5CD fe 08 ef0000025c callf $8,_print_pipe8_er
1290: 1281 0002C5D4 # writes("final Stack Pointer = ");
1291: 1282 0002C5D4 .data 1
1292: 1283 00000e22 * L349:
1293: 1284 00000e22 * 66696E616C20537461636B205 .ascii "final Stack Pointer = \0"
1294: 06F696E746572203D2000
1295: 1285 00000e39 * .text
1296: 1286 0002C5D4 dd 8f00000e22 pushl $L349
1297: 1287 0002C5DA fe 08 effffff673 callf $8,_writes
1298: 1288 0002C5E1 # write32h( sgl_value_5 );
1299: 1289 0002C5E1 dd effffff66d pushl _sgl_value_5
1300: 1290 0002C5E7 fe 08 effffff666 callf $8,_write32h
1301: 1291 0002C5EE # writes(", expected SP = ");
1302: 1292 0002C5EE .data 1
1303: 1293 00000e39 * L351:
1304: 1294 00000e39 * 2C20206578706563746564205 .ascii ", expected SP = \0"
1305: 350203D2000
1306: 1295 00000e4b * .text
1307: 1296 0002C5EE dd 8f00000e39 pushl $L351
1308: 1297 0002C5F4 fe 08 effffff659 callf $8,_writes
1309: 1298 0002C5FB # write32h( sgl_value_4 );
1310: 1299 0002C5FB dd effffff653 pushl _sgl_value_4
1311: 1300 0002C601 fe 08 effffff64c callf $8,_write32h
1312: 1301 0002C608 # writes("\n");
1313: 1302 0002C608 .data 1
1314: 1303 00000e4b * L352:
1315: 1304 00000e4b * 0A00 .ascii "\12\0"
1316: 1305 00000e4d * .text
1317: 1306 0002C608 dd 8f00000e4b pushl $L352
1318: 1307 0002C60E fe 08 effffff63f callf $8,_writes
1319: 1308 0002C615 # }
1320: 1309 0002C615 # if ( halt_flg )
1321: 1310 0002C615 L347:
1322: 1311 0002C615 5d effffff639 tstl _halt_flg
1323: 1312 0002C61B 31 0d jeql L353
1324: 1313 0002C61D # pipe8_er_hlt( subtest );
1325: 1314 0002C61D dd effffff631 pushl _subtest
1326: 1315 0002C623 fe 08 ef00000312 callf $8,_pipe8_er_hlt
1327: 1316 0002C62A # if ( loop_on_err ) {
1328: 1317 0002C62A L353:
1329: 1318 0002C62A 5d effffff624 tstl _loop_on_err
1330: 1319 0002C630 31 0d jeql L354
1331: 1320 0002C632 # force_loop = TRUE; /* set the force loop flag */
1332: 1321 0002C632 0d 01 effffff61b movl $1,_force_loop
1333: 1322 0002C639 # asm("jmp _pipe8_9_lp1"); /* and loop */
1334: 1323 0002C639 71 efffffff01 jmp _pipe8_9_lp1
1335: 1324 0002C63F # }
1336: 1325 0002C63F # } /* end of compare error */
1337: 1326 0002C63F L354:
1338: 1327 0002C63F # } while( index++ < max_ldf_1_index );
1339: 1328 0002C63F L346:
1340: 1329 0002C63F L343:
1341: 1330 0002C63F 0d effffff60f 50 movl _index,r0
1342: 1331 0002C646 6d effffff608 incl _index
1343: 1332 0002C64C 1d 50 effffff601 cmpl r0,_max_ldf_1_index
1344: 1333 0002C653 81 03 13 fe9b jlss L344
1345: 1334 0002C658 L342:
1346: 1335 0002C658 # asm("movl _pre_event_fp,r13"); /* restore the frame pointer */
1347: 1336 0002C658 0d effffff5f6 5d movl _pre_event_fp,r13
1348: 1337 0002C65F # asm("movl _pre_event_sp,r14"); /* restore the stack pointer */
1349: 1338 0002C65F 0d effffff5ef 5e movl _pre_event_sp,r14
1350: 1339 0002C666 # } /* end of subtest 9 */
1351: 1340 0002C666 40 ret#2
1352: 1341 0002C667 .set L338,0x0
1353: 1342 0002C667 L340:
1354: 1343 0002C667 13 fe6f jbr L341
1355: 1344 0002C66A .data
1356: 1345 00000d5c * .text
1357: 1346 0002C66A .align 1
1358: 1347 0002C66A .globl _pipe8_10
1359: 1348 0002C66A _pipe8_10:
1360: 1349 0002C66A 0000 .word L355
1361: 1350 0002C66C #
1362: 1351 0002C66C #
1363: 1352 0002C66C #
1364: 1353 0002C66C #
1365: 1354 0002C66C #
1366: 1355 0002C66C #
1367: 1356 0002C66C # /******************************************************************************
1368: 1357 0002C66C # *
1369: 1358 0002C66C # * SUBTEST 10
1370: 1359 0002C66C # * get data via indexed FRAME pointer
1371: 1360 0002C66C # *
1372: 1361 0002C66C # * ADDR INDEX DATA
1373: 1362 0002C66C # * pointer_data 4 <the STF result goes here>
1374: 1363 0002C66C # * pointer_data-4 3 <operand data>
1375: 1364 0002C66C # * pointer_data-8 2 <floating 1.0>
1376: 1365 0002C66C # * pointer_data-12 1 <floating 2.0>
1377: 1366 0002C66C # * pointer_data-16 0 point the frame pointer here
1378: 1367 0002C66C # *
1379: 1368 0002C66C # ******************************************************************************/
1380: 1369 0002C66C # pipe8_10()
1381: 1370 0002C66C # {
1382: 1371 0002C66C 13 01be jbr L357
1383: 1372 0002C66F L358:
1384: 1373 0002C66F # asm("moval (r13),_pre_event_fp"); /* save the frame pointer */
1385: 1374 0002C66F ed 6d effffff5de moval (r13),_pre_event_fp
1386: 1375 0002C676 # asm("moval (r14),_pre_event_sp"); /* save the stack pointer */
1387: 1376 0002C676 ed 6e effffff5d7 moval (r14),_pre_event_sp
1388: 1377 0002C67D # force_loop = FALSE; /* clear force_loop flag */
1389: 1378 0002C67D 4d effffff5d1 clrl _force_loop
1390: 1379 0002C683 # index = 0;
1391: 1380 0002C683 4d effffff5cb clrl _index
1392: 1381 0002C689 # do
1393: 1382 0002C689 L361:
1394: 1383 0002C689 # {
1395: 1384 0002C689 # sgl_value_1 = ldf_1_data[index].ld; /* get operand 1 */
1396: 1385 0002C689 0d effffff5c5 50 movl _index,r0
1397: 1386 0002C690 48 03 50 50 shll $3,r0,r0
1398: 1387 0002C694 0d e000000000 effffff5b5 movl _ldf_1_data(r0),_sgl_value_1
1399: 1388 0002C69F # sgl_expected = ldf_1_data[index].exp; /* get expected results */
1400: 1389 0002C69F 0d effffff5af 50 movl _index,r0
1401: 1390 0002C6A6 48 03 50 50 shll $3,r0,r0
1402: 1391 0002C6AA 0d e000000004 effffff59f movl _ldf_1_data+4(r0),_sgl_expected
1403: 1392 0002C6B5 # sgl_value_2 = 0x40800000; /* floating '1' */
1404: 1393 0002C6B5 0d 8f40800000 effffff594 movl $1082130432,_sgl_value_2
1405: 1394 0002C6C0 # sgl_value_3 = 0x41000000; /* floating '2' */
1406: 1395 0002C6C0 0d 8f41000000 effffff589 movl $1090519040,_sgl_value_3
1407: 1396 0002C6CB # asm("moval _pointer_data,_sgl_value_4");/* get store data's addr */
1408: 1397 0002C6CB ed effffff583 effffff57e moval _pointer_data,_sgl_value_4
1409: 1398 0002C6D6 # sgl_value_4 -= 4; /* decrement it by 4 (bytes)*/
1410: 1399 0002C6D6 2c 04 effffff577 subl2 $4,_sgl_value_4
1411: 1400 0002C6DD # asm("movl _sgl_value_1,*_sgl_value_4"); /* set the operand data */
1412: 1401 0002C6DD 0d effffff571 fffffff56c movl _sgl_value_1,*_sgl_value_4
1413: 1402 0002C6E8 # sgl_value_4 -= 4; /* decrement it by 4 (bytes)*/
1414: 1403 0002C6E8 2c 04 effffff565 subl2 $4,_sgl_value_4
1415: 1404 0002C6EF # asm("movl _sgl_value_2,*_sgl_value_4"); /* set the "1.0" data */
1416: 1405 0002C6EF 0d effffff55f fffffff55a movl _sgl_value_2,*_sgl_value_4
1417: 1406 0002C6FA # sgl_value_4 -= 4; /* decrement it by 4 (bytes)*/
1418: 1407 0002C6FA 2c 04 effffff553 subl2 $4,_sgl_value_4
1419: 1408 0002C701 # asm("movl _sgl_value_3,*_sgl_value_4"); /* set the "2.0" data */
1420: 1409 0002C701 0d effffff54d fffffff548 movl _sgl_value_3,*_sgl_value_4
1421: 1410 0002C70C # sgl_value_4 -= 4; /* get FRAME PTR address */
1422: 1411 0002C70C 2c 04 effffff541 subl2 $4,_sgl_value_4
1423: 1412 0002C713 # /*
1424: 1413 0002C713 # * If LOOP ON ERROR is set, this is the loop for this subtest.
1425: 1414 0002C713 # * The force loop flag is set after the first error.
1426: 1415 0002C713 # */
1427: 1416 0002C713 # asm("_pipe8_10_lp1:");
1428: 1417 0002C713 _pipe8_10_lp1:
1429: 1418 0002C713 # asm("movl _sgl_value_4,r13"); /* set the FRAME POINTER */
1430: 1419 0002C713 0d effffff53b 5d movl _sgl_value_4,r13
1431: 1420 0002C71A # asm("movl $1,r1"); /* r1 index = 1 longwords */
1432: 1421 0002C71A 0d 01 51 movl $1,r1
1433: 1422 0002C71D # asm("movl $2,r2"); /* r2 index = 2 longwords */
1434: 1423 0002C71D 0d 02 52 movl $2,r2
1435: 1424 0002C720 # asm("movl $3,r3"); /* r3 index = 3 longwords */
1436: 1425 0002C720 0d 03 53 movl $3,r3
1437: 1426 0002C723 # asm("movl $4,r4"); /* r4 index = 4 longwords */
1438: 1427 0002C723 0d 04 54 movl $4,r4
1439: 1428 0002C726 # asm("ldf (r13)[r2]"); /* 1.0 to the ACC. ( 1.0 ) */
1440: 1429 0002C726 06 426d ldf (r13)[r2]
1441: 1430 0002C729 # asm("subf (r13)[r1]"); /* minus 2.0 (-1.0 ) */
1442: 1431 0002C729 d6 416d subf (r13)[r1]
1443: 1432 0002C72C # asm("mulf (r13)[r3]"); /* *'s the operand ( -op ) */
1444: 1433 0002C72C e6 436d mulf (r13)[r3]
1445: 1434 0002C72F # asm("addf (r13)[r3]"); /* + the operand ( 0 ) */
1446: 1435 0002C72F c6 436d addf (r13)[r3]
1447: 1436 0002C732 # asm("addf (r13)[r3]"); /* + the operand ( +op ) */
1448: 1437 0002C732 c6 436d addf (r13)[r3]
1449: 1438 0002C735 # asm("stf (r13)[r4]"); /* store -indexed by r4 */
1450: 1439 0002C735 26 446d stf (r13)[r4]
1451: 1440 0002C738 # if( force_loop )
1452: 1441 0002C738 5d effffff516 tstl _force_loop
1453: 1442 0002C73E 31 02 jeql L362
1454: 1443 0002C740 # asm("brb _pipe8_10_lp1"); /* loop on the error */
1455: 1444 0002C740 11 d1 brb _pipe8_10_lp1
1456: 1445 0002C742 # /*
1457: 1446 0002C742 # * verify the results
1458: 1447 0002C742 # */
1459: 1448 0002C742 # sgl_st_acc = pointer_data; /* move the stored result */
1460: 1449 0002C742 L362:
1461: 1450 0002C742 0d effffff50c effffff507 movl _pointer_data,_sgl_st_acc
1462: 1451 0002C74D # asm("moval (r13),_sgl_value_5"); /* save the frame pointer */
1463: 1452 0002C74D ed 6d effffff500 moval (r13),_sgl_value_5
1464: 1453 0002C754 # if( (sgl_st_acc != sgl_expected) || /* verify the result... */
1465: 1454 0002C754 # (sgl_value_5 != sgl_value_4) ) /* ... and the final FP */
1466: 1455 0002C754 1d effffff4fa effffff4f5 cmpl _sgl_st_acc,_sgl_expected
1467: 1456 0002C75F 21 10 jneq L9998
1468: 1457 0002C761 1d effffff4ed effffff4e8 cmpl _sgl_value_5,_sgl_value_4
1469: 1458 0002C76C 21 03 13 0094 jeql L363
1470: 1459 0002C771 L9998:
1471: 1460 0002C771 # {
1472: 1461 0002C771 # asm("movl _pre_event_fp,r13"); /* restore frame pointer */
1473: 1462 0002C771 0d effffff4dd 5d movl _pre_event_fp,r13
1474: 1463 0002C778 # asm("movl _pre_event_sp,r14"); /* restore stack pointer */
1475: 1464 0002C778 0d effffff4d6 5e movl _pre_event_sp,r14
1476: 1465 0002C77F # errcnt++; /* bump the error count */
1477: 1466 0002C77F 6d effffff4cf incl _errcnt
1478: 1467 0002C785 # if ( prt_error ) {
1479: 1468 0002C785 5d effffff4c9 tstl _prt_error
1480: 1469 0002C78B 31 4e jeql L364
1481: 1470 0002C78D # print_pipe8_er("indexed FP addressing");
1482: 1471 0002C78D .data 1
1483: 1472 00000e4d * L365:
1484: 1473 00000e4d * 696E646578656420465020616 .ascii "indexed FP addressing\0"
1485: 46472657373696E6700
1486: 1474 00000e63 * .text
1487: 1475 0002C78D dd 8f00000e4d pushl $L365
1488: 1476 0002C793 fe 08 ef00000096 callf $8,_print_pipe8_er
1489: 1477 0002C79A # writes("final Frame Pointer = ");
1490: 1478 0002C79A .data 1
1491: 1479 00000e63 * L366:
1492: 1480 00000e63 * 66696E616C204672616D65205 .ascii "final Frame Pointer = \0"
1493: 06F696E746572203D2000
1494: 1481 00000e7a * .text
1495: 1482 0002C79A dd 8f00000e63 pushl $L366
1496: 1483 0002C7A0 fe 08 effffff4ad callf $8,_writes
1497: 1484 0002C7A7 # writeh( sgl_value_5 );
1498: 1485 0002C7A7 dd effffff4a7 pushl _sgl_value_5
1499: 1486 0002C7AD fe 08 effffff4a0 callf $8,_writeh
1500: 1487 0002C7B4 # writes(", expected FP = ");
1501: 1488 0002C7B4 .data 1
1502: 1489 00000e7a * L368:
1503: 1490 00000e7a * 2C20206578706563746564204 .ascii ", expected FP = \0"
1504: 650203D2000
1505: 1491 00000e8c * .text
1506: 1492 0002C7B4 dd 8f00000e7a pushl $L368
1507: 1493 0002C7BA fe 08 effffff493 callf $8,_writes
1508: 1494 0002C7C1 # writeh( sgl_value_4 );
1509: 1495 0002C7C1 dd effffff48d pushl _sgl_value_4
1510: 1496 0002C7C7 fe 08 effffff486 callf $8,_writeh
1511: 1497 0002C7CE # writes("\n");
1512: 1498 0002C7CE .data 1
1513: 1499 00000e8c * L369:
1514: 1500 00000e8c * 0A00 .ascii "\12\0"
1515: 1501 00000e8e * .text
1516: 1502 0002C7CE dd 8f00000e8c pushl $L369
1517: 1503 0002C7D4 fe 08 effffff479 callf $8,_writes
1518: 1504 0002C7DB # }
1519: 1505 0002C7DB # if ( halt_flg )
1520: 1506 0002C7DB L364:
1521: 1507 0002C7DB 5d effffff473 tstl _halt_flg
1522: 1508 0002C7E1 31 0d jeql L370
1523: 1509 0002C7E3 # pipe8_er_hlt( subtest );
1524: 1510 0002C7E3 dd effffff46b pushl _subtest
1525: 1511 0002C7E9 fe 08 ef0000014c callf $8,_pipe8_er_hlt
1526: 1512 0002C7F0 # if ( loop_on_err ) {
1527: 1513 0002C7F0 L370:
1528: 1514 0002C7F0 5d effffff45e tstl _loop_on_err
1529: 1515 0002C7F6 31 0d jeql L371
1530: 1516 0002C7F8 # force_loop = TRUE; /* set the force loop flag */
1531: 1517 0002C7F8 0d 01 effffff455 movl $1,_force_loop
1532: 1518 0002C7FF # asm("jmp _pipe8_10_lp1"); /* and loop */
1533: 1519 0002C7FF 71 efffffff0e jmp _pipe8_10_lp1
1534: 1520 0002C805 # }
1535: 1521 0002C805 # } /* end of compare error */
1536: 1522 0002C805 L371:
1537: 1523 0002C805 # } while( index++ < max_ldf_1_index );
1538: 1524 0002C805 L363:
1539: 1525 0002C805 L360:
1540: 1526 0002C805 0d effffff449 50 movl _index,r0
1541: 1527 0002C80C 6d effffff442 incl _index
1542: 1528 0002C812 1d 50 effffff43b cmpl r0,_max_ldf_1_index
1543: 1529 0002C819 81 03 13 fe6b jlss L361
1544: 1530 0002C81E L359:
1545: 1531 0002C81E # asm("movl _pre_event_fp,r13"); /* restore the frame pointer */
1546: 1532 0002C81E 0d effffff430 5d movl _pre_event_fp,r13
1547: 1533 0002C825 # asm("movl _pre_event_sp,r14"); /* restore the stack pointer */
1548: 1534 0002C825 0d effffff429 5e movl _pre_event_sp,r14
1549: 1535 0002C82C # } /* end of subtest 10 */
1550: 1536 0002C82C 40 ret#2
1551: 1537 0002C82D .set L355,0x0
1552: 1538 0002C82D L357:
1553: 1539 0002C82D 13 fe3f jbr L358
1554: 1540 0002C830 .data
1555: 1541 00000d5c * .text
1556: 1542 0002C830 .align 1
1557: 1543 0002C830 .globl _print_pipe8_er
1558: 1544 0002C830 _print_pipe8_er:
1559: 1545 0002C830 0000 .word L372
1560: 1546 0002C832 #
1561: 1547 0002C832 #
1562: 1548 0002C832 # /******************************************************************************
1563: 1549 0002C832 # *
1564: 1550 0002C832 # * ERROR ROUTINE
1565: 1551 0002C832 # *
1566: 1552 0002C832 # * print an error in the following form
1567: 1553 0002C832 # *
1568: 1554 0002C832 # * operand = xxxxxxxx, final Acc = xxxxxxxx, data index = dd
1569: 1555 0002C832 # * expected Acc = xxxxxxxx
1570: 1556 0002C832 # *
1571: 1557 0002C832 # ******************************************************************************/
1572: 1558 0002C832 # print_pipe8_er(msg)
1573: 1559 0002C832 # char *msg;
1574: 1560 0002C832 # {
1575: 1561 0002C832 13 0103 jbr L374
1576: 1562 0002C835 L375:
1577: 1563 0002C835 # writes("\n"); /* start a new print line */
1578: 1564 0002C835 .data 1
1579: 1565 00000e8e * L376:
1580: 1566 00000e8e * 0A00 .ascii "\12\0"
1581: 1567 00000e90 * .text
1582: 1568 0002C835 dd 8f00000e8e pushl $L376
1583: 1569 0002C83B fe 08 effffff412 callf $8,_writes
1584: 1570 0002C842 # writes("cycle: ");
1585: 1571 0002C842 .data 1
1586: 1572 00000e90 * L377:
1587: 1573 00000e90 * 6379636C653A2000 .ascii "cycle: \0"
1588: 1574 00000e98 * .text
1589: 1575 0002C842 dd 8f00000e90 pushl $L377
1590: 1576 0002C848 fe 08 effffff405 callf $8,_writes
1591: 1577 0002C84F # writed( cycle );
1592: 1578 0002C84F dd effffff3ff pushl _cycle
1593: 1579 0002C855 fe 08 effffff3f8 callf $8,_writed
1594: 1580 0002C85C # writes(" test ");
1595: 1581 0002C85C .data 1
1596: 1582 00000e98 * L379:
1597: 1583 00000e98 * 20746573742000 .ascii " test \0"
1598: 1584 00000e9f * .text
1599: 1585 0002C85C dd 8f00000e98 pushl $L379
1600: 1586 0002C862 fe 08 effffff3eb callf $8,_writes
1601: 1587 0002C869 # writed( test_no );
1602: 1588 0002C869 dd effffff3e5 pushl _test_no
1603: 1589 0002C86F fe 08 effffff3de callf $8,_writed
1604: 1590 0002C876 # writes(" (Pipe 8), subtest ");
1605: 1591 0002C876 .data 1
1606: 1592 00000e9f * L380:
1607: 1593 00000e9f * 202028506970652038292C207 .ascii " (Pipe 8), subtest \0"
1608: 37562746573742000
1609: 1594 00000eb4 * .text
1610: 1595 0002C876 dd 8f00000e9f pushl $L380
1611: 1596 0002C87C fe 08 effffff3d1 callf $8,_writes
1612: 1597 0002C883 # writed( subtest );
1613: 1598 0002C883 dd effffff3cb pushl _subtest
1614: 1599 0002C889 fe 08 effffff3c4 callf $8,_writed
1615: 1600 0002C890 # writes(" error - ");
1616: 1601 0002C890 .data 1
1617: 1602 00000eb4 * L381:
1618: 1603 00000eb4 * 206572726F72202D2000 .ascii " error - \0"
1619: 1604 00000ebe * .text
1620: 1605 0002C890 dd 8f00000eb4 pushl $L381
1621: 1606 0002C896 fe 08 effffff3b7 callf $8,_writes
1622: 1607 0002C89D # writes( msg );
1623: 1608 0002C89D dd ad04 pushl 4(fp)
1624: 1609 0002C8A0 fe 08 effffff3ad callf $8,_writes
1625: 1610 0002C8A7 # writec('\n');
1626: 1611 0002C8A7 dd 0a pushl $10
1627: 1612 0002C8A9 fe 08 effffff3a4 callf $8,_writec
1628: 1613 0002C8B0 # writes(
1629: 1614 0002C8B0 # "LDF(1.0), SUBF(2.0), MULF(op), ADDF(op), ADDF(op), STF\n");
1630: 1615 0002C8B0 .data 1
1631: 1616 00000ebe * L383:
1632: 1617 00000ebe * 4C444628312E30292C2053554 .ascii "LDF(1.0), SUBF(2.0), MULF(op), ADDF(op), ADDF(op), STF\12\0"
1633: 24628322E30292C204D554C46
1634: 286F70292C2041444446286F7
1635: 0292C202041444446286F7029
1636: 2C20205354460A00
1637: 1618 00000ef8 * .text
1638: 1619 0002C8B0 dd 8f00000ebe pushl $L383
1639: 1620 0002C8B6 fe 08 effffff397 callf $8,_writes
1640: 1621 0002C8BD # writes("operand = ");
1641: 1622 0002C8BD .data 1
1642: 1623 00000ef8 * L384:
1643: 1624 00000ef8 * 6F706572616E64203D2000 .ascii "operand = \0"
1644: 1625 00000f03 * .text
1645: 1626 0002C8BD dd 8f00000ef8 pushl $L384
1646: 1627 0002C8C3 fe 08 effffff38a callf $8,_writes
1647: 1628 0002C8CA # write32h( sgl_value_1 );
1648: 1629 0002C8CA dd effffff384 pushl _sgl_value_1
1649: 1630 0002C8D0 fe 08 effffff37d callf $8,_write32h
1650: 1631 0002C8D7 # writes(", final Acc = ");
1651: 1632 0002C8D7 .data 1
1652: 1633 00000f03 * L385:
1653: 1634 00000f03 * 2C20202066696E616C2041636 .ascii ", final Acc = \0"
1654: 3203D2000
1655: 1635 00000f14 * .text
1656: 1636 0002C8D7 dd 8f00000f03 pushl $L385
1657: 1637 0002C8DD fe 08 effffff370 callf $8,_writes
1658: 1638 0002C8E4 # write32h( sgl_st_acc );
1659: 1639 0002C8E4 dd effffff36a pushl _sgl_st_acc
1660: 1640 0002C8EA fe 08 effffff363 callf $8,_write32h
1661: 1641 0002C8F1 # writes(", data index = ");
1662: 1642 0002C8F1 .data 1
1663: 1643 00000f14 * L386:
1664: 1644 00000f14 * 2C2020206461746120696E646 .ascii ", data index = \0"
1665: 578203D2000
1666: 1645 00000f26 * .text
1667: 1646 0002C8F1 dd 8f00000f14 pushl $L386
1668: 1647 0002C8F7 fe 08 effffff356 callf $8,_writes
1669: 1648 0002C8FE # writed( index );
1670: 1649 0002C8FE dd effffff350 pushl _index
1671: 1650 0002C904 fe 08 effffff349 callf $8,_writed
1672: 1651 0002C90B # writec('\n');
1673: 1652 0002C90B dd 0a pushl $10
1674: 1653 0002C90D fe 08 effffff340 callf $8,_writec
1675: 1654 0002C914 # writes(" expected Acc = ");
1676: 1655 0002C914 .data 1
1677: 1656 00000f26 * L387:
1678: 1657 00000f26 * 2020202020202020202020202 .ascii " expected Acc = \0"
1679: 0202020202020657870656374
1680: 656420416363203D2000
1681: 1658 00000f49 * .text
1682: 1659 0002C914 dd 8f00000f26 pushl $L387
1683: 1660 0002C91A fe 08 effffff333 callf $8,_writes
1684: 1661 0002C921 # write32h( sgl_expected );
1685: 1662 0002C921 dd effffff32d pushl _sgl_expected
1686: 1663 0002C927 fe 08 effffff326 callf $8,_write32h
1687: 1664 0002C92E # writec('\n');
1688: 1665 0002C92E dd 0a pushl $10
1689: 1666 0002C930 fe 08 effffff31d callf $8,_writec
1690: 1667 0002C937 # }
1691: 1668 0002C937 40 ret#2
1692: 1669 0002C938 .set L372,0x0
1693: 1670 0002C938 L374:
1694: 1671 0002C938 13 fefa jbr L375
1695: 1672 0002C93B .data
1696: 1673 00000d5c * .text
1697: 1674 0002C93B 00 .align 1
1698: 1675 0002C93C .globl _pipe8_er_hlt
1699: 1676 0002C93C _pipe8_er_hlt:
1700: 1677 0002C93C 0000 .word L388
1701: 1678 0002C93E #
1702: 1679 0002C93E #
1703: 1680 0002C93E #
1704: 1681 0002C93E #
1705: 1682 0002C93E #
1706: 1683 0002C93E # /******************************************************************************
1707: 1684 0002C93E # *
1708: 1685 0002C93E # * HALT ON ERROR ROUTINE
1709: 1686 0002C93E # *
1710: 1687 0002C93E # * halt with the necessary information saved in the registers
1711: 1688 0002C93E # *
1712: 1689 0002C93E # ******************************************************************************/
1713: 1690 0002C93E # pipe8_er_hlt( subtest )
1714: 1691 0002C93E # int subtest;
1715: 1692 0002C93E # {
1716: 1693 0002C93E 11 6e jbr L390
1717: 1694 0002C940 L391:
1718: 1695 0002C940 # asm("movl _test_no,r0"); /* r0 = test number */
1719: 1696 0002C940 0d effffff30e 50 movl _test_no,r0
1720: 1697 0002C947 # asm("movl _subtest,r1"); /* r1 = subtest number */
1721: 1698 0002C947 0d effffff307 51 movl _subtest,r1
1722: 1699 0002C94E # asm("movl $1,r2"); /* r2 = error code */
1723: 1700 0002C94E 0d 01 52 movl $1,r2
1724: 1701 0002C951 # asm("movl _cycle,r3"); /* r3 = cycle count */
1725: 1702 0002C951 0d effffff2fd 53 movl _cycle,r3
1726: 1703 0002C958 # asm("movl _sgl_value_1,r4"); /* r4 = sgl operand */
1727: 1704 0002C958 0d effffff2f6 54 movl _sgl_value_1,r4
1728: 1705 0002C95F # asm("movl _sgl_st_acc,r5"); /* r5 = sgl stored */
1729: 1706 0002C95F 0d effffff2ef 55 movl _sgl_st_acc,r5
1730: 1707 0002C966 # asm("movl _sgl_expected,r6"); /* r6 = sgl expected */
1731: 1708 0002C966 0d effffff2e8 56 movl _sgl_expected,r6
1732: 1709 0002C96D # asm("movl _index,r7"); /* r7 = data index */
1733: 1710 0002C96D 0d effffff2e1 57 movl _index,r7
1734: 1711 0002C974 # asm("movl _sgl_value_2,r8"); /* r8 = floating one */
1735: 1712 0002C974 0d effffff2da 58 movl _sgl_value_2,r8
1736: 1713 0002C97B # asm("movl _sgl_value_3,r9"); /* r9 = floating two */
1737: 1714 0002C97B 0d effffff2d3 59 movl _sgl_value_3,r9
1738: 1715 0002C982 # if( subtest == 9 ) {
1739: 1716 0002C982 1d ad04 09 cmpl 4(fp),$9
1740: 1717 0002C986 21 10 jneq L392
1741: 1718 0002C988 # asm("movl _sgl_value_3,r10"); /* r10 = final SP value */
1742: 1719 0002C988 0d effffff2c6 5a movl _sgl_value_3,r10
1743: 1720 0002C98F # asm("movl _sgl_value_2,r11"); /* r11 = expected SP value */
1744: 1721 0002C98F 0d effffff2bf 5b movl _sgl_value_2,r11
1745: 1722 0002C996 # } else
1746: 1723 0002C996 11 14 jbr L393
1747: 1724 0002C998 L392:
1748: 1725 0002C998 # if( subtest == 10 ) {
1749: 1726 0002C998 1d ad04 0a cmpl 4(fp),$10
1750: 1727 0002C99C 21 0e jneq L394
1751: 1728 0002C99E # asm("movl _sgl_value_3,r10"); /* r10 = final FP value */
1752: 1729 0002C99E 0d effffff2b0 5a movl _sgl_value_3,r10
1753: 1730 0002C9A5 # asm("movl _sgl_value_2,r11"); /* r11 = expected FP value */
1754: 1731 0002C9A5 0d effffff2a9 5b movl _sgl_value_2,r11
1755: 1732 0002C9AC # };
1756: 1733 0002C9AC L394:
1757: 1734 0002C9AC L393:
1758: 1735 0002C9AC # asm(".globl _pipe8_1_hlt");
1759: 1736 0002C9AC .globl _pipe8_1_hlt
1760: 1737 0002C9AC # asm("_pipe8_1_hlt:"); /* PC after the halt */
1761: 1738 0002C9AC _pipe8_1_hlt:
1762: 1739 0002C9AC # asm("halt"); /* HALT ... */
1763: 1740 0002C9AC 00 halt
1764: 1741 0002C9AD # } /* end of halt on error */
1765: 1742 0002C9AD 40 ret#2
1766: 1743 0002C9AE .set L388,0x0
1767: 1744 0002C9AE L390:
1768: 1745 0002C9AE 11 90 jbr L391
1769: 1746 00000d5c * .data
1770: 1746 00000d5c * .data
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.