|
|
1.1 ! root 1: 1 00000000 LL0: ! 2: 2 00000000 .data ! 3: 3 000006a8 * .text ! 4: 4 00000000 .align 1 ! 5: 5 00000000 .globl _pipe2 ! 6: 6 00000000 _pipe2: ! 7: 7 0000F9A8 0000 .word L381 ! 8: 8 0000F9AA # ! 9: 9 0000F9AA # #include "evt_defs.h" ! 10: 10 0000F9AA # ! 11: 11 0000F9AA # /* ! 12: 12 0000F9AA # ********************************************************************* ! 13: 13 0000F9AA # * FPP PIPELINED EVENTS TEST #2 ! 14: 14 0000F9AA # * ! 15: 15 0000F9AA # * This test will execute the following code: "LDD MULD MTPR LDD" ! 16: 16 0000F9AA # * with a reserved operand fault on the MTPR. We will make sure that: ! 17: 17 0000F9AA # * 1. The fault is detected, ! 18: 18 0000F9AA # * 2. the multiply operation completes, and ! 19: 19 0000F9AA # * 3. the 2nd load instruction is not executed. ! 20: 20 0000F9AA # * ! 21: 21 0000F9AA # * NOTE: pipe6 also uses this test's data patterns ! 22: 22 0000F9AA # ********************************************************************* ! 23: 23 0000F9AA # */ ! 24: 24 0000F9AA # pipe2() ! 25: 25 0000F9AA # { ! 26: 26 0000F9AA 13 0173 jbr L383 ! 27: 27 0000F9AD L384: ! 28: 28 0000F9AD # asm("moval (r13),_pre_event_fp"); /* save the frame pointer */ ! 29: 29 0000F9AD ed 6d effffffff4 moval (r13),_pre_event_fp ! 30: 30 0000F9B4 # asm("moval (r14),_pre_event_sp"); /* save the stack pointer */ ! 31: 31 0000F9B4 ed 6e efffffffed moval (r14),_pre_event_sp ! 32: 32 0000F9BB # precision = DBL; ! 33: 33 0000F9BB 0d 02 efffffffe6 movl $2,_precision ! 34: 34 0000F9C2 # test_event = RESOP_CODE; /* alignment fault expected */ ! 35: 35 0000F9C2 0d 2d efffffffdf movl $45,_test_event ! 36: 36 0000F9C9 # exp_event = FALSE; /* ... but not yet */ ! 37: 37 0000F9C9 4d efffffffd9 clrl _exp_event ! 38: 38 0000F9CF # asm("movab _pipe2_ret,_event_return"); /* set post - event return */ ! 39: 39 0000F9CF e9 ef000000d8 efffffffce movab _pipe2_ret,_event_return ! 40: 40 0000F9DA # dbl_value_2.m = 0x12345678; /* data pattern for the */ ! 41: 41 0000F9DA 0d 8f12345678 efffffffc3 movl $305419896,_dbl_value_2 ! 42: 42 0000F9E5 # dbl_value_2.l = 0xfedcba98; /* 2nd LDD instruction */ ! 43: 43 0000F9E5 0d 8ffedcba98 efffffffbc movl $-19088744,_dbl_value_2+4 ! 44: 44 0000F9F0 # for( index = 0; index < max_pipe2_index; index++ ) ! 45: 45 0000F9F0 4d efffffffb2 clrl _index ! 46: 46 0000F9F6 L387: ! 47: 47 0000F9F6 1d efffffffac efffffffa7 cmpl _index,_max_pipe2_index ! 48: 48 0000FA01 91 03 13 0119 jgeq L386 ! 49: 49 0000FA06 # { ! 50: 50 0000FA06 # dbl_ld_acc = pipe2_data[index].op_1; /* get the data */ ! 51: 51 0000FA06 5c 18 efffffff9b 50 mull3 $24,_index,r0 ! 52: 52 0000FA0E 0c 8f00000000 50 addl2 $_pipe2_data,r0 ! 53: 53 0000FA15 0d a004 efffffff8f movl 4(r0),_dbl_ld_acc+4 ! 54: 54 0000FA1D 0d 60 efffffff84 movl (r0),_dbl_ld_acc ! 55: 55 0000FA24 # dbl_value_1 = pipe2_data[index].op_2; ! 56: 56 0000FA24 5c 18 efffffff7d 50 mull3 $24,_index,r0 ! 57: 57 0000FA2C 0c 8f00000008 50 addl2 $_pipe2_data+8,r0 ! 58: 58 0000FA33 0d a004 efffffff71 movl 4(r0),_dbl_value_1+4 ! 59: 59 0000FA3B 0d 60 efffffff66 movl (r0),_dbl_value_1 ! 60: 60 0000FA42 # dbl_expected = pipe2_data[index].exp; ! 61: 61 0000FA42 5c 18 efffffff5f 50 mull3 $24,_index,r0 ! 62: 62 0000FA4A 0c 8f00000010 50 addl2 $_pipe2_data+16,r0 ! 63: 63 0000FA51 0d a004 efffffff53 movl 4(r0),_dbl_expected+4 ! 64: 64 0000FA59 0d 60 efffffff48 movl (r0),_dbl_expected ! 65: 65 0000FA60 # asm(".globl _pipe2_lp1"); ! 66: 66 0000FA60 .globl _pipe2_lp1 ! 67: 67 0000FA60 # asm("_pipe2_lp1:"); ! 68: 68 0000FA60 _pipe2_lp1: ! 69: 69 0000FA60 # asm("bispsw $0x60"); /* enable ovfl & undfl */ ! 70: 70 0000FA60 8b 8860 bispsw $0x60 ! 71: 71 0000FA63 # asm("ldd _dbl_ld_acc"); /* load the Acc. */ ! 72: 72 0000FA63 07 efffffff3f ldd _dbl_ld_acc ! 73: 73 0000FA69 # exp_event = test_event; /* expect event soon */ ! 74: 74 0000FA69 0d efffffff39 efffffff34 movl _test_event,_exp_event ! 75: 75 0000FA74 # asm("muld _dbl_value_1"); /* start the multiply */ ! 76: 76 0000FA74 e7 efffffff2e muld _dbl_value_1 ! 77: 77 0000FA7A # asm("mtpr $1,$0x40");; /* trigger the fault */ ! 78: 78 0000FA7A ad 01 8840 mtpr $1,$0x40 ! 79: 79 0000FA7E # asm("ldd _dbl_value_2"); /* we shouldn't get to here */ ! 80: 80 0000FA7E 07 efffffff24 ldd _dbl_value_2 ! 81: 81 0000FA84 # /* ! 82: 82 0000FA84 # * If we got to here then there was no event ! 83: 83 0000FA84 # */ ! 84: 84 0000FA84 # if( force_loop ) ! 85: 85 0000FA84 5d efffffff1e tstl _force_loop ! 86: 86 0000FA8A 31 03 jeql L388 ! 87: 87 0000FA8C # asm("brw _pipe2_lp1");; /* loop on the error */ ! 88: Assemb00027168 # asm("brw _pipe2_lp1");; /* loop on the error */ ! 89: "pipe200027168 88: WARNING: brw: destination label is external ! 90: 88 0000FA8C 13 ffd1 brw _pipe2_lp1 ! 91: 89 0000FA8F L388: ! 92: 90 0000FA8F # exp_event = FALSE; /* reset event expected flag */ ! 93: 91 0000FA8F 4d efffffff13 clrl _exp_event ! 94: 92 0000FA95 # asm("movl _pre_event_fp,fp"); /* restore the frame pointer */ ! 95: 93 0000FA95 0d efffffff0d 5d movl _pre_event_fp,fp ! 96: 94 0000FA9C # asm("movl _pre_event_sp,sp"); /* restore the stack pointer */ ! 97: 95 0000FA9C 0d efffffff06 5e movl _pre_event_sp,sp ! 98: 96 0000FAA3 # asm("bicpsw $0x60"); /* disable ovfl & undfl evts */ ! 99: 97 0000FAA3 9b 8860 bicpsw $0x60 ! 100: 98 0000FAA6 # no_pipe2_evt();; /* report the error */ ! 101: 99 0000FAA6 fe 04 ef00000077 callf $4,_no_pipe2_evt ! 102: 100 0000FAAD # /* ! 103: 101 0000FAAD # * Come here after the event ! 104: 102 0000FAAD # */ ! 105: 103 0000FAAD # asm(".globl _pipe2_ret"); ! 106: 104 0000FAAD .globl _pipe2_ret ! 107: 105 0000FAAD # asm("_pipe2_ret:"); ! 108: 106 0000FAAD _pipe2_ret: ! 109: 107 0000FAAD # asm("movl _pre_event_fp,fp"); /* restore the frame pointer */ ! 110: 108 0000FAAD 0d effffffef5 5d movl _pre_event_fp,fp ! 111: 109 0000FAB4 # asm("movl _pre_event_sp,sp"); /* restore the stack pointer */ ! 112: 110 0000FAB4 0d effffffeee 5e movl _pre_event_sp,sp ! 113: 111 0000FABB # if( force_loop ) ! 114: 112 0000FABB 5d effffffee7 tstl _force_loop ! 115: 113 0000FAC1 31 03 jeql L390 ! 116: 114 0000FAC3 # asm("brw _pipe2_lp1");; /* loop on the error */ ! 117: "pipe200027168 115: WARNING: brw: destination label is external ! 118: 115 0000FAC3 13 ff9a brw _pipe2_lp1 ! 119: 116 0000FAC6 L390: ! 120: 117 0000FAC6 # asm("bicpsw $0x60"); /* disable ovfl & undfl evts */ ! 121: 118 0000FAC6 9b 8860 bicpsw $0x60 ! 122: 119 0000FAC9 # if( post_evt_acc.l != dbl_expected.l ) ! 123: 120 0000FAC9 1d effffffedd effffffed8 cmpl _post_evt_acc+4,_dbl_expected+4 ! 124: 121 0000FAD4 31 09 jeql L391 ! 125: 122 0000FAD6 # bad_pipe2_result(); /* incorrect result error */ ! 126: 123 0000FAD6 fe 04 ef00000103 callf $4,_bad_pipe2_result ! 127: 124 0000FADD # else if( post_evt_acc.m != dbl_expected.m ) ! 128: 125 0000FADD 11 37 jbr L393 ! 129: 126 0000FADF L391: ! 130: 127 0000FADF 1d effffffec3 effffffebe cmpl _post_evt_acc,_dbl_expected ! 131: 128 0000FAEA 31 2a jeql L394 ! 132: 129 0000FAEC # { ! 133: 130 0000FAEC # if( (post_evt_acc.m == dbl_value_2.m) && ! 134: 131 0000FAEC # (post_evt_acc.l == dbl_value_2.l) ) ! 135: 132 0000FAEC 1d effffffeb6 effffffeb1 cmpl _post_evt_acc,_dbl_value_2 ! 136: 133 0000FAF7 21 16 jneq L395 ! 137: 134 0000FAF9 1d effffffead effffffea8 cmpl _post_evt_acc+4,_dbl_value_2+4 ! 138: 135 0000FB04 21 09 jneq L395 ! 139: 136 0000FB06 # pipe2_queue_er(); /* queue not cleared error */ ! 140: 137 0000FB06 fe 04 ef00000237 callf $4,_pipe2_queue_er ! 141: 138 0000FB0D # else ! 142: 139 0000FB0D 11 07 jbr L397 ! 143: 140 0000FB0F L395: ! 144: 141 0000FB0F # bad_pipe2_result(); /* incorrect result error */ ! 145: 142 0000FB0F fe 04 ef000000ca callf $4,_bad_pipe2_result ! 146: 143 0000FB16 L397: ! 147: 144 0000FB16 # } ! 148: 145 0000FB16 # } ! 149: 146 0000FB16 L394: ! 150: 147 0000FB16 L393: ! 151: 148 0000FB16 L385: ! 152: 149 0000FB16 6d effffffe8c incl _index ! 153: 150 0000FB1C 13 fed7 jbr L387 ! 154: 151 0000FB1F L386: ! 155: 152 0000FB1F # } ! 156: 153 0000FB1F 40 ret#2 ! 157: 154 0000FB20 .set L381,0x0 ! 158: 155 0000FB20 L383: ! 159: 156 0000FB20 13 fe8a jbr L384 ! 160: 157 0000FB23 .data ! 161: 158 000006a8 * .text ! 162: 159 0000FB23 00 .align 1 ! 163: 160 0000FB24 .globl _no_pipe2_evt ! 164: 161 0000FB24 _no_pipe2_evt: ! 165: 162 0000FB24 0000 .word L398 ! 166: 163 0000FB26 # ! 167: 164 0000FB26 # ! 168: 165 0000FB26 # ! 169: 166 0000FB26 # /**************************************************************************** ! 170: 167 0000FB26 # * Report an "EVENT NOT DETECTED" error ! 171: 168 0000FB26 # * ! 172: 169 0000FB26 # * Cycle: xx. EVT test xx. subtest xx. No Reserved Operand fault. index = xx ! 173: 170 0000FB26 # * inst = LDD op1, MULD op2, MTPR 1,0x40, LDD op3 (Reserved Op. fault on MTPR) ! 174: 171 0000FB26 # * op1 = xxxxxxxx xxxxxxxx, op2 = xxxxxxxx xxxxxxxx ! 175: 172 0000FB26 # ****************************************************************************/ ! 176: 173 0000FB26 # no_pipe2_evt() ! 177: 174 0000FB26 # { ! 178: 175 0000FB26 13 00b3 jbr L400 ! 179: 176 0000FB29 L401: ! 180: 177 0000FB29 # errcnt++; /* bump the error count */ ! 181: 178 0000FB29 6d effffffe79 incl _errcnt ! 182: 179 0000FB2F # if ( prt_error ) { ! 183: 180 0000FB2F 5d effffffe73 tstl _prt_error ! 184: 181 0000FB35 31 7e jeql L402 ! 185: 182 0000FB37 # print_pipe2_err( " No Reserved Operand fault." ); ! 186: 183 0000FB37 .data 1 ! 187: 184 000006a8 * L404: ! 188: 185 000006a8 * 20204E6F20526573657276656 .ascii " No Reserved Operand fault.\0" ! 189: 4204F706572616E6420666175 ! 190: 6C742E00 ! 191: 186 000006c5 * .text ! 192: 187 0000FB37 dd 8f000006a8 pushl $L404 ! 193: 188 0000FB3D fe 08 ef00000364 callf $8,_print_pipe2_err ! 194: 189 0000FB44 # writes("op1 = "); ! 195: 190 0000FB44 .data 1 ! 196: 191 000006c5 * L406: ! 197: 192 000006c5 * 6F7031203D2000 .ascii "op1 = \0" ! 198: 193 000006cc * .text ! 199: 194 0000FB44 dd 8f000006c5 pushl $L406 ! 200: 195 0000FB4A fe 08 effffffe57 callf $8,_writes ! 201: 196 0000FB51 # write32h( dbl_ld_acc.m ); ! 202: 197 0000FB51 dd effffffe51 pushl _dbl_ld_acc ! 203: 198 0000FB57 fe 08 effffffe4a callf $8,_write32h ! 204: 199 0000FB5E # writes(" "); ! 205: 200 0000FB5E .data 1 ! 206: 201 000006cc * L408: ! 207: 202 000006cc * 2000 .ascii " \0" ! 208: 203 000006ce * .text ! 209: 204 0000FB5E dd 8f000006cc pushl $L408 ! 210: 205 0000FB64 fe 08 effffffe3d callf $8,_writes ! 211: 206 0000FB6B # write32h( dbl_ld_acc.l ); ! 212: 207 0000FB6B dd effffffe3b pushl _dbl_ld_acc+4 ! 213: 208 0000FB71 fe 08 effffffe30 callf $8,_write32h ! 214: 209 0000FB78 # writes(", op2 = "); ! 215: 210 0000FB78 .data 1 ! 216: 211 000006ce * L409: ! 217: 212 000006ce * 2C2020206F7032203D2000 .ascii ", op2 = \0" ! 218: 213 000006d9 * .text ! 219: 214 0000FB78 dd 8f000006ce pushl $L409 ! 220: 215 0000FB7E fe 08 effffffe23 callf $8,_writes ! 221: 216 0000FB85 # write32h( dbl_value_1.m ); ! 222: 217 0000FB85 dd effffffe1d pushl _dbl_value_1 ! 223: 218 0000FB8B fe 08 effffffe16 callf $8,_write32h ! 224: 219 0000FB92 # writes(" "); ! 225: 220 0000FB92 .data 1 ! 226: 221 000006d9 * L410: ! 227: 222 000006d9 * 2000 .ascii " \0" ! 228: 223 000006db * .text ! 229: 224 0000FB92 dd 8f000006d9 pushl $L410 ! 230: 225 0000FB98 fe 08 effffffe09 callf $8,_writes ! 231: 226 0000FB9F # write32h( dbl_value_1.l ); ! 232: 227 0000FB9F dd effffffe07 pushl _dbl_value_1+4 ! 233: 228 0000FBA5 fe 08 effffffdfc callf $8,_write32h ! 234: 229 0000FBAC # writec('\n'); ! 235: 230 0000FBAC dd 0a pushl $10 ! 236: 231 0000FBAE fe 08 effffffdf3 callf $8,_writec ! 237: 232 0000FBB5 # } ! 238: 233 0000FBB5 # if ( halt_flg ) /* halt on error? */ ! 239: 234 0000FBB5 L402: ! 240: 235 0000FBB5 5d effffffded tstl _halt_flg ! 241: 236 0000FBBB 31 09 jeql L412 ! 242: 237 0000FBBD # pipe2_halt( 1 ); /* halt with a code of 1 */ ! 243: 238 0000FBBD dd 01 pushl $1 ! 244: 239 0000FBBF fe 08 ef0000038e callf $8,_pipe2_halt ! 245: 240 0000FBC6 # if ( loop_on_err ) { ! 246: 241 0000FBC6 L412: ! 247: 242 0000FBC6 5d effffffddc tstl _loop_on_err ! 248: 243 0000FBCC 31 0d jeql L414 ! 249: 244 0000FBCE # force_loop = TRUE; /* set the force loop flag */ ! 250: 245 0000FBCE 0d 01 effffffdd3 movl $1,_force_loop ! 251: 246 0000FBD5 # asm("jmp _pipe2_lp1"); /* and loop */ ! 252: 247 0000FBD5 71 effffffe85 jmp _pipe2_lp1 ! 253: 248 0000FBDB # }; ! 254: 249 0000FBDB L414: ! 255: 250 0000FBDB # } ! 256: 251 0000FBDB 40 ret#2 ! 257: 252 0000FBDC .set L398,0x0 ! 258: 253 0000FBDC L400: ! 259: 254 0000FBDC 13 ff4a jbr L401 ! 260: 255 0000FBDF .data ! 261: 256 000006a8 * .text ! 262: 257 0000FBDF 00 .align 1 ! 263: 258 0000FBE0 .globl _bad_pipe2_result ! 264: 259 0000FBE0 _bad_pipe2_result: ! 265: 260 0000FBE0 0000 .word L415 ! 266: 261 0000FBE2 # ! 267: 262 0000FBE2 # ! 268: 263 0000FBE2 # ! 269: 264 0000FBE2 # ! 270: 265 0000FBE2 # /**************************************************************************** ! 271: 266 0000FBE2 # * Report an "BAD ACCUMULATOR AFTER THE EVENT" error ! 272: 267 0000FBE2 # * ! 273: 268 0000FBE2 # * Cycle: xx. EVT test xx. subtest xx. Bad final Accumulator. index = xx ! 274: 269 0000FBE2 # * inst = LDD op1, MULD op2, MTPR 1,0x40, LDD op3 (Reserved Op. fault on MTPR) ! 275: 270 0000FBE2 # * The 2nd LDD should not be executed. ! 276: 271 0000FBE2 # * op1 = xxxxxxxx xxxxxxxx, final Acc. = xxxxxxxx xxxxxxxx ! 277: 272 0000FBE2 # * op2 = xxxxxxxx xxxxxxxx, expected = xxxxxxxx xxxxxxxx ! 278: 273 0000FBE2 # * op3 = xxxxxxxx xxxxxxxx ! 279: 274 0000FBE2 # ****************************************************************************/ ! 280: 275 0000FBE2 # bad_pipe2_result() ! 281: 276 0000FBE2 # { ! 282: 277 0000FBE2 13 015b jbr L417 ! 283: 278 0000FBE5 L418: ! 284: 279 0000FBE5 # errcnt++; /* bump the error count */ ! 285: 280 0000FBE5 6d effffffdbd incl _errcnt ! 286: 281 0000FBEB # if ( prt_error ) { ! 287: 282 0000FBEB 5d effffffdb7 tstl _prt_error ! 288: 283 0000FBF1 21 03 13 0123 jeql L419 ! 289: 284 0000FBF6 # print_pipe2_err( ". Bad final Accumulator." ); ! 290: 285 0000FBF6 .data 1 ! 291: 286 000006db * L420: ! 292: 287 000006db * 2E204261642066696E616C204 .ascii ". Bad final Accumulator.\0" ! 293: 16363756D756C61746F722E00 ! 294: 288 000006f4 * .text ! 295: 289 0000FBF6 dd 8f000006db pushl $L420 ! 296: 290 0000FBFC fe 08 ef000002a5 callf $8,_print_pipe2_err ! 297: 291 0000FC03 # writes("The 2nd LDD should not be executed\n"); ! 298: 292 0000FC03 .data 1 ! 299: 293 000006f4 * L421: ! 300: 294 000006f4 * 54686520326E64204C4444207 .ascii "The 2nd LDD should not be executed\12\0" ! 301: 3686F756C64206E6F74206265 ! 302: 2065786563757465640A00 ! 303: 295 00000718 * .text ! 304: 296 0000FC03 dd 8f000006f4 pushl $L421 ! 305: 297 0000FC09 fe 08 effffffd98 callf $8,_writes ! 306: 298 0000FC10 # writes("op1 = "); ! 307: 299 0000FC10 .data 1 ! 308: 300 00000718 * L422: ! 309: 301 00000718 * 6F7031203D2000 .ascii "op1 = \0" ! 310: 302 0000071f * .text ! 311: 303 0000FC10 dd 8f00000718 pushl $L422 ! 312: 304 0000FC16 fe 08 effffffd8b callf $8,_writes ! 313: 305 0000FC1D # write32h( dbl_ld_acc.m ); ! 314: 306 0000FC1D dd effffffd85 pushl _dbl_ld_acc ! 315: 307 0000FC23 fe 08 effffffd7e callf $8,_write32h ! 316: 308 0000FC2A # writes(" "); ! 317: 309 0000FC2A .data 1 ! 318: 310 0000071f * L423: ! 319: 311 0000071f * 2000 .ascii " \0" ! 320: 312 00000721 * .text ! 321: 313 0000FC2A dd 8f0000071f pushl $L423 ! 322: 314 0000FC30 fe 08 effffffd71 callf $8,_writes ! 323: 315 0000FC37 # write32h( dbl_ld_acc.l ); ! 324: 316 0000FC37 dd effffffd6f pushl _dbl_ld_acc+4 ! 325: 317 0000FC3D fe 08 effffffd64 callf $8,_write32h ! 326: 318 0000FC44 # writes(", final Acc. = "); ! 327: 319 0000FC44 .data 1 ! 328: 320 00000721 * L424: ! 329: 321 00000721 * 2C20202066696E616C2041636 .ascii ", final Acc. = \0" ! 330: 32E203D2000 ! 331: 322 00000733 * .text ! 332: 323 0000FC44 dd 8f00000721 pushl $L424 ! 333: 324 0000FC4A fe 08 effffffd57 callf $8,_writes ! 334: 325 0000FC51 # write32h( post_evt_acc.m ); ! 335: 326 0000FC51 dd effffffd51 pushl _post_evt_acc ! 336: 327 0000FC57 fe 08 effffffd4a callf $8,_write32h ! 337: 328 0000FC5E # writec(' '); ! 338: 329 0000FC5E dd 20 pushl $32 ! 339: 330 0000FC60 fe 08 effffffd41 callf $8,_writec ! 340: 331 0000FC67 # write32h( post_evt_acc.l ); ! 341: 332 0000FC67 dd effffffd3f pushl _post_evt_acc+4 ! 342: 333 0000FC6D fe 08 effffffd34 callf $8,_write32h ! 343: 334 0000FC74 # writes("\nop2 = "); ! 344: 335 0000FC74 .data 1 ! 345: 336 00000733 * L425: ! 346: 337 00000733 * 0A6F7032203D2000 .ascii "\12op2 = \0" ! 347: 338 0000073b * .text ! 348: 339 0000FC74 dd 8f00000733 pushl $L425 ! 349: 340 0000FC7A fe 08 effffffd27 callf $8,_writes ! 350: 341 0000FC81 # write32h( dbl_value_1.m ); ! 351: 342 0000FC81 dd effffffd21 pushl _dbl_value_1 ! 352: 343 0000FC87 fe 08 effffffd1a callf $8,_write32h ! 353: 344 0000FC8E # writes(" "); ! 354: 345 0000FC8E .data 1 ! 355: 346 0000073b * L426: ! 356: 347 0000073b * 2000 .ascii " \0" ! 357: 348 0000073d * .text ! 358: 349 0000FC8E dd 8f0000073b pushl $L426 ! 359: 350 0000FC94 fe 08 effffffd0d callf $8,_writes ! 360: 351 0000FC9B # write32h( dbl_value_1.l ); ! 361: 352 0000FC9B dd effffffd0b pushl _dbl_value_1+4 ! 362: 353 0000FCA1 fe 08 effffffd00 callf $8,_write32h ! 363: 354 0000FCA8 # writes(", expected = "); ! 364: 355 0000FCA8 .data 1 ! 365: 356 0000073d * L427: ! 366: 357 0000073d * 2C20202065787065637465642 .ascii ", expected = \0" ! 367: 020203D2000 ! 368: 358 0000074f * .text ! 369: 359 0000FCA8 dd 8f0000073d pushl $L427 ! 370: 360 0000FCAE fe 08 effffffcf3 callf $8,_writes ! 371: 361 0000FCB5 # write32h( dbl_expected.m ); ! 372: 362 0000FCB5 dd effffffced pushl _dbl_expected ! 373: 363 0000FCBB fe 08 effffffce6 callf $8,_write32h ! 374: 364 0000FCC2 # writes(" "); ! 375: 365 0000FCC2 .data 1 ! 376: 366 0000074f * L428: ! 377: 367 0000074f * 2000 .ascii " \0" ! 378: 368 00000751 * .text ! 379: 369 0000FCC2 dd 8f0000074f pushl $L428 ! 380: 370 0000FCC8 fe 08 effffffcd9 callf $8,_writes ! 381: 371 0000FCCF # write32h( dbl_expected.l ); ! 382: 372 0000FCCF dd effffffcd7 pushl _dbl_expected+4 ! 383: 373 0000FCD5 fe 08 effffffccc callf $8,_write32h ! 384: 374 0000FCDC # writes("\nop3 = "); ! 385: 375 0000FCDC .data 1 ! 386: 376 00000751 * L429: ! 387: 377 00000751 * 0A6F7033203D2000 .ascii "\12op3 = \0" ! 388: 378 00000759 * .text ! 389: 379 0000FCDC dd 8f00000751 pushl $L429 ! 390: 380 0000FCE2 fe 08 effffffcbf callf $8,_writes ! 391: 381 0000FCE9 # write32h( dbl_value_2.m ); ! 392: 382 0000FCE9 dd effffffcb9 pushl _dbl_value_2 ! 393: 383 0000FCEF fe 08 effffffcb2 callf $8,_write32h ! 394: 384 0000FCF6 # writes(" "); ! 395: 385 0000FCF6 .data 1 ! 396: 386 00000759 * L430: ! 397: 387 00000759 * 2000 .ascii " \0" ! 398: 388 0000075b * .text ! 399: 389 0000FCF6 dd 8f00000759 pushl $L430 ! 400: 390 0000FCFC fe 08 effffffca5 callf $8,_writes ! 401: 391 0000FD03 # write32h( dbl_value_2.l ); ! 402: 392 0000FD03 dd effffffca3 pushl _dbl_value_2+4 ! 403: 393 0000FD09 fe 08 effffffc98 callf $8,_write32h ! 404: 394 0000FD10 # writec('\n'); ! 405: 395 0000FD10 dd 0a pushl $10 ! 406: 396 0000FD12 fe 08 effffffc8f callf $8,_writec ! 407: 397 0000FD19 # } ! 408: 398 0000FD19 # if ( halt_flg ) /* halt on error? */ ! 409: 399 0000FD19 L419: ! 410: 400 0000FD19 5d effffffc89 tstl _halt_flg ! 411: 401 0000FD1F 31 09 jeql L431 ! 412: 402 0000FD21 # pipe2_halt( 2 ); /* halt with a code of 2 */ ! 413: 403 0000FD21 dd 02 pushl $2 ! 414: 404 0000FD23 fe 08 ef0000022a callf $8,_pipe2_halt ! 415: 405 0000FD2A # if ( loop_on_err ) { ! 416: 406 0000FD2A L431: ! 417: 407 0000FD2A 5d effffffc78 tstl _loop_on_err ! 418: 408 0000FD30 31 0d jeql L432 ! 419: 409 0000FD32 # force_loop = TRUE; /* set the force loop flag */ ! 420: 410 0000FD32 0d 01 effffffc6f movl $1,_force_loop ! 421: 411 0000FD39 # asm("jmp _pipe2_lp1"); /* and loop */ ! 422: 412 0000FD39 71 effffffd21 jmp _pipe2_lp1 ! 423: 413 0000FD3F # }; ! 424: 414 0000FD3F L432: ! 425: 415 0000FD3F # } ! 426: 416 0000FD3F 40 ret#2 ! 427: 417 0000FD40 .set L415,0x0 ! 428: 418 0000FD40 L417: ! 429: 419 0000FD40 13 fea2 jbr L418 ! 430: 420 0000FD43 .data ! 431: 421 000006a8 * .text ! 432: 422 0000FD43 00 .align 1 ! 433: 423 0000FD44 .globl _pipe2_queue_er ! 434: 424 0000FD44 _pipe2_queue_er: ! 435: 425 0000FD44 0000 .word L433 ! 436: 426 0000FD46 # ! 437: 427 0000FD46 # ! 438: 428 0000FD46 # ! 439: 429 0000FD46 # ! 440: 430 0000FD46 # /**************************************************************************** ! 441: 431 0000FD46 # * Report an "FPP Queue not cleared" error ! 442: 432 0000FD46 # * ! 443: 433 0000FD46 # * Cycle: xx. EVT test xx. subtest xx. FPP queue not cleared. index = xx ! 444: 434 0000FD46 # * inst = LDD op1, MULD op2, MTPR 1,0x40, LDD op3 (Reserved Op. fault on MTPR) ! 445: 435 0000FD46 # * The 2nd LDD should not have been executed but apparently was. ! 446: 436 0000FD46 # * op1 = xxxxxxxx xxxxxxxx, final Acc. = xxxxxxxx xxxxxxxx ! 447: 437 0000FD46 # * op2 = xxxxxxxx xxxxxxxx, expected = xxxxxxxx xxxxxxxx ! 448: 438 0000FD46 # * op3 = xxxxxxxx xxxxxxxx ! 449: 439 0000FD46 # ****************************************************************************/ ! 450: 440 0000FD46 # pipe2_queue_er() ! 451: 441 0000FD46 # { ! 452: 442 0000FD46 13 015b jbr L435 ! 453: 443 0000FD49 L436: ! 454: 444 0000FD49 # errcnt++; /* bump the error count */ ! 455: 445 0000FD49 6d effffffc59 incl _errcnt ! 456: 446 0000FD4F # if ( prt_error ) { ! 457: 447 0000FD4F 5d effffffc53 tstl _prt_error ! 458: 448 0000FD55 21 03 13 0123 jeql L437 ! 459: 449 0000FD5A # print_pipe2_err( ". FPP queue not cleared." ); ! 460: 450 0000FD5A .data 1 ! 461: 451 0000075b * L438: ! 462: 452 0000075b * 2E20465050207175657565206 .ascii ". FPP queue not cleared.\0" ! 463: E6F7420636C65617265642E00 ! 464: 453 00000774 * .text ! 465: 454 0000FD5A dd 8f0000075b pushl $L438 ! 466: 455 0000FD60 fe 08 ef00000141 callf $8,_print_pipe2_err ! 467: 456 0000FD67 # writes( ! 468: 457 0000FD67 # "The 2nd LDD should not have been executed but apparently was.\n"); ! 469: 458 0000FD67 .data 1 ! 470: 459 00000774 * L439: ! 471: 460 00000774 * 54686520326E64204C4444207 .ascii "The 2nd LDD should not have been executed but apparently was.\12\0" ! 472: 3686F756C64206E6F74206861 ! 473: 7665206265656E20657865637 ! 474: 5746564206275742061707061 ! 475: 72656E746C79207761732E0A0 ! 476: 0 ! 477: 461 000007b3 * .text ! 478: 462 0000FD67 dd 8f00000774 pushl $L439 ! 479: 463 0000FD6D fe 08 effffffc34 callf $8,_writes ! 480: 464 0000FD74 # writes("op1 = "); ! 481: 465 0000FD74 .data 1 ! 482: 466 000007b3 * L440: ! 483: 467 000007b3 * 6F7031203D2000 .ascii "op1 = \0" ! 484: 468 000007ba * .text ! 485: 469 0000FD74 dd 8f000007b3 pushl $L440 ! 486: 470 0000FD7A fe 08 effffffc27 callf $8,_writes ! 487: 471 0000FD81 # write32h( dbl_ld_acc.m ); ! 488: 472 0000FD81 dd effffffc21 pushl _dbl_ld_acc ! 489: 473 0000FD87 fe 08 effffffc1a callf $8,_write32h ! 490: 474 0000FD8E # writes(" "); ! 491: 475 0000FD8E .data 1 ! 492: 476 000007ba * L441: ! 493: 477 000007ba * 2000 .ascii " \0" ! 494: 478 000007bc * .text ! 495: 479 0000FD8E dd 8f000007ba pushl $L441 ! 496: 480 0000FD94 fe 08 effffffc0d callf $8,_writes ! 497: 481 0000FD9B # write32h( dbl_ld_acc.l ); ! 498: 482 0000FD9B dd effffffc0b pushl _dbl_ld_acc+4 ! 499: 483 0000FDA1 fe 08 effffffc00 callf $8,_write32h ! 500: 484 0000FDA8 # writes(", final Acc. = "); ! 501: 485 0000FDA8 .data 1 ! 502: 486 000007bc * L442: ! 503: 487 000007bc * 2C20202066696E616C2041636 .ascii ", final Acc. = \0" ! 504: 32E203D2000 ! 505: 488 000007ce * .text ! 506: 489 0000FDA8 dd 8f000007bc pushl $L442 ! 507: 490 0000FDAE fe 08 effffffbf3 callf $8,_writes ! 508: 491 0000FDB5 # write32h( post_evt_acc.m ); ! 509: 492 0000FDB5 dd effffffbed pushl _post_evt_acc ! 510: 493 0000FDBB fe 08 effffffbe6 callf $8,_write32h ! 511: 494 0000FDC2 # writec(' '); ! 512: 495 0000FDC2 dd 20 pushl $32 ! 513: 496 0000FDC4 fe 08 effffffbdd callf $8,_writec ! 514: 497 0000FDCB # write32h( post_evt_acc.l ); ! 515: 498 0000FDCB dd effffffbdb pushl _post_evt_acc+4 ! 516: 499 0000FDD1 fe 08 effffffbd0 callf $8,_write32h ! 517: 500 0000FDD8 # writes("\nop2 = "); ! 518: 501 0000FDD8 .data 1 ! 519: 502 000007ce * L443: ! 520: 503 000007ce * 0A6F7032203D2000 .ascii "\12op2 = \0" ! 521: 504 000007d6 * .text ! 522: 505 0000FDD8 dd 8f000007ce pushl $L443 ! 523: 506 0000FDDE fe 08 effffffbc3 callf $8,_writes ! 524: 507 0000FDE5 # write32h( dbl_value_1.m ); ! 525: 508 0000FDE5 dd effffffbbd pushl _dbl_value_1 ! 526: 509 0000FDEB fe 08 effffffbb6 callf $8,_write32h ! 527: 510 0000FDF2 # writes(" "); ! 528: 511 0000FDF2 .data 1 ! 529: 512 000007d6 * L444: ! 530: 513 000007d6 * 2000 .ascii " \0" ! 531: 514 000007d8 * .text ! 532: 515 0000FDF2 dd 8f000007d6 pushl $L444 ! 533: 516 0000FDF8 fe 08 effffffba9 callf $8,_writes ! 534: 517 0000FDFF # write32h( dbl_value_1.l ); ! 535: 518 0000FDFF dd effffffba7 pushl _dbl_value_1+4 ! 536: 519 0000FE05 fe 08 effffffb9c callf $8,_write32h ! 537: 520 0000FE0C # writes(", expected = "); ! 538: 521 0000FE0C .data 1 ! 539: 522 000007d8 * L445: ! 540: 523 000007d8 * 2C20202065787065637465642 .ascii ", expected = \0" ! 541: 020203D2000 ! 542: 524 000007ea * .text ! 543: 525 0000FE0C dd 8f000007d8 pushl $L445 ! 544: 526 0000FE12 fe 08 effffffb8f callf $8,_writes ! 545: 527 0000FE19 # write32h( dbl_expected.m ); ! 546: 528 0000FE19 dd effffffb89 pushl _dbl_expected ! 547: 529 0000FE1F fe 08 effffffb82 callf $8,_write32h ! 548: 530 0000FE26 # writes(" "); ! 549: 531 0000FE26 .data 1 ! 550: 532 000007ea * L446: ! 551: 533 000007ea * 2000 .ascii " \0" ! 552: 534 000007ec * .text ! 553: 535 0000FE26 dd 8f000007ea pushl $L446 ! 554: 536 0000FE2C fe 08 effffffb75 callf $8,_writes ! 555: 537 0000FE33 # write32h( dbl_expected.l ); ! 556: 538 0000FE33 dd effffffb73 pushl _dbl_expected+4 ! 557: 539 0000FE39 fe 08 effffffb68 callf $8,_write32h ! 558: 540 0000FE40 # writes("\nop3 = "); ! 559: 541 0000FE40 .data 1 ! 560: 542 000007ec * L447: ! 561: 543 000007ec * 0A6F7033203D2000 .ascii "\12op3 = \0" ! 562: 544 000007f4 * .text ! 563: 545 0000FE40 dd 8f000007ec pushl $L447 ! 564: 546 0000FE46 fe 08 effffffb5b callf $8,_writes ! 565: 547 0000FE4D # write32h( dbl_value_2.m ); ! 566: 548 0000FE4D dd effffffb55 pushl _dbl_value_2 ! 567: 549 0000FE53 fe 08 effffffb4e callf $8,_write32h ! 568: 550 0000FE5A # writes(" "); ! 569: 551 0000FE5A .data 1 ! 570: 552 000007f4 * L448: ! 571: 553 000007f4 * 2000 .ascii " \0" ! 572: 554 000007f6 * .text ! 573: 555 0000FE5A dd 8f000007f4 pushl $L448 ! 574: 556 0000FE60 fe 08 effffffb41 callf $8,_writes ! 575: 557 0000FE67 # write32h( dbl_value_2.l ); ! 576: 558 0000FE67 dd effffffb3f pushl _dbl_value_2+4 ! 577: 559 0000FE6D fe 08 effffffb34 callf $8,_write32h ! 578: 560 0000FE74 # writec('\n'); ! 579: 561 0000FE74 dd 0a pushl $10 ! 580: 562 0000FE76 fe 08 effffffb2b callf $8,_writec ! 581: 563 0000FE7D # } ! 582: 564 0000FE7D # if ( halt_flg ) /* halt on error? */ ! 583: 565 0000FE7D L437: ! 584: 566 0000FE7D 5d effffffb25 tstl _halt_flg ! 585: 567 0000FE83 31 09 jeql L449 ! 586: 568 0000FE85 # pipe2_halt( 3 ); /* halt with a code of 3 */ ! 587: 569 0000FE85 dd 03 pushl $3 ! 588: 570 0000FE87 fe 08 ef000000c6 callf $8,_pipe2_halt ! 589: 571 0000FE8E # if ( loop_on_err ) { ! 590: 572 0000FE8E L449: ! 591: 573 0000FE8E 5d effffffb14 tstl _loop_on_err ! 592: 574 0000FE94 31 0d jeql L450 ! 593: 575 0000FE96 # force_loop = TRUE; /* set the force loop flag */ ! 594: 576 0000FE96 0d 01 effffffb0b movl $1,_force_loop ! 595: 577 0000FE9D # asm("jmp _pipe2_lp1"); /* and loop */ ! 596: 578 0000FE9D 71 effffffbbd jmp _pipe2_lp1 ! 597: 579 0000FEA3 # }; ! 598: 580 0000FEA3 L450: ! 599: 581 0000FEA3 # } ! 600: 582 0000FEA3 40 ret#2 ! 601: 583 0000FEA4 .set L433,0x0 ! 602: 584 0000FEA4 L435: ! 603: 585 0000FEA4 13 fea2 jbr L436 ! 604: 586 0000FEA7 .data ! 605: 587 000006a8 * .text ! 606: 588 0000FEA7 00 .align 1 ! 607: 589 0000FEA8 .globl _print_pipe2_err ! 608: 590 0000FEA8 _print_pipe2_err: ! 609: 591 0000FEA8 0000 .word L451 ! 610: 592 0000FEAA # ! 611: 593 0000FEAA # ! 612: 594 0000FEAA # ! 613: 595 0000FEAA # ! 614: 596 0000FEAA # ! 615: 597 0000FEAA # /**************************************************************************** ! 616: 598 0000FEAA # * Report an error message of the form ! 617: 599 0000FEAA # * ! 618: 600 0000FEAA # * Cycle: xx. EVT test xx. subtest xx <your message here> index = xx ! 619: 601 0000FEAA # * inst = LDD op1, MULD op2, MTPR 1,0x40, LDD op3 (fault expected on the MTPR) ! 620: 602 0000FEAA # ****************************************************************************/ ! 621: 603 0000FEAA # print_pipe2_err( msg ) ! 622: 604 0000FEAA # char *msg; /* pointer to error message */ ! 623: 605 0000FEAA # { ! 624: 606 0000FEAA 13 00a3 jbr L453 ! 625: 607 0000FEAD L454: ! 626: 608 0000FEAD # if( errcnt == 1 ) /* 1st error? */ ! 627: 609 0000FEAD 1d effffffaf5 01 cmpl _errcnt,$1 ! 628: 610 0000FEB4 21 0d jneq L455 ! 629: 611 0000FEB6 # writes(" \n"); /* start a new print line */ ! 630: 612 0000FEB6 .data 1 ! 631: 613 000007f6 * L456: ! 632: 614 000007f6 * 200A00 .ascii " \12\0" ! 633: 615 000007f9 * .text ! 634: 616 0000FEB6 dd 8f000007f6 pushl $L456 ! 635: 617 0000FEBC fe 08 effffffae5 callf $8,_writes ! 636: 618 0000FEC3 # writes("Cycle: "); ! 637: 619 0000FEC3 L455: ! 638: 620 0000FEC3 .data 1 ! 639: 621 000007f9 * L457: ! 640: 622 000007f9 * 4379636C653A2000 .ascii "Cycle: \0" ! 641: 623 00000801 * .text ! 642: 624 0000FEC3 dd 8f000007f9 pushl $L457 ! 643: 625 0000FEC9 fe 08 effffffad8 callf $8,_writes ! 644: 626 0000FED0 # writed( cycle ); ! 645: 627 0000FED0 dd effffffad2 pushl _cycle ! 646: 628 0000FED6 fe 08 effffffacb callf $8,_writed ! 647: 629 0000FEDD # writes(" EVT test "); ! 648: 630 0000FEDD .data 1 ! 649: 631 00000801 * L459: ! 650: 632 00000801 * 202045565420746573742000 .ascii " EVT test \0" ! 651: 633 0000080d * .text ! 652: 634 0000FEDD dd 8f00000801 pushl $L459 ! 653: 635 0000FEE3 fe 08 effffffabe callf $8,_writes ! 654: 636 0000FEEA # writed( test_no ); ! 655: 637 0000FEEA dd effffffab8 pushl _test_no ! 656: 638 0000FEF0 fe 08 effffffab1 callf $8,_writed ! 657: 639 0000FEF7 # writes(". subtest "); ! 658: 640 0000FEF7 .data 1 ! 659: 641 0000080d * L460: ! 660: 642 0000080d * 2E20737562746573742000 .ascii ". subtest \0" ! 661: 643 00000818 * .text ! 662: 644 0000FEF7 dd 8f0000080d pushl $L460 ! 663: 645 0000FEFD fe 08 effffffaa4 callf $8,_writes ! 664: 646 0000FF04 # writed( subtest ); ! 665: 647 0000FF04 dd effffffa9e pushl _subtest ! 666: 648 0000FF0A fe 08 effffffa97 callf $8,_writed ! 667: 649 0000FF11 # writes( msg ); /* print the error message */ ! 668: 650 0000FF11 dd ad04 pushl 4(fp) ! 669: 651 0000FF14 fe 08 effffffa8d callf $8,_writes ! 670: 652 0000FF1B # writes(" index = "); ! 671: 653 0000FF1B .data 1 ! 672: 654 00000818 * L461: ! 673: 655 00000818 * 20696E646578203D2000 .ascii " index = \0" ! 674: 656 00000822 * .text ! 675: 657 0000FF1B dd 8f00000818 pushl $L461 ! 676: 658 0000FF21 fe 08 effffffa80 callf $8,_writes ! 677: 659 0000FF28 # writed( index ); ! 678: 660 0000FF28 dd effffffa7a pushl _index ! 679: 661 0000FF2E fe 08 effffffa73 callf $8,_writed ! 680: 662 0000FF35 # writes("\ninst = LDD op1, MULD op2, MTPR 1,0x40, LDD op3"); ! 681: 663 0000FF35 .data 1 ! 682: 664 00000822 * L462: ! 683: 665 00000822 * 0A696E7374203D204C4444206 .ascii "\12inst = LDD op1, MULD op2, MTPR 1,0x40, LDD op3\0" ! 684: F70312C204D554C44206F7032 ! 685: 2C204D54505220312C3078343 ! 686: 02C204C4444206F703300 ! 687: 666 00000852 * .text ! 688: 667 0000FF35 dd 8f00000822 pushl $L462 ! 689: 668 0000FF3B fe 08 effffffa66 callf $8,_writes ! 690: 669 0000FF42 # writes(" (Reserved Op. fault on the MTPR)\n"); ! 691: 670 0000FF42 .data 1 ! 692: 671 00000852 * L463: ! 693: 672 00000852 * 20285265736572766564204F7 .ascii " (Reserved Op. fault on the MTPR)\12\0" ! 694: 02E206661756C74206F6E2074 ! 695: 6865204D545052290A00 ! 696: 673 00000875 * .text ! 697: 674 0000FF42 dd 8f00000852 pushl $L463 ! 698: 675 0000FF48 fe 08 effffffa59 callf $8,_writes ! 699: 676 0000FF4F # } ! 700: 677 0000FF4F 40 ret#2 ! 701: 678 0000FF50 .set L451,0x0 ! 702: 679 0000FF50 L453: ! 703: 680 0000FF50 13 ff5a jbr L454 ! 704: 681 0000FF53 .data ! 705: 682 000006a8 * .text ! 706: 683 0000FF53 00 .align 1 ! 707: 684 0000FF54 .globl _pipe2_halt ! 708: 685 0000FF54 _pipe2_halt: ! 709: 686 0000FF54 0000 .word L464 ! 710: 687 0000FF56 # ! 711: 688 0000FF56 # ! 712: 689 0000FF56 # /**************************************************************************** ! 713: 690 0000FF56 # * Error Halt Routine ! 714: 691 0000FF56 # ****************************************************************************/ ! 715: 692 0000FF56 # pipe2_halt( code ) ! 716: 693 0000FF56 # int code; /* halt code to use */ ! 717: 694 0000FF56 # { ! 718: 695 0000FF56 13 00f1 jbr L466 ! 719: 696 0000FF59 L467: ! 720: 697 0000FF59 # err_code = code; ! 721: 698 0000FF59 0d ad04 effffffa47 movl 4(fp),_err_code ! 722: 699 0000FF61 # sgl_value_1 = dbl_ld_acc.m; ! 723: 700 0000FF61 0d effffffa41 effffffa3c movl _dbl_ld_acc,_sgl_value_1 ! 724: 701 0000FF6C # sgl_value_2 = dbl_ld_acc.l; ! 725: 702 0000FF6C 0d effffffa3a effffffa31 movl _dbl_ld_acc+4,_sgl_value_2 ! 726: 703 0000FF77 # sgl_value_3 = dbl_value_1.m; ! 727: 704 0000FF77 0d effffffa2b effffffa26 movl _dbl_value_1,_sgl_value_3 ! 728: 705 0000FF82 # sgl_value_4 = dbl_value_1.l; ! 729: 706 0000FF82 0d effffffa24 effffffa1b movl _dbl_value_1+4,_sgl_value_4 ! 730: 707 0000FF8D # asm("movl _test_no,r0"); /* r0 = test number */ ! 731: 708 0000FF8D 0d effffffa15 50 movl _test_no,r0 ! 732: 709 0000FF94 # asm("movl _subtest,r1"); /* r1 = subtest number */ ! 733: 710 0000FF94 0d effffffa0e 51 movl _subtest,r1 ! 734: 711 0000FF9B # asm("movl _err_code,r2"); /* r2 = error code */ ! 735: 712 0000FF9B 0d effffffa07 52 movl _err_code,r2 ! 736: 713 0000FFA2 # asm("movl _cycle,r3"); /* r3 = cycle count */ ! 737: 714 0000FFA2 0d effffffa00 53 movl _cycle,r3 ! 738: 715 0000FFA9 # asm("movl _sgl_value_1,r4"); /* r4 = MSW of operand 1 */ ! 739: 716 0000FFA9 0d effffff9f9 54 movl _sgl_value_1,r4 ! 740: 717 0000FFB0 # asm("movl _sgl_value_2,r5"); /* r5 = LSW of operand 1 */ ! 741: 718 0000FFB0 0d effffff9f2 55 movl _sgl_value_2,r5 ! 742: 719 0000FFB7 # asm("movl _sgl_value_3,r6"); /* r6 = MSW of operand 2 */ ! 743: 720 0000FFB7 0d effffff9eb 56 movl _sgl_value_3,r6 ! 744: 721 0000FFBE # asm("movl _sgl_value_4,r7"); /* r7 = LSW of operand 2 */ ! 745: 722 0000FFBE 0d effffff9e4 57 movl _sgl_value_4,r7 ! 746: 723 0000FFC5 # if( code == 1 ) { ! 747: 724 0000FFC5 1d ad04 01 cmpl 4(fp),$1 ! 748: 725 0000FFC9 21 0a jneq L468 ! 749: 726 0000FFCB # asm("movl _index,r8"); /* r8 = data index */ ! 750: 727 0000FFCB 0d effffff9d7 58 movl _index,r8 ! 751: 728 0000FFD2 # asm("halt"); /* HALT ... */ ! 752: 729 0000FFD2 00 halt ! 753: 730 0000FFD3 # } else { ! 754: 731 0000FFD3 11 73 jbr L469 ! 755: 732 0000FFD5 L468: ! 756: 733 0000FFD5 # sgl_value_1 = post_evt_acc.m; ! 757: 734 0000FFD5 0d effffff9cd effffff9c8 movl _post_evt_acc,_sgl_value_1 ! 758: 735 0000FFE0 # sgl_value_2 = post_evt_acc.l; ! 759: 736 0000FFE0 0d effffff9c6 effffff9bd movl _post_evt_acc+4,_sgl_value_2 ! 760: 737 0000FFEB # sgl_value_3 = dbl_expected.m; ! 761: 738 0000FFEB 0d effffff9b7 effffff9b2 movl _dbl_expected,_sgl_value_3 ! 762: 739 0000FFF6 # sgl_value_4 = dbl_expected.l; ! 763: 740 0000FFF6 0d effffff9b0 effffff9a7 movl _dbl_expected+4,_sgl_value_4 ! 764: 741 00010001 # sgl_value_5 = dbl_value_2.m; ! 765: 742 00010001 0d effffff9a1 effffff99c movl _dbl_value_2,_sgl_value_5 ! 766: 743 0001000C # sgl_value_6 = dbl_value_2.l; ! 767: 744 0001000C 0d effffff99a effffff991 movl _dbl_value_2+4,_sgl_value_6 ! 768: 745 00010017 # asm("movl _sgl_value_1,r8"); /* r8 = MSW of final acc. */ ! 769: 746 00010017 0d effffff98b 58 movl _sgl_value_1,r8 ! 770: 747 0001001E # asm("movl _sgl_value_2,r9"); /* r9 = LSW of final acc. */ ! 771: 748 0001001E 0d effffff984 59 movl _sgl_value_2,r9 ! 772: 749 00010025 # asm("movl _sgl_value_3,r10"); /* r10 = MSW of expected */ ! 773: 750 00010025 0d effffff97d 5a movl _sgl_value_3,r10 ! 774: 751 0001002C # asm("movl _sgl_value_4,r11"); /* r11 = LSW of expected */ ! 775: 752 0001002C 0d effffff976 5b movl _sgl_value_4,r11 ! 776: 753 00010033 # asm("movl _sgl_value_5,r12"); /* r12 = MSW of operand 3 */ ! 777: 754 00010033 0d effffff96f 5c movl _sgl_value_5,r12 ! 778: 755 0001003A # asm("movl _sgl_value_6,r13"); /* r13 = LSW of operand 3 */ ! 779: 756 0001003A 0d effffff968 5d movl _sgl_value_6,r13 ! 780: 757 00010041 # asm("movl _index,r14"); /* r14 = data index */ ! 781: 758 00010041 0d effffff961 5e movl _index,r14 ! 782: 759 00010048 # } ! 783: 760 00010048 L469: ! 784: 761 00010048 # asm("halt"); /* HALT ... */ ! 785: 762 00010048 00 halt ! 786: 763 00010049 # } ! 787: 764 00010049 40 ret#2 ! 788: 765 0001004A .set L464,0x0 ! 789: 766 0001004A L466: ! 790: 767 0001004A 13 ff0c jbr L467 ! 791: 768 0001004D .data ! 792: 768 0001F9F5 .data
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.