|
|
1.1 root 1: 1 00000000 LL0:
2: 2 00000000 .data
3: 3 00000d34 * .text
4: 4 00000000 .align 1
5: 5 00000000 .globl _pipe_16
6: 6 00000000 _pipe_16:
7: 7 00031030 0000 .word L215
8: 8 00031032 # #include "fpp_defs.h"
9: 9 00031032 #
10: 10 00031032 #
11: 11 00031032 # /*****************************************************************************
12: 12 00031032 # *
13: 13 00031032 # * DBL PIPELINE TEST #16 MONITOR
14: 14 00031032 # *
15: 15 00031032 # * This test will do:
16: 16 00031032 # *
17: 17 00031032 # * LND(x) ADDD(x) SUBD(0) SUBD(x) STD
18: 18 00031032 # *
19: 19 00031032 # * where the x's are the LND data patterns.
20: 20 00031032 # *****************************************************************************/
21: 21 00031032 # pipe_16()
22: 22 00031032 # {
23: 23 00031032 13 009b jbr L217
24: 24 00031035 L218:
25: 25 00031035 # asm(".globl _pipeline_16_t");
26: 26 00031035 .globl _pipeline_16_t
27: 27 00031035 # asm("_pipeline_16_t:"); /* entry address */
28: 28 00031035 _pipeline_16_t:
29: 29 00031035 # if( (cycle == 1) && (prt_hdrs) ) /* print headers on 1st cycle */
30: 30 00031035 1d effffffff5 01 cmpl _cycle,$1
31: 31 0003103C 21 15 jneq L219
32: 32 0003103E 5d efffffffec tstl _prt_hdrs
33: 33 00031044 31 0d jeql L219
34: 34 00031046 # {
35: 35 00031046 # writes(" PIPE_16");
36: 36 00031046 .data 1
37: 37 00000d34 * L221:
38: 38 00000d34 * 20504950455F313600 .ascii " PIPE_16\0"
39: 39 00000d3d * .text
40: 40 00031046 dd 8f00000d34 pushl $L221
41: 41 0003104C fe 08 efffffffdd callf $8,_writes
42: 42 00031053 # }
43: 43 00031053 # subtest = 1;
44: 44 00031053 L219:
45: 45 00031053 0d 01 efffffffd6 movl $1,_subtest
46: 46 0003105A # pipe16_1(); /* data in REGs, no NOPs */
47: 47 0003105A fe 04 ef00000073 callf $4,_pipe16_1
48: 48 00031061 # subtest++; /* increment subtest num */
49: 49 00031061 6d efffffffc9 incl _subtest
50: 50 00031067 # pipe16_2(); /* data in REGs, 1 NOP */
51: 51 00031067 fe 04 ef00000194 callf $4,_pipe16_2
52: 52 0003106E # subtest++; /* increment subtest num */
53: 53 0003106E 6d efffffffbc incl _subtest
54: 54 00031074 # pipe16_3(); /* data in REGs, 2 NOPs */
55: 55 00031074 fe 04 ef000002b9 callf $4,_pipe16_3
56: 56 0003107B # subtest++; /* increment subtest num */
57: 57 0003107B 6d efffffffaf incl _subtest
58: 58 00031081 # pipe16_4(); /* data in REGs, 3 NOPs */
59: 59 00031081 fe 04 ef000003e2 callf $4,_pipe16_4
60: 60 00031088 # subtest++; /* increment subtest num */
61: 61 00031088 6d efffffffa2 incl _subtest
62: 62 0003108E # pipe16_5(); /* data in CACHE, no NOPs */
63: 63 0003108E fe 04 ef0000050f callf $4,_pipe16_5
64: 64 00031095 # subtest++; /* increment subtest num */
65: 65 00031095 6d efffffff95 incl _subtest
66: 66 0003109B # pipe16_6(); /* data in CACHE, 1 NOP */
67: 67 0003109B fe 04 ef000005fc callf $4,_pipe16_6
68: 68 000310A2 # subtest++; /* increment subtest num */
69: 69 000310A2 6d efffffff88 incl _subtest
70: 70 000310A8 # pipe16_7(); /* data in CACHE, 2 NOPs */
71: 71 000310A8 fe 04 ef000006ed callf $4,_pipe16_7
72: 72 000310AF # subtest++; /* increment subtest num */
73: 73 000310AF 6d efffffff7b incl _subtest
74: 74 000310B5 # pipe16_8(); /* data in CACHE, 3 NOPs */
75: 75 000310B5 fe 04 ef000007e2 callf $4,_pipe16_8
76: 76 000310BC # subtest++; /* increment subtest num */
77: 77 000310BC 6d efffffff6e incl _subtest
78: 78 000310C2 # pipe16_9(); /* data via F.P. 0 NOPs */
79: 79 000310C2 fe 04 ef000008db callf $4,_pipe16_9
80: 80 000310C9 # asm("jmp *return"); /* return to the test monitor */
81: 81 000310C9 71 ffffffff61 jmp *return
82: 82 000310CF # }
83: 83 000310CF 40 ret#2
84: 84 000310D0 .set L215,0x0
85: 85 000310D0 L217:
86: 86 000310D0 13 ff62 jbr L218
87: 87 000310D3 .data
88: 88 00000d34 * .text
89: 89 000310D3 00 .align 1
90: 90 000310D4 .globl _pipe16_1
91: 91 000310D4 _pipe16_1:
92: 92 000310D4 0000 .word L231
93: 93 000310D6 #
94: 94 000310D6 #
95: 95 000310D6 #
96: 96 000310D6 #
97: 97 000310D6 #
98: 98 000310D6 #
99: 99 000310D6 #
100: 100 000310D6 # /************************************************************************
101: 101 000310D6 # *
102: 102 000310D6 # * SUBTEST 1
103: 103 000310D6 # * data in registers, no NO-OPs
104: 104 000310D6 # *
105: 105 000310D6 # ************************************************************************/
106: 106 000310D6 # pipe16_1()
107: 107 000310D6 # {
108: 108 000310D6 13 0126 jbr L233
109: 109 000310D9 L234:
110: 110 000310D9 # force_loop = FALSE; /* clear the force_loop flg */
111: 111 000310D9 4d efffffff51 clrl _force_loop
112: 112 000310DF # index = 0;
113: 113 000310DF 4d efffffff4b clrl _index
114: 114 000310E5 # do
115: 115 000310E5 L237:
116: 116 000310E5 # {
117: 117 000310E5 # sgl_value_1 = lnd_1_data[index].ld.m; /* get the operand's MSW */
118: 118 000310E5 0d efffffff45 50 movl _index,r0
119: 119 000310EC 48 04 50 50 shll $4,r0,r0
120: 120 000310F0 0d e000000000 efffffff35 movl _lnd_1_data(r0),_sgl_value_1
121: 121 000310FB # sgl_value_2 = lnd_1_data[index].ld.l; /* get the operand's MSW */
122: 122 000310FB 0d efffffff2f 50 movl _index,r0
123: 123 00031102 48 04 50 50 shll $4,r0,r0
124: 124 00031106 0d e000000004 efffffff1f movl _lnd_1_data+4(r0),_sgl_value_2
125: 125 00031111 # sgl_value_7 = 0; /* get a '0.0' */
126: 126 00031111 4d efffffff19 clrl _sgl_value_7
127: 127 00031117 # dbl_expected = lnd_1_data[index].exp; /* get the expected results */
128: 128 00031117 48 04 efffffff12 50 shll $4,_index,r0
129: 129 0003111F 0c 8f00000008 50 addl2 $_lnd_1_data+8,r0
130: 130 00031126 0d a004 efffffff06 movl 4(r0),_dbl_expected+4
131: 131 0003112E 0d 60 effffffefb movl (r0),_dbl_expected
132: 132 00031135 # /*
133: 133 00031135 # * If LOOP ON ERROR is set, this is the loop for this subtest.
134: 134 00031135 # * The force loop flag is set after the first error.
135: 135 00031135 # */
136: 136 00031135 # asm("_pipe16_1_lp1:");
137: 137 00031135 _pipe16_1_lp1:
138: 138 00031135 # asm("movl _sgl_value_1,r4"); /* move the data to r4/r5 */
139: 139 00031135 0d effffffef5 54 movl _sgl_value_1,r4
140: 140 0003113C # asm("movl _sgl_value_2,r5");
141: 141 0003113C 0d effffffeee 55 movl _sgl_value_2,r5
142: 142 00031143 # asm("movl _sgl_value_7,r2"); /* move a '0.0' to r2/r3 */
143: 143 00031143 0d effffffee7 52 movl _sgl_value_7,r2
144: 144 0003114A # asm("movl _sgl_value_7,r3");
145: 145 0003114A 0d effffffee0 53 movl _sgl_value_7,r3
146: 146 00031151 # asm("lnd r4"); /* load the operand (-op ) */
147: 147 00031151 17 54 lnd r4
148: 148 00031153 # asm("addd r4"); /* add the operand ( 0 ) */
149: 149 00031153 c7 54 addd r4
150: 150 00031155 # asm("subd r2"); /* subtract a '0.0' ( 0 ) */
151: 151 00031155 d7 52 subd r2
152: 152 00031157 # asm("subd r4"); /* subtract the op (-op ) */
153: 153 00031157 d7 54 subd r4
154: 154 00031159 # asm("std r6"); /* store the result (-op ) */
155: 155 00031159 27 56 std r6
156: 156 0003115B # if( force_loop )
157: 157 0003115B 5d effffffecf tstl _force_loop
158: 158 00031161 31 02 jeql L238
159: 159 00031163 # asm("brb _pipe16_1_lp1");; /* run the loop again */
160: 160 00031163 11 d0 brb _pipe16_1_lp1
161: 161 00031165 L238:
162: 162 00031165 # /*
163: 163 00031165 # * verify the results
164: 164 00031165 # */
165: 165 00031165 # asm("movl r6,_sgl_value_3"); /* get the result */
166: 166 00031165 0d 56 effffffec4 movl r6,_sgl_value_3
167: 167 0003116C # asm("movl r7,_sgl_value_4");
168: 168 0003116C 0d 57 effffffebd movl r7,_sgl_value_4
169: 169 00031173 # dbl_st_acc.m = sgl_value_3;
170: 170 00031173 0d effffffeb7 effffffeb2 movl _sgl_value_3,_dbl_st_acc
171: 171 0003117E # dbl_st_acc.l = sgl_value_4;
172: 172 0003117E 0d effffffeac effffffeab movl _sgl_value_4,_dbl_st_acc+4
173: 173 00031189 # if( (dbl_st_acc.m != dbl_expected.m) || /* compare the results */
174: 174 00031189 # (dbl_st_acc.l != dbl_expected.l) )
175: 175 00031189 1d effffffea1 effffffe9c cmpl _dbl_st_acc,_dbl_expected
176: 176 00031194 21 0d jneq L9999
177: 177 00031196 1d effffffe98 effffffe93 cmpl _dbl_st_acc+4,_dbl_expected+4
178: 178 000311A1 31 42 jeql L239
179: 179 000311A3 L9999:
180: 180 000311A3 # {
181: 181 000311A3 # errcnt++; /* bump the error count */
182: 182 000311A3 6d effffffe87 incl _errcnt
183: 183 000311A9 # if ( prt_error )
184: 184 000311A9 5d effffffe81 tstl _prt_error
185: 185 000311AF 31 0d jeql L240
186: 186 000311B1 # print_pipe16_er("Reg. Data, no NOPs");
187: 187 000311B1 .data 1
188: 188 00000d3d * L242:
189: 189 00000d3d * 5265672E20446174612C206E6 .ascii "Reg. Data, no NOPs\0"
190: F204E4F507300
191: 190 00000d50 * .text
192: 191 000311B1 dd 8f00000d3d pushl $L242
193: 192 000311B7 fe 08 ef000009dc callf $8,_print_pipe16_er
194: 193 000311BE # if ( halt_flg ) /* halt on error? */
195: 194 000311BE L240:
196: 195 000311BE 5d effffffe6c tstl _halt_flg
197: 196 000311C4 31 0d jeql L243
198: 197 000311C6 # pipe16_er_hlt( subtest );
199: 198 000311C6 dd effffffe64 pushl _subtest
200: 199 000311CC fe 08 ef00000b15 callf $8,_pipe16_er_hlt
201: 200 000311D3 # if ( loop_on_err ) {
202: 201 000311D3 L243:
203: 202 000311D3 5d effffffe57 tstl _loop_on_err
204: 203 000311D9 31 0a jeql L245
205: 204 000311DB # force_loop = TRUE; /* set the force loop flag */
206: 205 000311DB 0d 01 effffffe4e movl $1,_force_loop
207: 206 000311E2 # asm("brw _pipe16_1_lp1"); /* and loop */
208: 207 000311E2 13 ff50 brw _pipe16_1_lp1
209: 208 000311E5 # }
210: 209 000311E5 # } /* end of compare error */
211: 210 000311E5 L245:
212: 211 000311E5 # } while( index++ < max_lnd_1_index );
213: 212 000311E5 L239:
214: 213 000311E5 L236:
215: 214 000311E5 0d effffffe45 50 movl _index,r0
216: 215 000311EC 6d effffffe3e incl _index
217: 216 000311F2 1d 50 effffffe37 cmpl r0,_max_lnd_1_index
218: 217 000311F9 81 03 13 fee7 jlss L237
219: 218 000311FE L235:
220: 219 000311FE # } /* end of subtest 1 */
221: 220 000311FE 40 ret#2
222: 221 000311FF .set L231,0x0
223: 222 000311FF L233:
224: 223 000311FF 13 fed7 jbr L234
225: 224 00031202 .data
226: 225 00000d34 * .text
227: 226 00031202 .align 1
228: 227 00031202 .globl _pipe16_2
229: 228 00031202 _pipe16_2:
230: 229 00031202 0000 .word L246
231: 230 00031204 #
232: 231 00031204 #
233: 232 00031204 #
234: 233 00031204 #
235: 234 00031204 #
236: 235 00031204 #
237: 236 00031204 #
238: 237 00031204 #
239: 238 00031204 # /************************************************************************
240: 239 00031204 # *
241: 240 00031204 # * SUBTEST 2
242: 241 00031204 # * data in registers, 1 NO-OP
243: 242 00031204 # *
244: 243 00031204 # ************************************************************************/
245: 244 00031204 # pipe16_2()
246: 245 00031204 # {
247: 246 00031204 13 012a jbr L248
248: 247 00031207 L249:
249: 248 00031207 # force_loop = FALSE; /* clear the force_loop flg */
250: 249 00031207 4d effffffe23 clrl _force_loop
251: 250 0003120D # index = 0;
252: 251 0003120D 4d effffffe1d clrl _index
253: 252 00031213 # do
254: 253 00031213 L252:
255: 254 00031213 # {
256: 255 00031213 # sgl_value_1 = lnd_1_data[index].ld.m; /* get the operand's MSW */
257: 256 00031213 0d effffffe17 50 movl _index,r0
258: 257 0003121A 48 04 50 50 shll $4,r0,r0
259: 258 0003121E 0d e000000000 effffffe07 movl _lnd_1_data(r0),_sgl_value_1
260: 259 00031229 # sgl_value_2 = lnd_1_data[index].ld.l; /* get the operand's MSW */
261: 260 00031229 0d effffffe01 50 movl _index,r0
262: 261 00031230 48 04 50 50 shll $4,r0,r0
263: 262 00031234 0d e000000004 effffffdf1 movl _lnd_1_data+4(r0),_sgl_value_2
264: 263 0003123F # sgl_value_7 = 0; /* get a '0.0' */
265: 264 0003123F 4d effffffdeb clrl _sgl_value_7
266: 265 00031245 # dbl_expected = lnd_1_data[index].exp; /* get the expected results */
267: 266 00031245 48 04 effffffde4 50 shll $4,_index,r0
268: 267 0003124D 0c 8f00000008 50 addl2 $_lnd_1_data+8,r0
269: 268 00031254 0d a004 effffffdd8 movl 4(r0),_dbl_expected+4
270: 269 0003125C 0d 60 effffffdcd movl (r0),_dbl_expected
271: 270 00031263 # /*
272: 271 00031263 # * If LOOP ON ERROR is set, this is the loop for this subtest.
273: 272 00031263 # * The force loop flag is set after the first error.
274: 273 00031263 # */
275: 274 00031263 # asm("_pipe16_2_lp1:");
276: 275 00031263 _pipe16_2_lp1:
277: 276 00031263 # asm("movl _sgl_value_1,r4"); /* move the data to r4/r5 */
278: 277 00031263 0d effffffdc7 54 movl _sgl_value_1,r4
279: 278 0003126A # asm("movl _sgl_value_2,r5");
280: 279 0003126A 0d effffffdc0 55 movl _sgl_value_2,r5
281: 280 00031271 # asm("movl _sgl_value_7,r2"); /* move a '0.0' to r2/r3 */
282: 281 00031271 0d effffffdb9 52 movl _sgl_value_7,r2
283: 282 00031278 # asm("movl _sgl_value_7,r3");
284: 283 00031278 0d effffffdb2 53 movl _sgl_value_7,r3
285: 284 0003127F # asm("lnd r4"); /* load the operand (-op ) */
286: 285 0003127F 17 54 lnd r4
287: 286 00031281 # asm("nop");
288: 287 00031281 10 nop
289: 288 00031282 # asm("addd r4"); /* add the operand ( 0 ) */
290: 289 00031282 c7 54 addd r4
291: 290 00031284 # asm("nop");
292: 291 00031284 10 nop
293: 292 00031285 # asm("subd r2"); /* subtract a '0.0' ( 0 ) */
294: 293 00031285 d7 52 subd r2
295: 294 00031287 # asm("nop");
296: 295 00031287 10 nop
297: 296 00031288 # asm("subd r4"); /* subtract the op (-op ) */
298: 297 00031288 d7 54 subd r4
299: 298 0003128A # asm("nop");
300: 299 0003128A 10 nop
301: 300 0003128B # asm("std r6"); /* store the result (-op ) */
302: 301 0003128B 27 56 std r6
303: 302 0003128D # if( force_loop )
304: 303 0003128D 5d effffffd9d tstl _force_loop
305: 304 00031293 31 02 jeql L253
306: 305 00031295 # asm("brb _pipe16_2_lp1");; /* run the loop again */
307: 306 00031295 11 cc brb _pipe16_2_lp1
308: 307 00031297 L253:
309: 308 00031297 # /*
310: 309 00031297 # * verify the results
311: 310 00031297 # */
312: 311 00031297 # asm("movl r6,_sgl_value_3"); /* get the result */
313: 312 00031297 0d 56 effffffd92 movl r6,_sgl_value_3
314: 313 0003129E # asm("movl r7,_sgl_value_4");
315: 314 0003129E 0d 57 effffffd8b movl r7,_sgl_value_4
316: 315 000312A5 # dbl_st_acc.m = sgl_value_3;
317: 316 000312A5 0d effffffd85 effffffd80 movl _sgl_value_3,_dbl_st_acc
318: 317 000312B0 # dbl_st_acc.l = sgl_value_4;
319: 318 000312B0 0d effffffd7a effffffd79 movl _sgl_value_4,_dbl_st_acc+4
320: 319 000312BB # if( (dbl_st_acc.m != dbl_expected.m) || /* compare the results */
321: 320 000312BB # (dbl_st_acc.l != dbl_expected.l) )
322: 321 000312BB 1d effffffd6f effffffd6a cmpl _dbl_st_acc,_dbl_expected
323: 322 000312C6 21 0d jneq L9998
324: 323 000312C8 1d effffffd66 effffffd61 cmpl _dbl_st_acc+4,_dbl_expected+4
325: 324 000312D3 31 42 jeql L254
326: 325 000312D5 L9998:
327: 326 000312D5 # {
328: 327 000312D5 # errcnt++; /* bump the error count */
329: 328 000312D5 6d effffffd55 incl _errcnt
330: 329 000312DB # if ( prt_error )
331: 330 000312DB 5d effffffd4f tstl _prt_error
332: 331 000312E1 31 0d jeql L255
333: 332 000312E3 # print_pipe16_er("Reg. Data, 1 NOP");
334: 333 000312E3 .data 1
335: 334 00000d50 * L256:
336: 335 00000d50 * 5265672E20446174612C20312 .ascii "Reg. Data, 1 NOP\0"
337: 04E4F5000
338: 336 00000d61 * .text
339: 337 000312E3 dd 8f00000d50 pushl $L256
340: 338 000312E9 fe 08 ef000008aa callf $8,_print_pipe16_er
341: 339 000312F0 # if ( halt_flg ) /* halt on error? */
342: 340 000312F0 L255:
343: 341 000312F0 5d effffffd3a tstl _halt_flg
344: 342 000312F6 31 0d jeql L257
345: 343 000312F8 # pipe16_er_hlt( subtest );
346: 344 000312F8 dd effffffd32 pushl _subtest
347: 345 000312FE fe 08 ef000009e3 callf $8,_pipe16_er_hlt
348: 346 00031305 # if ( force_loop ) { /* loop on error? */
349: 347 00031305 L257:
350: 348 00031305 5d effffffd25 tstl _force_loop
351: 349 0003130B 31 0a jeql L258
352: 350 0003130D # force_loop = TRUE; /* set the force loop flag */
353: 351 0003130D 0d 01 effffffd1c movl $1,_force_loop
354: 352 00031314 # asm("brw _pipe16_2_lp1"); /* and loop */
355: 353 00031314 13 ff4c brw _pipe16_2_lp1
356: 354 00031317 # }
357: 355 00031317 # } /* end of compare error */
358: 356 00031317 L258:
359: 357 00031317 # } while( index++ < max_lnd_1_index );
360: 358 00031317 L254:
361: 359 00031317 L251:
362: 360 00031317 0d effffffd13 50 movl _index,r0
363: 361 0003131E 6d effffffd0c incl _index
364: 362 00031324 1d 50 effffffd05 cmpl r0,_max_lnd_1_index
365: 363 0003132B 81 03 13 fee3 jlss L252
366: 364 00031330 L250:
367: 365 00031330 # } /* end of subtest 2 */
368: 366 00031330 40 ret#2
369: 367 00031331 .set L246,0x0
370: 368 00031331 L248:
371: 369 00031331 13 fed3 jbr L249
372: 370 00031334 .data
373: 371 00000d34 * .text
374: 372 00031334 .align 1
375: 373 00031334 .globl _pipe16_3
376: 374 00031334 _pipe16_3:
377: 375 00031334 0000 .word L259
378: 376 00031336 #
379: 377 00031336 #
380: 378 00031336 #
381: 379 00031336 #
382: 380 00031336 #
383: 381 00031336 #
384: 382 00031336 #
385: 383 00031336 #
386: 384 00031336 # /************************************************************************
387: 385 00031336 # *
388: 386 00031336 # * SUBTEST 3
389: 387 00031336 # * data in registers, 2 NO-OPs
390: 388 00031336 # *
391: 389 00031336 # ************************************************************************/
392: 390 00031336 # pipe16_3()
393: 391 00031336 # {
394: 392 00031336 13 012e jbr L261
395: 393 00031339 L262:
396: 394 00031339 # force_loop = FALSE; /* clear the force_loop flg */
397: 395 00031339 4d effffffcf1 clrl _force_loop
398: 396 0003133F # index = 0;
399: 397 0003133F 4d effffffceb clrl _index
400: 398 00031345 # do
401: 399 00031345 L265:
402: 400 00031345 # {
403: 401 00031345 # sgl_value_1 = lnd_1_data[index].ld.m; /* get the operand's MSW */
404: 402 00031345 0d effffffce5 50 movl _index,r0
405: 403 0003134C 48 04 50 50 shll $4,r0,r0
406: 404 00031350 0d e000000000 effffffcd5 movl _lnd_1_data(r0),_sgl_value_1
407: 405 0003135B # sgl_value_2 = lnd_1_data[index].ld.l; /* get the operand's MSW */
408: 406 0003135B 0d effffffccf 50 movl _index,r0
409: 407 00031362 48 04 50 50 shll $4,r0,r0
410: 408 00031366 0d e000000004 effffffcbf movl _lnd_1_data+4(r0),_sgl_value_2
411: 409 00031371 # sgl_value_7 = 0; /* get a '0.0' */
412: 410 00031371 4d effffffcb9 clrl _sgl_value_7
413: 411 00031377 # dbl_expected = lnd_1_data[index].exp; /* get the expected results */
414: 412 00031377 48 04 effffffcb2 50 shll $4,_index,r0
415: 413 0003137F 0c 8f00000008 50 addl2 $_lnd_1_data+8,r0
416: 414 00031386 0d a004 effffffca6 movl 4(r0),_dbl_expected+4
417: 415 0003138E 0d 60 effffffc9b movl (r0),_dbl_expected
418: 416 00031395 # /*
419: 417 00031395 # * If LOOP ON ERROR is set, this is the loop for this subtest.
420: 418 00031395 # * The force loop flag is set after the first error.
421: 419 00031395 # */
422: 420 00031395 # asm("_pipe16_3_lp1:");
423: 421 00031395 _pipe16_3_lp1:
424: 422 00031395 # asm("movl _sgl_value_1,r4"); /* move the data to r4/r5 */
425: 423 00031395 0d effffffc95 54 movl _sgl_value_1,r4
426: 424 0003139C # asm("movl _sgl_value_2,r5");
427: 425 0003139C 0d effffffc8e 55 movl _sgl_value_2,r5
428: 426 000313A3 # asm("movl _sgl_value_7,r2"); /* move a '0.0' to r2/r3 */
429: 427 000313A3 0d effffffc87 52 movl _sgl_value_7,r2
430: 428 000313AA # asm("movl _sgl_value_7,r3");
431: 429 000313AA 0d effffffc80 53 movl _sgl_value_7,r3
432: 430 000313B1 # asm("lnd r4"); /* load the operand (-op ) */
433: 431 000313B1 17 54 lnd r4
434: 432 000313B3 # asm("nop");
435: 433 000313B3 10 nop
436: 434 000313B4 # asm("nop");
437: 435 000313B4 10 nop
438: 436 000313B5 # asm("addd r4"); /* add the operand ( 0 ) */
439: 437 000313B5 c7 54 addd r4
440: 438 000313B7 # asm("nop");
441: 439 000313B7 10 nop
442: 440 000313B8 # asm("nop");
443: 441 000313B8 10 nop
444: 442 000313B9 # asm("subd r2"); /* subtract a '0.0' ( 0 ) */
445: 443 000313B9 d7 52 subd r2
446: 444 000313BB # asm("nop");
447: 445 000313BB 10 nop
448: 446 000313BC # asm("nop");
449: 447 000313BC 10 nop
450: 448 000313BD # asm("subd r4"); /* subtract the op (-op ) */
451: 449 000313BD d7 54 subd r4
452: 450 000313BF # asm("nop");
453: 451 000313BF 10 nop
454: 452 000313C0 # asm("nop");
455: 453 000313C0 10 nop
456: 454 000313C1 # asm("std r6"); /* store the result (-op ) */
457: 455 000313C1 27 56 std r6
458: 456 000313C3 # if( force_loop )
459: 457 000313C3 5d effffffc67 tstl _force_loop
460: 458 000313C9 31 02 jeql L266
461: 459 000313CB # asm("brb _pipe16_3_lp1");; /* run the loop again */
462: 460 000313CB 11 c8 brb _pipe16_3_lp1
463: 461 000313CD L266:
464: 462 000313CD # /*
465: 463 000313CD # * verify the results
466: 464 000313CD # */
467: 465 000313CD # asm("movl r6,_sgl_value_3"); /* get the result */
468: 466 000313CD 0d 56 effffffc5c movl r6,_sgl_value_3
469: 467 000313D4 # asm("movl r7,_sgl_value_4");
470: 468 000313D4 0d 57 effffffc55 movl r7,_sgl_value_4
471: 469 000313DB # dbl_st_acc.m = sgl_value_3;
472: 470 000313DB 0d effffffc4f effffffc4a movl _sgl_value_3,_dbl_st_acc
473: 471 000313E6 # dbl_st_acc.l = sgl_value_4;
474: 472 000313E6 0d effffffc44 effffffc43 movl _sgl_value_4,_dbl_st_acc+4
475: 473 000313F1 # if( (dbl_st_acc.m != dbl_expected.m) || /* compare the results */
476: 474 000313F1 # (dbl_st_acc.l != dbl_expected.l) )
477: 475 000313F1 1d effffffc39 effffffc34 cmpl _dbl_st_acc,_dbl_expected
478: 476 000313FC 21 0d jneq L9997
479: 477 000313FE 1d effffffc30 effffffc2b cmpl _dbl_st_acc+4,_dbl_expected+4
480: 478 00031409 31 42 jeql L267
481: 479 0003140B L9997:
482: 480 0003140B # {
483: 481 0003140B # errcnt++; /* bump the error count */
484: 482 0003140B 6d effffffc1f incl _errcnt
485: 483 00031411 # if ( prt_error )
486: 484 00031411 5d effffffc19 tstl _prt_error
487: 485 00031417 31 0d jeql L268
488: 486 00031419 # print_pipe16_er("Reg. Data, 2 NOPs");
489: 487 00031419 .data 1
490: 488 00000d61 * L269:
491: 489 00000d61 * 5265672E20446174612C20322 .ascii "Reg. Data, 2 NOPs\0"
492: 04E4F507300
493: 490 00000d73 * .text
494: 491 00031419 dd 8f00000d61 pushl $L269
495: 492 0003141F fe 08 ef00000774 callf $8,_print_pipe16_er
496: 493 00031426 # if ( halt_flg ) /* halt on error? */
497: 494 00031426 L268:
498: 495 00031426 5d effffffc04 tstl _halt_flg
499: 496 0003142C 31 0d jeql L270
500: 497 0003142E # pipe16_er_hlt( subtest );
501: 498 0003142E dd effffffbfc pushl _subtest
502: 499 00031434 fe 08 ef000008ad callf $8,_pipe16_er_hlt
503: 500 0003143B # if ( loop_on_err ) {
504: 501 0003143B L270:
505: 502 0003143B 5d effffffbef tstl _loop_on_err
506: 503 00031441 31 0a jeql L271
507: 504 00031443 # force_loop = TRUE; /* set the force loop flag */
508: 505 00031443 0d 01 effffffbe6 movl $1,_force_loop
509: 506 0003144A # asm("brw _pipe16_3_lp1"); /* and loop */
510: 507 0003144A 13 ff48 brw _pipe16_3_lp1
511: 508 0003144D # }
512: 509 0003144D # } /* end of compare error */
513: 510 0003144D L271:
514: 511 0003144D # } while( index++ < max_lnd_1_index );
515: 512 0003144D L267:
516: 513 0003144D L264:
517: 514 0003144D 0d effffffbdd 50 movl _index,r0
518: 515 00031454 6d effffffbd6 incl _index
519: 516 0003145A 1d 50 effffffbcf cmpl r0,_max_lnd_1_index
520: 517 00031461 81 03 13 fedf jlss L265
521: 518 00031466 L263:
522: 519 00031466 # } /* end of subtest 7 */
523: 520 00031466 40 ret#2
524: 521 00031467 .set L259,0x0
525: 522 00031467 L261:
526: 523 00031467 13 fecf jbr L262
527: 524 0003146A .data
528: 525 00000d34 * .text
529: 526 0003146A .align 1
530: 527 0003146A .globl _pipe16_4
531: 528 0003146A _pipe16_4:
532: 529 0003146A 0000 .word L272
533: 530 0003146C #
534: 531 0003146C #
535: 532 0003146C #
536: 533 0003146C #
537: 534 0003146C #
538: 535 0003146C #
539: 536 0003146C #
540: 537 0003146C # /************************************************************************
541: 538 0003146C # *
542: 539 0003146C # * SUBTEST 4
543: 540 0003146C # * data in registers, 3 NO-OPs
544: 541 0003146C # *
545: 542 0003146C # ************************************************************************/
546: 543 0003146C # pipe16_4()
547: 544 0003146C # {
548: 545 0003146C 13 0132 jbr L274
549: 546 0003146F L275:
550: 547 0003146F # force_loop = FALSE; /* clear the force_loop flg */
551: 548 0003146F 4d effffffbbb clrl _force_loop
552: 549 00031475 # index = 0;
553: 550 00031475 4d effffffbb5 clrl _index
554: 551 0003147B # do
555: 552 0003147B L278:
556: 553 0003147B # {
557: 554 0003147B # sgl_value_1 = lnd_1_data[index].ld.m; /* get the operand's MSW */
558: 555 0003147B 0d effffffbaf 50 movl _index,r0
559: 556 00031482 48 04 50 50 shll $4,r0,r0
560: 557 00031486 0d e000000000 effffffb9f movl _lnd_1_data(r0),_sgl_value_1
561: 558 00031491 # sgl_value_2 = lnd_1_data[index].ld.l; /* get the operand's MSW */
562: 559 00031491 0d effffffb99 50 movl _index,r0
563: 560 00031498 48 04 50 50 shll $4,r0,r0
564: 561 0003149C 0d e000000004 effffffb89 movl _lnd_1_data+4(r0),_sgl_value_2
565: 562 000314A7 # sgl_value_7 = 0; /* get a '0.0' */
566: 563 000314A7 4d effffffb83 clrl _sgl_value_7
567: 564 000314AD # dbl_expected = lnd_1_data[index].exp; /* get the expected results */
568: 565 000314AD 48 04 effffffb7c 50 shll $4,_index,r0
569: 566 000314B5 0c 8f00000008 50 addl2 $_lnd_1_data+8,r0
570: 567 000314BC 0d a004 effffffb70 movl 4(r0),_dbl_expected+4
571: 568 000314C4 0d 60 effffffb65 movl (r0),_dbl_expected
572: 569 000314CB # /*
573: 570 000314CB # * If LOOP ON ERROR is set, this is the loop for this subtest.
574: 571 000314CB # * The force loop flag is set after the first error.
575: 572 000314CB # */
576: 573 000314CB # asm("_pipe16_4_lp1:");
577: 574 000314CB _pipe16_4_lp1:
578: 575 000314CB # asm("movl _sgl_value_1,r4"); /* move the data to r4/r5 */
579: 576 000314CB 0d effffffb5f 54 movl _sgl_value_1,r4
580: 577 000314D2 # asm("movl _sgl_value_2,r5");
581: 578 000314D2 0d effffffb58 55 movl _sgl_value_2,r5
582: 579 000314D9 # asm("movl _sgl_value_7,r2"); /* move a '0.0' to r2/r3 */
583: 580 000314D9 0d effffffb51 52 movl _sgl_value_7,r2
584: 581 000314E0 # asm("movl _sgl_value_7,r3");
585: 582 000314E0 0d effffffb4a 53 movl _sgl_value_7,r3
586: 583 000314E7 # asm("lnd r4"); /* load the operand (-op ) */
587: 584 000314E7 17 54 lnd r4
588: 585 000314E9 # asm("nop");
589: 586 000314E9 10 nop
590: 587 000314EA # asm("nop");
591: 588 000314EA 10 nop
592: 589 000314EB # asm("nop");
593: 590 000314EB 10 nop
594: 591 000314EC # asm("addd r4"); /* add the operand ( 0 ) */
595: 592 000314EC c7 54 addd r4
596: 593 000314EE # asm("nop");
597: 594 000314EE 10 nop
598: 595 000314EF # asm("nop");
599: 596 000314EF 10 nop
600: 597 000314F0 # asm("nop");
601: 598 000314F0 10 nop
602: 599 000314F1 # asm("subd r2"); /* subtract a '0.0' ( 0 ) */
603: 600 000314F1 d7 52 subd r2
604: 601 000314F3 # asm("nop");
605: 602 000314F3 10 nop
606: 603 000314F4 # asm("nop");
607: 604 000314F4 10 nop
608: 605 000314F5 # asm("nop");
609: 606 000314F5 10 nop
610: 607 000314F6 # asm("subd r4"); /* subtract the op (-op ) */
611: 608 000314F6 d7 54 subd r4
612: 609 000314F8 # asm("nop");
613: 610 000314F8 10 nop
614: 611 000314F9 # asm("nop");
615: 612 000314F9 10 nop
616: 613 000314FA # asm("nop");
617: 614 000314FA 10 nop
618: 615 000314FB # asm("std r6"); /* store the result (-op ) */
619: 616 000314FB 27 56 std r6
620: 617 000314FD # if( force_loop )
621: 618 000314FD 5d effffffb2d tstl _force_loop
622: 619 00031503 31 02 jeql L279
623: 620 00031505 # asm("brb _pipe16_4_lp1");; /* run the loop again */
624: 621 00031505 11 c4 brb _pipe16_4_lp1
625: 622 00031507 L279:
626: 623 00031507 # /*
627: 624 00031507 # * verify the results
628: 625 00031507 # */
629: 626 00031507 # asm("movl r6,_sgl_value_3"); /* get the result */
630: 627 00031507 0d 56 effffffb22 movl r6,_sgl_value_3
631: 628 0003150E # asm("movl r7,_sgl_value_4");
632: 629 0003150E 0d 57 effffffb1b movl r7,_sgl_value_4
633: 630 00031515 # dbl_st_acc.m = sgl_value_3;
634: 631 00031515 0d effffffb15 effffffb10 movl _sgl_value_3,_dbl_st_acc
635: 632 00031520 # dbl_st_acc.l = sgl_value_4;
636: 633 00031520 0d effffffb0a effffffb09 movl _sgl_value_4,_dbl_st_acc+4
637: 634 0003152B # if( (dbl_st_acc.m != dbl_expected.m) || /* compare the results */
638: 635 0003152B # (dbl_st_acc.l != dbl_expected.l) )
639: 636 0003152B 1d effffffaff effffffafa cmpl _dbl_st_acc,_dbl_expected
640: 637 00031536 21 0d jneq L9996
641: 638 00031538 1d effffffaf6 effffffaf1 cmpl _dbl_st_acc+4,_dbl_expected+4
642: 639 00031543 31 42 jeql L280
643: 640 00031545 L9996:
644: 641 00031545 # {
645: 642 00031545 # errcnt++; /* bump the error count */
646: 643 00031545 6d effffffae5 incl _errcnt
647: 644 0003154B # if ( prt_error )
648: 645 0003154B 5d effffffadf tstl _prt_error
649: 646 00031551 31 0d jeql L281
650: 647 00031553 # print_pipe16_er("Reg. Data, 3 NOPs");
651: 648 00031553 .data 1
652: 649 00000d73 * L282:
653: 650 00000d73 * 5265672E20446174612C20332 .ascii "Reg. Data, 3 NOPs\0"
654: 04E4F507300
655: 651 00000d85 * .text
656: 652 00031553 dd 8f00000d73 pushl $L282
657: 653 00031559 fe 08 ef0000063a callf $8,_print_pipe16_er
658: 654 00031560 # if ( halt_flg ) /* halt on error? */
659: 655 00031560 L281:
660: 656 00031560 5d effffffaca tstl _halt_flg
661: 657 00031566 31 0d jeql L283
662: 658 00031568 # pipe16_er_hlt( subtest );
663: 659 00031568 dd effffffac2 pushl _subtest
664: 660 0003156E fe 08 ef00000773 callf $8,_pipe16_er_hlt
665: 661 00031575 # if ( loop_on_err ) {
666: 662 00031575 L283:
667: 663 00031575 5d effffffab5 tstl _loop_on_err
668: 664 0003157B 31 0a jeql L284
669: 665 0003157D # force_loop = TRUE; /* set the force loop flag */
670: 666 0003157D 0d 01 effffffaac movl $1,_force_loop
671: 667 00031584 # asm("brw _pipe16_4_lp1"); /* and loop */
672: 668 00031584 13 ff44 brw _pipe16_4_lp1
673: 669 00031587 # }
674: 670 00031587 # } /* end of compare error */
675: 671 00031587 L284:
676: 672 00031587 # } while( index++ < max_lnd_1_index );
677: 673 00031587 L280:
678: 674 00031587 L277:
679: 675 00031587 0d effffffaa3 50 movl _index,r0
680: 676 0003158E 6d effffffa9c incl _index
681: 677 00031594 1d 50 effffffa95 cmpl r0,_max_lnd_1_index
682: 678 0003159B 81 03 13 fedb jlss L278
683: 679 000315A0 L276:
684: 680 000315A0 # } /* end of subtest 4 */
685: 681 000315A0 40 ret#2
686: 682 000315A1 .set L272,0x0
687: 683 000315A1 L274:
688: 684 000315A1 13 fecb jbr L275
689: 685 000315A4 .data
690: 686 00000d34 * .text
691: 687 000315A4 .align 1
692: 688 000315A4 .globl _pipe16_5
693: 689 000315A4 _pipe16_5:
694: 690 000315A4 0000 .word L285
695: 691 000315A6 #
696: 692 000315A6 #
697: 693 000315A6 #
698: 694 000315A6 #
699: 695 000315A6 #
700: 696 000315A6 #
701: 697 000315A6 #
702: 698 000315A6 # /************************************************************************
703: 699 000315A6 # *
704: 700 000315A6 # * SUBTEST 5
705: 701 000315A6 # * data in cache, no NO-OPs
706: 702 000315A6 # *
707: 703 000315A6 # ************************************************************************/
708: 704 000315A6 # pipe16_5()
709: 705 000315A6 # {
710: 706 000315A6 13 00f2 jbr L287
711: 707 000315A9 L288:
712: 708 000315A9 # force_loop = FALSE; /* clear the force_loop flg */
713: 709 000315A9 4d effffffa81 clrl _force_loop
714: 710 000315AF # index = 0;
715: 711 000315AF 4d effffffa7b clrl _index
716: 712 000315B5 # do
717: 713 000315B5 L291:
718: 714 000315B5 # {
719: 715 000315B5 # dbl_value_1 = lnd_1_data[index].ld; /* get the operand */
720: 716 000315B5 48 04 effffffa74 50 shll $4,_index,r0
721: 717 000315BD 0c 8f00000000 50 addl2 $_lnd_1_data,r0
722: 718 000315C4 0d a004 effffffa68 movl 4(r0),_dbl_value_1+4
723: 719 000315CC 0d 60 effffffa5d movl (r0),_dbl_value_1
724: 720 000315D3 # dbl_value_2.m = 0; /* set the '0.0' operand */
725: 721 000315D3 4d effffffa57 clrl _dbl_value_2
726: 722 000315D9 # dbl_value_2.l = 0;
727: 723 000315D9 4d effffffa55 clrl _dbl_value_2+4
728: 724 000315DF # dbl_expected = lnd_1_data[index].exp; /* get the expected results */
729: 725 000315DF 48 04 effffffa4a 50 shll $4,_index,r0
730: 726 000315E7 0c 8f00000008 50 addl2 $_lnd_1_data+8,r0
731: 727 000315EE 0d a004 effffffa3e movl 4(r0),_dbl_expected+4
732: 728 000315F6 0d 60 effffffa33 movl (r0),_dbl_expected
733: 729 000315FD # /*
734: 730 000315FD # * If LOOP ON ERROR is set, this is the loop for this subtest.
735: 731 000315FD # * The force loop flag is set after the first error.
736: 732 000315FD # */
737: 733 000315FD # asm("_pipe16_5_lp1:");
738: 734 000315FD _pipe16_5_lp1:
739: 735 000315FD # asm("lnd _dbl_value_1"); /* load a the op (-op ) */
740: 736 000315FD 17 effffffa2d lnd _dbl_value_1
741: 737 00031603 # asm("addd _dbl_value_1"); /* add the operand ( 0 ) */
742: 738 00031603 c7 effffffa27 addd _dbl_value_1
743: 739 00031609 # asm("subd _dbl_value_2"); /* subtract a '0.0' ( 0 ) */
744: 740 00031609 d7 effffffa21 subd _dbl_value_2
745: 741 0003160F # asm("subd _dbl_value_1"); /* subtract the op. (-op ) */
746: 742 0003160F d7 effffffa1b subd _dbl_value_1
747: 743 00031615 # asm("std _dbl_st_acc"); /* store the result (-op ) */
748: 744 00031615 27 effffffa15 std _dbl_st_acc
749: 745 0003161B # if( force_loop )
750: 746 0003161B 5d effffffa0f tstl _force_loop
751: 747 00031621 31 02 jeql L292
752: 748 00031623 # asm("brb _pipe16_5_lp1");; /* run the loop again */
753: 749 00031623 11 d8 brb _pipe16_5_lp1
754: 750 00031625 L292:
755: 751 00031625 # /*
756: 752 00031625 # * verify the results
757: 753 00031625 # */
758: 754 00031625 # if( (dbl_st_acc.m != dbl_expected.m) || /* compare the results */
759: 755 00031625 # (dbl_st_acc.l != dbl_expected.l) )
760: 756 00031625 1d effffffa05 effffffa00 cmpl _dbl_st_acc,_dbl_expected
761: 757 00031630 21 0d jneq L9995
762: 758 00031632 1d effffff9fc effffff9f7 cmpl _dbl_st_acc+4,_dbl_expected+4
763: 759 0003163D 31 42 jeql L293
764: 760 0003163F L9995:
765: 761 0003163F # {
766: 762 0003163F # errcnt++; /* bump the error count */
767: 763 0003163F 6d effffff9eb incl _errcnt
768: 764 00031645 # if ( prt_error )
769: 765 00031645 5d effffff9e5 tstl _prt_error
770: 766 0003164B 31 0d jeql L294
771: 767 0003164D # print_pipe16_er("Cache Data, no NOPs");
772: 768 0003164D .data 1
773: 769 00000d85 * L295:
774: 770 00000d85 * 436163686520446174612C206 .ascii "Cache Data, no NOPs\0"
775: E6F204E4F507300
776: 771 00000d99 * .text
777: 772 0003164D dd 8f00000d85 pushl $L295
778: 773 00031653 fe 08 ef00000540 callf $8,_print_pipe16_er
779: 774 0003165A # if ( halt_flg ) /* halt on error? */
780: 775 0003165A L294:
781: 776 0003165A 5d effffff9d0 tstl _halt_flg
782: 777 00031660 31 0d jeql L296
783: 778 00031662 # pipe16_er_hlt( subtest );
784: 779 00031662 dd effffff9c8 pushl _subtest
785: 780 00031668 fe 08 ef00000679 callf $8,_pipe16_er_hlt
786: 781 0003166F # if ( loop_on_err ) {
787: 782 0003166F L296:
788: 783 0003166F 5d effffff9bb tstl _loop_on_err
789: 784 00031675 31 0a jeql L297
790: 785 00031677 # force_loop = TRUE; /* set the force loop flag */
791: 786 00031677 0d 01 effffff9b2 movl $1,_force_loop
792: 787 0003167E # asm("brw _pipe16_5_lp1"); /* and loop */
793: 788 0003167E 13 ff7c brw _pipe16_5_lp1
794: 789 00031681 # }
795: 790 00031681 # } /* end of compare error */
796: 791 00031681 L297:
797: 792 00031681 # } while( index++ < max_lnd_1_index );
798: 793 00031681 L293:
799: 794 00031681 L290:
800: 795 00031681 0d effffff9a9 50 movl _index,r0
801: 796 00031688 6d effffff9a2 incl _index
802: 797 0003168E 1d 50 effffff99b cmpl r0,_max_lnd_1_index
803: 798 00031695 81 03 13 ff1b jlss L291
804: 799 0003169A L289:
805: 800 0003169A # } /* end of subtest 5 */
806: 801 0003169A 40 ret#2
807: 802 0003169B .set L285,0x0
808: 803 0003169B L287:
809: 804 0003169B 13 ff0b jbr L288
810: 805 0003169E .data
811: 806 00000d34 * .text
812: 807 0003169E .align 1
813: 808 0003169E .globl _pipe16_6
814: 809 0003169E _pipe16_6:
815: 810 0003169E 0000 .word L298
816: 811 000316A0 #
817: 812 000316A0 #
818: 813 000316A0 #
819: 814 000316A0 #
820: 815 000316A0 #
821: 816 000316A0 #
822: 817 000316A0 #
823: 818 000316A0 #
824: 819 000316A0 # /************************************************************************
825: 820 000316A0 # *
826: 821 000316A0 # * SUBTEST 6
827: 822 000316A0 # * data in cache, 1 NO-OP
828: 823 000316A0 # *
829: 824 000316A0 # ************************************************************************/
830: 825 000316A0 # pipe16_6()
831: 826 000316A0 # {
832: 827 000316A0 13 00f6 jbr L300
833: 828 000316A3 L301:
834: 829 000316A3 # force_loop = FALSE; /* clear the force_loop flg */
835: 830 000316A3 4d effffff987 clrl _force_loop
836: 831 000316A9 # index = 0;
837: 832 000316A9 4d effffff981 clrl _index
838: 833 000316AF # do
839: 834 000316AF L304:
840: 835 000316AF # {
841: 836 000316AF # dbl_value_1 = lnd_1_data[index].ld; /* get the operand */
842: 837 000316AF 48 04 effffff97a 50 shll $4,_index,r0
843: 838 000316B7 0c 8f00000000 50 addl2 $_lnd_1_data,r0
844: 839 000316BE 0d a004 effffff96e movl 4(r0),_dbl_value_1+4
845: 840 000316C6 0d 60 effffff963 movl (r0),_dbl_value_1
846: 841 000316CD # dbl_value_2.m = 0; /* set the '0.0' operand */
847: 842 000316CD 4d effffff95d clrl _dbl_value_2
848: 843 000316D3 # dbl_value_2.l = 0;
849: 844 000316D3 4d effffff95b clrl _dbl_value_2+4
850: 845 000316D9 # dbl_expected = lnd_1_data[index].exp; /* get the expected results */
851: 846 000316D9 48 04 effffff950 50 shll $4,_index,r0
852: 847 000316E1 0c 8f00000008 50 addl2 $_lnd_1_data+8,r0
853: 848 000316E8 0d a004 effffff944 movl 4(r0),_dbl_expected+4
854: 849 000316F0 0d 60 effffff939 movl (r0),_dbl_expected
855: 850 000316F7 # /*
856: 851 000316F7 # * If LOOP ON ERROR is set, this is the loop for this subtest.
857: 852 000316F7 # * The force loop flag is set after the first error.
858: 853 000316F7 # */
859: 854 000316F7 # asm("_pipe16_6_lp1:");
860: 855 000316F7 _pipe16_6_lp1:
861: 856 000316F7 # asm("lnd _dbl_value_1"); /* load a the op (-op ) */
862: 857 000316F7 17 effffff933 lnd _dbl_value_1
863: 858 000316FD # asm("nop");
864: 859 000316FD 10 nop
865: 860 000316FE # asm("addd _dbl_value_1"); /* add the operand ( 0 ) */
866: 861 000316FE c7 effffff92c addd _dbl_value_1
867: 862 00031704 # asm("nop");
868: 863 00031704 10 nop
869: 864 00031705 # asm("subd _dbl_value_2"); /* subtract a '0.0' ( 0 ) */
870: 865 00031705 d7 effffff925 subd _dbl_value_2
871: 866 0003170B # asm("nop");
872: 867 0003170B 10 nop
873: 868 0003170C # asm("subd _dbl_value_1"); /* subtract the op. (-op ) */
874: 869 0003170C d7 effffff91e subd _dbl_value_1
875: 870 00031712 # asm("nop");
876: 871 00031712 10 nop
877: 872 00031713 # asm("std _dbl_st_acc"); /* store the result (-op ) */
878: 873 00031713 27 effffff917 std _dbl_st_acc
879: 874 00031719 # if( force_loop )
880: 875 00031719 5d effffff911 tstl _force_loop
881: 876 0003171F 31 02 jeql L305
882: 877 00031721 # asm("brb _pipe16_6_lp1");; /* run the loop again */
883: 878 00031721 11 d4 brb _pipe16_6_lp1
884: 879 00031723 L305:
885: 880 00031723 # /*
886: 881 00031723 # * verify the results
887: 882 00031723 # */
888: 883 00031723 # if( (dbl_st_acc.m != dbl_expected.m) || /* compare the results */
889: 884 00031723 # (dbl_st_acc.l != dbl_expected.l) )
890: 885 00031723 1d effffff907 effffff902 cmpl _dbl_st_acc,_dbl_expected
891: 886 0003172E 21 0d jneq L9994
892: 887 00031730 1d effffff8fe effffff8f9 cmpl _dbl_st_acc+4,_dbl_expected+4
893: 888 0003173B 31 42 jeql L306
894: 889 0003173D L9994:
895: 890 0003173D # {
896: 891 0003173D # errcnt++; /* bump the error count */
897: 892 0003173D 6d effffff8ed incl _errcnt
898: 893 00031743 # if ( prt_error )
899: 894 00031743 5d effffff8e7 tstl _prt_error
900: 895 00031749 31 0d jeql L307
901: 896 0003174B # print_pipe16_er("Cache Data, 1 NOP");
902: 897 0003174B .data 1
903: 898 00000d99 * L308:
904: 899 00000d99 * 436163686520446174612C203 .ascii "Cache Data, 1 NOP\0"
905: 1204E4F5000
906: 900 00000dab * .text
907: 901 0003174B dd 8f00000d99 pushl $L308
908: 902 00031751 fe 08 ef00000442 callf $8,_print_pipe16_er
909: 903 00031758 # if ( halt_flg ) /* halt on error? */
910: 904 00031758 L307:
911: 905 00031758 5d effffff8d2 tstl _halt_flg
912: 906 0003175E 31 0d jeql L309
913: 907 00031760 # pipe16_er_hlt( subtest );
914: 908 00031760 dd effffff8ca pushl _subtest
915: 909 00031766 fe 08 ef0000057b callf $8,_pipe16_er_hlt
916: 910 0003176D # if ( loop_on_err ) {
917: 911 0003176D L309:
918: 912 0003176D 5d effffff8bd tstl _loop_on_err
919: 913 00031773 31 0a jeql L310
920: 914 00031775 # force_loop = TRUE; /* set the force loop flag */
921: 915 00031775 0d 01 effffff8b4 movl $1,_force_loop
922: 916 0003177C # asm("brw _pipe16_6_lp1"); /* and loop */
923: 917 0003177C 13 ff78 brw _pipe16_6_lp1
924: 918 0003177F # }
925: 919 0003177F # } /* end of compare error */
926: 920 0003177F L310:
927: 921 0003177F # } while( index++ < max_lnd_1_index );
928: 922 0003177F L306:
929: 923 0003177F L303:
930: 924 0003177F 0d effffff8ab 50 movl _index,r0
931: 925 00031786 6d effffff8a4 incl _index
932: 926 0003178C 1d 50 effffff89d cmpl r0,_max_lnd_1_index
933: 927 00031793 81 03 13 ff17 jlss L304
934: 928 00031798 L302:
935: 929 00031798 # } /* end of subtest 6 */
936: 930 00031798 40 ret#2
937: 931 00031799 .set L298,0x0
938: 932 00031799 L300:
939: 933 00031799 13 ff07 jbr L301
940: 934 0003179C .data
941: 935 00000d34 * .text
942: 936 0003179C .align 1
943: 937 0003179C .globl _pipe16_7
944: 938 0003179C _pipe16_7:
945: 939 0003179C 0000 .word L311
946: 940 0003179E #
947: 941 0003179E #
948: 942 0003179E #
949: 943 0003179E #
950: 944 0003179E #
951: 945 0003179E #
952: 946 0003179E #
953: 947 0003179E #
954: 948 0003179E # /************************************************************************
955: 949 0003179E # *
956: 950 0003179E # * SUBTEST 7
957: 951 0003179E # * data in cache, 2 NO-OPs
958: 952 0003179E # *
959: 953 0003179E # ************************************************************************/
960: 954 0003179E # pipe16_7()
961: 955 0003179E # {
962: 956 0003179E 13 00fa jbr L313
963: 957 000317A1 L314:
964: 958 000317A1 # force_loop = FALSE; /* clear the force_loop flg */
965: 959 000317A1 4d effffff889 clrl _force_loop
966: 960 000317A7 # index = 0;
967: 961 000317A7 4d effffff883 clrl _index
968: 962 000317AD # do
969: 963 000317AD L317:
970: 964 000317AD # {
971: 965 000317AD # dbl_value_1 = lnd_1_data[index].ld; /* get the operand */
972: 966 000317AD 48 04 effffff87c 50 shll $4,_index,r0
973: 967 000317B5 0c 8f00000000 50 addl2 $_lnd_1_data,r0
974: 968 000317BC 0d a004 effffff870 movl 4(r0),_dbl_value_1+4
975: 969 000317C4 0d 60 effffff865 movl (r0),_dbl_value_1
976: 970 000317CB # dbl_value_2.m = 0; /* set the '0.0' operand */
977: 971 000317CB 4d effffff85f clrl _dbl_value_2
978: 972 000317D1 # dbl_value_2.l = 0;
979: 973 000317D1 4d effffff85d clrl _dbl_value_2+4
980: 974 000317D7 # dbl_expected = lnd_1_data[index].exp; /* get the expected results */
981: 975 000317D7 48 04 effffff852 50 shll $4,_index,r0
982: 976 000317DF 0c 8f00000008 50 addl2 $_lnd_1_data+8,r0
983: 977 000317E6 0d a004 effffff846 movl 4(r0),_dbl_expected+4
984: 978 000317EE 0d 60 effffff83b movl (r0),_dbl_expected
985: 979 000317F5 # /*
986: 980 000317F5 # * If LOOP ON ERROR is set, this is the loop for this subtest.
987: 981 000317F5 # * The force loop flag is set after the first error.
988: 982 000317F5 # */
989: 983 000317F5 # asm("_pipe16_7_lp1:");
990: 984 000317F5 _pipe16_7_lp1:
991: 985 000317F5 # asm("lnd _dbl_value_1"); /* load a the op (-op ) */
992: 986 000317F5 17 effffff835 lnd _dbl_value_1
993: 987 000317FB # asm("nop");
994: 988 000317FB 10 nop
995: 989 000317FC # asm("nop");
996: 990 000317FC 10 nop
997: 991 000317FD # asm("addd _dbl_value_1"); /* add the operand ( 0 ) */
998: 992 000317FD c7 effffff82d addd _dbl_value_1
999: 993 00031803 # asm("nop");
1000: 994 00031803 10 nop
1001: 995 00031804 # asm("nop");
1002: 996 00031804 10 nop
1003: 997 00031805 # asm("subd _dbl_value_2"); /* subtract a '0.0' ( 0 ) */
1004: 998 00031805 d7 effffff825 subd _dbl_value_2
1005: 999 0003180B # asm("nop");
1006: 1000 0003180B 10 nop
1007: 1001 0003180C # asm("nop");
1008: 1002 0003180C 10 nop
1009: 1003 0003180D # asm("subd _dbl_value_1"); /* subtract the op. (-op ) */
1010: 1004 0003180D d7 effffff81d subd _dbl_value_1
1011: 1005 00031813 # asm("nop");
1012: 1006 00031813 10 nop
1013: 1007 00031814 # asm("nop");
1014: 1008 00031814 10 nop
1015: 1009 00031815 # asm("std _dbl_st_acc"); /* store the result (-op ) */
1016: 1010 00031815 27 effffff815 std _dbl_st_acc
1017: 1011 0003181B # if( force_loop )
1018: 1012 0003181B 5d effffff80f tstl _force_loop
1019: 1013 00031821 31 02 jeql L318
1020: 1014 00031823 # asm("brb _pipe16_7_lp1");; /* run the loop again */
1021: 1015 00031823 11 d0 brb _pipe16_7_lp1
1022: 1016 00031825 L318:
1023: 1017 00031825 # /*
1024: 1018 00031825 # * verify the results
1025: 1019 00031825 # */
1026: 1020 00031825 # if( (dbl_st_acc.m != dbl_expected.m) || /* compare the results */
1027: 1021 00031825 # (dbl_st_acc.l != dbl_expected.l) )
1028: 1022 00031825 1d effffff805 effffff800 cmpl _dbl_st_acc,_dbl_expected
1029: 1023 00031830 21 0d jneq L9993
1030: 1024 00031832 1d effffff7fc effffff7f7 cmpl _dbl_st_acc+4,_dbl_expected+4
1031: 1025 0003183D 31 42 jeql L319
1032: 1026 0003183F L9993:
1033: 1027 0003183F # {
1034: 1028 0003183F # errcnt++; /* bump the error count */
1035: 1029 0003183F 6d effffff7eb incl _errcnt
1036: 1030 00031845 # if ( prt_error )
1037: 1031 00031845 5d effffff7e5 tstl _prt_error
1038: 1032 0003184B 31 0d jeql L320
1039: 1033 0003184D # print_pipe16_er("Cache Data, 2 NOPs");
1040: 1034 0003184D .data 1
1041: 1035 00000dab * L321:
1042: 1036 00000dab * 436163686520446174612C203 .ascii "Cache Data, 2 NOPs\0"
1043: 2204E4F507300
1044: 1037 00000dbe * .text
1045: 1038 0003184D dd 8f00000dab pushl $L321
1046: 1039 00031853 fe 08 ef00000340 callf $8,_print_pipe16_er
1047: 1040 0003185A # if ( halt_flg ) /* halt on error? */
1048: 1041 0003185A L320:
1049: 1042 0003185A 5d effffff7d0 tstl _halt_flg
1050: 1043 00031860 31 0d jeql L322
1051: 1044 00031862 # pipe16_er_hlt( subtest );
1052: 1045 00031862 dd effffff7c8 pushl _subtest
1053: 1046 00031868 fe 08 ef00000479 callf $8,_pipe16_er_hlt
1054: 1047 0003186F # if ( loop_on_err ) {
1055: 1048 0003186F L322:
1056: 1049 0003186F 5d effffff7bb tstl _loop_on_err
1057: 1050 00031875 31 0a jeql L323
1058: 1051 00031877 # force_loop = TRUE; /* set the force loop flag */
1059: 1052 00031877 0d 01 effffff7b2 movl $1,_force_loop
1060: 1053 0003187E # asm("brw _pipe16_7_lp1"); /* and loop */
1061: 1054 0003187E 13 ff74 brw _pipe16_7_lp1
1062: 1055 00031881 # }
1063: 1056 00031881 # } /* end of compare error */
1064: 1057 00031881 L323:
1065: 1058 00031881 # } while( index++ < max_lnd_1_index );
1066: 1059 00031881 L319:
1067: 1060 00031881 L316:
1068: 1061 00031881 0d effffff7a9 50 movl _index,r0
1069: 1062 00031888 6d effffff7a2 incl _index
1070: 1063 0003188E 1d 50 effffff79b cmpl r0,_max_lnd_1_index
1071: 1064 00031895 81 03 13 ff13 jlss L317
1072: 1065 0003189A L315:
1073: 1066 0003189A # } /* end of subtest 7 */
1074: 1067 0003189A 40 ret#2
1075: 1068 0003189B .set L311,0x0
1076: 1069 0003189B L313:
1077: 1070 0003189B 13 ff03 jbr L314
1078: 1071 0003189E .data
1079: 1072 00000d34 * .text
1080: 1073 0003189E .align 1
1081: 1074 0003189E .globl _pipe16_8
1082: 1075 0003189E _pipe16_8:
1083: 1076 0003189E 0000 .word L324
1084: 1077 000318A0 #
1085: 1078 000318A0 #
1086: 1079 000318A0 #
1087: 1080 000318A0 #
1088: 1081 000318A0 #
1089: 1082 000318A0 #
1090: 1083 000318A0 #
1091: 1084 000318A0 # /************************************************************************
1092: 1085 000318A0 # *
1093: 1086 000318A0 # * SUBTEST 8
1094: 1087 000318A0 # * data in cache, 3 NO-OPs
1095: 1088 000318A0 # *
1096: 1089 000318A0 # ************************************************************************/
1097: 1090 000318A0 # pipe16_8()
1098: 1091 000318A0 # {
1099: 1092 000318A0 13 00fe jbr L326
1100: 1093 000318A3 L327:
1101: 1094 000318A3 # force_loop = FALSE; /* clear the force_loop flg */
1102: 1095 000318A3 4d effffff787 clrl _force_loop
1103: 1096 000318A9 # index = 0;
1104: 1097 000318A9 4d effffff781 clrl _index
1105: 1098 000318AF # do
1106: 1099 000318AF L330:
1107: 1100 000318AF # {
1108: 1101 000318AF # dbl_value_1 = lnd_1_data[index].ld; /* get the operand */
1109: 1102 000318AF 48 04 effffff77a 50 shll $4,_index,r0
1110: 1103 000318B7 0c 8f00000000 50 addl2 $_lnd_1_data,r0
1111: 1104 000318BE 0d a004 effffff76e movl 4(r0),_dbl_value_1+4
1112: 1105 000318C6 0d 60 effffff763 movl (r0),_dbl_value_1
1113: 1106 000318CD # dbl_value_2.m = 0; /* set the '0.0' operand */
1114: 1107 000318CD 4d effffff75d clrl _dbl_value_2
1115: 1108 000318D3 # dbl_value_2.l = 0;
1116: 1109 000318D3 4d effffff75b clrl _dbl_value_2+4
1117: 1110 000318D9 # dbl_expected = lnd_1_data[index].exp; /* get the expected results */
1118: 1111 000318D9 48 04 effffff750 50 shll $4,_index,r0
1119: 1112 000318E1 0c 8f00000008 50 addl2 $_lnd_1_data+8,r0
1120: 1113 000318E8 0d a004 effffff744 movl 4(r0),_dbl_expected+4
1121: 1114 000318F0 0d 60 effffff739 movl (r0),_dbl_expected
1122: 1115 000318F7 # /*
1123: 1116 000318F7 # * If LOOP ON ERROR is set, this is the loop for this subtest.
1124: 1117 000318F7 # * The force loop flag is set after the first error.
1125: 1118 000318F7 # */
1126: 1119 000318F7 # asm("_pipe16_8_lp1:");
1127: 1120 000318F7 _pipe16_8_lp1:
1128: 1121 000318F7 # asm("lnd _dbl_value_1"); /* load a the op (-op ) */
1129: 1122 000318F7 17 effffff733 lnd _dbl_value_1
1130: 1123 000318FD # asm("nop");
1131: 1124 000318FD 10 nop
1132: 1125 000318FE # asm("nop");
1133: 1126 000318FE 10 nop
1134: 1127 000318FF # asm("nop");
1135: 1128 000318FF 10 nop
1136: 1129 00031900 # asm("addd _dbl_value_1"); /* add the operand ( 0 ) */
1137: 1130 00031900 c7 effffff72a addd _dbl_value_1
1138: 1131 00031906 # asm("nop");
1139: 1132 00031906 10 nop
1140: 1133 00031907 # asm("nop");
1141: 1134 00031907 10 nop
1142: 1135 00031908 # asm("nop");
1143: 1136 00031908 10 nop
1144: 1137 00031909 # asm("subd _dbl_value_2"); /* subtract a '0.0' ( 0 ) */
1145: 1138 00031909 d7 effffff721 subd _dbl_value_2
1146: 1139 0003190F # asm("nop");
1147: 1140 0003190F 10 nop
1148: 1141 00031910 # asm("nop");
1149: 1142 00031910 10 nop
1150: 1143 00031911 # asm("nop");
1151: 1144 00031911 10 nop
1152: 1145 00031912 # asm("subd _dbl_value_1"); /* subtract the op. (-op ) */
1153: 1146 00031912 d7 effffff718 subd _dbl_value_1
1154: 1147 00031918 # asm("nop");
1155: 1148 00031918 10 nop
1156: 1149 00031919 # asm("nop");
1157: 1150 00031919 10 nop
1158: 1151 0003191A # asm("nop");
1159: 1152 0003191A 10 nop
1160: 1153 0003191B # asm("std _dbl_st_acc"); /* store the result (-op ) */
1161: 1154 0003191B 27 effffff70f std _dbl_st_acc
1162: 1155 00031921 # if( force_loop )
1163: 1156 00031921 5d effffff709 tstl _force_loop
1164: 1157 00031927 31 02 jeql L331
1165: 1158 00031929 # asm("brb _pipe16_8_lp1");; /* run the loop again */
1166: 1159 00031929 11 cc brb _pipe16_8_lp1
1167: 1160 0003192B L331:
1168: 1161 0003192B # /*
1169: 1162 0003192B # * verify the results
1170: 1163 0003192B # */
1171: 1164 0003192B # if( (dbl_st_acc.m != dbl_expected.m) || /* compare the results */
1172: 1165 0003192B # (dbl_st_acc.l != dbl_expected.l) )
1173: 1166 0003192B 1d effffff6ff effffff6fa cmpl _dbl_st_acc,_dbl_expected
1174: 1167 00031936 21 0d jneq L9992
1175: 1168 00031938 1d effffff6f6 effffff6f1 cmpl _dbl_st_acc+4,_dbl_expected+4
1176: 1169 00031943 31 42 jeql L332
1177: 1170 00031945 L9992:
1178: 1171 00031945 # {
1179: 1172 00031945 # errcnt++; /* bump the error count */
1180: 1173 00031945 6d effffff6e5 incl _errcnt
1181: 1174 0003194B # if ( prt_error )
1182: 1175 0003194B 5d effffff6df tstl _prt_error
1183: 1176 00031951 31 0d jeql L333
1184: 1177 00031953 # print_pipe16_er("Cache Data, 3 NOPs");
1185: 1178 00031953 .data 1
1186: 1179 00000dbe * L334:
1187: 1180 00000dbe * 436163686520446174612C203 .ascii "Cache Data, 3 NOPs\0"
1188: 3204E4F507300
1189: 1181 00000dd1 * .text
1190: 1182 00031953 dd 8f00000dbe pushl $L334
1191: 1183 00031959 fe 08 ef0000023a callf $8,_print_pipe16_er
1192: 1184 00031960 # if ( halt_flg ) /* halt on error? */
1193: 1185 00031960 L333:
1194: 1186 00031960 5d effffff6ca tstl _halt_flg
1195: 1187 00031966 31 0d jeql L335
1196: 1188 00031968 # pipe16_er_hlt( subtest );
1197: 1189 00031968 dd effffff6c2 pushl _subtest
1198: 1190 0003196E fe 08 ef00000373 callf $8,_pipe16_er_hlt
1199: 1191 00031975 # if ( loop_on_err ) {
1200: 1192 00031975 L335:
1201: 1193 00031975 5d effffff6b5 tstl _loop_on_err
1202: 1194 0003197B 31 0a jeql L336
1203: 1195 0003197D # force_loop = TRUE; /* set the force loop flag */
1204: 1196 0003197D 0d 01 effffff6ac movl $1,_force_loop
1205: 1197 00031984 # asm("brw _pipe16_8_lp1"); /* and loop */
1206: 1198 00031984 13 ff70 brw _pipe16_8_lp1
1207: 1199 00031987 # }
1208: 1200 00031987 # } /* end of compare error */
1209: 1201 00031987 L336:
1210: 1202 00031987 # } while( index++ < max_lnd_1_index );
1211: 1203 00031987 L332:
1212: 1204 00031987 L329:
1213: 1205 00031987 0d effffff6a3 50 movl _index,r0
1214: 1206 0003198E 6d effffff69c incl _index
1215: 1207 00031994 1d 50 effffff695 cmpl r0,_max_lnd_1_index
1216: 1208 0003199B 81 03 13 ff0f jlss L330
1217: 1209 000319A0 L328:
1218: 1210 000319A0 # } /* end of subtest 8 */
1219: 1211 000319A0 40 ret#2
1220: 1212 000319A1 .set L324,0x0
1221: 1213 000319A1 L326:
1222: 1214 000319A1 13 feff jbr L327
1223: 1215 000319A4 .data
1224: 1216 00000d34 * .text
1225: 1217 000319A4 .align 1
1226: 1218 000319A4 .globl _pipe16_9
1227: 1219 000319A4 _pipe16_9:
1228: 1220 000319A4 0000 .word L337
1229: 1221 000319A6 #
1230: 1222 000319A6 #
1231: 1223 000319A6 #
1232: 1224 000319A6 #
1233: 1225 000319A6 #
1234: 1226 000319A6 #
1235: 1227 000319A6 #
1236: 1228 000319A6 #
1237: 1229 000319A6 #
1238: 1230 000319A6 # /******************************************************************************
1239: 1231 000319A6 # *
1240: 1232 000319A6 # * SUBTEST 9
1241: 1233 000319A6 # *
1242: 1234 000319A6 # * Get the data via the FRAME POINTER ( quad word indexed )
1243: 1235 000319A6 # *
1244: 1236 000319A6 # * ADDRESSES OF DATA OPERANDS INDEX DATA
1245: 1237 000319A6 # * pointer_data,-4 ( FP+24 ) 3 the STF result goes here
1246: 1238 000319A6 # * pointer_data-8,-12 ( FP+16 ) 2 <operand data>
1247: 1239 000319A6 # * pointer_data-16,-20 ( FP+8 ) 1 < '0.0' data>
1248: 1240 000319A6 # * pointer_data-24,-28 ( FP ) 0 point the frame pointer here
1249: 1241 000319A6 # *
1250: 1242 000319A6 # * NOTE: The double precision instructions are using Quad Word indexing.
1251: 1243 000319A6 # ******************************************************************************/
1252: 1244 000319A6 # pipe16_9()
1253: 1245 000319A6 # {
1254: 1246 000319A6 13 01ee jbr L339
1255: 1247 000319A9 L340:
1256: 1248 000319A9 # asm("moval (r13),_pre_event_fp"); /* save the frame pointer */
1257: 1249 000319A9 ed 6d effffff680 moval (r13),_pre_event_fp
1258: 1250 000319B0 # asm("moval (r14),_pre_event_sp"); /* save the stack pointer */
1259: 1251 000319B0 ed 6e effffff679 moval (r14),_pre_event_sp
1260: 1252 000319B7 # force_loop = FALSE; /* clear force_loop flag */
1261: 1253 000319B7 4d effffff673 clrl _force_loop
1262: 1254 000319BD # index = 0;
1263: 1255 000319BD 4d effffff66d clrl _index
1264: 1256 000319C3 # do
1265: 1257 000319C3 L343:
1266: 1258 000319C3 # {
1267: 1259 000319C3 # sgl_value_1 = lnd_1_data[index].ld.m; /* get operand 1's MSW */
1268: 1260 000319C3 0d effffff667 50 movl _index,r0
1269: 1261 000319CA 48 04 50 50 shll $4,r0,r0
1270: 1262 000319CE 0d e000000000 effffff657 movl _lnd_1_data(r0),_sgl_value_1
1271: 1263 000319D9 # sgl_value_2 = lnd_1_data[index].ld.l; /* get operand 1's LSW */
1272: 1264 000319D9 0d effffff651 50 movl _index,r0
1273: 1265 000319E0 48 04 50 50 shll $4,r0,r0
1274: 1266 000319E4 0d e000000004 effffff641 movl _lnd_1_data+4(r0),_sgl_value_2
1275: 1267 000319EF # sgl_value_7 = 0; /* get the '0.0' data */
1276: 1268 000319EF 4d effffff63b clrl _sgl_value_7
1277: 1269 000319F5 # dbl_expected = lnd_1_data[index].exp; /* get expected results */
1278: 1270 000319F5 48 04 effffff634 50 shll $4,_index,r0
1279: 1271 000319FD 0c 8f00000008 50 addl2 $_lnd_1_data+8,r0
1280: 1272 00031A04 0d a004 effffff628 movl 4(r0),_dbl_expected+4
1281: 1273 00031A0C 0d 60 effffff61d movl (r0),_dbl_expected
1282: 1274 00031A13 # /*
1283: 1275 00031A13 # * If LOOP ON ERROR is set, this is the loop for this subtest.
1284: 1276 00031A13 # * The force loop flag is set after the first error.
1285: 1277 00031A13 # */
1286: 1278 00031A13 # asm("_pipe16_9_lp1:");
1287: 1279 00031A13 _pipe16_9_lp1:
1288: 1280 00031A13 # asm("moval _pointer_data,_sgl_value_9");/* get store data's addr */
1289: 1281 00031A13 ed effffff617 effffff612 moval _pointer_data,_sgl_value_9
1290: 1282 00031A1E # sgl_value_9 -= 8;
1291: 1283 00031A1E 2c 08 effffff60b subl2 $8,_sgl_value_9
1292: 1284 00031A25 # asm("movl _sgl_value_2,*_sgl_value_9"); /* set the operand's LSW */
1293: 1285 00031A25 0d effffff605 fffffff600 movl _sgl_value_2,*_sgl_value_9
1294: 1286 00031A30 # sgl_value_9 -= 4;
1295: 1287 00031A30 2c 04 effffff5f9 subl2 $4,_sgl_value_9
1296: 1288 00031A37 # asm("movl _sgl_value_1,*_sgl_value_9"); /* set the operand's MSW */
1297: 1289 00031A37 0d effffff5f3 fffffff5ee movl _sgl_value_1,*_sgl_value_9
1298: 1290 00031A42 # sgl_value_9 -= 4;
1299: 1291 00031A42 2c 04 effffff5e7 subl2 $4,_sgl_value_9
1300: 1292 00031A49 # asm("movl _sgl_value_7,*_sgl_value_9"); /* set '0.0' data's LSW */
1301: 1293 00031A49 0d effffff5e1 fffffff5dc movl _sgl_value_7,*_sgl_value_9
1302: 1294 00031A54 # sgl_value_9 -= 4;
1303: 1295 00031A54 2c 04 effffff5d5 subl2 $4,_sgl_value_9
1304: 1296 00031A5B # asm("movl _sgl_value_7,*_sgl_value_9"); /* set '0.0' data's MSW */
1305: 1297 00031A5B 0d effffff5cf fffffff5ca movl _sgl_value_7,*_sgl_value_9
1306: 1298 00031A66 # sgl_value_9 -= 8; /* get the FP addr to use */
1307: 1299 00031A66 2c 08 effffff5c3 subl2 $8,_sgl_value_9
1308: 1300 00031A6D # asm("movl _sgl_value_9,r13"); /* set the FRAME POINTER */
1309: 1301 00031A6D 0d effffff5bd 5d movl _sgl_value_9,r13
1310: 1302 00031A74 # asm("movl $1,r5"); /* r5 index = 1 quadwords */
1311: 1303 00031A74 0d 01 55 movl $1,r5
1312: 1304 00031A77 # asm("movl $2,r6"); /* r6 index = 2 quadwords */
1313: 1305 00031A77 0d 02 56 movl $2,r6
1314: 1306 00031A7A # asm("movl $3,r7"); /* r7 index = 3 quadwords */
1315: 1307 00031A7A 0d 03 57 movl $3,r7
1316: 1308 00031A7D # asm("lnd (r13)[r6]"); /* load the operand ( -op ) */
1317: 1309 00031A7D 17 466d lnd (r13)[r6]
1318: 1310 00031A80 # asm("addd (r13)[r6]"); /* add the operand ( 0 ) */
1319: 1311 00031A80 c7 466d addd (r13)[r6]
1320: 1312 00031A83 # asm("subd (r13)[r5]"); /* subtract a '0.0' ( 0 ) */
1321: 1313 00031A83 d7 456d subd (r13)[r5]
1322: 1314 00031A86 # asm("subd (r13)[r6]"); /* subtract the op. ( -op ) */
1323: 1315 00031A86 d7 466d subd (r13)[r6]
1324: 1316 00031A89 # asm("std (r13)[r7]"); /* store the result ( -op ) */
1325: 1317 00031A89 27 476d std (r13)[r7]
1326: 1318 00031A8C # if( force_loop )
1327: 1319 00031A8C 5d effffff59e tstl _force_loop
1328: 1320 00031A92 31 03 jeql L344
1329: 1321 00031A94 # asm("brw _pipe16_9_lp1");; /* run the loop again */
1330: 1322 00031A94 13 ff7c brw _pipe16_9_lp1
1331: 1323 00031A97 L344:
1332: 1324 00031A97 # /*
1333: 1325 00031A97 # * verify the results
1334: 1326 00031A97 # */
1335: 1327 00031A97 # asm("moval (r13),_sgl_value_10"); /* save the frame pointer */
1336: 1328 00031A97 ed 6d effffff592 moval (r13),_sgl_value_10
1337: 1329 00031A9E # asm("movl _pointer_data,_sgl_value_4"); /* save the LSW stored */
1338: 1330 00031A9E 0d effffff58c effffff587 movl _pointer_data,_sgl_value_4
1339: 1331 00031AA9 # asm("movl _pointer_data-4,_sgl_value_3"); /* and the MSW */
1340: 1332 00031AA9 0d effffff57d effffff57c movl _pointer_data-4,_sgl_value_3
1341: 1333 00031AB4 # if( (sgl_value_3 != dbl_expected.m) || /* verify the result... */
1342: 1334 00031AB4 # (sgl_value_4 != dbl_expected.l) || /* verify the result... */
1343: 1335 00031AB4 # (sgl_value_10 != sgl_value_9) ) /* ... and the final FP */
1344: 1336 00031AB4 1d effffff576 effffff571 cmpl _sgl_value_3,_dbl_expected
1345: 1337 00031ABF 21 1d jneq L9991
1346: 1338 00031AC1 1d effffff569 effffff568 cmpl _sgl_value_4,_dbl_expected+4
1347: 1339 00031ACC 21 10 jneq L9991
1348: 1340 00031ACE 1d effffff55c effffff557 cmpl _sgl_value_10,_sgl_value_9
1349: 1341 00031AD9 21 03 13 0091 jeql L345
1350: 1342 00031ADE L9991:
1351: 1343 00031ADE # {
1352: 1344 00031ADE # asm("movl _pre_event_fp,r13"); /* restore frame pointer */
1353: 1345 00031ADE 0d effffff54c 5d movl _pre_event_fp,r13
1354: 1346 00031AE5 # asm("movl _pre_event_sp,r14"); /* restore stack pointer */
1355: 1347 00031AE5 0d effffff545 5e movl _pre_event_sp,r14
1356: 1348 00031AEC # errcnt++; /* bump the error count */
1357: 1349 00031AEC 6d effffff53e incl _errcnt
1358: 1350 00031AF2 # if ( prt_error ) {
1359: 1351 00031AF2 5d effffff538 tstl _prt_error
1360: 1352 00031AF8 31 4e jeql L346
1361: 1353 00031AFA # print_pipe16_er("indexed FP addressing");
1362: 1354 00031AFA .data 1
1363: 1355 00000dd1 * L347:
1364: 1356 00000dd1 * 696E646578656420465020616 .ascii "indexed FP addressing\0"
1365: 46472657373696E6700
1366: 1357 00000de7 * .text
1367: 1358 00031AFA dd 8f00000dd1 pushl $L347
1368: 1359 00031B00 fe 08 ef00000093 callf $8,_print_pipe16_er
1369: 1360 00031B07 # writes("final Frame Pointer = ");
1370: 1361 00031B07 .data 1
1371: 1362 00000de7 * L348:
1372: 1363 00000de7 * 66696E616C204672616D65205 .ascii "final Frame Pointer = \0"
1373: 06F696E746572203D2000
1374: 1364 00000dfe * .text
1375: 1365 00031B07 dd 8f00000de7 pushl $L348
1376: 1366 00031B0D fe 08 effffff51c callf $8,_writes
1377: 1367 00031B14 # writeh( sgl_value_10 );
1378: 1368 00031B14 dd effffff516 pushl _sgl_value_10
1379: 1369 00031B1A fe 08 effffff50f callf $8,_writeh
1380: 1370 00031B21 # writes(", expected FP = ");
1381: 1371 00031B21 .data 1
1382: 1372 00000dfe * L350:
1383: 1373 00000dfe * 2C20206578706563746564204 .ascii ", expected FP = \0"
1384: 650203D2000
1385: 1374 00000e10 * .text
1386: 1375 00031B21 dd 8f00000dfe pushl $L350
1387: 1376 00031B27 fe 08 effffff502 callf $8,_writes
1388: 1377 00031B2E # writeh( sgl_value_9 );
1389: 1378 00031B2E dd effffff4fc pushl _sgl_value_9
1390: 1379 00031B34 fe 08 effffff4f5 callf $8,_writeh
1391: 1380 00031B3B # writes("\n");
1392: 1381 00031B3B .data 1
1393: 1382 00000e10 * L351:
1394: 1383 00000e10 * 0A00 .ascii "\12\0"
1395: 1384 00000e12 * .text
1396: 1385 00031B3B dd 8f00000e10 pushl $L351
1397: 1386 00031B41 fe 08 effffff4e8 callf $8,_writes
1398: 1387 00031B48 # }
1399: 1388 00031B48 # if ( halt_flg ) /* halt on error? */
1400: 1389 00031B48 L346:
1401: 1390 00031B48 5d effffff4e2 tstl _halt_flg
1402: 1391 00031B4E 31 0d jeql L352
1403: 1392 00031B50 # pipe16_er_hlt( subtest );
1404: 1393 00031B50 dd effffff4da pushl _subtest
1405: 1394 00031B56 fe 08 ef0000018b callf $8,_pipe16_er_hlt
1406: 1395 00031B5D # if ( loop_on_err ) {
1407: 1396 00031B5D L352:
1408: 1397 00031B5D 5d effffff4cd tstl _loop_on_err
1409: 1398 00031B63 31 0a jeql L353
1410: 1399 00031B65 # force_loop = TRUE; /* set the force loop flag */
1411: 1400 00031B65 0d 01 effffff4c4 movl $1,_force_loop
1412: 1401 00031B6C # asm("brw _pipe16_9_lp1"); /* and loop */
1413: 1402 00031B6C 13 fea4 brw _pipe16_9_lp1
1414: 1403 00031B6F # }
1415: 1404 00031B6F # } /* end of compare error */
1416: 1405 00031B6F L353:
1417: 1406 00031B6F # } while( index++ < max_lnd_1_index );
1418: 1407 00031B6F L345:
1419: 1408 00031B6F L342:
1420: 1409 00031B6F 0d effffff4bb 50 movl _index,r0
1421: 1410 00031B76 6d effffff4b4 incl _index
1422: 1411 00031B7C 1d 50 effffff4ad cmpl r0,_max_lnd_1_index
1423: 1412 00031B83 81 03 13 fe3b jlss L343
1424: 1413 00031B88 L341:
1425: 1414 00031B88 # asm("movl _pre_event_fp,r13"); /* restore the frame pointer */
1426: 1415 00031B88 0d effffff4a2 5d movl _pre_event_fp,r13
1427: 1416 00031B8F # asm("movl _pre_event_sp,r14"); /* restore the stack pointer */
1428: 1417 00031B8F 0d effffff49b 5e movl _pre_event_sp,r14
1429: 1418 00031B96 # } /* end of subtest 9 */
1430: 1419 00031B96 40 ret#2
1431: 1420 00031B97 .set L337,0x0
1432: 1421 00031B97 L339:
1433: 1422 00031B97 13 fe0f jbr L340
1434: 1423 00031B9A .data
1435: 1424 00000d34 * .text
1436: 1425 00031B9A .align 1
1437: 1426 00031B9A .globl _print_pipe16_er
1438: 1427 00031B9A _print_pipe16_er:
1439: 1428 00031B9A 0000 .word L354
1440: 1429 00031B9C #
1441: 1430 00031B9C #
1442: 1431 00031B9C # /******************************************************************************
1443: 1432 00031B9C # *
1444: 1433 00031B9C # * ERROR ROUTINE
1445: 1434 00031B9C # *
1446: 1435 00031B9C # * print an error in the following form
1447: 1436 00031B9C # *
1448: 1437 00031B9C # *operand = xxxxxxxx xxxxxxxx, final Acc = xxxxxxxx xxxxxxxx, index = dd
1449: 1438 00031B9C # * expected Acc = xxxxxxxx xxxxxxxx
1450: 1439 00031B9C # *
1451: 1440 00031B9C # ******************************************************************************/
1452: 1441 00031B9C # print_pipe16_er(msg)
1453: 1442 00031B9C # char *msg;
1454: 1443 00031B9C # {
1455: 1444 00031B9C 13 0145 jbr L356
1456: 1445 00031B9F L357:
1457: 1446 00031B9F # writes("\n"); /* start a new print line */
1458: 1447 00031B9F .data 1
1459: 1448 00000e12 * L358:
1460: 1449 00000e12 * 0A00 .ascii "\12\0"
1461: 1450 00000e14 * .text
1462: 1451 00031B9F dd 8f00000e12 pushl $L358
1463: 1452 00031BA5 fe 08 effffff484 callf $8,_writes
1464: 1453 00031BAC # writes("cycle: ");
1465: 1454 00031BAC .data 1
1466: 1455 00000e14 * L359:
1467: 1456 00000e14 * 6379636C653A2000 .ascii "cycle: \0"
1468: 1457 00000e1c * .text
1469: 1458 00031BAC dd 8f00000e14 pushl $L359
1470: 1459 00031BB2 fe 08 effffff477 callf $8,_writes
1471: 1460 00031BB9 # writed( cycle );
1472: 1461 00031BB9 dd effffff471 pushl _cycle
1473: 1462 00031BBF fe 08 effffff46a callf $8,_writed
1474: 1463 00031BC6 # writes(" test ");
1475: 1464 00031BC6 .data 1
1476: 1465 00000e1c * L361:
1477: 1466 00000e1c * 20746573742000 .ascii " test \0"
1478: 1467 00000e23 * .text
1479: 1468 00031BC6 dd 8f00000e1c pushl $L361
1480: 1469 00031BCC fe 08 effffff45d callf $8,_writes
1481: 1470 00031BD3 # writed( test_no );
1482: 1471 00031BD3 dd effffff457 pushl _test_no
1483: 1472 00031BD9 fe 08 effffff450 callf $8,_writed
1484: 1473 00031BE0 # writes(" (Pipe 16), subtest ");
1485: 1474 00031BE0 .data 1
1486: 1475 00000e23 * L362:
1487: 1476 00000e23 * 20202850697065203136292C2 .ascii " (Pipe 16), subtest \0"
1488: 0737562746573742000
1489: 1477 00000e39 * .text
1490: 1478 00031BE0 dd 8f00000e23 pushl $L362
1491: 1479 00031BE6 fe 08 effffff443 callf $8,_writes
1492: 1480 00031BED # writed( subtest );
1493: 1481 00031BED dd effffff43d pushl _subtest
1494: 1482 00031BF3 fe 08 effffff436 callf $8,_writed
1495: 1483 00031BFA # writes(" error - ");
1496: 1484 00031BFA .data 1
1497: 1485 00000e39 * L363:
1498: 1486 00000e39 * 206572726F72202D2000 .ascii " error - \0"
1499: 1487 00000e43 * .text
1500: 1488 00031BFA dd 8f00000e39 pushl $L363
1501: 1489 00031C00 fe 08 effffff429 callf $8,_writes
1502: 1490 00031C07 # writes( msg );
1503: 1491 00031C07 dd ad04 pushl 4(fp)
1504: 1492 00031C0A fe 08 effffff41f callf $8,_writes
1505: 1493 00031C11 # writec('\n');
1506: 1494 00031C11 dd 0a pushl $10
1507: 1495 00031C13 fe 08 effffff416 callf $8,_writec
1508: 1496 00031C1A # writes(" LND(op), ADDD(op), SUBD(0.0), SUBD(op), STD\n");
1509: 1497 00031C1A .data 1
1510: 1498 00000e43 * L365:
1511: 1499 00000e43 * 204C4E44286F70292C2041444 .ascii " LND(op), ADDD(op), SUBD(0.0), SUBD(op), STD\12\0"
1512: 444286F70292C205355424428
1513: 302E30292C2053554244286F7
1514: 0292C205354440A00
1515: 1500 00000e71 * .text
1516: 1501 00031C1A dd 8f00000e43 pushl $L365
1517: 1502 00031C20 fe 08 effffff409 callf $8,_writes
1518: 1503 00031C27 # writes("operand = ");
1519: 1504 00031C27 .data 1
1520: 1505 00000e71 * L366:
1521: 1506 00000e71 * 6F706572616E64203D2000 .ascii "operand = \0"
1522: 1507 00000e7c * .text
1523: 1508 00031C27 dd 8f00000e71 pushl $L366
1524: 1509 00031C2D fe 08 effffff3fc callf $8,_writes
1525: 1510 00031C34 # write32h( dbl_ld_acc.m );
1526: 1511 00031C34 dd effffff3f6 pushl _dbl_ld_acc
1527: 1512 00031C3A fe 08 effffff3ef callf $8,_write32h
1528: 1513 00031C41 # writec(' ');
1529: 1514 00031C41 dd 20 pushl $32
1530: 1515 00031C43 fe 08 effffff3e6 callf $8,_writec
1531: 1516 00031C4A # write32h( dbl_ld_acc.l );
1532: 1517 00031C4A dd effffff3e4 pushl _dbl_ld_acc+4
1533: 1518 00031C50 fe 08 effffff3d9 callf $8,_write32h
1534: 1519 00031C57 # writes(", final Acc = ");
1535: 1520 00031C57 .data 1
1536: 1521 00000e7c * L368:
1537: 1522 00000e7c * 2C20202066696E616C2041636 .ascii ", final Acc = \0"
1538: 3203D2000
1539: 1523 00000e8d * .text
1540: 1524 00031C57 dd 8f00000e7c pushl $L368
1541: 1525 00031C5D fe 08 effffff3cc callf $8,_writes
1542: 1526 00031C64 # write32h( dbl_st_acc.m );
1543: 1527 00031C64 dd effffff3c6 pushl _dbl_st_acc
1544: 1528 00031C6A fe 08 effffff3bf callf $8,_write32h
1545: 1529 00031C71 # writec(' ');
1546: 1530 00031C71 dd 20 pushl $32
1547: 1531 00031C73 fe 08 effffff3b6 callf $8,_writec
1548: 1532 00031C7A # write32h( dbl_st_acc.l );
1549: 1533 00031C7A dd effffff3b4 pushl _dbl_st_acc+4
1550: 1534 00031C80 fe 08 effffff3a9 callf $8,_write32h
1551: 1535 00031C87 # writes(", index = ");
1552: 1536 00031C87 .data 1
1553: 1537 00000e8d * L369:
1554: 1538 00000e8d * 2C202020696E646578203D200 .ascii ", index = \0"
1555: 0
1556: 1539 00000e9a * .text
1557: 1540 00031C87 dd 8f00000e8d pushl $L369
1558: 1541 00031C8D fe 08 effffff39c callf $8,_writes
1559: 1542 00031C94 # writed( index );
1560: 1543 00031C94 dd effffff396 pushl _index
1561: 1544 00031C9A fe 08 effffff38f callf $8,_writed
1562: 1545 00031CA1 # writec('\n');
1563: 1546 00031CA1 dd 0a pushl $10
1564: 1547 00031CA3 fe 08 effffff386 callf $8,_writec
1565: 1548 00031CAA # writes(" expected Acc = ");
1566: 1549 00031CAA .data 1
1567: 1550 00000e9a * L370:
1568: 1551 00000e9a * 2020202020202020202020202 .ascii " expected Acc = \0"
1569: 0202020202020202020202020
1570: 2020206578706563746564204
1571: 16363203D2000
1572: 1552 00000ec6 * .text
1573: 1553 00031CAA dd 8f00000e9a pushl $L370
1574: 1554 00031CB0 fe 08 effffff379 callf $8,_writes
1575: 1555 00031CB7 # write32h( dbl_expected.m );
1576: 1556 00031CB7 dd effffff373 pushl _dbl_expected
1577: 1557 00031CBD fe 08 effffff36c callf $8,_write32h
1578: 1558 00031CC4 # writec(' ');
1579: 1559 00031CC4 dd 20 pushl $32
1580: 1560 00031CC6 fe 08 effffff363 callf $8,_writec
1581: 1561 00031CCD # write32h( dbl_expected.l );
1582: 1562 00031CCD dd effffff361 pushl _dbl_expected+4
1583: 1563 00031CD3 fe 08 effffff356 callf $8,_write32h
1584: 1564 00031CDA # writec('\n');
1585: 1565 00031CDA dd 0a pushl $10
1586: 1566 00031CDC fe 08 effffff34d callf $8,_writec
1587: 1567 00031CE3 # }
1588: 1568 00031CE3 40 ret#2
1589: 1569 00031CE4 .set L354,0x0
1590: 1570 00031CE4 L356:
1591: 1571 00031CE4 13 feb8 jbr L357
1592: 1572 00031CE7 .data
1593: 1573 00000d34 * .text
1594: 1574 00031CE7 00 .align 1
1595: 1575 00031CE8 .globl _pipe16_er_hlt
1596: 1576 00031CE8 _pipe16_er_hlt:
1597: 1577 00031CE8 0000 .word L371
1598: 1578 00031CEA #
1599: 1579 00031CEA #
1600: 1580 00031CEA #
1601: 1581 00031CEA #
1602: 1582 00031CEA #
1603: 1583 00031CEA # /******************************************************************************
1604: 1584 00031CEA # *
1605: 1585 00031CEA # * HALT ON ERROR ROUTINE
1606: 1586 00031CEA # *
1607: 1587 00031CEA # * halt with the necessary information saved in the registers
1608: 1588 00031CEA # *
1609: 1589 00031CEA # ******************************************************************************/
1610: 1590 00031CEA # pipe16_er_hlt( subtest )
1611: 1591 00031CEA # int subtest;
1612: 1592 00031CEA # {
1613: 1593 00031CEA 11 75 jbr L373
1614: 1594 00031CEC L374:
1615: 1595 00031CEC # sgl_value_3 = dbl_st_acc.m;
1616: 1596 00031CEC 0d effffff33e effffff339 movl _dbl_st_acc,_sgl_value_3
1617: 1597 00031CF7 # sgl_value_4 = dbl_st_acc.l;
1618: 1598 00031CF7 0d effffff337 effffff32e movl _dbl_st_acc+4,_sgl_value_4
1619: 1599 00031D02 # asm("movl _test_no,r0"); /* r0 = test number */
1620: 1600 00031D02 0d effffff328 50 movl _test_no,r0
1621: 1601 00031D09 # asm("movl _subtest,r1"); /* r1 = subtest number */
1622: 1602 00031D09 0d effffff321 51 movl _subtest,r1
1623: 1603 00031D10 # asm("movl $1,r2"); /* r2 = error code */
1624: 1604 00031D10 0d 01 52 movl $1,r2
1625: 1605 00031D13 # asm("movl _cycle,r3"); /* r3 = cycle count */
1626: 1606 00031D13 0d effffff317 53 movl _cycle,r3
1627: 1607 00031D1A # asm("movl _sgl_value_1,r4"); /* r4 = MSW operand loaded */
1628: 1608 00031D1A 0d effffff310 54 movl _sgl_value_1,r4
1629: 1609 00031D21 # asm("movl _sgl_value_2,r5"); /* r5 = LSW operand loaded */
1630: 1610 00031D21 0d effffff309 55 movl _sgl_value_2,r5
1631: 1611 00031D28 # asm("movl _sgl_value_3,r6"); /* r6 = MSW operand stored */
1632: 1612 00031D28 0d effffff302 56 movl _sgl_value_3,r6
1633: 1613 00031D2F # asm("movl _sgl_value_4,r7"); /* r7 = LSW operand stored */
1634: 1614 00031D2F 0d effffff2fb 57 movl _sgl_value_4,r7
1635: 1615 00031D36 # asm("movl _sgl_value_5,r8"); /* r8 = MSW operand expect */
1636: 1616 00031D36 0d effffff2f4 58 movl _sgl_value_5,r8
1637: 1617 00031D3D # asm("movl _sgl_value_6,r9"); /* r9 = LSW operand expect */
1638: 1618 00031D3D 0d effffff2ed 59 movl _sgl_value_6,r9
1639: 1619 00031D44 # asm("movl _index,r10"); /* r10 = data index */
1640: 1620 00031D44 0d effffff2e6 5a movl _index,r10
1641: 1621 00031D4B # if( subtest == 9 ) {
1642: 1622 00031D4B 1d ad04 09 cmpl 4(fp),$9
1643: 1623 00031D4F 21 0e jneq L375
1644: 1624 00031D51 # asm("movl _sgl_value_10,r11"); /* r11 = final FP value */
1645: 1625 00031D51 0d effffff2d9 5b movl _sgl_value_10,r11
1646: 1626 00031D58 # asm("movl _sgl_value_9,r12"); /* r12 = expected FP value */
1647: 1627 00031D58 0d effffff2d2 5c movl _sgl_value_9,r12
1648: 1628 00031D5F # };
1649: 1629 00031D5F L375:
1650: 1630 00031D5F # asm(".globl _pipe16_1_hlt");
1651: 1631 00031D5F .globl _pipe16_1_hlt
1652: 1632 00031D5F # asm("_pipe16_1_hlt:"); /* PC after the halt */
1653: 1633 00031D5F _pipe16_1_hlt:
1654: 1634 00031D5F # asm("halt"); /* HALT ... */
1655: 1635 00031D5F 00 halt
1656: 1636 00031D60 # } /* end of halt on error */
1657: 1637 00031D60 40 ret#2
1658: 1638 00031D61 .set L371,0x0
1659: 1639 00031D61 L373:
1660: 1640 00031D61 11 89 jbr L374
1661: 1641 00031D63 .data
1662: 1641 00062D93 .data
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.