|
|
1.1 ! root 1: 1 00000000 LL0: ! 2: 2 00000000 .data ! 3: 3 00000688 * .text ! 4: 4 00000000 .align 1 ! 5: 5 00000000 .globl _pipe14 ! 6: 6 00000000 _pipe14: ! 7: 7 0001386C 0000 .word L381 ! 8: 8 0001386E # ! 9: 9 0001386E # #include "evt_defs.h" ! 10: 10 0001386E # ! 11: 11 0001386E # /* ! 12: 12 0001386E # ********************************************************************* ! 13: 13 0001386E # * FPP PIPELINED EVENTS TEST #14 ! 14: 14 0001386E # * ! 15: 15 0001386E # * This test will execute the following code: "LDD DIVD MULL3 NEGD" ! 16: 16 0001386E # * with an integer overflow fault on the MULL3. We will make sure that: ! 17: 17 0001386E # * 1. The fault is detected, and ! 18: 18 0001386E # * 2. the NEGD instruction is not executed. ! 19: 19 0001386E # * ! 20: 20 0001386E # * NOTE: This instruction uses the same data as pipe1 ! 21: 21 0001386E # ********************************************************************* ! 22: 22 0001386E # */ ! 23: 23 0001386E # pipe14() ! 24: 24 0001386E # { ! 25: 25 0001386E 13 0171 jbr L383 ! 26: 26 00013871 L384: ! 27: 27 00013871 # asm("moval (r13),_pre_event_fp"); /* save the frame pointer */ ! 28: 28 00013871 ed 6d effffffff4 moval (r13),_pre_event_fp ! 29: 29 00013878 # asm("moval (r14),_pre_event_sp"); /* save the stack pointer */ ! 30: 30 00013878 ed 6e efffffffed moval (r14),_pre_event_sp ! 31: 31 0001387F # precision = DBL; ! 32: 32 0001387F 0d 02 efffffffe6 movl $2,_precision ! 33: 33 00013886 # test_event = ARITH_CODE; /* expect an arithmetic fault */ ! 34: 34 00013886 0d 34 efffffffdf movl $52,_test_event ! 35: 35 0001388D # exp_code = INT_OVFL_CODE; /* - specificly underflow */ ! 36: 36 0001388D 0d 01 efffffffd8 movl $1,_exp_code ! 37: 37 00013894 # exp_event = FALSE; /* ... but not yet */ ! 38: 38 00013894 4d efffffffd2 clrl _exp_event ! 39: 39 0001389A # asm("movab _pipe14_ret,_event_return"); /* set event return address */ ! 40: 40 0001389A e9 ef000000d0 efffffffc7 movab _pipe14_ret,_event_return ! 41: 41 000138A5 # for( index = 0; index < max_pipe1_index; index++ ) ! 42: 42 000138A5 4d efffffffc1 clrl _index ! 43: 43 000138AB L387: ! 44: 44 000138AB 1d efffffffbb efffffffb6 cmpl _index,_max_pipe1_index ! 45: 45 000138B6 91 03 13 0126 jgeq L386 ! 46: 46 000138BB # { ! 47: 47 000138BB # dbl_ld_acc = pipe1_data[index].op_1; /* get operand 1 */ ! 48: 48 000138BB 5c 18 efffffffaa 50 mull3 $24,_index,r0 ! 49: 49 000138C3 0c 8f00000000 50 addl2 $_pipe1_data,r0 ! 50: 50 000138CA 0d a004 efffffff9e movl 4(r0),_dbl_ld_acc+4 ! 51: 51 000138D2 0d 60 efffffff93 movl (r0),_dbl_ld_acc ! 52: 52 000138D9 # dbl_value_1 = pipe1_data[index].op_2; /* get operand 2 */ ! 53: 53 000138D9 5c 18 efffffff8c 50 mull3 $24,_index,r0 ! 54: 54 000138E1 0c 8f00000008 50 addl2 $_pipe1_data+8,r0 ! 55: 55 000138E8 0d a004 efffffff80 movl 4(r0),_dbl_value_1+4 ! 56: 56 000138F0 0d 60 efffffff75 movl (r0),_dbl_value_1 ! 57: 57 000138F7 # dbl_expected = pipe1_data[index].exp; /* get expected Acc. */ ! 58: 58 000138F7 5c 18 efffffff6e 50 mull3 $24,_index,r0 ! 59: 59 000138FF 0c 8f00000010 50 addl2 $_pipe1_data+16,r0 ! 60: 60 00013906 0d a004 efffffff62 movl 4(r0),_dbl_expected+4 ! 61: 61 0001390E 0d 60 efffffff57 movl (r0),_dbl_expected ! 62: 62 00013915 # asm("bispsw $0x60"); /* enable ovfl,undfl */ ! 63: 63 00013915 8b 8860 bispsw $0x60 ! 64: 64 00013918 # asm(".globl _pipe14_lp1"); ! 65: 65 00013918 .globl _pipe14_lp1 ! 66: 66 00013918 # asm("_pipe14_lp1:"); ! 67: 67 00013918 _pipe14_lp1: ! 68: 68 00013918 # asm("movl $0x40404040,r0"); /* get the 'mull3' */ ! 69: 69 00013918 0d 8f40404040 50 movl $0x40404040,r0 ! 70: 70 0001391F # asm("movl $0x55005500,r2"); /* data patterns */ ! 71: 71 0001391F 0d 8f55005500 52 movl $0x55005500,r2 ! 72: 72 00013926 # asm("ldd _dbl_ld_acc"); /* load the Acc. */ ! 73: 73 00013926 07 efffffff40 ldd _dbl_ld_acc ! 74: 74 0001392C # exp_event = test_event; /* expect event soon */ ! 75: 75 0001392C 0d efffffff3a efffffff35 movl _test_event,_exp_event ! 76: 76 00013937 # asm("divd _dbl_value_1"); /* do the divide */ ! 77: 77 00013937 f7 efffffff2f divd _dbl_value_1 ! 78: 78 0001393D # asm("mull3 r0,r2,_dbl_value_3"); /* trigger the fault */ ! 79: 79 0001393D 5c 50 52 efffffff27 mull3 r0,r2,_dbl_value_3 ! 80: 80 00013945 # asm("nop"); /* shouldn't get here*/ ! 81: 81 00013945 10 nop ! 82: 82 00013946 # asm("negd"); /* shouldn't get here*/ ! 83: 83 00013946 b7 negd ! 84: 84 00013947 # /* ! 85: 85 00013947 # * If we got to here then there was no event ! 86: 86 00013947 # */ ! 87: 87 00013947 # if( force_loop ) ! 88: 88 00013947 5d efffffff1f tstl _force_loop ! 89: 89 0001394D 31 03 jeql L388 ! 90: 90 0001394F # asm("brw _pipe14_lp1");; /* loop on the error */ ! 91: Assemb0002B570 # asm("brw _pipe14_lp1");; /* loop on the error */ ! 92: "pipe100013870 e 91: WARNING: brw: destination label is external ! 93: 91 0001394F 13 ffc6 brw _pipe14_lp1 ! 94: 92 00013952 L388: ! 95: 93 00013952 # exp_event = FALSE; /* reset event expected flag */ ! 96: 94 00013952 4d efffffff14 clrl _exp_event ! 97: 95 00013958 # asm("movl _pre_event_fp,fp"); /* restore the frame pointer */ ! 98: 96 00013958 0d efffffff0e 5d movl _pre_event_fp,fp ! 99: 97 0001395F # asm("movl _pre_event_sp,sp"); /* restore the stack pointer */ ! 100: 98 0001395F 0d efffffff07 5e movl _pre_event_sp,sp ! 101: 99 00013966 # asm("bicpsw $0x60"); /* disable ovfl & undfl evts */ ! 102: 100 00013966 9b 8860 bicpsw $0x60 ! 103: 101 00013969 # no_pipe14_evt();; /* report the error */ ! 104: 102 00013969 fe 04 ef00000076 callf $4,_no_pipe14_evt ! 105: 103 00013970 # /* ! 106: 104 00013970 # * Come here after the event ! 107: 105 00013970 # */ ! 108: 106 00013970 # asm(".globl _pipe14_ret"); ! 109: 107 00013970 .globl _pipe14_ret ! 110: 108 00013970 # asm("_pipe14_ret:"); ! 111: 109 00013970 _pipe14_ret: ! 112: 110 00013970 # asm("movl _pre_event_fp,fp"); /* restore the frame pointer */ ! 113: 111 00013970 0d effffffef6 5d movl _pre_event_fp,fp ! 114: 112 00013977 # asm("movl _pre_event_sp,sp"); /* restore the stack pointer */ ! 115: 113 00013977 0d effffffeef 5e movl _pre_event_sp,sp ! 116: 114 0001397E # if( force_loop ) ! 117: 115 0001397E 5d effffffee8 tstl _force_loop ! 118: 116 00013984 31 03 jeql L390 ! 119: 117 00013986 # asm("brw _pipe14_lp1");; /* loop on the error */ ! 120: "pipe100013870 e 118: WARNING: brw: destination label is external ! 121: 118 00013986 13 ff8f brw _pipe14_lp1 ! 122: 119 00013989 L390: ! 123: 120 00013989 # asm("bicpsw $0x60"); /* disable ovfl & undfl evts */ ! 124: 121 00013989 9b 8860 bicpsw $0x60 ! 125: 122 0001398C # if( (post_evt_acc.m == (dbl_expected.m ^ 0x80000000)) && ! 126: 123 0001398C # (post_evt_acc.l == dbl_expected.l) ) /* was Acc. negated? */ ! 127: 124 0001398C dc 8f80000000 effffffed5 xorl3 $-2147483648,_dbl_expected,r0 ! 128: 50 ! 129: 125 00013998 1d effffffece 50 cmpl _post_evt_acc,r0 ! 130: 126 0001399F 21 16 jneq L391 ! 131: 127 000139A1 1d effffffec9 effffffec4 cmpl _post_evt_acc+4,_dbl_expected+4 ! 132: 128 000139AC 21 09 jneq L391 ! 133: 129 000139AE # pipe14_queue_er(); /* queue not cleared error */ ! 134: 130 000139AE fe 04 ef00000273 callf $4,_pipe14_queue_er ! 135: 131 000139B5 # else if( (post_evt_acc.m != dbl_expected.m) || ! 136: 132 000139B5 11 21 jbr L393 ! 137: 133 000139B7 L391: ! 138: 134 000139B7 # (post_evt_acc.l != dbl_expected.l) ) /* Acc. = exp.? */ ! 139: 135 000139B7 1d effffffeaf effffffeaa cmpl _post_evt_acc,_dbl_expected ! 140: 136 000139C2 21 0d jneq L9999 ! 141: 137 000139C4 1d effffffea6 effffffea1 cmpl _post_evt_acc+4,_dbl_expected+4 ! 142: 138 000139CF 31 07 jeql L394 ! 143: 139 000139D1 L9999: ! 144: 140 000139D1 # bad_pipe14_result(); /* incorrect result error */ ! 145: 141 000139D1 fe 04 ef000000f8 callf $4,_bad_pipe14_result ! 146: 142 000139D8 # ! 147: 143 000139D8 # } ! 148: 144 000139D8 L394: ! 149: 145 000139D8 L393: ! 150: 146 000139D8 L385: ! 151: 147 000139D8 6d effffffe8e incl _index ! 152: 148 000139DE 13 feca jbr L387 ! 153: 149 000139E1 L386: ! 154: 150 000139E1 # } ! 155: 151 000139E1 40 ret#2 ! 156: 152 000139E2 .set L381,0x0 ! 157: 153 000139E2 L383: ! 158: 154 000139E2 13 fe8c jbr L384 ! 159: 155 000139E5 .data ! 160: 156 00000688 * .text ! 161: 157 000139E5 00 .align 1 ! 162: 158 000139E6 .globl _no_pipe14_evt ! 163: 159 000139E6 _no_pipe14_evt: ! 164: 160 000139E6 0000 .word L396 ! 165: 161 000139E8 # ! 166: 162 000139E8 # ! 167: 163 000139E8 # ! 168: 164 000139E8 # /**************************************************************************** ! 169: 165 000139E8 # * Report an "EVENT NOT DETECTED" error ! 170: 166 000139E8 # * ! 171: 167 000139E8 # * Cycle: xx. EVT test xx. subtest xx. No overflow fault seen. index = xx ! 172: 168 000139E8 # * inst = LDD op1; DIVD op2; MULL3,op3,op4,op5; NEGD (integer overflow on MULL3) ! 173: 169 000139E8 # * op1 = xxxxxxxx xxxxxxxx, op3 = xxxxxxxx ! 174: 170 000139E8 # * op2 = xxxxxxxx xxxxxxxx, op4 = xxxxxxxx ! 175: 171 000139E8 # ****************************************************************************/ ! 176: 172 000139E8 # no_pipe14_evt() ! 177: 173 000139E8 # { ! 178: 174 000139E8 13 00e2 jbr L398 ! 179: 175 000139EB L399: ! 180: 176 000139EB # errcnt++; /* bump the error count */ ! 181: 177 000139EB 6d effffffe7b incl _errcnt ! 182: 178 000139F1 # if ( prt_error ) ! 183: 179 000139F1 5d effffffe75 tstl _prt_error ! 184: 180 000139F7 21 03 13 00aa jeql L400 ! 185: 181 000139FC # { ! 186: 182 000139FC # print_pipe14_er( ". No overflow fault seen." ); ! 187: 183 000139FC .data 1 ! 188: 184 00000688 * L402: ! 189: 185 00000688 * 2E204E6F206F766572666C6F7 .ascii ". No overflow fault seen.\0" ! 190: 7206661756C74207365656E2E ! 191: 00 ! 192: 186 000006a2 * .text ! 193: 187 000139FC dd 8f00000688 pushl $L402 ! 194: 188 00013A02 fe 08 ef00000377 callf $8,_print_pipe14_er ! 195: 189 00013A09 # writes("op1 = "); ! 196: 190 00013A09 .data 1 ! 197: 191 000006a2 * L404: ! 198: 192 000006a2 * 6F7031203D2000 .ascii "op1 = \0" ! 199: 193 000006a9 * .text ! 200: 194 00013A09 dd 8f000006a2 pushl $L404 ! 201: 195 00013A0F fe 08 effffffe56 callf $8,_writes ! 202: 196 00013A16 # write32h( dbl_ld_acc.m ); ! 203: 197 00013A16 dd effffffe50 pushl _dbl_ld_acc ! 204: 198 00013A1C fe 08 effffffe49 callf $8,_write32h ! 205: 199 00013A23 # writec(' '); ! 206: 200 00013A23 dd 20 pushl $32 ! 207: 201 00013A25 fe 08 effffffe40 callf $8,_writec ! 208: 202 00013A2C # write32h( dbl_ld_acc.l ); ! 209: 203 00013A2C dd effffffe3e pushl _dbl_ld_acc+4 ! 210: 204 00013A32 fe 08 effffffe33 callf $8,_write32h ! 211: 205 00013A39 # writes(", op3 = "); ! 212: 206 00013A39 .data 1 ! 213: 207 000006a9 * L407: ! 214: 208 000006a9 * 2C2020206F7033203D2000 .ascii ", op3 = \0" ! 215: 209 000006b4 * .text ! 216: 210 00013A39 dd 8f000006a9 pushl $L407 ! 217: 211 00013A3F fe 08 effffffe26 callf $8,_writes ! 218: 212 00013A46 # write32h( 0x40404040 ); ! 219: 213 00013A46 dd 8f40404040 pushl $1077952576 ! 220: 214 00013A4C fe 08 effffffe19 callf $8,_write32h ! 221: 215 00013A53 # writes("\nop2 = "); ! 222: 216 00013A53 .data 1 ! 223: 217 000006b4 * L408: ! 224: 218 000006b4 * 0A6F7032203D2000 .ascii "\12op2 = \0" ! 225: 219 000006bc * .text ! 226: 220 00013A53 dd 8f000006b4 pushl $L408 ! 227: 221 00013A59 fe 08 effffffe0c callf $8,_writes ! 228: 222 00013A60 # write32h( dbl_value_1.m ); ! 229: 223 00013A60 dd effffffe06 pushl _dbl_value_1 ! 230: 224 00013A66 fe 08 effffffdff callf $8,_write32h ! 231: 225 00013A6D # writec(' '); ! 232: 226 00013A6D dd 20 pushl $32 ! 233: 227 00013A6F fe 08 effffffdf6 callf $8,_writec ! 234: 228 00013A76 # write32h( dbl_value_1.l ); ! 235: 229 00013A76 dd effffffdf4 pushl _dbl_value_1+4 ! 236: 230 00013A7C fe 08 effffffde9 callf $8,_write32h ! 237: 231 00013A83 # writes(", op4 = "); ! 238: 232 00013A83 .data 1 ! 239: 233 000006bc * L409: ! 240: 234 000006bc * 2C2020206F7034203D2000 .ascii ", op4 = \0" ! 241: 235 000006c7 * .text ! 242: 236 00013A83 dd 8f000006bc pushl $L409 ! 243: 237 00013A89 fe 08 effffffddc callf $8,_writes ! 244: 238 00013A90 # write32h( 0x55005500 ); ! 245: 239 00013A90 dd 8f55005500 pushl $1426085120 ! 246: 240 00013A96 fe 08 effffffdcf callf $8,_write32h ! 247: 241 00013A9D # writec('\n'); ! 248: 242 00013A9D dd 0a pushl $10 ! 249: 243 00013A9F fe 08 effffffdc6 callf $8,_writec ! 250: 244 00013AA6 # } ! 251: 245 00013AA6 # if ( halt_flg ) /* halt on error? */ ! 252: 246 00013AA6 L400: ! 253: 247 00013AA6 5d effffffdc0 tstl _halt_flg ! 254: 248 00013AAC 31 09 jeql L410 ! 255: 249 00013AAE # pipe14_halt( 1 ); /* halt with a code of 1 */ ! 256: 250 00013AAE dd 01 pushl $1 ! 257: 251 00013AB0 fe 08 ef00000375 callf $8,_pipe14_halt ! 258: 252 00013AB7 # if ( loop_on_err ) ! 259: 253 00013AB7 L410: ! 260: 254 00013AB7 5d effffffdaf tstl _loop_on_err ! 261: 255 00013ABD 31 0d jeql L412 ! 262: 256 00013ABF # { ! 263: 257 00013ABF # force_loop = TRUE; /* set the force loop flag */ ! 264: 258 00013ABF 0d 01 effffffda6 movl $1,_force_loop ! 265: 259 00013AC6 # asm("jmp _pipe14_lp1"); /* and loop */ ! 266: 260 00013AC6 71 effffffe4c jmp _pipe14_lp1 ! 267: 261 00013ACC # }; ! 268: 262 00013ACC L412: ! 269: 263 00013ACC # } ! 270: 264 00013ACC 40 ret#2 ! 271: 265 00013ACD .set L396,0x0 ! 272: 266 00013ACD L398: ! 273: 267 00013ACD 13 ff1b jbr L399 ! 274: 268 00013AD0 .data ! 275: 269 00000688 * .text ! 276: 270 00013AD0 .align 1 ! 277: 271 00013AD0 .globl _bad_pipe14_result ! 278: 272 00013AD0 _bad_pipe14_result: ! 279: 273 00013AD0 0000 .word L413 ! 280: 274 00013AD2 # ! 281: 275 00013AD2 # ! 282: 276 00013AD2 # ! 283: 277 00013AD2 # ! 284: 278 00013AD2 # /**************************************************************************** ! 285: 279 00013AD2 # * Report an "BAD ACCUMULATOR AFTER THE EVENT" error ! 286: 280 00013AD2 # * ! 287: 281 00013AD2 # * Cycle: xx. EVT test xx. subtest xx. Bad final Accumulator. indexd = xx ! 288: 282 00013AD2 # * inst = LDD op1; DIVD op2; MULL3,op3,op4,op5; NEGD (integer overflow on MULL3) ! 289: 283 00013AD2 # * The NEGD instruction should not be executed. ! 290: 284 00013AD2 # * op1 = xxxxxxxx xxxxxxxx, final Acc. = xxxxxxxx xxxxxxxx, op3 = xxxxxxxx ! 291: 285 00013AD2 # * op2 = xxxxxxxx xxxxxxxx, expected = xxxxxxxx xxxxxxxx, op4 = xxxxxxxx ! 292: 286 00013AD2 # ****************************************************************************/ ! 293: 287 00013AD2 # bad_pipe14_result() ! 294: 288 00013AD2 # { ! 295: 289 00013AD2 13 014f jbr L415 ! 296: 290 00013AD5 L416: ! 297: 291 00013AD5 # errcnt++; /* bump the error count */ ! 298: 292 00013AD5 6d effffffd91 incl _errcnt ! 299: 293 00013ADB # if ( prt_error ) ! 300: 294 00013ADB 5d effffffd8b tstl _prt_error ! 301: 295 00013AE1 21 03 13 0117 jeql L417 ! 302: 296 00013AE6 # { ! 303: 297 00013AE6 # print_pipe14_er( ". Bad final Accumulator" ); ! 304: 298 00013AE6 .data 1 ! 305: 299 000006c7 * L418: ! 306: 300 000006c7 * 2E204261642066696E616C204 .ascii ". Bad final Accumulator\0" ! 307: 16363756D756C61746F7200 ! 308: 301 000006df * .text ! 309: 302 00013AE6 dd 8f000006c7 pushl $L418 ! 310: 303 00013AEC fe 08 ef0000028d callf $8,_print_pipe14_er ! 311: 304 00013AF3 # writes( ! 312: 305 00013AF3 # "The NEGD INSTRUCTION should not be executed\n"); ! 313: 306 00013AF3 .data 1 ! 314: 307 000006df * L419: ! 315: 308 000006df * 546865204E45474420494E535 .ascii "The NEGD INSTRUCTION should not be executed\12\0" ! 316: 452554354494F4E2073686F75 ! 317: 6C64206E6F742062652065786 ! 318: 563757465640A00 ! 319: 309 0000070c * .text ! 320: 310 00013AF3 dd 8f000006df pushl $L419 ! 321: 311 00013AF9 fe 08 effffffd6c callf $8,_writes ! 322: 312 00013B00 # writes("op1 = "); ! 323: 313 00013B00 .data 1 ! 324: 314 0000070c * L420: ! 325: 315 0000070c * 6F7031203D2000 .ascii "op1 = \0" ! 326: 316 00000713 * .text ! 327: 317 00013B00 dd 8f0000070c pushl $L420 ! 328: 318 00013B06 fe 08 effffffd5f callf $8,_writes ! 329: 319 00013B0D # write32h( dbl_ld_acc.m ); ! 330: 320 00013B0D dd effffffd59 pushl _dbl_ld_acc ! 331: 321 00013B13 fe 08 effffffd52 callf $8,_write32h ! 332: 322 00013B1A # writec(' '); ! 333: 323 00013B1A dd 20 pushl $32 ! 334: 324 00013B1C fe 08 effffffd49 callf $8,_writec ! 335: 325 00013B23 # write32h( dbl_ld_acc.l ); ! 336: 326 00013B23 dd effffffd47 pushl _dbl_ld_acc+4 ! 337: 327 00013B29 fe 08 effffffd3c callf $8,_write32h ! 338: 328 00013B30 # writes(", final Acc. = "); ! 339: 329 00013B30 .data 1 ! 340: 330 00000713 * L421: ! 341: 331 00000713 * 2C202066696E616C204163632 .ascii ", final Acc. = \0" ! 342: E203D2000 ! 343: 332 00000724 * .text ! 344: 333 00013B30 dd 8f00000713 pushl $L421 ! 345: 334 00013B36 fe 08 effffffd2f callf $8,_writes ! 346: 335 00013B3D # write32h( post_evt_acc.m ); ! 347: 336 00013B3D dd effffffd29 pushl _post_evt_acc ! 348: 337 00013B43 fe 08 effffffd22 callf $8,_write32h ! 349: 338 00013B4A # writec(' '); ! 350: 339 00013B4A dd 20 pushl $32 ! 351: 340 00013B4C fe 08 effffffd19 callf $8,_writec ! 352: 341 00013B53 # write32h( post_evt_acc.l ); ! 353: 342 00013B53 dd effffffd17 pushl _post_evt_acc+4 ! 354: 343 00013B59 fe 08 effffffd0c callf $8,_write32h ! 355: 344 00013B60 # writes(", op3 = "); ! 356: 345 00013B60 .data 1 ! 357: 346 00000724 * L422: ! 358: 347 00000724 * 2C20206F7033203D2000 .ascii ", op3 = \0" ! 359: 348 0000072e * .text ! 360: 349 00013B60 dd 8f00000724 pushl $L422 ! 361: 350 00013B66 fe 08 effffffcff callf $8,_writes ! 362: 351 00013B6D # write32h( 0x40404040 ); ! 363: 352 00013B6D dd 8f40404040 pushl $1077952576 ! 364: 353 00013B73 fe 08 effffffcf2 callf $8,_write32h ! 365: 354 00013B7A # writes("\nop2 = "); ! 366: 355 00013B7A .data 1 ! 367: 356 0000072e * L423: ! 368: 357 0000072e * 0A6F7032203D2000 .ascii "\12op2 = \0" ! 369: 358 00000736 * .text ! 370: 359 00013B7A dd 8f0000072e pushl $L423 ! 371: 360 00013B80 fe 08 effffffce5 callf $8,_writes ! 372: 361 00013B87 # write32h( dbl_value_1.m ); ! 373: 362 00013B87 dd effffffcdf pushl _dbl_value_1 ! 374: 363 00013B8D fe 08 effffffcd8 callf $8,_write32h ! 375: 364 00013B94 # writec(' '); ! 376: 365 00013B94 dd 20 pushl $32 ! 377: 366 00013B96 fe 08 effffffccf callf $8,_writec ! 378: 367 00013B9D # write32h( dbl_value_1.l ); ! 379: 368 00013B9D dd effffffccd pushl _dbl_value_1+4 ! 380: 369 00013BA3 fe 08 effffffcc2 callf $8,_write32h ! 381: 370 00013BAA # writes(", expected = "); ! 382: 371 00013BAA .data 1 ! 383: 372 00000736 * L424: ! 384: 373 00000736 * 2C20202020657870656374656 .ascii ", expected = \0" ! 385: 4203D2000 ! 386: 374 00000747 * .text ! 387: 375 00013BAA dd 8f00000736 pushl $L424 ! 388: 376 00013BB0 fe 08 effffffcb5 callf $8,_writes ! 389: 377 00013BB7 # write32h( dbl_expected.m ); ! 390: 378 00013BB7 dd effffffcaf pushl _dbl_expected ! 391: 379 00013BBD fe 08 effffffca8 callf $8,_write32h ! 392: 380 00013BC4 # writec(' '); ! 393: 381 00013BC4 dd 20 pushl $32 ! 394: 382 00013BC6 fe 08 effffffc9f callf $8,_writec ! 395: 383 00013BCD # write32h( dbl_expected.l ); ! 396: 384 00013BCD dd effffffc9d pushl _dbl_expected+4 ! 397: 385 00013BD3 fe 08 effffffc92 callf $8,_write32h ! 398: 386 00013BDA # writes(", op4 = "); ! 399: 387 00013BDA .data 1 ! 400: 388 00000747 * L425: ! 401: 389 00000747 * 2C20206F7034203D2000 .ascii ", op4 = \0" ! 402: 390 00000751 * .text ! 403: 391 00013BDA dd 8f00000747 pushl $L425 ! 404: 392 00013BE0 fe 08 effffffc85 callf $8,_writes ! 405: 393 00013BE7 # write32h( 0x55005500 ); ! 406: 394 00013BE7 dd 8f55005500 pushl $1426085120 ! 407: 395 00013BED fe 08 effffffc78 callf $8,_write32h ! 408: 396 00013BF4 # writec('\n'); ! 409: 397 00013BF4 dd 0a pushl $10 ! 410: 398 00013BF6 fe 08 effffffc6f callf $8,_writec ! 411: 399 00013BFD # } ! 412: 400 00013BFD # if ( halt_flg ) /* halt on error? */ ! 413: 401 00013BFD L417: ! 414: 402 00013BFD 5d effffffc69 tstl _halt_flg ! 415: 403 00013C03 31 09 jeql L426 ! 416: 404 00013C05 # pipe14_halt( 2 ); /* halt with a code of 2 */ ! 417: 405 00013C05 dd 02 pushl $2 ! 418: 406 00013C07 fe 08 ef0000021e callf $8,_pipe14_halt ! 419: 407 00013C0E # if ( loop_on_err ) ! 420: 408 00013C0E L426: ! 421: 409 00013C0E 5d effffffc58 tstl _loop_on_err ! 422: 410 00013C14 31 0d jeql L427 ! 423: 411 00013C16 # { ! 424: 412 00013C16 # force_loop = TRUE; /* set the force loop flag */ ! 425: 413 00013C16 0d 01 effffffc4f movl $1,_force_loop ! 426: 414 00013C1D # asm("jmp _pipe14_lp1"); /* and loop */ ! 427: 415 00013C1D 71 effffffcf5 jmp _pipe14_lp1 ! 428: 416 00013C23 # }; ! 429: 417 00013C23 L427: ! 430: 418 00013C23 # } ! 431: 419 00013C23 40 ret#2 ! 432: 420 00013C24 .set L413,0x0 ! 433: 421 00013C24 L415: ! 434: 422 00013C24 13 feae jbr L416 ! 435: 423 00013C27 .data ! 436: 424 00000688 * .text ! 437: 425 00013C27 00 .align 1 ! 438: 426 00013C28 .globl _pipe14_queue_er ! 439: 427 00013C28 _pipe14_queue_er: ! 440: 428 00013C28 0000 .word L428 ! 441: 429 00013C2A # ! 442: 430 00013C2A # ! 443: 431 00013C2A # ! 444: 432 00013C2A # ! 445: 433 00013C2A # ! 446: 434 00013C2A # /**************************************************************************** ! 447: 435 00013C2A # * Report an "FPP queue not cleared" message ! 448: 436 00013C2A # * ! 449: 437 00013C2A # * Cycle: xx. EVT test xx. subtest xx. Fpp queue not cleared. index = xx ! 450: 438 00013C2A # * inst = LDD op1; DIVD op2; MULL3,op3,op4,op5; NEGD (integer overflow on MULL3) ! 451: 439 00013C2A # * The NEGD instruction was apparently executed. ! 452: 440 00013C2A # * op1 = xxxxxxxx xxxxxxxx, final Acc. = xxxxxxxx xxxxxxxx, op3 = xxxxxxxx ! 453: 441 00013C2A # * op2 = xxxxxxxx xxxxxxxx, expected = xxxxxxxx xxxxxxxx, op4 = xxxxxxxx ! 454: 442 00013C2A # ****************************************************************************/ ! 455: 443 00013C2A # pipe14_queue_er() ! 456: 444 00013C2A # { ! 457: 445 00013C2A 13 014f jbr L430 ! 458: 446 00013C2D L431: ! 459: 447 00013C2D # errcnt++; /* bump the error count */ ! 460: 448 00013C2D 6d effffffc39 incl _errcnt ! 461: 449 00013C33 # if ( prt_error ) ! 462: 450 00013C33 5d effffffc33 tstl _prt_error ! 463: 451 00013C39 21 03 13 0117 jeql L432 ! 464: 452 00013C3E # { ! 465: 453 00013C3E # print_pipe14_er( ". Fpp queue not cleared" ); ! 466: 454 00013C3E .data 1 ! 467: 455 00000751 * L433: ! 468: 456 00000751 * 2E20467070207175657565206 .ascii ". Fpp queue not cleared\0" ! 469: E6F7420636C656172656400 ! 470: 457 00000769 * .text ! 471: 458 00013C3E dd 8f00000751 pushl $L433 ! 472: 459 00013C44 fe 08 ef00000135 callf $8,_print_pipe14_er ! 473: 460 00013C4B # writes( ! 474: 461 00013C4B # "The 2nd load double instruction was apparently executed.\n"); ! 475: 462 00013C4B .data 1 ! 476: 463 00000769 * L434: ! 477: 464 00000769 * 54686520326E64206C6F61642 .ascii "The 2nd load double instruction was apparently executed.\12\0" ! 478: 0646F75626C6520696E737472 ! 479: 756374696F6E2077617320617 ! 480: 0706172656E746C7920657865 ! 481: 63757465642E0A00 ! 482: 465 000007a3 * .text ! 483: 466 00013C4B dd 8f00000769 pushl $L434 ! 484: 467 00013C51 fe 08 effffffc14 callf $8,_writes ! 485: 468 00013C58 # writes("op1 = "); ! 486: 469 00013C58 .data 1 ! 487: 470 000007a3 * L435: ! 488: 471 000007a3 * 6F7031203D2000 .ascii "op1 = \0" ! 489: 472 000007aa * .text ! 490: 473 00013C58 dd 8f000007a3 pushl $L435 ! 491: 474 00013C5E fe 08 effffffc07 callf $8,_writes ! 492: 475 00013C65 # write32h( dbl_ld_acc.m ); ! 493: 476 00013C65 dd effffffc01 pushl _dbl_ld_acc ! 494: 477 00013C6B fe 08 effffffbfa callf $8,_write32h ! 495: 478 00013C72 # writec(' '); ! 496: 479 00013C72 dd 20 pushl $32 ! 497: 480 00013C74 fe 08 effffffbf1 callf $8,_writec ! 498: 481 00013C7B # write32h( dbl_ld_acc.l ); ! 499: 482 00013C7B dd effffffbef pushl _dbl_ld_acc+4 ! 500: 483 00013C81 fe 08 effffffbe4 callf $8,_write32h ! 501: 484 00013C88 # writes(", final Acc. = "); ! 502: 485 00013C88 .data 1 ! 503: 486 000007aa * L436: ! 504: 487 000007aa * 2C202066696E616C204163632 .ascii ", final Acc. = \0" ! 505: E203D2000 ! 506: 488 000007bb * .text ! 507: 489 00013C88 dd 8f000007aa pushl $L436 ! 508: 490 00013C8E fe 08 effffffbd7 callf $8,_writes ! 509: 491 00013C95 # write32h( post_evt_acc.m ); ! 510: 492 00013C95 dd effffffbd1 pushl _post_evt_acc ! 511: 493 00013C9B fe 08 effffffbca callf $8,_write32h ! 512: 494 00013CA2 # writec(' '); ! 513: 495 00013CA2 dd 20 pushl $32 ! 514: 496 00013CA4 fe 08 effffffbc1 callf $8,_writec ! 515: 497 00013CAB # write32h( post_evt_acc.l ); ! 516: 498 00013CAB dd effffffbbf pushl _post_evt_acc+4 ! 517: 499 00013CB1 fe 08 effffffbb4 callf $8,_write32h ! 518: 500 00013CB8 # writes(", op3 = "); ! 519: 501 00013CB8 .data 1 ! 520: 502 000007bb * L437: ! 521: 503 000007bb * 2C20206F7033203D2000 .ascii ", op3 = \0" ! 522: 504 000007c5 * .text ! 523: 505 00013CB8 dd 8f000007bb pushl $L437 ! 524: 506 00013CBE fe 08 effffffba7 callf $8,_writes ! 525: 507 00013CC5 # write32h( 0x40404040 ); ! 526: 508 00013CC5 dd 8f40404040 pushl $1077952576 ! 527: 509 00013CCB fe 08 effffffb9a callf $8,_write32h ! 528: 510 00013CD2 # writes("\nop2 = "); ! 529: 511 00013CD2 .data 1 ! 530: 512 000007c5 * L438: ! 531: 513 000007c5 * 0A6F7032203D2000 .ascii "\12op2 = \0" ! 532: 514 000007cd * .text ! 533: 515 00013CD2 dd 8f000007c5 pushl $L438 ! 534: 516 00013CD8 fe 08 effffffb8d callf $8,_writes ! 535: 517 00013CDF # write32h( dbl_value_1.m ); ! 536: 518 00013CDF dd effffffb87 pushl _dbl_value_1 ! 537: 519 00013CE5 fe 08 effffffb80 callf $8,_write32h ! 538: 520 00013CEC # writec(' '); ! 539: 521 00013CEC dd 20 pushl $32 ! 540: 522 00013CEE fe 08 effffffb77 callf $8,_writec ! 541: 523 00013CF5 # write32h( dbl_value_1.l ); ! 542: 524 00013CF5 dd effffffb75 pushl _dbl_value_1+4 ! 543: 525 00013CFB fe 08 effffffb6a callf $8,_write32h ! 544: 526 00013D02 # writes(", expected = "); ! 545: 527 00013D02 .data 1 ! 546: 528 000007cd * L439: ! 547: 529 000007cd * 2C20202020657870656374656 .ascii ", expected = \0" ! 548: 4203D2000 ! 549: 530 000007de * .text ! 550: 531 00013D02 dd 8f000007cd pushl $L439 ! 551: 532 00013D08 fe 08 effffffb5d callf $8,_writes ! 552: 533 00013D0F # write32h( dbl_expected.m ); ! 553: 534 00013D0F dd effffffb57 pushl _dbl_expected ! 554: 535 00013D15 fe 08 effffffb50 callf $8,_write32h ! 555: 536 00013D1C # writec(' '); ! 556: 537 00013D1C dd 20 pushl $32 ! 557: 538 00013D1E fe 08 effffffb47 callf $8,_writec ! 558: 539 00013D25 # write32h( dbl_expected.l ); ! 559: 540 00013D25 dd effffffb45 pushl _dbl_expected+4 ! 560: 541 00013D2B fe 08 effffffb3a callf $8,_write32h ! 561: 542 00013D32 # writes(", op4 = "); ! 562: 543 00013D32 .data 1 ! 563: 544 000007de * L440: ! 564: 545 000007de * 2C20206F7034203D2000 .ascii ", op4 = \0" ! 565: 546 000007e8 * .text ! 566: 547 00013D32 dd 8f000007de pushl $L440 ! 567: 548 00013D38 fe 08 effffffb2d callf $8,_writes ! 568: 549 00013D3F # write32h( 0x55005500 ); ! 569: 550 00013D3F dd 8f55005500 pushl $1426085120 ! 570: 551 00013D45 fe 08 effffffb20 callf $8,_write32h ! 571: 552 00013D4C # writec('\n'); ! 572: 553 00013D4C dd 0a pushl $10 ! 573: 554 00013D4E fe 08 effffffb17 callf $8,_writec ! 574: 555 00013D55 # } ! 575: 556 00013D55 # if ( halt_flg ) /* halt on error? */ ! 576: 557 00013D55 L432: ! 577: 558 00013D55 5d effffffb11 tstl _halt_flg ! 578: 559 00013D5B 31 09 jeql L441 ! 579: 560 00013D5D # pipe14_halt( 3 ); /* halt with a code of 3 */ ! 580: 561 00013D5D dd 03 pushl $3 ! 581: 562 00013D5F fe 08 ef000000c6 callf $8,_pipe14_halt ! 582: 563 00013D66 # if ( loop_on_err ) ! 583: 564 00013D66 L441: ! 584: 565 00013D66 5d effffffb00 tstl _loop_on_err ! 585: 566 00013D6C 31 0d jeql L442 ! 586: 567 00013D6E # { ! 587: 568 00013D6E # force_loop = TRUE; /* set the force loop flag */ ! 588: 569 00013D6E 0d 01 effffffaf7 movl $1,_force_loop ! 589: 570 00013D75 # asm("jmp _pipe14_lp1"); /* and loop */ ! 590: 571 00013D75 71 effffffb9d jmp _pipe14_lp1 ! 591: 572 00013D7B # }; ! 592: 573 00013D7B L442: ! 593: 574 00013D7B # } ! 594: 575 00013D7B 40 ret#2 ! 595: 576 00013D7C .set L428,0x0 ! 596: 577 00013D7C L430: ! 597: 578 00013D7C 13 feae jbr L431 ! 598: 579 00013D7F .data ! 599: 580 00000688 * .text ! 600: 581 00013D7F 00 .align 1 ! 601: 582 00013D80 .globl _print_pipe14_er ! 602: 583 00013D80 _print_pipe14_er: ! 603: 584 00013D80 0000 .word L443 ! 604: 585 00013D82 # ! 605: 586 00013D82 # ! 606: 587 00013D82 # ! 607: 588 00013D82 # ! 608: 589 00013D82 # /**************************************************************************** ! 609: 590 00013D82 # * Report an error message of the form: ! 610: 591 00013D82 # * ! 611: 592 00013D82 # * Cycle: xx. EVT test xx. subtest xx. <your message here> index = xx ! 612: 593 00013D82 # * inst = LDD op1; DIVD op2; MULL3,op3,op4,op5; NEGD (integer overflow on MULL3) ! 613: 594 00013D82 # ****************************************************************************/ ! 614: 595 00013D82 # print_pipe14_er( msg ) ! 615: 596 00013D82 # char *msg; /* error message to print */ ! 616: 597 00013D82 # { ! 617: 598 00013D82 13 00a3 jbr L445 ! 618: 599 00013D85 L446: ! 619: 600 00013D85 # if( errcnt == 1 ) /* 1st error? */ ! 620: 601 00013D85 1d effffffae1 01 cmpl _errcnt,$1 ! 621: 602 00013D8C 21 0d jneq L447 ! 622: 603 00013D8E # writes("\n\n"); /* start a new print line */ ! 623: 604 00013D8E .data 1 ! 624: 605 000007e8 * L448: ! 625: 606 000007e8 * 0A0A00 .ascii "\12\12\0" ! 626: 607 000007eb * .text ! 627: 608 00013D8E dd 8f000007e8 pushl $L448 ! 628: 609 00013D94 fe 08 effffffad1 callf $8,_writes ! 629: 610 00013D9B # writes("Cycle: "); ! 630: 611 00013D9B L447: ! 631: 612 00013D9B .data 1 ! 632: 613 000007eb * L449: ! 633: 614 000007eb * 4379636C653A2000 .ascii "Cycle: \0" ! 634: 615 000007f3 * .text ! 635: 616 00013D9B dd 8f000007eb pushl $L449 ! 636: 617 00013DA1 fe 08 effffffac4 callf $8,_writes ! 637: 618 00013DA8 # writed( cycle ); ! 638: 619 00013DA8 dd effffffabe pushl _cycle ! 639: 620 00013DAE fe 08 effffffab7 callf $8,_writed ! 640: 621 00013DB5 # writes(" EVT test "); ! 641: 622 00013DB5 .data 1 ! 642: 623 000007f3 * L451: ! 643: 624 000007f3 * 202045565420746573742000 .ascii " EVT test \0" ! 644: 625 000007ff * .text ! 645: 626 00013DB5 dd 8f000007f3 pushl $L451 ! 646: 627 00013DBB fe 08 effffffaaa callf $8,_writes ! 647: 628 00013DC2 # writed( test_no ); ! 648: 629 00013DC2 dd effffffaa4 pushl _test_no ! 649: 630 00013DC8 fe 08 effffffa9d callf $8,_writed ! 650: 631 00013DCF # writes(". subtest "); ! 651: 632 00013DCF .data 1 ! 652: 633 000007ff * L452: ! 653: 634 000007ff * 2E20737562746573742000 .ascii ". subtest \0" ! 654: 635 0000080a * .text ! 655: 636 00013DCF dd 8f000007ff pushl $L452 ! 656: 637 00013DD5 fe 08 effffffa90 callf $8,_writes ! 657: 638 00013DDC # writed( subtest ); ! 658: 639 00013DDC dd effffffa8a pushl _subtest ! 659: 640 00013DE2 fe 08 effffffa83 callf $8,_writed ! 660: 641 00013DE9 # writes( msg ); /* print the message */ ! 661: 642 00013DE9 dd ad04 pushl 4(fp) ! 662: 643 00013DEC fe 08 effffffa79 callf $8,_writes ! 663: 644 00013DF3 # writes(" index = "); ! 664: 645 00013DF3 .data 1 ! 665: 646 0000080a * L453: ! 666: 647 0000080a * 20696E646578203D2000 .ascii " index = \0" ! 667: 648 00000814 * .text ! 668: 649 00013DF3 dd 8f0000080a pushl $L453 ! 669: 650 00013DF9 fe 08 effffffa6c callf $8,_writes ! 670: 651 00013E00 # writed( index ); ! 671: 652 00013E00 dd effffffa66 pushl _index ! 672: 653 00013E06 fe 08 effffffa5f callf $8,_writed ! 673: 654 00013E0D # writes("\ninst = LDD op1; DIVD op2; MULL3,op3,op4,op5; NEGD"); ! 674: 655 00013E0D .data 1 ! 675: 656 00000814 * L454: ! 676: 657 00000814 * 0A696E7374203D204C4444206 .ascii "\12inst = LDD op1; DIVD op2; MULL3,op3,op4,op5; NEGD\0" ! 677: F70313B2044495644206F7032 ! 678: 3B204D554C4C332C6F70332C6 ! 679: F70342C6F70353B204E454744 ! 680: 00 ! 681: 658 00000847 * .text ! 682: 659 00013E0D dd 8f00000814 pushl $L454 ! 683: 660 00013E13 fe 08 effffffa52 callf $8,_writes ! 684: 661 00013E1A # writes(" (integer overflow on MULL3)\n"); ! 685: 662 00013E1A .data 1 ! 686: 663 00000847 * L455: ! 687: 664 00000847 * 2028696E7465676572206F766 .ascii " (integer overflow on MULL3)\12\0" ! 688: 572666C6F77206F6E204D554C ! 689: 4C33290A00 ! 690: 665 00000865 * .text ! 691: 666 00013E1A dd 8f00000847 pushl $L455 ! 692: 667 00013E20 fe 08 effffffa45 callf $8,_writes ! 693: 668 00013E27 # } ! 694: 669 00013E27 40 ret#2 ! 695: 670 00013E28 .set L443,0x0 ! 696: 671 00013E28 L445: ! 697: 672 00013E28 13 ff5a jbr L446 ! 698: 673 00013E2B .data ! 699: 674 00000688 * .text ! 700: 675 00013E2B 00 .align 1 ! 701: 676 00013E2C .globl _pipe14_halt ! 702: 677 00013E2C _pipe14_halt: ! 703: 678 00013E2C 0000 .word L456 ! 704: 679 00013E2E # ! 705: 680 00013E2E # ! 706: 681 00013E2E # ! 707: 682 00013E2E # /**************************************************************************** ! 708: 683 00013E2E # * halt on error routine ! 709: 684 00013E2E # ****************************************************************************/ ! 710: 685 00013E2E # pipe14_halt( code ) ! 711: 686 00013E2E # int code; /* error code to halt with */ ! 712: 687 00013E2E # { ! 713: 688 00013E2E 13 00bd jbr L458 ! 714: 689 00013E31 L459: ! 715: 690 00013E31 # err_code = code; ! 716: 691 00013E31 0d ad04 effffffa33 movl 4(fp),_err_code ! 717: 692 00013E39 # sgl_value_1 = dbl_ld_acc.m; ! 718: 693 00013E39 0d effffffa2d effffffa28 movl _dbl_ld_acc,_sgl_value_1 ! 719: 694 00013E44 # sgl_value_2 = dbl_ld_acc.l; ! 720: 695 00013E44 0d effffffa26 effffffa1d movl _dbl_ld_acc+4,_sgl_value_2 ! 721: 696 00013E4F # sgl_value_3 = dbl_value_1.m; ! 722: 697 00013E4F 0d effffffa17 effffffa12 movl _dbl_value_1,_sgl_value_3 ! 723: 698 00013E5A # sgl_value_4 = dbl_value_1.l; ! 724: 699 00013E5A 0d effffffa10 effffffa07 movl _dbl_value_1+4,_sgl_value_4 ! 725: 700 00013E65 # sgl_value_5 = post_evt_acc.m; ! 726: 701 00013E65 0d effffffa01 effffff9fc movl _post_evt_acc,_sgl_value_5 ! 727: 702 00013E70 # sgl_value_6 = post_evt_acc.l; ! 728: 703 00013E70 0d effffff9fa effffff9f1 movl _post_evt_acc+4,_sgl_value_6 ! 729: 704 00013E7B # sgl_value_7 = dbl_expected.m; ! 730: 705 00013E7B 0d effffff9eb effffff9e6 movl _dbl_expected,_sgl_value_7 ! 731: 706 00013E86 # sgl_value_8 = dbl_expected.l; ! 732: 707 00013E86 0d effffff9e4 effffff9db movl _dbl_expected+4,_sgl_value_8 ! 733: 708 00013E91 # asm("movl _test_no,r0"); /* r0 = test number */ ! 734: 709 00013E91 0d effffff9d5 50 movl _test_no,r0 ! 735: 710 00013E98 # asm("movl _subtest,r1"); /* r1 = subtest number */ ! 736: 711 00013E98 0d effffff9ce 51 movl _subtest,r1 ! 737: 712 00013E9F # asm("movl _err_code,r2"); /* r2 = error code */ ! 738: 713 00013E9F 0d effffff9c7 52 movl _err_code,r2 ! 739: 714 00013EA6 # asm("movl _cycle,r3"); /* r3 = cycle count */ ! 740: 715 00013EA6 0d effffff9c0 53 movl _cycle,r3 ! 741: 716 00013EAD # asm("movl _sgl_value_1,r4"); /* r4 = MSW of 1st load. */ ! 742: 717 00013EAD 0d effffff9b9 54 movl _sgl_value_1,r4 ! 743: 718 00013EB4 # asm("movl _sgl_value_2,r5"); /* r5 = LSW of 1st load. */ ! 744: 719 00013EB4 0d effffff9b2 55 movl _sgl_value_2,r5 ! 745: 720 00013EBB # asm("movl _sgl_value_3,r6"); /* r6 = MSW of 2nd load. */ ! 746: 721 00013EBB 0d effffff9ab 56 movl _sgl_value_3,r6 ! 747: 722 00013EC2 # asm("movl _sgl_value_4,r7"); /* r7 = LSW of 2nd load. */ ! 748: 723 00013EC2 0d effffff9a4 57 movl _sgl_value_4,r7 ! 749: 724 00013EC9 # asm("movl _sgl_value_5,r8"); /* r8 = MSW of final Acc. */ ! 750: 725 00013EC9 0d effffff99d 58 movl _sgl_value_5,r8 ! 751: 726 00013ED0 # asm("movl _sgl_value_6,r9"); /* r9 = LSW of final Acc. */ ! 752: 727 00013ED0 0d effffff996 59 movl _sgl_value_6,r9 ! 753: 728 00013ED7 # asm("movl _sgl_value_7,r10"); /* r10 = MSW of exp. Acc. */ ! 754: 729 00013ED7 0d effffff98f 5a movl _sgl_value_7,r10 ! 755: 730 00013EDE # asm("movl _sgl_value_8,r11"); /* r11 = LSW of exp. Acc. */ ! 756: 731 00013EDE 0d effffff988 5b movl _sgl_value_8,r11 ! 757: 732 00013EE5 # asm("movl _index,r12"); /* r12 = data index */ ! 758: 733 00013EE5 0d effffff981 5c movl _index,r12 ! 759: 734 00013EEC # asm("halt"); /* HALT ... */ ! 760: 735 00013EEC 00 halt ! 761: 736 00013EED # } ! 762: 737 00013EED 40 ret#2 ! 763: 738 00013EEE .set L456,0x0 ! 764: 739 00013EEE L458: ! 765: 740 00013EEE 13 ff40 jbr L459 ! 766: 741 00013EF1 .data ! 767: 741 0002775D .data
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.