|
|
1.1 ! root 1: ! 2: ! 3: /* ADDB2 (add byte 2) test */ ! 4: /* */ ! 5: /*Test name = addb2 */ ! 6: /*Description = */ ! 7: /* This test checks 'addb2' instruction as follows: */ ! 8: /*add sum result N Z V C (flags) */ ! 9: /*___ ___ ______ _______________ */ ! 10: /*0x11107fff 0x11107fff 0x1110fffe 0 0 1 0 */ ! 11: /*0x11108000 0x11108000 0x11100000 0 1 1 1 */ ! 12: /*0x8000 0xffff 0x7fff 0 0 1 1 */ ! 13: /*0x8001 0x7fff 0x0000 0 1 0 1 */ ! 14: /*0x8000 0x7fff 0xffff 1 0 0 0 */ ! 15: /*0xc000 0xc000 0x8000 1 0 0 1 */ ! 16: /* */ ! 17: /* */ ! 18: /* */ ! 19: /* */ ! 20: /* constants definition for 'addx' tests. */ ! 21: /* */ ! 22: ! 23: .set A1B1,0x1111107f/*+127, highest +ve number, byte */ ! 24: .set A1W1,0x11107fff ! 25: .set A1L1,0x7fffffff ! 26: .set A2B1,0x1111107f/* +127 */ ! 27: .set A2W1,0x11107fff ! 28: .set A2L1,A1L1 ! 29: .set RB1,0x111110fe ! 30: .set RW1,0x1110fffe ! 31: .set RL1,0xfffffffe ! 32: .set A1B2,0x11111080/* -128 */ ! 33: .set A1W2,0x11108000 ! 34: .set A1L2,0x80000000 ! 35: .set A2B2,0x11111080/* -128 */ ! 36: .set A2W2,0x11118000 ! 37: .set A2L2,0X80000000 ! 38: .set RB2,0x11111000/* 0 */ ! 39: .set RW2,0x11100000 ! 40: .set RL2,0x00000000 ! 41: .set A1B3,0X80 /* -128 */ ! 42: .set A1W3,0x8000 ! 43: .set A1L3,0x80000000 ! 44: .set A2B3,0xff /* -1 */ ! 45: .set A2W3,0xffff ! 46: .set A2L3,0xffffffff ! 47: .set RB3,0x0000007f ! 48: .set RW3,0X00007fff ! 49: .set RL3,0X7fffffff ! 50: .set A1B4,0x81 /* -127 */ ! 51: .set A1W4,0x8001 ! 52: .set A1L4,0x80000001 ! 53: .set A2B4,0x7f /* 127 */ ! 54: .set A2W4,0x7fff ! 55: .set A2L4,0x7fffffff ! 56: .set RB4,0 /* 0 */ ! 57: .set RW4,RB4 ! 58: .set RL4,RB4 ! 59: .set A1B5,A1B3 /* -128 */ ! 60: .set A1W5,A1W3 ! 61: .set A1L5,A1L3 ! 62: .set A2B5,A2B4 /* 127 */ ! 63: .set A2W5,A2W4 ! 64: .set A2L5,A2L4 ! 65: .set RB5,0xff /* -1 */ ! 66: .set RW5,0xffff ! 67: .set RL5,0xffffffff ! 68: .set A1B6,0xc0 /* -64 */ ! 69: .set A1W6,0xc000 ! 70: .set A1L6,0xc0000000 ! 71: .set A2B6,A1B6 /* -64 */ ! 72: .set A2W6,A1W6 ! 73: .set A2L6,A1L6 ! 74: .set RB6,0x00000080 /* -128 */ ! 75: .set RW6,0x00008000 ! 76: .set RL6,0X80000000 ! 77: .set BMSK,0xff /* mask value for byte compare operations */ ! 78: ! 79: .set INITB,0x11111055/* initialization values for 3 operand */ ! 80: .set INITW,0x11105555 ! 81: .set INITL,0X55555555 ! 82: ! 83: /* */ ! 84: /* Syst.s - Constants */ ! 85: /* */ ! 86: .set IPL,8 ! 87: .set HIGH,31 ! 88: .set ZERO,0 ! 89: .set ONES,0xffffffff ! 90: .set N,8 ! 91: .set Z,4 ! 92: .set V,2 ! 93: .set C,1 ! 94: .set T,16 ! 95: .set IV,32 ! 96: .set FU,64 ! 97: .set DV,128 ! 98: .set PSWMASK,0x003f ! 99: ! 100: .globl _addb2 ! 101: _addb2: ! 102: ab1: ! 103: callf $4,_setjmp /* save context for error return */ ! 104: movab ab1,_stpc /* save pc of subtest */ ! 105: movl $1,_subtst /* subtest number */ ! 106: movl $2,_no_opr /* number of operands in use */ ! 107: movl $A1B1,_opr /* first operand */ ! 108: movl $A2B1,_opr + 4 /* second operand */ ! 109: 0: ! 110: bicpsw $PSWMASK /*PSW = 0 */ ! 111: movl $A1B1,add /*first operand */ ! 112: movl $A2B1,sum /*second operand */ ! 113: bispsw $(N|Z|C) /* these flags ON */ ! 114: addb2 add+3,sum+3 /* try 'add' instruction mem to mem */ ! 115: jlss e1 /*error if N = 1 */ ! 116: jeql e1 /*error if Z = 1 */ ! 117: jvc e1 /*error if V = 0 */ ! 118: jcs e1 /*error if C = 1 */ ! 119: bicpsw $Z ! 120: movl $RB1,r4 ! 121: cmpl $RB1,sum /*sum = expected ? */ ! 122: jgeq ab1r ! 123: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 124: movl $1,_ercode /* error code flag failure */ ! 125: movl sum,_actual /* actual data */ ! 126: movl $RB1,_expected /* expected data */ ! 127: jmp *badrtn ! 128: e1: movpsl _actual /* actual = psl */ ! 129: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 130: movl $2,_ercode /* error code flag failure */ ! 131: jmp *badrtn ! 132: ! 133: /* reverse operands data to memory operation */ ! 134: ! 135: ab1r: ! 136: bbs $0,_force_lp,0b /* if set loop on last subtest */ ! 137: aab1r: callf $4,_setjmp /* save context for error return */ ! 138: movab aab1r,_stpc /* save pc of subtest */ ! 139: movl $2,_subtst /* subtest number */ ! 140: movl $2,_no_opr /* number of operands in use */ ! 141: movl $0x7f,_opr /* first operand */ ! 142: movl $A1B1,_opr + 4 /* second operand */ ! 143: 0: bicpsw $PSWMASK /*PSW = 0 */ ! 144: movl $A1B1,sum /*second operand */ ! 145: bispsw $(N|Z|C) /* these flags ON */ ! 146: addb2 $0x7f,sum+3 /* try 'add' instruction data to mem */ ! 147: jlss e2 /*error if N = 1 */ ! 148: jeql e2 /*error if Z = 1 */ ! 149: jvc e2 /*error if V = 0 */ ! 150: jcs e2 /*error if C = 1 */ ! 151: bicpsw $Z ! 152: movl $RB1,r4 ! 153: cmpl $RB1,sum /*sum = expected ? */ ! 154: jeql ab2 ! 155: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 156: movl $1,_ercode /* error code flag failure */ ! 157: movl sum,_actual /* actual data */ ! 158: movl $RB1,_expected /* expected data */ ! 159: jmp *badrtn ! 160: e2: movpsl _actual /* actual = psl */ ! 161: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 162: movl $2,_ercode /* error code flag failure */ ! 163: jmp *badrtn ! 164: ! 165: ab2: ! 166: bbs $0,_force_lp,0b /* if set loop on last subtest */ ! 167: aab2: callf $4,_setjmp /* save context for error return */ ! 168: movab aab2,_stpc /* save pc of subtest */ ! 169: movl $3,_subtst /* subtest number */ ! 170: movl $2,_no_opr /* number of operands in use */ ! 171: movl $A1B2,_opr /* first operand */ ! 172: movl $A2B2,_opr + 4 /* second operand */ ! 173: 0: bicpsw $PSWMASK /*PSW = 0 */ ! 174: movl $A1B2,tmp ! 175: movb tmp+3,r5 /*first operand */ ! 176: movl $A2B2,sum /*second operand */ ! 177: bispsw $N /* these flags ON */ ! 178: addb2 r5,sum+3 /* try 'add' instruction reg to mem */ ! 179: jgeq e3 /*error if N = 0 */ ! 180: jeql e3 /*error if Z = 1 */ ! 181: jvc e3 /*error if V = 0 */ ! 182: jcc e3 /*error if C = 0 */ ! 183: bicpsw $Z ! 184: movl $RB2,r4 ! 185: cmpl $RB2,sum /*sum = expected ? */ ! 186: jeql ab2r /*if not, error */ ! 187: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 188: movl $1,_ercode /* error code flag failure */ ! 189: movl sum,_actual /* actual data */ ! 190: movl $RB2,_expected /* expected data */ ! 191: jmp *badrtn ! 192: e3: movpsl _actual /* actual = psl */ ! 193: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 194: movl $2,_ercode /* error code flag failure */ ! 195: jmp *badrtn ! 196: ! 197: /* reverse operands memory to register operation */ ! 198: ! 199: ab2r: ! 200: bbs $0,_force_lp,0b /* if set loop on last subtest */ ! 201: aab2r: callf $4,_setjmp /* save context for error return */ ! 202: movab aab2r,_stpc /* save pc of subtest */ ! 203: movl $4,_subtst /* subtest number */ ! 204: movl $2,_no_opr /* number of operands in use */ ! 205: movl $A2B2,_opr /* first operand */ ! 206: movl $A1B2,_opr + 4 /* second operand */ ! 207: 0: bicpsw $PSWMASK /*PSW = 0 */ ! 208: movl $A2B2,add /*first operand */ ! 209: movl $A1B2,tmp ! 210: movb tmp+3,r5 /*first operand */ ! 211: bispsw $N /* these flags ON */ ! 212: addb2 add+3,r5 /* try 'add' instruction */ ! 213: jgeq e4 /*error if N = 0 */ ! 214: jeql e4 /*error if Z = 1 */ ! 215: jvc e4 /*error if V = 0 */ ! 216: jcc e4 /*error if C = 0 */ ! 217: bicpsw $Z ! 218: movl $RB2,r4 ! 219: andl2 $BMSK,r4 ! 220: andl2 $BMSK,r5 /* mask off don't care bits */ ! 221: cmpl r4,r5 /*sum = expected ? */ ! 222: jeql ab3 /*if not, error */ ! 223: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 224: movl $1,_ercode /* error code flag failure */ ! 225: movl r5,_actual /* actual data */ ! 226: movl r4,_expected /* expected data */ ! 227: jmp *badrtn ! 228: e4: movpsl _actual /* actual = psl */ ! 229: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 230: movl $2,_ercode /* error code flag failure */ ! 231: jmp *badrtn ! 232: ! 233: ! 234: ! 235: ab3: ! 236: bbs $0,_force_lp,0b /* if set loop on last subtest */ ! 237: aab3: callf $4,_setjmp /* save context for error return */ ! 238: movab aab3,_stpc /* save pc of subtest */ ! 239: movl $5,_subtst /* subtest number */ ! 240: movl $2,_no_opr /* number of operands in use */ ! 241: movl $-0x80,_opr /* first operand */ ! 242: movl $A2B3,_opr + 4 /* second operand */ ! 243: 0: bicpsw $PSWMASK /*PSW = 0 */ ! 244: movl $A2B3,tmp /*second operand */ ! 245: movb tmp+3,r5 /*second operand */ ! 246: bispsw $(N|Z) /* these flags ON */ ! 247: addb2 $-0x80,r5 /* try 'add' instruction data to reg */ ! 248: jgeq e5 /*error if N = 0 */ ! 249: jeql e5 /*error if Z = 1 */ ! 250: jvc e5 /*error if V = 0 */ ! 251: jcc e5 /*error if C = 0 */ ! 252: bicpsw $Z ! 253: movl $RB3,r4 ! 254: andl2 $BMSK,r4 ! 255: andl2 $BMSK,r5 /* mask off don't care bits */ ! 256: cmpl r4,r5 /*sum = expected ? */ ! 257: jeql ab3r /*if not, error */ ! 258: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 259: movl $1,_ercode /* error code flag failure */ ! 260: movl r5,_actual /* actual data */ ! 261: movl r4,_expected /* expected data */ ! 262: jmp *badrtn ! 263: e5: movpsl _actual /* actual = psl */ ! 264: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 265: movl $2,_ercode /* error code flag failure */ ! 266: jmp *badrtn ! 267: ! 268: ! 269: /* reverse operands register to register operation */ ! 270: ! 271: ab3r: ! 272: bbs $0,_force_lp,0b /* if set loop on last subtest */ ! 273: aab3r: callf $4,_setjmp /* save context for error return */ ! 274: movab aab3r,_stpc /* save pc of subtest */ ! 275: movl $6,_subtst /* subtest number */ ! 276: movl $2,_no_opr /* number of operands in use */ ! 277: movl $A2B3,_opr /* first operand */ ! 278: movl $A1B3,_opr + 4 /* second operand */ ! 279: 0: bicpsw $PSWMASK /*PSW = 0 */ ! 280: movl $A2B3,tmp /*first operand */ ! 281: movb tmp+3,r5 /*first operand */ ! 282: movl $A1B3,tmp2 /*second operand */ ! 283: movb tmp2+3,r6 /*second operand */ ! 284: bispsw $(N|Z) /* these flags ON */ ! 285: addb2 r5,r6 /* try 'add' instruction reg to reg */ ! 286: jgeq e6 /*error if N = 0 */ ! 287: jeql e6 /*error if Z = 1 */ ! 288: jvc e6 /*error if V = 0 */ ! 289: jcc e6 /*error if C = 0 */ ! 290: bicpsw $Z ! 291: movl $RB3,r4 ! 292: andl2 $BMSK,r4 ! 293: andl2 $BMSK,r6 /* mask off don't care bits */ ! 294: cmpl r4,r6 /*sum = expected ? */ ! 295: jeql ab4 /*if not, error */ ! 296: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 297: movl $1,_ercode /* error code flag failure */ ! 298: movl r6,_actual /* actual data */ ! 299: movl r4,_expected /* expected data */ ! 300: jmp *badrtn ! 301: e6: movpsl _actual /* actual = psl */ ! 302: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 303: movl $2,_ercode /* error code flag failure */ ! 304: jmp *badrtn ! 305: ! 306: ab4: ! 307: bbs $0,_force_lp,0b /* if set loop on last subtest */ ! 308: aab4: callf $4,_setjmp /* save context for error return */ ! 309: movab aab4,_stpc /* save pc of subtest */ ! 310: movl $7,_subtst /* subtest number */ ! 311: movl $2,_no_opr /* number of operands in use */ ! 312: movl $A2B3,_opr /* first operand */ ! 313: movl $A1B3,_opr + 4 /* second operand */ ! 314: 0: bicpsw $PSWMASK /*PSW = 0 */ ! 315: movl $A1B4,add /*first operand */ ! 316: movl $A2B4,sum /*second operand */ ! 317: bispsw $(N|V) /* these flags ON */ ! 318: addb2 add+3,sum+3 /* try 'add' instruction */ ! 319: jlss e7 /*error if N = 1 */ ! 320: jneq e7 /*error if Z = 0 */ ! 321: jvs e7 /*error if V = 1 */ ! 322: jcc e7 /*error if C = 0 */ ! 323: bicpsw $Z ! 324: cmpl $RB4,sum /*sum = expected ? */ ! 325: jeql ab4r /*if not, error */ ! 326: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 327: movl $1,_ercode /* error code flag failure */ ! 328: movl $RB4,_actual /* actual data */ ! 329: movl sum,_expected /* expected data */ ! 330: jmp *badrtn ! 331: e7: movpsl _actual /* actual = psl */ ! 332: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 333: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 334: movl $2,_ercode /* error code flag failure */ ! 335: jmp *badrtn ! 336: ! 337: ! 338: /* reverse operands */ ! 339: ! 340: ab4r: ! 341: bbs $0,_force_lp,0b /* if set loop on last subtest */ ! 342: aab4r: callf $4,_setjmp /* save context for error return */ ! 343: movab aab4r,_stpc /* save pc of subtest */ ! 344: movl $8,_subtst /* subtest number */ ! 345: movl $2,_no_opr /* number of operands in use */ ! 346: movl $A2B4,_opr /* first operand */ ! 347: movl $A1B4,_opr + 4 /* second operand */ ! 348: 0: bicpsw $PSWMASK /*PSW = 0 */ ! 349: movl $A2B4,add /*first operand */ ! 350: movl $A1B4,sum /*second operand */ ! 351: bispsw $(N|V) /* these flags ON */ ! 352: addb2 add+3,sum+3 /* try 'add' instruction */ ! 353: jlss e8 /*error if N = 1 */ ! 354: jneq e8 /*error if Z = 0 */ ! 355: jvs e8 /*error if V = 1 */ ! 356: jcc e8 /*error if C = 0 */ ! 357: bicpsw $Z ! 358: movl $0,r4 ! 359: cmpl r4,sum /*sum = expected ? */ ! 360: jeql ab5 /*if not, error */ ! 361: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 362: movl $1,_ercode /* error code flag failure */ ! 363: movl sum,_actual /* actual data */ ! 364: movl r4,_expected /* expected data */ ! 365: jmp *badrtn ! 366: e8: movpsl _actual /* actual = psl */ ! 367: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 368: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 369: movl $2,_ercode /* error code flag failure */ ! 370: jmp *badrtn ! 371: ! 372: ! 373: ! 374: ab5: ! 375: bbs $0,_force_lp,0b /* if set loop on last subtest */ ! 376: aab5: callf $4,_setjmp /* save context for error return */ ! 377: movab aab5,_stpc /* save pc of subtest */ ! 378: movl $9,_subtst /* subtest number */ ! 379: movl $2,_no_opr /* number of operands in use */ ! 380: movl $A1B5,_opr /* first operand */ ! 381: movl $A2B5,_opr + 4 /* second operand */ ! 382: 0: bicpsw $PSWMASK /*PSW = 0 */ ! 383: movl $A1B5,add /*first operand */ ! 384: movl $A2B5,sum /*second operand */ ! 385: bispsw $(V|Z|C) /* these flags ON */ ! 386: addb2 add+3,sum+3 /* try 'add' instruction */ ! 387: jgeq e9 /*error if N = 0 */ ! 388: jeql e9 /*error if Z = 1 */ ! 389: jvs e9 /*error if V = 1 */ ! 390: jcs e9 /*error if C = 1 */ ! 391: bicpsw $Z ! 392: movl $RB5,r4 ! 393: cmpl $RB5,sum /*sum = expected ? */ ! 394: jeql ab6 /*if not, error */ ! 395: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 396: movl $1,_ercode /* error code flag failure */ ! 397: movl sum,_actual /* actual data */ ! 398: movl r4,_expected /* expected data */ ! 399: jmp *badrtn ! 400: e9: movpsl _actual /* actual = psl */ ! 401: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 402: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 403: movl $2,_ercode /* error code flag failure */ ! 404: jmp *badrtn ! 405: ! 406: ! 407: /* reverse operands */ ! 408: ! 409: ab5r: ! 410: bbs $0,_force_lp,0b /* if set loop on last subtest */ ! 411: aab5r: callf $4,_setjmp /* save context for error return */ ! 412: movab aab5r,_stpc /* save pc of subtest */ ! 413: movl $0xa,_subtst /* subtest number */ ! 414: movl $2,_no_opr /* number of operands in use */ ! 415: movl $A2B5,_opr /* first operand */ ! 416: movl $A1B5,_opr + 4 /* second operand */ ! 417: 0: bicpsw $PSWMASK /*PSW = 0 */ ! 418: movl $A2B5,add /*first operand */ ! 419: movl $A1B5,sum /*second operand */ ! 420: bispsw $(V|Z|C) /* these flags ON */ ! 421: addb2 add+3,sum+3 /* try 'add' instruction */ ! 422: jgeq e10 /*error if N = 0 */ ! 423: jeql e10 /*error if Z = 1 */ ! 424: jvs e10 /*error if V = 1 */ ! 425: jcs e10 /*error if C = 1 */ ! 426: bicpsw $Z ! 427: movl $0xff,r4 ! 428: cmpl r4,sum /*sum = expected ? */ ! 429: jeql ab6 /*if not, error */ ! 430: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 431: movl $1,_ercode /* error code flag failure */ ! 432: movl sum,_actual /* actual data */ ! 433: movl r4,_expected /* expected data */ ! 434: jmp *badrtn ! 435: e10: movpsl _actual /* actual = psl */ ! 436: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 437: movl $2,_ercode /* error code flag failure */ ! 438: jmp *badrtn ! 439: ! 440: ! 441: ab6: ! 442: bbs $0,_force_lp,0b /* if set loop on last subtest */ ! 443: aab6: callf $4,_setjmp /* save context for error return */ ! 444: movab aab6,_stpc /* save pc of subtest */ ! 445: movl $0xb,_subtst /* subtest number */ ! 446: movl $2,_no_opr /* number of operands in use */ ! 447: movl $A1B6,_opr /* first operand */ ! 448: movl $A2B6,_opr + 4 /* second operand */ ! 449: 0: bicpsw $PSWMASK /*PSW = 0 */ ! 450: movl $A1B6,add /*first operand */ ! 451: movl $A2B6,sum /*second operand */ ! 452: bispsw $(Z|V) /* these flags ON */ ! 453: addb2 add+3,sum+3 /* try 'add' instruction */ ! 454: jgeq e11 /*error if N = 0 */ ! 455: jeql e11 /*error if Z = 1 */ ! 456: jvs e11 /*error if V = 1 */ ! 457: jcc e11 /*error if C = 0 */ ! 458: bicpsw $Z ! 459: movl $RB6,r4 ! 460: cmpl $RB6,sum /*sum = expected ? */ ! 461: jeql ab6r /*if not, error */ ! 462: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 463: movl $1,_ercode /* error code flag failure */ ! 464: movl sum,_actual /* actual data */ ! 465: movl r4,_expected /* expected data */ ! 466: jmp *badrtn ! 467: e11: movpsl _actual /* actual = psl */ ! 468: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 469: movl $2,_ercode /* error code flag failure */ ! 470: jmp *badrtn ! 471: ! 472: ! 473: /* reverse operands */ ! 474: ! 475: ab6r: ! 476: bbs $0,_force_lp,0b /* if set loop on last subtest */ ! 477: aab6r: callf $4,_setjmp /* save context for error return */ ! 478: movab aab6r,_stpc /* save pc of subtest */ ! 479: movl $0xc,_subtst /* subtest number */ ! 480: movl $2,_no_opr /* number of operands in use */ ! 481: movl $A2B6,_opr /* first operand */ ! 482: movl $A1B6,_opr + 4 /* second operand */ ! 483: 0: bicpsw $PSWMASK /*PSW = 0 */ ! 484: movl $A2B6,add /*first operand */ ! 485: movl $A1B6,sum /*second operand */ ! 486: bispsw $(Z|V) /* these flags ON */ ! 487: addb2 add+3,sum+3 /* try 'add' instruction */ ! 488: jgeq e12 /*error if N = 0 */ ! 489: jeql e12 /*error if Z = 1 */ ! 490: jvs e12 /*error if V = 1 */ ! 491: jcc e12 /*error if C = 0 */ ! 492: bicpsw $Z ! 493: cmpl $RB6,sum /*sum = expected ? */ ! 494: jneq e555 /*if not, error */ ! 495: bbs $0,_force_lp,0b /* if set loop on last subtest */ ! 496: jmp *return ! 497: e555: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 498: movl $1,_ercode /* error code flag failure */ ! 499: movl sum,_actual /* actual data */ ! 500: movl $RB6,_expected /* expected data */ ! 501: jmp *badrtn ! 502: e12: movpsl _actual /* actual = psl */ ! 503: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 504: movl $2,_ercode /* error code flag failure */ ! 505: jmp *badrtn ! 506: /*good run, goto monitor */ ! 507: ! 508: /* */ ! 509: /* Variables */ ! 510: /* */ ! 511: .align 2 ! 512: add1: .space 4 ! 513: add2: .space 4 ! 514: sum: .space 4 ! 515: add: .space 4 ! 516: tmp: .space 4 /* temp location for variable manipulation */ ! 517: tmp2: .space 4 /* temp location for variable manipulation */ ! 518: ! 519: /* End of file */ ! 520: ! 521:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.