|
|
1.1 ! root 1: 1 00000000 LL0: ! 2: 2 00000000 .data ! 3: 3 000006bc * .text ! 4: 4 00000000 .align 1 ! 5: 5 00000000 .globl _pipe_20 ! 6: 6 00000000 _pipe_20: ! 7: 7 00033264 0000 .word L215 ! 8: 8 00033266 # #include "fpp_defs.h" ! 9: 9 00033266 # ! 10: 10 00033266 # ! 11: 11 00033266 # /***************************************************************************** ! 12: 12 00033266 # * ! 13: 13 00033266 # * DBL PIPELINE TEST #20 MONITOR ! 14: 14 00033266 # * ! 15: 15 00033266 # * This test will do a series of 2, 3, 4, 5, and 6 NEGDs. ! 16: 16 00033266 # * The data used will be the LDD data patterns. ! 17: 17 00033266 # * ! 18: 18 00033266 # *****************************************************************************/ ! 19: 19 00033266 # pipe_20() ! 20: 20 00033266 # { ! 21: 21 00033266 11 48 jbr L217 ! 22: 22 00033268 L218: ! 23: 23 00033268 # asm(".globl _pipeline_20_t"); ! 24: 24 00033268 .globl _pipeline_20_t ! 25: 25 00033268 # asm("_pipeline_20_t:"); /* entry address */ ! 26: 26 00033268 _pipeline_20_t: ! 27: 27 00033268 # if( (cycle == 1) && (prt_hdrs) ) /* print headers on 1st cycle */ ! 28: 28 00033268 1d effffffff6 01 cmpl _cycle,$1 ! 29: 29 0003326F 21 15 jneq L219 ! 30: 30 00033271 5d efffffffed tstl _prt_hdrs ! 31: 31 00033277 31 0d jeql L219 ! 32: 32 00033279 # writes(" PIPE_20"); ! 33: 33 00033279 .data 1 ! 34: 34 000006bc * L221: ! 35: 35 000006bc * 20504950455F323000 .ascii " PIPE_20\0" ! 36: 36 000006c5 * .text ! 37: 37 00033279 dd 8f000006bc pushl $L221 ! 38: 38 0003327F fe 08 efffffffde callf $8,_writes ! 39: 39 00033286 # pipe20_1(); /* 2 NOPs */ ! 40: 40 00033286 L219: ! 41: 41 00033286 fe 04 ef00000025 callf $4,_pipe20_1 ! 42: 42 0003328D # pipe20_2(); /* 3 NOPs */ ! 43: 43 0003328D fe 04 ef000000fe callf $4,_pipe20_2 ! 44: 44 00033294 # pipe20_3(); /* 4 NOPs */ ! 45: 45 00033294 fe 04 ef000001eb callf $4,_pipe20_3 ! 46: 46 0003329B # pipe20_4(); /* 5 NOPs */ ! 47: 47 0003329B fe 04 ef000002c6 callf $4,_pipe20_4 ! 48: 48 000332A2 # pipe20_5(); /* 6 NOPs */ ! 49: 49 000332A2 fe 04 ef000003b5 callf $4,_pipe20_5 ! 50: 50 000332A9 # asm("jmp *return"); /* return to the test monitor */ ! 51: 51 000332A9 71 ffffffffb5 jmp *return ! 52: 52 000332AF # } ! 53: 53 000332AF 40 ret#2 ! 54: 54 000332B0 .set L215,0x0 ! 55: 55 000332B0 L217: ! 56: 56 000332B0 11 b6 jbr L218 ! 57: 57 000332B2 .data ! 58: 58 000006bc * .text ! 59: 59 000332B2 .align 1 ! 60: 60 000332B2 .globl _pipe20_1 ! 61: 61 000332B2 _pipe20_1: ! 62: 62 000332B2 0000 .word L227 ! 63: 63 000332B4 # ! 64: 64 000332B4 # ! 65: 65 000332B4 # ! 66: 66 000332B4 # ! 67: 67 000332B4 # ! 68: 68 000332B4 # /************************************************************************ ! 69: 69 000332B4 # * ! 70: 70 000332B4 # * SUBTEST 1 : 2 NEGDs ! 71: 71 000332B4 # * ! 72: 72 000332B4 # ************************************************************************/ ! 73: 73 000332B4 # pipe20_1() ! 74: 74 000332B4 # { ! 75: 75 000332B4 13 00d8 jbr L229 ! 76: 76 000332B7 L230: ! 77: 77 000332B7 # subtest = 1; ! 78: 78 000332B7 0d 01 efffffffa6 movl $1,_subtest ! 79: 79 000332BE # force_loop = FALSE; ! 80: 80 000332BE 4d efffffffa0 clrl _force_loop ! 81: 81 000332C4 # for( index = 0; index < max_ldd_1_index; index++ ) ! 82: 82 000332C4 4d efffffff9a clrl _index ! 83: 83 000332CA L233: ! 84: 84 000332CA 1d efffffff94 efffffff8f cmpl _index,_max_ldd_1_index ! 85: 85 000332D5 91 03 13 00b4 jgeq L232 ! 86: 86 000332DA # { ! 87: 87 000332DA # dbl_value_1 = ldd_1_data[index].ld; /* get operand 1 */ ! 88: 88 000332DA 48 04 efffffff83 50 shll $4,_index,r0 ! 89: 89 000332E2 0c 8f00000000 50 addl2 $_ldd_1_data,r0 ! 90: 90 000332E9 0d a004 efffffff77 movl 4(r0),_dbl_value_1+4 ! 91: 91 000332F1 0d 60 efffffff6c movl (r0),_dbl_value_1 ! 92: 92 000332F8 # dbl_expected = ldd_1_data[index].exp; /* get expected results */ ! 93: 93 000332F8 48 04 efffffff65 50 shll $4,_index,r0 ! 94: 94 00033300 0c 8f00000008 50 addl2 $_ldd_1_data+8,r0 ! 95: 95 00033307 0d a004 efffffff59 movl 4(r0),_dbl_expected+4 ! 96: 96 0003330F 0d 60 efffffff4e movl (r0),_dbl_expected ! 97: 97 00033316 # /* ! 98: 98 00033316 # * If LOOP ON ERROR is set, this is the loop for this subtest. ! 99: 99 00033316 # * The force loop flag is set after the first error. ! 100: 100 00033316 # */ ! 101: 101 00033316 # asm("_pipe20_1_lp1:"); ! 102: 102 00033316 _pipe20_1_lp1: ! 103: 103 00033316 # asm("ldd _dbl_value_1"); /* load the operand */ ! 104: 104 00033316 07 efffffff48 ldd _dbl_value_1 ! 105: 105 0003331C # asm("negd"); /* negate it ( twice ) */ ! 106: 106 0003331C b7 negd ! 107: 107 0003331D # asm("negd"); ! 108: 108 0003331D b7 negd ! 109: 109 0003331E # asm("std _dbl_st_acc"); /* store the result */ ! 110: 110 0003331E 27 efffffff40 std _dbl_st_acc ! 111: 111 00033324 # if( force_loop ) ! 112: 112 00033324 5d efffffff3a tstl _force_loop ! 113: 113 0003332A 31 02 jeql L234 ! 114: 114 0003332C # asm("brb _pipe20_1_lp1"); /* loop on an error */ ! 115: 115 0003332C 11 e8 brb _pipe20_1_lp1 ! 116: 116 0003332E # /* ! 117: 117 0003332E # * verify the results ! 118: 118 0003332E # */ ! 119: 119 0003332E # if( (dbl_st_acc.m != dbl_expected.m) || /* COMPARE the stored */ ! 120: 120 0003332E L234: ! 121: 121 0003332E # (dbl_st_acc.l != dbl_expected.l) ) { /* to the expected */ ! 122: 122 0003332E 1d efffffff30 efffffff2b cmpl _dbl_st_acc,_dbl_expected ! 123: 123 00033339 21 0d jneq L9999 ! 124: 124 0003333B 1d efffffff27 efffffff22 cmpl _dbl_st_acc+4,_dbl_expected+4 ! 125: 125 00033346 31 3d jeql L235 ! 126: 126 00033348 L9999: ! 127: 127 00033348 # errcnt++; /* bump the error count */ ! 128: 128 00033348 6d efffffff16 incl _errcnt ! 129: 129 0003334E # if( prt_error ) ! 130: 130 0003334E 5d efffffff10 tstl _prt_error ! 131: 131 00033354 31 09 jeql L236 ! 132: 132 00033356 # pipe20_print( 2 ); /* print error msg -2 NOPs */ ! 133: 133 00033356 dd 02 pushl $2 ! 134: 134 00033358 fe 08 ef000003e3 callf $8,_pipe20_print ! 135: 135 0003335F # if( halt_flg ) /* halt on error? */ ! 136: 136 0003335F L236: ! 137: 137 0003335F 5d effffffeff tstl _halt_flg ! 138: 138 00033365 31 09 jeql L238 ! 139: 139 00033367 # pipe20_halt( 2 ); /* error halt -2 NOPs */ ! 140: 140 00033367 dd 02 pushl $2 ! 141: 141 00033369 fe 08 ef0000050a callf $8,_pipe20_halt ! 142: 142 00033370 # if( loop_on_err ) { ! 143: 143 00033370 L238: ! 144: 144 00033370 5d effffffeee tstl _loop_on_err ! 145: 145 00033376 31 0d jeql L240 ! 146: 146 00033378 # force_loop = TRUE; /* set the force loop flag */ ! 147: 147 00033378 0d 01 effffffee5 movl $1,_force_loop ! 148: 148 0003337F # asm("jmp _pipe20_1_lp1"); /* and loop */ ! 149: 149 0003337F 71 efffffff91 jmp _pipe20_1_lp1 ! 150: 150 00033385 # } ! 151: 151 00033385 # } ! 152: 152 00033385 L240: ! 153: 153 00033385 # } /* end of FOR loop */ ! 154: 154 00033385 L235: ! 155: 155 00033385 L231: ! 156: 156 00033385 6d effffffed9 incl _index ! 157: 157 0003338B 13 ff3c jbr L233 ! 158: 158 0003338E L232: ! 159: 159 0003338E # } /* end of subtest 1 */ ! 160: 160 0003338E 40 ret#2 ! 161: 161 0003338F .set L227,0x0 ! 162: 162 0003338F L229: ! 163: 163 0003338F 13 ff25 jbr L230 ! 164: 164 00033392 .data ! 165: 165 000006bc * .text ! 166: 166 00033392 .align 1 ! 167: 167 00033392 .globl _pipe20_2 ! 168: 168 00033392 _pipe20_2: ! 169: 169 00033392 0000 .word L241 ! 170: 170 00033394 # ! 171: 171 00033394 # ! 172: 172 00033394 # ! 173: 173 00033394 # ! 174: 174 00033394 # ! 175: 175 00033394 # /************************************************************************ ! 176: 176 00033394 # * ! 177: 177 00033394 # * SUBTEST 2 : 3 NEGDs ! 178: 178 00033394 # * ! 179: 179 00033394 # ************************************************************************/ ! 180: 180 00033394 # pipe20_2() ! 181: 181 00033394 # { ! 182: 182 00033394 13 00ec jbr L243 ! 183: 183 00033397 L244: ! 184: 184 00033397 # subtest = 2; ! 185: 185 00033397 0d 02 effffffec6 movl $2,_subtest ! 186: 186 0003339E # force_loop = FALSE; ! 187: 187 0003339E 4d effffffec0 clrl _force_loop ! 188: 188 000333A4 # for( index = 0; index < max_ldd_1_index; index++ ) ! 189: 189 000333A4 4d effffffeba clrl _index ! 190: 190 000333AA L247: ! 191: 191 000333AA 1d effffffeb4 effffffeaf cmpl _index,_max_ldd_1_index ! 192: 192 000333B5 91 03 13 00c8 jgeq L246 ! 193: 193 000333BA # { ! 194: 194 000333BA # dbl_value_1 = ldd_1_data[index].ld; /* get operand 1 */ ! 195: 195 000333BA 48 04 effffffea3 50 shll $4,_index,r0 ! 196: 196 000333C2 0c 8f00000000 50 addl2 $_ldd_1_data,r0 ! 197: 197 000333C9 0d a004 effffffe97 movl 4(r0),_dbl_value_1+4 ! 198: 198 000333D1 0d 60 effffffe8c movl (r0),_dbl_value_1 ! 199: 199 000333D8 # dbl_expected = ldd_1_data[index].exp; /* get expected results */ ! 200: 200 000333D8 48 04 effffffe85 50 shll $4,_index,r0 ! 201: 201 000333E0 0c 8f00000008 50 addl2 $_ldd_1_data+8,r0 ! 202: 202 000333E7 0d a004 effffffe79 movl 4(r0),_dbl_expected+4 ! 203: 203 000333EF 0d 60 effffffe6e movl (r0),_dbl_expected ! 204: 204 000333F6 # if( dbl_expected.m ) ! 205: 205 000333F6 5d effffffe68 tstl _dbl_expected ! 206: 206 000333FC 31 0b jeql L248 ! 207: 207 000333FE # dbl_expected.m ^= 0x80000000; /* negate exptd results */ ! 208: 208 000333FE cc 8f80000000 effffffe5b xorl2 $-2147483648,_dbl_expected ! 209: 209 00033409 # /* ! 210: 210 00033409 # * If LOOP ON ERROR is set, this is the loop for this subtest. ! 211: 211 00033409 # * The force loop flag is set after the first error. ! 212: 212 00033409 # */ ! 213: 213 00033409 # asm("_pipe20_2_lp1:"); ! 214: 214 00033409 L248: ! 215: 215 00033409 _pipe20_2_lp1: ! 216: 216 00033409 # asm("ldd _dbl_value_1"); /* load the operand */ ! 217: 217 00033409 07 effffffe55 ldd _dbl_value_1 ! 218: 218 0003340F # asm("negd"); /* negate it ( 3 times ) */ ! 219: 219 0003340F b7 negd ! 220: 220 00033410 # asm("negd"); ! 221: 221 00033410 b7 negd ! 222: 222 00033411 # asm("negd"); ! 223: 223 00033411 b7 negd ! 224: 224 00033412 # asm("std _dbl_st_acc"); /* store the result */ ! 225: 225 00033412 27 effffffe4c std _dbl_st_acc ! 226: 226 00033418 # if( force_loop ) ! 227: 227 00033418 5d effffffe46 tstl _force_loop ! 228: 228 0003341E 31 02 jeql L249 ! 229: 229 00033420 # asm("brb _pipe20_2_lp1"); /* loop on an error */ ! 230: 230 00033420 11 e7 brb _pipe20_2_lp1 ! 231: 231 00033422 # /* ! 232: 232 00033422 # * verify the results ! 233: 233 00033422 # */ ! 234: 234 00033422 # if( (dbl_st_acc.m != dbl_expected.m) || /* COMPARE the stored */ ! 235: 235 00033422 L249: ! 236: 236 00033422 # (dbl_st_acc.l != dbl_expected.l) ) { /* to the expected */ ! 237: 237 00033422 1d effffffe3c effffffe37 cmpl _dbl_st_acc,_dbl_expected ! 238: 238 0003342D 21 0d jneq L9998 ! 239: 239 0003342F 1d effffffe33 effffffe2e cmpl _dbl_st_acc+4,_dbl_expected+4 ! 240: 240 0003343A 31 3d jeql L250 ! 241: 241 0003343C L9998: ! 242: 242 0003343C # errcnt++; /* bump the error count */ ! 243: 243 0003343C 6d effffffe22 incl _errcnt ! 244: 244 00033442 # if( prt_error ) ! 245: 245 00033442 5d effffffe1c tstl _prt_error ! 246: 246 00033448 31 09 jeql L251 ! 247: 247 0003344A # pipe20_print( 3 ); /* print error msg -3 NOPs */ ! 248: 248 0003344A dd 03 pushl $3 ! 249: 249 0003344C fe 08 ef000002ef callf $8,_pipe20_print ! 250: 250 00033453 # if( halt_flg ) /* halt on error? */ ! 251: 251 00033453 L251: ! 252: 252 00033453 5d effffffe0b tstl _halt_flg ! 253: 253 00033459 31 09 jeql L252 ! 254: 254 0003345B # pipe20_halt( 3 ); /* error halt -3 NOPs */ ! 255: 255 0003345B dd 03 pushl $3 ! 256: 256 0003345D fe 08 ef00000416 callf $8,_pipe20_halt ! 257: 257 00033464 # if( loop_on_err ) { ! 258: 258 00033464 L252: ! 259: 259 00033464 5d effffffdfa tstl _loop_on_err ! 260: 260 0003346A 31 0d jeql L253 ! 261: 261 0003346C # force_loop = TRUE; /* set the force loop flag */ ! 262: 262 0003346C 0d 01 effffffdf1 movl $1,_force_loop ! 263: 263 00033473 # asm("jmp _pipe20_2_lp1"); /* and loop */ ! 264: 264 00033473 71 efffffff90 jmp _pipe20_2_lp1 ! 265: 265 00033479 # } ! 266: 266 00033479 # } ! 267: 267 00033479 L253: ! 268: 268 00033479 # } /* end of FOR loop */ ! 269: 269 00033479 L250: ! 270: 270 00033479 L245: ! 271: 271 00033479 6d effffffde5 incl _index ! 272: 272 0003347F 13 ff28 jbr L247 ! 273: 273 00033482 L246: ! 274: 274 00033482 # } /* end of subtest 2 */ ! 275: 275 00033482 40 ret#2 ! 276: 276 00033483 .set L241,0x0 ! 277: 277 00033483 L243: ! 278: 278 00033483 13 ff11 jbr L244 ! 279: 279 00033486 .data ! 280: 280 000006bc * .text ! 281: 281 00033486 .align 1 ! 282: 282 00033486 .globl _pipe20_3 ! 283: 283 00033486 _pipe20_3: ! 284: 284 00033486 0000 .word L254 ! 285: 285 00033488 # ! 286: 286 00033488 # ! 287: 287 00033488 # ! 288: 288 00033488 # ! 289: 289 00033488 # ! 290: 290 00033488 # /************************************************************************ ! 291: 291 00033488 # * ! 292: 292 00033488 # * SUBTEST 3 : 4 NEGDs ! 293: 293 00033488 # * ! 294: 294 00033488 # ************************************************************************/ ! 295: 295 00033488 # pipe20_3() ! 296: 296 00033488 # { ! 297: 297 00033488 13 00da jbr L256 ! 298: 298 0003348B L257: ! 299: 299 0003348B # subtest = 3; ! 300: 300 0003348B 0d 03 effffffdd2 movl $3,_subtest ! 301: 301 00033492 # force_loop = FALSE; ! 302: 302 00033492 4d effffffdcc clrl _force_loop ! 303: 303 00033498 # for( index = 0; index < max_ldd_1_index; index++ ) ! 304: 304 00033498 4d effffffdc6 clrl _index ! 305: 305 0003349E L260: ! 306: 306 0003349E 1d effffffdc0 effffffdbb cmpl _index,_max_ldd_1_index ! 307: 307 000334A9 91 03 13 00b6 jgeq L259 ! 308: 308 000334AE # { ! 309: 309 000334AE # dbl_value_1 = ldd_1_data[index].ld; /* get operand 1 */ ! 310: 310 000334AE 48 04 effffffdaf 50 shll $4,_index,r0 ! 311: 311 000334B6 0c 8f00000000 50 addl2 $_ldd_1_data,r0 ! 312: 312 000334BD 0d a004 effffffda3 movl 4(r0),_dbl_value_1+4 ! 313: 313 000334C5 0d 60 effffffd98 movl (r0),_dbl_value_1 ! 314: 314 000334CC # dbl_expected = ldd_1_data[index].exp; /* get expected results */ ! 315: 315 000334CC 48 04 effffffd91 50 shll $4,_index,r0 ! 316: 316 000334D4 0c 8f00000008 50 addl2 $_ldd_1_data+8,r0 ! 317: 317 000334DB 0d a004 effffffd85 movl 4(r0),_dbl_expected+4 ! 318: 318 000334E3 0d 60 effffffd7a movl (r0),_dbl_expected ! 319: 319 000334EA # /* ! 320: 320 000334EA # * If LOOP ON ERROR is set, this is the loop for this subtest. ! 321: 321 000334EA # * The force loop flag is set after the first error. ! 322: 322 000334EA # */ ! 323: 323 000334EA # asm("_pipe20_3_lp1:"); ! 324: 324 000334EA _pipe20_3_lp1: ! 325: 325 000334EA # asm("ldd _dbl_value_1"); /* load the operand */ ! 326: 326 000334EA 07 effffffd74 ldd _dbl_value_1 ! 327: 327 000334F0 # asm("negd"); /* negate it ( 4 times ) */ ! 328: 328 000334F0 b7 negd ! 329: 329 000334F1 # asm("negd"); ! 330: 330 000334F1 b7 negd ! 331: 331 000334F2 # asm("negd"); ! 332: 332 000334F2 b7 negd ! 333: 333 000334F3 # asm("negd"); ! 334: 334 000334F3 b7 negd ! 335: 335 000334F4 # asm("std _dbl_st_acc"); /* store the result */ ! 336: 336 000334F4 27 effffffd6a std _dbl_st_acc ! 337: 337 000334FA # if( force_loop ) ! 338: 338 000334FA 5d effffffd64 tstl _force_loop ! 339: 339 00033500 31 02 jeql L261 ! 340: 340 00033502 # asm("brb _pipe20_3_lp1"); /* loop on an error */ ! 341: 341 00033502 11 e6 brb _pipe20_3_lp1 ! 342: 342 00033504 # /* ! 343: 343 00033504 # * verify the results ! 344: 344 00033504 # */ ! 345: 345 00033504 # if( (dbl_st_acc.m != dbl_expected.m) || /* COMPARE the stored */ ! 346: 346 00033504 L261: ! 347: 347 00033504 # (dbl_st_acc.l != dbl_expected.l) ) { /* to the expected */ ! 348: 348 00033504 1d effffffd5a effffffd55 cmpl _dbl_st_acc,_dbl_expected ! 349: 349 0003350F 21 0d jneq L9997 ! 350: 350 00033511 1d effffffd51 effffffd4c cmpl _dbl_st_acc+4,_dbl_expected+4 ! 351: 351 0003351C 31 3d jeql L262 ! 352: 352 0003351E L9997: ! 353: 353 0003351E # errcnt++; /* bump the error count */ ! 354: 354 0003351E 6d effffffd40 incl _errcnt ! 355: 355 00033524 # if( prt_error ) ! 356: 356 00033524 5d effffffd3a tstl _prt_error ! 357: 357 0003352A 31 09 jeql L263 ! 358: 358 0003352C # pipe20_print( 4 ); /* print error msg -4 NOPs */ ! 359: 359 0003352C dd 04 pushl $4 ! 360: 360 0003352E fe 08 ef0000020d callf $8,_pipe20_print ! 361: 361 00033535 # if( halt_flg ) /* halt on error? */ ! 362: 362 00033535 L263: ! 363: 363 00033535 5d effffffd29 tstl _halt_flg ! 364: 364 0003353B 31 09 jeql L264 ! 365: 365 0003353D # pipe20_halt( 4 ); /* error halt -4 NOPs */ ! 366: 366 0003353D dd 04 pushl $4 ! 367: 367 0003353F fe 08 ef00000334 callf $8,_pipe20_halt ! 368: 368 00033546 # if( loop_on_err ) { ! 369: 369 00033546 L264: ! 370: 370 00033546 5d effffffd18 tstl _loop_on_err ! 371: 371 0003354C 31 0d jeql L265 ! 372: 372 0003354E # force_loop = TRUE; /* set the force loop flag */ ! 373: 373 0003354E 0d 01 effffffd0f movl $1,_force_loop ! 374: 374 00033555 # asm("jmp _pipe20_3_lp1"); /* and loop */ ! 375: 375 00033555 71 efffffff8f jmp _pipe20_3_lp1 ! 376: 376 0003355B # } ! 377: 377 0003355B # } ! 378: 378 0003355B L265: ! 379: 379 0003355B # } /* end of FOR loop */ ! 380: 380 0003355B L262: ! 381: 381 0003355B L258: ! 382: 382 0003355B 6d effffffd03 incl _index ! 383: 383 00033561 13 ff3a jbr L260 ! 384: 384 00033564 L259: ! 385: 385 00033564 # } /* end of subtest 3 */ ! 386: 386 00033564 40 ret#2 ! 387: 387 00033565 .set L254,0x0 ! 388: 388 00033565 L256: ! 389: 389 00033565 13 ff23 jbr L257 ! 390: 390 00033568 .data ! 391: 391 000006bc * .text ! 392: 392 00033568 .align 1 ! 393: 393 00033568 .globl _pipe20_4 ! 394: 394 00033568 _pipe20_4: ! 395: 395 00033568 0000 .word L266 ! 396: 396 0003356A # ! 397: 397 0003356A # ! 398: 398 0003356A # ! 399: 399 0003356A # ! 400: 400 0003356A # ! 401: 401 0003356A # ! 402: 402 0003356A # /************************************************************************ ! 403: 403 0003356A # * ! 404: 404 0003356A # * SUBTEST 4 : 5 NEGDs ! 405: 405 0003356A # * ! 406: 406 0003356A # ************************************************************************/ ! 407: 407 0003356A # pipe20_4() ! 408: 408 0003356A # { ! 409: 409 0003356A 13 00ee jbr L268 ! 410: 410 0003356D L269: ! 411: 411 0003356D # subtest = 4; ! 412: 412 0003356D 0d 04 effffffcf0 movl $4,_subtest ! 413: 413 00033574 # force_loop = FALSE; ! 414: 414 00033574 4d effffffcea clrl _force_loop ! 415: 415 0003357A # for( index = 0; index < max_ldd_1_index; index++ ) ! 416: 416 0003357A 4d effffffce4 clrl _index ! 417: 417 00033580 L272: ! 418: 418 00033580 1d effffffcde effffffcd9 cmpl _index,_max_ldd_1_index ! 419: 419 0003358B 91 03 13 00ca jgeq L271 ! 420: 420 00033590 # { ! 421: 421 00033590 # dbl_value_1 = ldd_1_data[index].ld; /* get operand 1 */ ! 422: 422 00033590 48 04 effffffccd 50 shll $4,_index,r0 ! 423: 423 00033598 0c 8f00000000 50 addl2 $_ldd_1_data,r0 ! 424: 424 0003359F 0d a004 effffffcc1 movl 4(r0),_dbl_value_1+4 ! 425: 425 000335A7 0d 60 effffffcb6 movl (r0),_dbl_value_1 ! 426: 426 000335AE # dbl_expected = ldd_1_data[index].exp; /* get expected results */ ! 427: 427 000335AE 48 04 effffffcaf 50 shll $4,_index,r0 ! 428: 428 000335B6 0c 8f00000008 50 addl2 $_ldd_1_data+8,r0 ! 429: 429 000335BD 0d a004 effffffca3 movl 4(r0),_dbl_expected+4 ! 430: 430 000335C5 0d 60 effffffc98 movl (r0),_dbl_expected ! 431: 431 000335CC # if( dbl_expected.m ) ! 432: 432 000335CC 5d effffffc92 tstl _dbl_expected ! 433: 433 000335D2 31 0b jeql L273 ! 434: 434 000335D4 # dbl_expected.m ^= 0x80000000; /* negate exptd results */ ! 435: 435 000335D4 cc 8f80000000 effffffc85 xorl2 $-2147483648,_dbl_expected ! 436: 436 000335DF # /* ! 437: 437 000335DF # * If LOOP ON ERROR is set, this is the loop for this subtest. ! 438: 438 000335DF # * The force loop flag is set after the first error. ! 439: 439 000335DF # */ ! 440: 440 000335DF # asm("_pipe20_4_lp1:"); ! 441: 441 000335DF L273: ! 442: 442 000335DF _pipe20_4_lp1: ! 443: 443 000335DF # asm("ldd _dbl_value_1"); /* load the operand */ ! 444: 444 000335DF 07 effffffc7f ldd _dbl_value_1 ! 445: 445 000335E5 # asm("negd"); /* negate it ( 5 times ) */ ! 446: 446 000335E5 b7 negd ! 447: 447 000335E6 # asm("negd"); ! 448: 448 000335E6 b7 negd ! 449: 449 000335E7 # asm("negd"); ! 450: 450 000335E7 b7 negd ! 451: 451 000335E8 # asm("negd"); ! 452: 452 000335E8 b7 negd ! 453: 453 000335E9 # asm("negd"); ! 454: 454 000335E9 b7 negd ! 455: 455 000335EA # asm("std _dbl_st_acc"); /* store the result */ ! 456: 456 000335EA 27 effffffc74 std _dbl_st_acc ! 457: 457 000335F0 # if( force_loop ) ! 458: 458 000335F0 5d effffffc6e tstl _force_loop ! 459: 459 000335F6 31 02 jeql L274 ! 460: 460 000335F8 # asm("brb _pipe20_4_lp1"); /* loop on an error */ ! 461: 461 000335F8 11 e5 brb _pipe20_4_lp1 ! 462: 462 000335FA # /* ! 463: 463 000335FA # * verify the results ! 464: 464 000335FA # */ ! 465: 465 000335FA # if( (dbl_st_acc.m != dbl_expected.m) || /* COMPARE the stored */ ! 466: 466 000335FA L274: ! 467: 467 000335FA # (dbl_st_acc.l != dbl_expected.l) ) { /* to the expected */ ! 468: 468 000335FA 1d effffffc64 effffffc5f cmpl _dbl_st_acc,_dbl_expected ! 469: 469 00033605 21 0d jneq L9996 ! 470: 470 00033607 1d effffffc5b effffffc56 cmpl _dbl_st_acc+4,_dbl_expected+4 ! 471: 471 00033612 31 3d jeql L275 ! 472: 472 00033614 L9996: ! 473: 473 00033614 # errcnt++; /* bump the error count */ ! 474: 474 00033614 6d effffffc4a incl _errcnt ! 475: 475 0003361A # if( prt_error ) ! 476: 476 0003361A 5d effffffc44 tstl _prt_error ! 477: 477 00033620 31 09 jeql L276 ! 478: 478 00033622 # pipe20_print( 5 ); /* print error msg -5 NOPs */ ! 479: 479 00033622 dd 05 pushl $5 ! 480: 480 00033624 fe 08 ef00000117 callf $8,_pipe20_print ! 481: 481 0003362B # if( halt_flg ) /* halt on error? */ ! 482: 482 0003362B L276: ! 483: 483 0003362B 5d effffffc33 tstl _halt_flg ! 484: 484 00033631 31 09 jeql L277 ! 485: 485 00033633 # pipe20_halt( 5 ); /* error halt -5 NOPs */ ! 486: 486 00033633 dd 05 pushl $5 ! 487: 487 00033635 fe 08 ef0000023e callf $8,_pipe20_halt ! 488: 488 0003363C # if( loop_on_err ) { ! 489: 489 0003363C L277: ! 490: 490 0003363C 5d effffffc22 tstl _loop_on_err ! 491: 491 00033642 31 0d jeql L278 ! 492: 492 00033644 # force_loop = TRUE; /* set the force loop flag */ ! 493: 493 00033644 0d 01 effffffc19 movl $1,_force_loop ! 494: 494 0003364B # asm("jmp _pipe20_4_lp1"); /* and loop */ ! 495: 495 0003364B 71 efffffff8e jmp _pipe20_4_lp1 ! 496: 496 00033651 # } ! 497: 497 00033651 # } ! 498: 498 00033651 L278: ! 499: 499 00033651 # } /* end of FOR loop */ ! 500: 500 00033651 L275: ! 501: 501 00033651 L270: ! 502: 502 00033651 6d effffffc0d incl _index ! 503: 503 00033657 13 ff26 jbr L272 ! 504: 504 0003365A L271: ! 505: 505 0003365A # } /* end of subtest 4 */ ! 506: 506 0003365A 40 ret#2 ! 507: 507 0003365B .set L266,0x0 ! 508: 508 0003365B L268: ! 509: 509 0003365B 13 ff0f jbr L269 ! 510: 510 0003365E .data ! 511: 511 000006bc * .text ! 512: 512 0003365E .align 1 ! 513: 513 0003365E .globl _pipe20_5 ! 514: 514 0003365E _pipe20_5: ! 515: 515 0003365E 0000 .word L279 ! 516: 516 00033660 # ! 517: 517 00033660 # ! 518: 518 00033660 # ! 519: 519 00033660 # ! 520: 520 00033660 # ! 521: 521 00033660 # /************************************************************************ ! 522: 522 00033660 # * ! 523: 523 00033660 # * SUBTEST 5 : 6 NEGDs ! 524: 524 00033660 # * ! 525: 525 00033660 # ************************************************************************/ ! 526: 526 00033660 # pipe20_5() ! 527: 527 00033660 # { ! 528: 528 00033660 13 00dc jbr L281 ! 529: 529 00033663 L282: ! 530: 530 00033663 # subtest = 5; ! 531: 531 00033663 0d 05 effffffbfa movl $5,_subtest ! 532: 532 0003366A # force_loop = FALSE; ! 533: 533 0003366A 4d effffffbf4 clrl _force_loop ! 534: 534 00033670 # for( index = 0; index < max_ldd_1_index; index++ ) ! 535: 535 00033670 4d effffffbee clrl _index ! 536: 536 00033676 L285: ! 537: 537 00033676 1d effffffbe8 effffffbe3 cmpl _index,_max_ldd_1_index ! 538: 538 00033681 91 03 13 00b8 jgeq L284 ! 539: 539 00033686 # { ! 540: 540 00033686 # dbl_value_1 = ldd_1_data[index].ld; /* get operand 1 */ ! 541: 541 00033686 48 04 effffffbd7 50 shll $4,_index,r0 ! 542: 542 0003368E 0c 8f00000000 50 addl2 $_ldd_1_data,r0 ! 543: 543 00033695 0d a004 effffffbcb movl 4(r0),_dbl_value_1+4 ! 544: 544 0003369D 0d 60 effffffbc0 movl (r0),_dbl_value_1 ! 545: 545 000336A4 # dbl_expected = ldd_1_data[index].exp; /* get expected results */ ! 546: 546 000336A4 48 04 effffffbb9 50 shll $4,_index,r0 ! 547: 547 000336AC 0c 8f00000008 50 addl2 $_ldd_1_data+8,r0 ! 548: 548 000336B3 0d a004 effffffbad movl 4(r0),_dbl_expected+4 ! 549: 549 000336BB 0d 60 effffffba2 movl (r0),_dbl_expected ! 550: 550 000336C2 # /* ! 551: 551 000336C2 # * If LOOP ON ERROR is set, this is the loop for this subtest. ! 552: 552 000336C2 # * The force loop flag is set after the first error. ! 553: 553 000336C2 # */ ! 554: 554 000336C2 # asm("_pipe20_5_lp1:"); ! 555: 555 000336C2 _pipe20_5_lp1: ! 556: 556 000336C2 # asm("ldd _dbl_value_1"); /* load the operand */ ! 557: 557 000336C2 07 effffffb9c ldd _dbl_value_1 ! 558: 558 000336C8 # asm("negd"); /* negate it ( 6 times ) */ ! 559: 559 000336C8 b7 negd ! 560: 560 000336C9 # asm("negd"); ! 561: 561 000336C9 b7 negd ! 562: 562 000336CA # asm("negd"); ! 563: 563 000336CA b7 negd ! 564: 564 000336CB # asm("negd"); ! 565: 565 000336CB b7 negd ! 566: 566 000336CC # asm("negd"); ! 567: 567 000336CC b7 negd ! 568: 568 000336CD # asm("negd"); ! 569: 569 000336CD b7 negd ! 570: 570 000336CE # asm("std _dbl_st_acc"); /* store the result */ ! 571: 571 000336CE 27 effffffb90 std _dbl_st_acc ! 572: 572 000336D4 # if( force_loop ) ! 573: 573 000336D4 5d effffffb8a tstl _force_loop ! 574: 574 000336DA 31 02 jeql L286 ! 575: 575 000336DC # asm("brb _pipe20_5_lp1"); /* loop on an error */ ! 576: 576 000336DC 11 e4 brb _pipe20_5_lp1 ! 577: 577 000336DE # /* ! 578: 578 000336DE # * verify the results ! 579: 579 000336DE # */ ! 580: 580 000336DE # if( (dbl_st_acc.m != dbl_expected.m) || /* COMPARE the stored */ ! 581: 581 000336DE L286: ! 582: 582 000336DE # (dbl_st_acc.l != dbl_expected.l) ) { /* to the expected */ ! 583: 583 000336DE 1d effffffb80 effffffb7b cmpl _dbl_st_acc,_dbl_expected ! 584: 584 000336E9 21 0d jneq L9995 ! 585: 585 000336EB 1d effffffb77 effffffb72 cmpl _dbl_st_acc+4,_dbl_expected+4 ! 586: 586 000336F6 31 3d jeql L287 ! 587: 587 000336F8 L9995: ! 588: 588 000336F8 # errcnt++; /* bump the error count */ ! 589: 589 000336F8 6d effffffb66 incl _errcnt ! 590: 590 000336FE # if( prt_error ) ! 591: 591 000336FE 5d effffffb60 tstl _prt_error ! 592: 592 00033704 31 09 jeql L288 ! 593: 593 00033706 # pipe20_print( 6 ); /* print error msg -6 NOPs */ ! 594: 594 00033706 dd 06 pushl $6 ! 595: 595 00033708 fe 08 ef00000033 callf $8,_pipe20_print ! 596: 596 0003370F # if( halt_flg ) /* halt on error? */ ! 597: 597 0003370F L288: ! 598: 598 0003370F 5d effffffb4f tstl _halt_flg ! 599: 599 00033715 31 09 jeql L289 ! 600: 600 00033717 # pipe20_halt( 6 ); /* error halt -6 NOPs */ ! 601: 601 00033717 dd 06 pushl $6 ! 602: 602 00033719 fe 08 ef0000015a callf $8,_pipe20_halt ! 603: 603 00033720 # if( loop_on_err ) { ! 604: 604 00033720 L289: ! 605: 605 00033720 5d effffffb3e tstl _loop_on_err ! 606: 606 00033726 31 0d jeql L290 ! 607: 607 00033728 # force_loop = TRUE; /* set the force loop flag */ ! 608: 608 00033728 0d 01 effffffb35 movl $1,_force_loop ! 609: 609 0003372F # asm("jmp _pipe20_5_lp1"); /* and loop */ ! 610: 610 0003372F 71 efffffff8d jmp _pipe20_5_lp1 ! 611: 611 00033735 # } ! 612: 612 00033735 # } ! 613: 613 00033735 L290: ! 614: 614 00033735 # } /* end of FOR loop */ ! 615: 615 00033735 L287: ! 616: 616 00033735 L283: ! 617: 617 00033735 6d effffffb29 incl _index ! 618: 618 0003373B 13 ff38 jbr L285 ! 619: 619 0003373E L284: ! 620: 620 0003373E # } /* end of subtest 5 */ ! 621: 621 0003373E 40 ret#2 ! 622: 622 0003373F .set L279,0x0 ! 623: 623 0003373F L281: ! 624: 624 0003373F 13 ff21 jbr L282 ! 625: 625 00033742 .data ! 626: 626 000006bc * .text ! 627: 627 00033742 .align 1 ! 628: 628 00033742 .globl _pipe20_print ! 629: 629 00033742 _pipe20_print: ! 630: 630 00033742 0000 .word L291 ! 631: 631 00033744 # ! 632: 632 00033744 # ! 633: 633 00033744 # ! 634: 634 00033744 # ! 635: 635 00033744 # /**************************************************************************** ! 636: 636 00033744 # * ! 637: 637 00033744 # * PRINT AN ERROR MESSAGE ! 638: 638 00033744 # * ! 639: 639 00033744 # * cycle dd PIPELINE 20, subtest dd error ! 640: 640 00033744 # * LDD op, {NEGD}, STD ! 641: 641 00033744 # * operand = xxxxxxxx xxxxxxxx, final Acc = xxxxxxxx xxxxxxxx, index = dd ! 642: 642 00033744 # * expected Acc = xxxxxxxx xxxxxxxx ! 643: 643 00033744 # * ! 644: 644 00033744 # ****************************************************************************/ ! 645: 645 00033744 # pipe20_print( nop_count ) ! 646: 646 00033744 # int nop_count; /* # of NOP instructions */ ! 647: 647 00033744 # { ! 648: 648 00033744 13 0130 jbr L293 ! 649: 649 00033747 L294: ! 650: 650 00033747 # writes(" \n"); /* start a new print line */ ! 651: 651 00033747 .data 1 ! 652: 652 000006c5 * L295: ! 653: 653 000006c5 * 200A00 .ascii " \12\0" ! 654: 654 000006c8 * .text ! 655: 655 00033747 dd 8f000006c5 pushl $L295 ! 656: 656 0003374D fe 08 effffffb10 callf $8,_writes ! 657: 657 00033754 # writes("cycle: "); ! 658: 658 00033754 .data 1 ! 659: 659 000006c8 * L296: ! 660: 660 000006c8 * 6379636C653A2000 .ascii "cycle: \0" ! 661: 661 000006d0 * .text ! 662: 662 00033754 dd 8f000006c8 pushl $L296 ! 663: 663 0003375A fe 08 effffffb03 callf $8,_writes ! 664: 664 00033761 # writed( cycle ); ! 665: 665 00033761 dd effffffafd pushl _cycle ! 666: 666 00033767 fe 08 effffffaf6 callf $8,_writed ! 667: 667 0003376E # writes(" PIPELINE 20, subtest "); ! 668: 668 0003376E .data 1 ! 669: 669 000006d0 * L298: ! 670: 670 000006d0 * 2020504950454C494E4520323 .ascii " PIPELINE 20, subtest \0" ! 671: 02C20737562746573742000 ! 672: 671 000006e8 * .text ! 673: 672 0003376E dd 8f000006d0 pushl $L298 ! 674: 673 00033774 fe 08 effffffae9 callf $8,_writes ! 675: 674 0003377B # writed( subtest ); ! 676: 675 0003377B dd effffffae3 pushl _subtest ! 677: 676 00033781 fe 08 effffffadc callf $8,_writed ! 678: 677 00033788 # writes(" error\n"); ! 679: 678 00033788 .data 1 ! 680: 679 000006e8 * L299: ! 681: 680 000006e8 * 206572726F720A00 .ascii " error\12\0" ! 682: 681 000006f0 * .text ! 683: 682 00033788 dd 8f000006e8 pushl $L299 ! 684: 683 0003378E fe 08 effffffacf callf $8,_writes ! 685: 684 00033795 # writes(" LDD(op), NEGD"); ! 686: 685 00033795 .data 1 ! 687: 686 000006f0 * L300: ! 688: 687 000006f0 * 204C4444286F70292C204E454 .ascii " LDD(op), NEGD\0" ! 689: 74400 ! 690: 688 000006ff * .text ! 691: 689 00033795 dd 8f000006f0 pushl $L300 ! 692: 690 0003379B fe 08 effffffac2 callf $8,_writes ! 693: 691 000337A2 # while( --nop_count ) ! 694: 692 000337A2 L301: ! 695: 693 000337A2 7d ad04 decl 4(fp) ! 696: 694 000337A5 31 0f jeql L302 ! 697: 695 000337A7 # writes(", NEGD"); ! 698: 696 000337A7 .data 1 ! 699: 697 000006ff * L303: ! 700: 698 000006ff * 2C204E45474400 .ascii ", NEGD\0" ! 701: 699 00000706 * .text ! 702: 700 000337A7 dd 8f000006ff pushl $L303 ! 703: 701 000337AD fe 08 effffffab0 callf $8,_writes ! 704: 702 000337B4 11 ec jbr L301 ! 705: 703 000337B6 L302: ! 706: 704 000337B6 # writes(", STD\n"); ! 707: 705 000337B6 .data 1 ! 708: 706 00000706 * L304: ! 709: 707 00000706 * 2C205354440A00 .ascii ", STD\12\0" ! 710: 708 0000070d * .text ! 711: 709 000337B6 dd 8f00000706 pushl $L304 ! 712: 710 000337BC fe 08 effffffaa1 callf $8,_writes ! 713: 711 000337C3 # writes("operand = "); ! 714: 712 000337C3 .data 1 ! 715: 713 0000070d * L305: ! 716: 714 0000070d * 6F706572616E64203D2000 .ascii "operand = \0" ! 717: 715 00000718 * .text ! 718: 716 000337C3 dd 8f0000070d pushl $L305 ! 719: 717 000337C9 fe 08 effffffa94 callf $8,_writes ! 720: 718 000337D0 # write32h( dbl_value_1.m ); ! 721: 719 000337D0 dd effffffa8e pushl _dbl_value_1 ! 722: 720 000337D6 fe 08 effffffa87 callf $8,_write32h ! 723: 721 000337DD # writec(' '); ! 724: 722 000337DD dd 20 pushl $32 ! 725: 723 000337DF fe 08 effffffa7e callf $8,_writec ! 726: 724 000337E6 # write32h( dbl_value_1.l ); ! 727: 725 000337E6 dd effffffa7c pushl _dbl_value_1+4 ! 728: 726 000337EC fe 08 effffffa71 callf $8,_write32h ! 729: 727 000337F3 # writes(", final Acc = "); ! 730: 728 000337F3 .data 1 ! 731: 729 00000718 * L308: ! 732: 730 00000718 * 2C202066696E616C204163632 .ascii ", final Acc = \0" ! 733: 03D2000 ! 734: 731 00000728 * .text ! 735: 732 000337F3 dd 8f00000718 pushl $L308 ! 736: 733 000337F9 fe 08 effffffa64 callf $8,_writes ! 737: 734 00033800 # write32h( dbl_st_acc.m ); ! 738: 735 00033800 dd effffffa5e pushl _dbl_st_acc ! 739: 736 00033806 fe 08 effffffa57 callf $8,_write32h ! 740: 737 0003380D # writec(' '); ! 741: 738 0003380D dd 20 pushl $32 ! 742: 739 0003380F fe 08 effffffa4e callf $8,_writec ! 743: 740 00033816 # write32h( dbl_st_acc.l ); ! 744: 741 00033816 dd effffffa4c pushl _dbl_st_acc+4 ! 745: 742 0003381C fe 08 effffffa41 callf $8,_write32h ! 746: 743 00033823 # writes(", index = "); ! 747: 744 00033823 .data 1 ! 748: 745 00000728 * L309: ! 749: 746 00000728 * 2C202020696E646578203D200 .ascii ", index = \0" ! 750: 0 ! 751: 747 00000735 * .text ! 752: 748 00033823 dd 8f00000728 pushl $L309 ! 753: 749 00033829 fe 08 effffffa34 callf $8,_writes ! 754: 750 00033830 # writed( index ); ! 755: 751 00033830 dd effffffa2e pushl _index ! 756: 752 00033836 fe 08 effffffa27 callf $8,_writed ! 757: 753 0003383D # writes("\n expected Acc = "); ! 758: 754 0003383D .data 1 ! 759: 755 00000735 * L310: ! 760: 756 00000735 * 0A20202020202020202020202 .ascii "\12 expected Acc = \0" ! 761: 0202020202020202020202020 ! 762: 2020206578706563746564204 ! 763: 16363203D2000 ! 764: 757 00000761 * .text ! 765: 758 0003383D dd 8f00000735 pushl $L310 ! 766: 759 00033843 fe 08 effffffa1a callf $8,_writes ! 767: 760 0003384A # write32h( dbl_expected.m ); ! 768: 761 0003384A dd effffffa14 pushl _dbl_expected ! 769: 762 00033850 fe 08 effffffa0d callf $8,_write32h ! 770: 763 00033857 # writec(' '); ! 771: 764 00033857 dd 20 pushl $32 ! 772: 765 00033859 fe 08 effffffa04 callf $8,_writec ! 773: 766 00033860 # write32h( dbl_expected.l ); ! 774: 767 00033860 dd effffffa02 pushl _dbl_expected+4 ! 775: 768 00033866 fe 08 effffff9f7 callf $8,_write32h ! 776: 769 0003386D # writec('\n'); ! 777: 770 0003386D dd 0a pushl $10 ! 778: 771 0003386F fe 08 effffff9ee callf $8,_writec ! 779: 772 00033876 # } ! 780: 773 00033876 40 ret#2 ! 781: 774 00033877 .set L291,0x0 ! 782: 775 00033877 L293: ! 783: 776 00033877 13 fecd jbr L294 ! 784: 777 0003387A .data ! 785: 778 000006bc * .text ! 786: 779 0003387A .align 1 ! 787: 780 0003387A .globl _pipe20_halt ! 788: 781 0003387A _pipe20_halt: ! 789: 782 0003387A 0000 .word L311 ! 790: 783 0003387C # ! 791: 784 0003387C # ! 792: 785 0003387C # ! 793: 786 0003387C # /**************************************************************************** ! 794: 787 0003387C # * ! 795: 788 0003387C # * SET UP THE REGISTERS AND HALT ! 796: 789 0003387C # * ! 797: 790 0003387C # ****************************************************************************/ ! 798: 791 0003387C # pipe20_halt( nop_count ) ! 799: 792 0003387C # int nop_count; /* # of NOP instructions */ ! 800: 793 0003387C # { ! 801: 794 0003387C 13 009c jbr L313 ! 802: 795 0003387F L314: ! 803: 796 0003387F # sgl_dummy1 = nop_count; ! 804: 797 0003387F 0d ad04 effffff9dd movl 4(fp),_sgl_dummy1 ! 805: 798 00033887 # sgl_value_1 = dbl_value_1.m; ! 806: 799 00033887 0d effffff9d7 effffff9d2 movl _dbl_value_1,_sgl_value_1 ! 807: 800 00033892 # sgl_value_2 = dbl_value_1.l; ! 808: 801 00033892 0d effffff9d0 effffff9c7 movl _dbl_value_1+4,_sgl_value_2 ! 809: 802 0003389D # sgl_value_3 = dbl_st_acc.m; ! 810: 803 0003389D 0d effffff9c1 effffff9bc movl _dbl_st_acc,_sgl_value_3 ! 811: 804 000338A8 # sgl_value_4 = dbl_st_acc.l; ! 812: 805 000338A8 0d effffff9ba effffff9b1 movl _dbl_st_acc+4,_sgl_value_4 ! 813: 806 000338B3 # sgl_value_5 = dbl_expected.m; ! 814: 807 000338B3 0d effffff9ab effffff9a6 movl _dbl_expected,_sgl_value_5 ! 815: 808 000338BE # sgl_value_6 = dbl_expected.l; ! 816: 809 000338BE 0d effffff9a4 effffff99b movl _dbl_expected+4,_sgl_value_6 ! 817: 810 000338C9 # asm("movl _test_no,r0"); /* r0 = test number */ ! 818: 811 000338C9 0d effffff995 50 movl _test_no,r0 ! 819: 812 000338D0 # asm("movl _subtest,r1"); /* r1 = subtest number */ ! 820: 813 000338D0 0d effffff98e 51 movl _subtest,r1 ! 821: 814 000338D7 # asm("movl $1,r2"); /* r2 = error code */ ! 822: 815 000338D7 0d 01 52 movl $1,r2 ! 823: 816 000338DA # asm("movl _cycle,r3"); /* r3 = cycle count */ ! 824: 817 000338DA 0d effffff984 53 movl _cycle,r3 ! 825: 818 000338E1 # asm("movl _sgl_dummy1,r4"); /* r4 = # of NEGDS */ ! 826: 819 000338E1 0d effffff97d 54 movl _sgl_dummy1,r4 ! 827: 820 000338E8 # asm("movl _sgl_value_1,r5"); /* r5 = MS operand */ ! 828: 821 000338E8 0d effffff976 55 movl _sgl_value_1,r5 ! 829: 822 000338EF # asm("movl _sgl_value_2,r6"); /* r6 = LS operand */ ! 830: 823 000338EF 0d effffff96f 56 movl _sgl_value_2,r6 ! 831: 824 000338F6 # asm("movl _sgl_value_3,r7"); /* r7 = MS stored */ ! 832: 825 000338F6 0d effffff968 57 movl _sgl_value_3,r7 ! 833: 826 000338FD # asm("movl _sgl_value_4,r8"); /* r8 = LS stored */ ! 834: 827 000338FD 0d effffff961 58 movl _sgl_value_4,r8 ! 835: 828 00033904 # asm("movl _sgl_value_5,r9"); /* r9 = MS expected */ ! 836: 829 00033904 0d effffff95a 59 movl _sgl_value_5,r9 ! 837: 830 0003390B # asm("movl _sgl_value_6,r10"); /* r10 = LS expected */ ! 838: 831 0003390B 0d effffff953 5a movl _sgl_value_6,r10 ! 839: 832 00033912 # asm("movl _index,r11"); /* r11 = data index */ ! 840: 833 00033912 0d effffff94c 5b movl _index,r11 ! 841: 834 00033919 # asm("halt"); /* HALT ... */ ! 842: 835 00033919 00 halt ! 843: 836 0003391A # } ! 844: 837 0003391A 40 ret#2 ! 845: 838 0003391B .set L311,0x0 ! 846: 839 0003391B L313: ! 847: 840 0003391B 13 ff61 jbr L314 ! 848: 841 0003391E .data ! 849: 841 00066B82 .data
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.