|
|
1.1 ! root 1: /* CALLS RET instruction test */ ! 2: /* Privilege registers */ ! 3: ! 4: .set IPL,8 ! 5: .set MAPEN,9 ! 6: .set KSP,19 ! 7: ! 8: /* PSL fields */ ! 9: .set IV,32 ! 10: .set T,16 ! 11: .set N,8 ! 12: .set Z,4 ! 13: .set V,2 ! 14: .set C,1 ! 15: ! 16: /* constants */ ! 17: .set DISABLE,0 ! 18: .set ENABLE,1 ! 19: .set HIGH,31 /* highest interrupt priority */ ! 20: ! 21: .set NOARG1,3 ! 22: .set NOARG2,2 ! 23: .set ARG1,0xf ! 24: .set ARG2,0xff ! 25: .set ARG3,0xfff ! 26: .set R0_12,0x3fff /* mask to save r0 thru r12 */ ! 27: .set R2_12,0x1ffc /* mask to save r2 thru r12 */ ! 28: .set R357911,0xaa8 /* mask to save r3,r5,r7,r9,r11 */ ! 29: .set MASK1,R2_12 /* save r2-r12 */ ! 30: .set MASK2,R357911 /* save r3,5,7,9,11 */ ! 31: ! 32: ! 33: .globl _callsx ! 34: _callsx: ! 35: bicpsw $(IV|T) /* disable exceptions */ ! 36: /* */ ! 37: start: ! 38: callf $4,_setjmp /* save contextfor error return */ ! 39: movab start,_stpc /* save address of subtest */ ! 40: movl $1,_subtst /* subtest number */ ! 41: movl $2,_no_opr /* number of operands in use */ ! 42: movl $NOARG1,_opr /* first operand */ ! 43: movl $MASK1,_opr + 4 /* second operand */ ! 44: 0: movab stkbase,sp /* init. stack pointer */ ! 45: movab stkbase,fp /* init. frame pointer */ ! 46: movl fp,bfp /* save fp */ ! 47: movw $MASK1,proc1 /* set entry mask in called procedure */ ! 48: pushl $ARG1 ! 49: pushl $ARG2 ! 50: pushl $ARG3 /* push 3 arguments on stacks */ ! 51: movl $2,r2 /* initialize r2 - r12 */ ! 52: movl $3,r3 ! 53: movl $4,r4 ! 54: movl $5,r5 ! 55: movl $6,r6 ! 56: movl $7,r7 ! 57: movl $0x8,r8 ! 58: movl $0x9,r9 ! 59: movl $0xa,r10 ! 60: movl $0xb,r11 ! 61: movl $0xc,r12 ! 62: movab (r14),estk /* save sp */ ! 63: /* compute expected sp after calls */ ! 64: subl2 $(3*4),estk /* Space for fp,MASK,PC */ ! 65: subl2 $(11*4),estk /* Space for r2-r12 */ ! 66: /* compute expected fp after calls */ ! 67: movl fp,efp ! 68: subl2 $(4*4),efp ! 69: bicpsw $(N|Z|V|C) /* clear all flags */ ! 70: bispsw $(V|C) /* set V,C flags */ ! 71: calls $(4*NOARG1+4),proc1 /* call procedure with 3 arguments */ ! 72: retcall1: ! 73: blss error1 /* error if any of the n,z,v,c flags set */ ! 74: beql error1 ! 75: bvs error1 ! 76: bcs error1 ! 77: jmp 1f ! 78: error1: movpsl _actual /* actual data */ ! 79: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 80: movl $2,_ercode /* error code flag failure */ ! 81: jmp *badrtn ! 82: 1: cmpl r2,$2 /* check if r2 - r12 get restored properly */ ! 83: jeql 1f ! 84: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 85: movl $1,_ercode /* error code data miscompare */ ! 86: movl r2,_actual /* actual data */ ! 87: movl $2,_expected /* expected data */ ! 88: jmp *badrtn ! 89: 1: cmpl r3,$3 ! 90: jeql 1f ! 91: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 92: movl $1,_ercode /* error code data miscompare */ ! 93: movl r3,_actual /* actual data */ ! 94: movl $3,_expected /* expected data */ ! 95: jmp *badrtn ! 96: 1: cmpl r4,$4 ! 97: jeql 1f ! 98: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 99: movl $1,_ercode /* error code data miscompare */ ! 100: movl r4,_actual /* actual data */ ! 101: movl $4,_expected /* expected data */ ! 102: jmp *badrtn ! 103: 1: cmpl r5,$5 ! 104: jeql 1f ! 105: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 106: movl $1,_ercode /* error code data miscompare */ ! 107: movl r5,_actual /* actual data */ ! 108: movl $5,_expected /* expected data */ ! 109: jmp *badrtn ! 110: 1: cmpl r6,$6 ! 111: jeql 1f ! 112: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 113: movl $1,_ercode /* error code data miscompare */ ! 114: movl r6,_actual /* actual data */ ! 115: movl $6,_expected /* expected data */ ! 116: jmp *badrtn ! 117: 1: cmpl r7,$7 ! 118: jeql 1f ! 119: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 120: movl $1,_ercode /* error code data miscompare */ ! 121: movl r7,_actual /* actual data */ ! 122: movl $7,_expected /* expected data */ ! 123: jmp *badrtn ! 124: 1: cmpl r8,$0x8 ! 125: jeql 1f ! 126: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 127: movl $1,_ercode /* error code data miscompare */ ! 128: movl r8,_actual /* actual data */ ! 129: movl $8,_expected /* expected data */ ! 130: jmp *badrtn ! 131: 1: cmpl r9,$0x9 ! 132: jeql 1f ! 133: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 134: movl $1,_ercode /* error code data miscompare */ ! 135: movl r9,_actual /* actual data */ ! 136: movl $9,_expected /* expected data */ ! 137: jmp *badrtn ! 138: 1: cmpl r10,$0xa ! 139: jeql 1f ! 140: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 141: movl $1,_ercode /* error code data miscompare */ ! 142: movl r10,_actual /* actual data */ ! 143: movl $0xa,_expected /* expected data */ ! 144: jmp *badrtn ! 145: 1: cmpl r11,$0xb ! 146: jeql 1f ! 147: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 148: movl $1,_ercode /* error code data miscompare */ ! 149: movl r11,_actual /* actual data */ ! 150: movl $0xb,_expected /* expected data */ ! 151: jmp *badrtn ! 152: 1: cmpl r12,$0xc ! 153: jeql 1f ! 154: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 155: movl $1,_ercode /* error code data miscompare */ ! 156: movl r12,_actual /* actual data */ ! 157: movl $0xc,_expected /* expected data */ ! 158: jmp *badrtn ! 159: 1: movab (r14),r0 ! 160: cmpl r0,bfp /* check if sp,fp get restored properly */ ! 161: jeql 1f ! 162: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 163: movl $1,_ercode /* error code data miscompare */ ! 164: movl r0,_actual /* actual data */ ! 165: movl bfp,_expected /* expected data */ ! 166: jmp *badrtn ! 167: cmpl fp,bfp ! 168: jeql callp2 ! 169: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 170: movl $1,_ercode /* error code data miscompare */ ! 171: movl fp,_actual /* actual data */ ! 172: movl bfp,_expected /* expected data */ ! 173: jmp *badrtn ! 174: ! 175: ! 176: callp2: ! 177: bbs $0,_force_lp,0b /* if set loop on last subtest */ ! 178: c2: callf $4,_setjmp /* save contextfor error return */ ! 179: movab c2,_stpc /* save address of subtest */ ! 180: movl $2,_subtst /* subtest number */ ! 181: movl $2,_no_opr /* number of operands in use */ ! 182: movl $NOARG2,_opr /* first operand */ ! 183: movl $MASK2,_opr + 4 /* second operand */ ! 184: 0: movw $MASK2,proc2 /* set entry mask in called procedure */ ! 185: pushl $ARG1 ! 186: pushl $ARG2 ! 187: movl $3,r3 /* init. r3,r5,r7,r9,r11 */ ! 188: movl $5,r5 ! 189: movl $7,r7 ! 190: movl $0x9,r9 ! 191: movl $0xb,r11 ! 192: movab (r14),estk /* save sp */ ! 193: /* compute expected sp after calls */ ! 194: subl2 $(3*4),estk /* Space for fp,MASK,PC */ ! 195: subl2 $(5*4),estk /* Space for r3,5,7,9,11 */ ! 196: /* compute expected fp after calls */ ! 197: movl fp,efp ! 198: subl2 $(3*4),efp ! 199: movab proc2,r12 ! 200: movl $(NOARG2*4+4),r6 /* load reg with argument info */ ! 201: bispsw $(N|V) /* set n,v flags */ ! 202: bicpsw $(Z|C) /* clear z,c flags */ ! 203: calls r6,(r12) /* call procedure with 2 arguments */ ! 204: retcall2: ! 205: jneq error2 /* error if z,c flags clear */ ! 206: jcc error2 ! 207: jlss error2 /* error if n,v flags set */ ! 208: jvs error2 ! 209: jeql 1f ! 210: error2: movpsl _actual /* actual data */ ! 211: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 212: movl $2,_ercode /* error code flag failure */ ! 213: jmp *badrtn ! 214: 1: cmpl r3,$3 /* check if r3,5,7,9,11 restored properly */ ! 215: jeql 1f ! 216: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 217: movl $1,_ercode /* error code data miscompare */ ! 218: movl r3,_actual /* actual data */ ! 219: movl $3,_expected /* expected data */ ! 220: jmp *badrtn ! 221: 1: cmpl r5,$5 ! 222: jeql 1f ! 223: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 224: movl $1,_ercode /* error code data miscompare */ ! 225: movl r5,_actual /* actual data */ ! 226: movl $5,_expected /* expected data */ ! 227: jmp *badrtn ! 228: 1: cmpl r7,$7 ! 229: jeql 1f ! 230: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 231: movl $1,_ercode /* error code data miscompare */ ! 232: movl r7,_actual /* actual data */ ! 233: movl $3,_expected /* expected data */ ! 234: jmp *badrtn ! 235: 1: cmpl r9,$0x9 ! 236: jeql 1f ! 237: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 238: movl $1,_ercode /* error code data miscompare */ ! 239: movl r9,_actual /* actual data */ ! 240: movl $9,_expected /* expected data */ ! 241: jmp *badrtn ! 242: 1: cmpl r11,$0xb ! 243: jeql 1f ! 244: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 245: movl $1,_ercode /* error code data miscompare */ ! 246: movl r11,_actual /* actual data */ ! 247: movl $0xb,_expected /* expected data */ ! 248: jmp *badrtn ! 249: 1: movab (r14),r0 ! 250: cmpl r0,bfp /* check if sp,fp restored properly */ ! 251: jeql 1f ! 252: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 253: movl $1,_ercode /* error code data miscompare */ ! 254: movl r0,_actual /* actual data */ ! 255: movl bfp,_expected /* expected data */ ! 256: jmp *badrtn ! 257: 1: cmpl fp,bfp ! 258: jeql 1f ! 259: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 260: movl $1,_ercode /* error code data miscompare */ ! 261: movl fp,_actual /* actual data */ ! 262: movl bfp,_expected /* expected data */ ! 263: jmp *badrtn ! 264: 1: jmp *return ! 265: ! 266: ! 267: /* TEST DATA */ ! 268: .align 2 ! 269: stack: ! 270: .space 400 /* 400 bytes for the stack */ ! 271: stkbase: ! 272: .long 0 ! 273: prevpc1: ! 274: .long retcall1 ! 275: prevpc2: ! 276: .long retcall2 ! 277: prono: ! 278: .long 0 /* current procedure called : 1/2 */ ! 279: astk: ! 280: .long 0 /* actual sp after calls */ ! 281: estk: ! 282: .long 0 /* expected sp after calls */ ! 283: efp: .long 0 /* expected fp after calls */ ! 284: bfp: .long 0 /* fp before calls */ ! 285: ! 286: temp0: .long 0 ! 287: temp1: .long 0 ! 288: ! 289: /* PROCEDURE 1 */ ! 290: proc1: ! 291: .word 0 /* entry mask */ ! 292: jlss error3 /* error if N set */ ! 293: jeql error3 /* error if Z set */ ! 294: jvc error3 /* error if v,c clear */ ! 295: jcc error3 ! 296: jmp 1f ! 297: error3: movpsl _actual /* actual data */ ! 298: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 299: movl $2,_ercode /* error code flag failure */ ! 300: jmp *badrtn ! 301: 1: movab (r14),astk ! 302: cmpl astk,estk /* check if sp decremented properly */ ! 303: jeql 1f ! 304: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 305: movl $1,_ercode /* error code data miscompare */ ! 306: movl astk,_actual /* actual data */ ! 307: movl estk,_expected /* expected data */ ! 308: jmp *badrtn ! 309: 1: cmpl fp,efp /* check if fp decrmented properly */ ! 310: jeql 1f ! 311: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 312: movl $1,_ercode /* error code data miscompare */ ! 313: movl fp,_actual /* actual data */ ! 314: movl efp,_expected /* expected data */ ! 315: jmp *badrtn ! 316: 1: cmpl (fp),bfp /* check previous fp saved on the stack */ ! 317: jeql 1f ! 318: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 319: movl $1,_ercode /* error code data miscompare */ ! 320: movl (fp),_actual /* actual data */ ! 321: movl bfp,_expected /* expected data */ ! 322: jmp *badrtn ! 323: 1: movl fp,temp0 ! 324: subl2 $4,temp0 ! 325: movl *(temp0),temp0 /* get mask/argument longword from stack */ ! 326: movl $MASK1,temp1 ! 327: shll $16,temp1,temp1 ! 328: addl2 $(4*NOARG1+4),temp1 ! 329: cmpl temp0,temp1 /* check mask/argnum longword */ ! 330: jeql 1f ! 331: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 332: movl $1,_ercode /* error code data miscompare */ ! 333: movl temp0,_actual /* actual data */ ! 334: movl temp1,_expected /* expected data */ ! 335: jmp *badrtn ! 336: 1: cmpl -8(fp),prevpc1 /* check saved PC on the stack */ ! 337: jeql 1f ! 338: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 339: movl $1,_ercode /* error code data miscompare */ ! 340: movl -8(fp),_actual /* actual data */ ! 341: movl prevpc1,_expected /* expected data */ ! 342: jmp *badrtn ! 343: 1: cmpl (sp),$2 /* check saved r2 - r12 on stack */ ! 344: jeql 1f ! 345: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 346: movl $1,_ercode /* error code data miscompare */ ! 347: movl (sp),_actual /* actual data */ ! 348: movl $0x2,_expected /* expected data */ ! 349: jmp *badrtn ! 350: 1: cmpl 4(sp),$3 ! 351: jeql 1f ! 352: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 353: movl $1,_ercode /* error code data miscompare */ ! 354: movl 4(sp),_actual /* actual data */ ! 355: movl $0x3,_expected /* expected data */ ! 356: jmp *badrtn ! 357: 1: cmpl 8(sp),$4 ! 358: jeql 1f ! 359: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 360: movl $1,_ercode /* error code data miscompare */ ! 361: movl 8(sp),_actual /* actual data */ ! 362: movl $0x4,_expected /* expected data */ ! 363: jmp *badrtn ! 364: 1: cmpl 12(sp),$5 ! 365: jeql 1f ! 366: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 367: movl $1,_ercode /* error code data miscompare */ ! 368: movl 12(sp),_actual /* actual data */ ! 369: movl $0x5,_expected /* expected data */ ! 370: jmp *badrtn ! 371: 1: cmpl 16(sp),$6 ! 372: jeql 1f ! 373: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 374: movl $1,_ercode /* error code data miscompare */ ! 375: movl 16(sp),_actual /* actual data */ ! 376: movl $0x6,_expected /* expected data */ ! 377: jmp *badrtn ! 378: 1: cmpl 20(sp),$7 ! 379: jeql 1f ! 380: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 381: movl $1,_ercode /* error code data miscompare */ ! 382: movl 20(sp),_actual /* actual data */ ! 383: movl $0x7,_expected /* expected data */ ! 384: jmp *badrtn ! 385: 1: cmpl 24(sp),$0x8 ! 386: jeql 1f ! 387: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 388: movl $1,_ercode /* error code data miscompare */ ! 389: movl 24(sp),_actual /* actual data */ ! 390: movl $0x8,_expected /* expected data */ ! 391: jmp *badrtn ! 392: 1: cmpl 28(sp),$0x9 ! 393: jeql 1f ! 394: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 395: movl $1,_ercode /* error code data miscompare */ ! 396: movl 28(sp),_actual /* actual data */ ! 397: movl $0x9,_expected /* expected data */ ! 398: jmp *badrtn ! 399: 1: cmpl 32(sp),$0xa ! 400: jeql 1f ! 401: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 402: movl $1,_ercode /* error code data miscompare */ ! 403: movl 32(sp),_actual /* actual data */ ! 404: movl $0xa,_expected /* expected data */ ! 405: jmp *badrtn ! 406: 1: cmpl 36(sp),$0xb ! 407: jeql 1f ! 408: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 409: movl $1,_ercode /* error code data miscompare */ ! 410: movl 36(sp),_actual /* actual data */ ! 411: movl $0xb,_expected /* expected data */ ! 412: jmp *badrtn ! 413: 1: cmpl 40(sp),$0xc ! 414: jeql 1f ! 415: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 416: movl $1,_ercode /* error code data miscompare */ ! 417: movl 40(sp),_actual /* actual data */ ! 418: movl $0xc,_expected /* expected data */ ! 419: jmp *badrtn ! 420: ! 421: /* all checked out */ ! 422: 1: movl $0,r2 /* zero out r2 - r12 */ ! 423: movl r2,r3 ! 424: movl r2,r4 ! 425: movl r2,r5 ! 426: movl r2,r6 ! 427: movl r2,r7 ! 428: movl r2,r8 ! 429: movl r2,r9 ! 430: movl r2,r10 ! 431: movl r2,r11 ! 432: movl r2,r12 ! 433: bicpsw $(N|Z|V|C) /* clear all flags */ ! 434: ret /* TESTING RET ..... */ ! 435: /* RET does not work */ ! 436: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 437: jmp *badrtn ! 438: ! 439: ! 440: ! 441: /* PROCEDURE 2 */ ! 442: .align 2 ! 443: proc2: ! 444: .word 0 /* entry mask */ ! 445: jgeq error5 /* error if n,v flag clear */ ! 446: jvc error5 ! 447: jeql error5 /* error if z,c flag set */ ! 448: jcs error5 ! 449: jmp 1f ! 450: error5: movpsl _actual /* actual data */ ! 451: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 452: movl $2,_ercode /* error code flag failure */ ! 453: jmp *badrtn ! 454: 1: movab (r14),astk ! 455: cmpl astk,estk /* check if sp get decrement */ ! 456: jeql 1f ! 457: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 458: movl $1,_ercode /* error code data miscompare */ ! 459: movl astk,_actual /* actual data */ ! 460: movl estk,_expected /* expected data */ ! 461: jmp *badrtn ! 462: 1: cmpl fp,efp /* check if fp get decrement properly */ ! 463: jeql 1f ! 464: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 465: movl $1,_ercode /* error code data miscompare */ ! 466: movl fp,_actual /* actual data */ ! 467: movl efp,_expected /* expected data */ ! 468: jmp *badrtn ! 469: 1: cmpl (fp),bfp /* check previous fp saved on stack */ ! 470: jeql 1f ! 471: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 472: movl $1,_ercode /* error code data miscompare */ ! 473: movl (fp),_actual /* actual data */ ! 474: movl bfp,_expected /* expected data */ ! 475: jmp *badrtn ! 476: 1: movl fp,temp0 ! 477: subl2 $4,temp0 ! 478: movl *(temp0),temp0 /* get mask/argument longword from stack */ ! 479: movl $MASK2,temp1 ! 480: shll $16,temp1,temp1 ! 481: addl2 $(4*NOARG2+4),temp1 ! 482: cmpl temp0,temp1 /* check mask/argnum longword */ ! 483: jeql 1f ! 484: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 485: movl $1,_ercode /* error code data miscompare */ ! 486: movl temp0,_actual /* actual data */ ! 487: movl temp1,_expected /* expected data */ ! 488: jmp *badrtn ! 489: 1: cmpl -8(fp),prevpc2 /* check saved PC on the stack */ ! 490: jeql 1f ! 491: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 492: movl $1,_ercode /* error code data miscompare */ ! 493: movl -8(fp),_actual /* actual data */ ! 494: movl prevpc2,_expected /* expected data */ ! 495: jmp *badrtn ! 496: 1: cmpl (sp),$3 /* check saved r3,5,7,9,11 saved on stack */ ! 497: jeql 1f ! 498: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 499: movl $1,_ercode /* error code data miscompare */ ! 500: movl (sp),_actual /* actual data */ ! 501: movl $0x3,_expected /* expected data */ ! 502: jmp *badrtn ! 503: 1: cmpl 4(sp),$5 ! 504: jeql 1f ! 505: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 506: movl $1,_ercode /* error code data miscompare */ ! 507: movl 4(sp),_actual /* actual data */ ! 508: movl $0x5,_expected /* expected data */ ! 509: jmp *badrtn ! 510: 1: cmpl 8(sp),$7 ! 511: jeql 1f ! 512: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 513: movl $1,_ercode /* error code data miscompare */ ! 514: movl 8(sp),_actual /* actual data */ ! 515: movl $0x7,_expected /* expected data */ ! 516: jmp *badrtn ! 517: 1: cmpl 12(sp),$9 ! 518: jeql 1f ! 519: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 520: movl $1,_ercode /* error code data miscompare */ ! 521: movl 19(sp),_actual /* actual data */ ! 522: movl $0x9,_expected /* expected data */ ! 523: jmp *badrtn ! 524: 1: cmpl 16(sp),$0xb ! 525: jeql 1f ! 526: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 527: movl $1,_ercode /* error code data miscompare */ ! 528: movl 16(sp),_actual /* actual data */ ! 529: movl $0xb,_expected /* expected data */ ! 530: jmp *badrtn ! 531: /* all checked out */ ! 532: 1: movl $0,r3 /* zero out r3,5,7,9,11 */ ! 533: movl $0,r5 ! 534: movl $0,r7 ! 535: movl $0,r9 ! 536: movl $0,r11 ! 537: bispsw $(Z|C) /* set z,c flags */ ! 538: bicpsw $(N|V) /* clear n,v flags */ ! 539: ret /* TESTING RET */ ! 540: nop /* ret does not work !!! */ ! 541: error6: movpsl _actual /* actual data */ ! 542: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 543: movl $1,_ercode /* error code data miscompare */ ! 544: jmp *badrtn ! 545:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.