|
|
1.1 ! root 1: /* This program tests the instruction LOADR. */ ! 2: # R2 : error code ! 3: # 1 = error in flags ! 4: # 2 = mask operand changed ! 5: # 3 = register did not get loaded correctly ! 6: ! 7: .set N,8 ! 8: .set Z,4 ! 9: .set V,2 ! 10: .set C,1 ! 11: ! 12: .globl _loadr ! 13: _loadr: ! 14: callf $4,_setjmp /* save context for return from error */ ! 15: movab _loadr,_stpc /* save subtest starting address */ ! 16: movl $1,_subtst /* subtest number */ ! 17: movl $1,_no_opr /* number of operands in use */ ! 18: movl $0,_opr /* first operand */ ! 19: 0: movl $0xffffffff,r0 /* load r0 - r13 with known data */ ! 20: movl r0,r1 ! 21: movl r1,r2 ! 22: movl r2,r3 ! 23: movl r3,r4 ! 24: movl r4,r5 ! 25: movl r5,r6 ! 26: movl r6,r7 ! 27: movl r7,r8 ! 28: movl r8,r9 ! 29: movl r9,r10 ! 30: movl r10,r11 ! 31: movl r11,r12 ! 32: movl r12,r13 ! 33: ! 34: movl $0,mask /* set mask */ ! 35: bicpsw $(Z|V) /* clear z,v flags */ ! 36: bispsw $(N|C) /* set n,c flag */ ! 37: loadr mask,l0 /* this is the tested instruction */ ! 38: jeql error0 /* error if Z set */ ! 39: jvs error0 /* error if V set */ ! 40: jgeq error0 /* error if N not set */ ! 41: jcc error0 /* error if C not set */ ! 42: jmp 1f ! 43: error0: movpsl _actual /* actual = psl MAYBE it is incorrect */ ! 44: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 45: movl $2,_ercode /* error code flag failure */ ! 46: jmp *badrtn ! 47: ! 48: 1: cmpl $0,mask /* check if mask changed */ ! 49: jeql 1f ! 50: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 51: movl $3,_ercode /* error code operand was changed */ ! 52: movl mask,_actual /* actual data */ ! 53: movl $0,_expected /* expected data */ ! 54: jmp *badrtn ! 55: 1: cmpl $0xffffffff,r0 ! 56: jeql 1f ! 57: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 58: movl $1,_ercode /* error code data miscompare */ ! 59: movl r0,_actual /* actual data */ ! 60: movl $0xffffffff,_expected /* expected data */ ! 61: jmp *badrtn ! 62: 1: cmpl $0xffffffff,r1 ! 63: jeql 1f ! 64: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 65: movl $1,_ercode /* error code data miscompare */ ! 66: movl r1,_actual /* actual data */ ! 67: movl $0xffffffff,_expected /* expected data */ ! 68: jmp *badrtn ! 69: 1: cmpl $0xffffffff,r2 ! 70: jeql 1f ! 71: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 72: movl $1,_ercode /* error code data miscompare */ ! 73: movl r2,_actual /* actual data */ ! 74: movl $0xffffffff,_expected /* expected data */ ! 75: jmp *badrtn ! 76: 1: cmpl $0xffffffff,r3 ! 77: jeql 1f ! 78: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 79: movl $1,_ercode /* error code data miscompare */ ! 80: movl r3,_actual /* actual data */ ! 81: movl $0xffffffff,_expected /* expected data */ ! 82: jmp *badrtn ! 83: 1: cmpl $0xffffffff,r4 ! 84: jeql 1f ! 85: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 86: movl $1,_ercode /* error code data miscompare */ ! 87: movl r4,_actual /* actual data */ ! 88: movl $0xffffffff,_expected /* expected data */ ! 89: jmp *badrtn ! 90: 1: cmpl $0xffffffff,r5 ! 91: jeql 1f ! 92: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 93: movl $1,_ercode /* error code data miscompare */ ! 94: movl r5,_actual /* actual data */ ! 95: movl $0xffffffff,_expected /* expected data */ ! 96: jmp *badrtn ! 97: 1: cmpl $0xffffffff,r6 ! 98: jeql 1f ! 99: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 100: movl $1,_ercode /* error code data miscompare */ ! 101: movl r6,_actual /* actual data */ ! 102: movl $0xffffffff,_expected /* expected data */ ! 103: jmp *badrtn ! 104: 1: cmpl $0xffffffff,r7 ! 105: jeql 1f ! 106: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 107: movl $1,_ercode /* error code data miscompare */ ! 108: movl r7,_actual /* actual data */ ! 109: movl $0xffffffff,_expected /* expected data */ ! 110: jmp *badrtn ! 111: 1: cmpl $0xffffffff,r8 ! 112: jeql 1f ! 113: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 114: movl $1,_ercode /* error code data miscompare */ ! 115: movl r8,_actual /* actual data */ ! 116: movl $0xffffffff,_expected /* expected data */ ! 117: jmp *badrtn ! 118: 1: cmpl $0xffffffff,r9 ! 119: jeql 1f ! 120: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 121: movl $1,_ercode /* error code data miscompare */ ! 122: movl r9,_actual /* actual data */ ! 123: movl $0xffffffff,_expected /* expected data */ ! 124: jmp *badrtn ! 125: 1: cmpl $0xffffffff,r10 ! 126: jeql 1f ! 127: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 128: movl $1,_ercode /* error code data miscompare */ ! 129: movl r10,_actual /* actual data */ ! 130: movl $0xffffffff,_expected /* expected data */ ! 131: jmp *badrtn ! 132: 1: cmpl $0xffffffff,r11 ! 133: jeql 1f ! 134: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 135: movl $1,_ercode /* error code data miscompare */ ! 136: movl r11,_actual /* actual data */ ! 137: movl $0xffffffff,_expected /* expected data */ ! 138: jmp *badrtn ! 139: 1: cmpl $0xffffffff,r12 ! 140: jeql 1f ! 141: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 142: movl $1,_ercode /* error code data miscompare */ ! 143: movl r12,_actual /* actual data */ ! 144: movl $0xffffffff,_expected /* expected data */ ! 145: jmp *badrtn ! 146: 1: cmpl $0xffffffff,r13 ! 147: jeql next ! 148: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 149: movl $1,_ercode /* error code data miscompare */ ! 150: movl r13,_actual /* actual data */ ! 151: movl $0xffffffff,_expected /* expected data */ ! 152: jmp *badrtn ! 153: ! 154: next: ! 155: bbs $0,_force_lp,0b /* if set loop on last subtest */ ! 156: al2: callf $4,_setjmp /* save context for return from error */ ! 157: movab al2,_stpc /* save subtest starting address */ ! 158: movl $2,_subtst /* subtest number */ ! 159: movl $1,_no_opr /* number of operands in use */ ! 160: movl $0x2ad5,_opr /* first operand */ ! 161: 0: movw $0x2ad5,mask /* Set mask to load r0,r2,r4,r6,r7,r9,r11,r13 */ ! 162: movw mask,r10 /* use a register to contain mask */ ! 163: bicpsw $(Z|V|N|C) /* clear all flags */ ! 164: loadr r10,l0 /* this is the tested instruction */ ! 165: jeql error1 /* error if Z set */ ! 166: jvs error1 /* error if V set */ ! 167: jlss error1 /* error if N set */ ! 168: jcs error1 /* error if C set */ ! 169: jmp 1f ! 170: error1: movpsl _actual /* actual = psl MAYBE it is incorrect */ ! 171: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 172: movl $2,_ercode /* error code flag failure */ ! 173: jmp *badrtn ! 174: ! 175: 1: cmpl $0x2ad5,r10 ! 176: jeql 1f ! 177: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 178: movl $3,_ercode /* error code operand was changed */ ! 179: movl r10,_actual /* actual data */ ! 180: movl $0x2ad5,_expected /* expected data */ ! 181: jmp *badrtn ! 182: 1: cmpl $0,r0 /* Check if registers loaded correctly */ ! 183: jeql 1f ! 184: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 185: movl $1,_ercode /* error code data miscompare */ ! 186: movl r0,_actual /* actual data */ ! 187: movl $0,_expected /* expected data */ ! 188: jmp *badrtn ! 189: 1: cmpl $0xffffffff,r1 ! 190: jeql 1f ! 191: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 192: movl $1,_ercode /* error code data miscompare */ ! 193: movl r1,_actual /* actual data */ ! 194: movl $0xffffffff,_expected /* expected data */ ! 195: jmp *badrtn ! 196: 1: cmpl $0x11111111,r2 ! 197: jeql 1f ! 198: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 199: movl $1,_ercode /* error code data miscompare */ ! 200: movl r2,_actual /* actual data */ ! 201: movl $0x11111111,_expected /* expected data */ ! 202: jmp *badrtn ! 203: 1: cmpl $0xffffffff,r3 ! 204: jeql 1f ! 205: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 206: movl $1,_ercode /* error code data miscompare */ ! 207: movl r3,_actual /* actual data */ ! 208: movl $0xffffffff,_expected /* expected data */ ! 209: jmp *badrtn ! 210: 1: cmpl $0x22222222,r4 ! 211: jeql 1f ! 212: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 213: movl $1,_ercode /* error code data miscompare */ ! 214: movl r4,_actual /* actual data */ ! 215: movl $0x22222222,_expected /* expected data */ ! 216: jmp *badrtn ! 217: 1: cmpl $0xffffffff,r5 ! 218: jeql 1f ! 219: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 220: movl $1,_ercode /* error code data miscompare */ ! 221: movl r5,_actual /* actual data */ ! 222: movl $0xffffffff,_expected /* expected data */ ! 223: jmp *badrtn ! 224: 1: cmpl $0x33333333,r6 ! 225: jeql 1f ! 226: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 227: movl $1,_ercode /* error code data miscompare */ ! 228: movl r6,_actual /* actual data */ ! 229: movl $0x33333333,_expected /* expected data */ ! 230: jmp *badrtn ! 231: 1: cmpl $0x44444444,r7 ! 232: jeql 1f ! 233: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 234: movl $1,_ercode /* error code data miscompare */ ! 235: movl r7,_actual /* actual data */ ! 236: movl $0x44444444,_expected /* expected data */ ! 237: jmp *badrtn ! 238: 1: cmpl $0xffffffff,r8 ! 239: jeql 1f ! 240: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 241: movl $1,_ercode /* error code data miscompare */ ! 242: movl r8,_actual /* actual data */ ! 243: movl $0xffffffff,_expected /* expected data */ ! 244: jmp *badrtn ! 245: 1: cmpl $0x55555555,r9 ! 246: jeql 1f ! 247: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 248: movl $1,_ercode /* error code data miscompare */ ! 249: movl r9,_actual /* actual data */ ! 250: movl $0x55555555,_expected /* expected data */ ! 251: jmp *badrtn ! 252: 1: cmpl $0x66666666,r11 ! 253: jeql 1f ! 254: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 255: movl $1,_ercode /* error code data miscompare */ ! 256: movl r11,_actual /* actual data */ ! 257: movl $0x66666666,_expected /* expected data */ ! 258: jmp *badrtn ! 259: 1: cmpl $0xffffffff,r12 ! 260: jeql 1f ! 261: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 262: movl $1,_ercode /* error code data miscompare */ ! 263: movl r12,_actual /* actual data */ ! 264: movl $0xffffffff,_expected /* expected data */ ! 265: jmp *badrtn ! 266: 1: cmpl $0x77777777,r13 ! 267: jeql next1 ! 268: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 269: movl $1,_ercode /* error code data miscompare */ ! 270: movl r13,_actual /* actual data */ ! 271: movl $0x77777777,_expected /* expected data */ ! 272: jmp *badrtn ! 273: ! 274: next1: ! 275: bbs $0,_force_lp,0b /* if set loop on last subtest */ ! 276: al3: callf $4,_setjmp /* save context for return from error */ ! 277: movab al3,_stpc /* save subtest starting address */ ! 278: movl $3,_subtst /* subtest number */ ! 279: movl $1,_no_opr /* number of operands in use */ ! 280: movl $0x3fff,_opr /* first operand */ ! 281: 0: movl $0xffffffff,r0 /* load r0 - r13 with known data */ ! 282: movl r0,r1 ! 283: movl r1,r2 ! 284: movl r2,r3 ! 285: movl r3,r4 ! 286: movl r4,r5 ! 287: movl r5,r6 ! 288: movl r6,r7 ! 289: movl r7,r8 ! 290: movl r8,r9 ! 291: movl r9,r10 ! 292: movl r10,r11 ! 293: movl r11,r12 ! 294: movl r12,r13 ! 295: ! 296: movw $0x3fff,mask /* Set mask to load all registers */ ! 297: bicpsw $(Z|V|N|C) /* clear all flags */ ! 298: loadr mask,l0 /* this is the tested instruction */ ! 299: jeql error2 /* error if Z set */ ! 300: jvs error2 /* error if V set */ ! 301: jlss error2 /* error if N set */ ! 302: jcs error2 /* error if C set */ ! 303: jmp 1f ! 304: error2: movpsl _actual /* actual = psl MAYBE it is incorrect */ ! 305: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 306: movl $2,_ercode /* error code flag failure */ ! 307: jmp *badrtn ! 308: ! 309: 1: cmpl $0x3fff0000,mask ! 310: jeql 1f ! 311: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 312: movl $3,_ercode /* error code operand was changed */ ! 313: movl mask,_actual /* actual data */ ! 314: movl $0x3fff0000,_expected /* expected data */ ! 315: jmp *badrtn ! 316: 1: cmpl $0,r0 /* Check if registers loaded correctly */ ! 317: jeql 1f ! 318: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 319: movl $1,_ercode /* error code data miscompare */ ! 320: movl r0,_actual /* actual data */ ! 321: movl $0,_expected /* expected data */ ! 322: jmp *badrtn ! 323: 1: cmpl $0x11111111,r1 ! 324: jeql 1f ! 325: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 326: movl $1,_ercode /* error code data miscompare */ ! 327: movl r1,_actual /* actual data */ ! 328: movl $0x11111111,_expected /* expected data */ ! 329: jmp *badrtn ! 330: 1: cmpl $0x22222222,r2 ! 331: jeql 1f ! 332: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 333: movl $1,_ercode /* error code data miscompare */ ! 334: movl r2,_actual /* actual data */ ! 335: movl $0x22222222,_expected /* expected data */ ! 336: jmp *badrtn ! 337: 1: cmpl $0x33333333,r3 ! 338: jeql 1f ! 339: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 340: movl $1,_ercode /* error code data miscompare */ ! 341: movl r3,_actual /* actual data */ ! 342: movl $0x33333333,_expected /* expected data */ ! 343: jmp *badrtn ! 344: 1: cmpl $0x44444444,r4 ! 345: jeql 1f ! 346: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 347: movl $1,_ercode /* error code data miscompare */ ! 348: movl r4,_actual /* actual data */ ! 349: movl $0x44444444,_expected /* expected data */ ! 350: jmp *badrtn ! 351: 1: cmpl $0x55555555,r5 ! 352: jeql 1f ! 353: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 354: movl $1,_ercode /* error code data miscompare */ ! 355: movl r5,_actual /* actual data */ ! 356: movl $0x55555555,_expected /* expected data */ ! 357: jmp *badrtn ! 358: 1: cmpl $0x66666666,r6 ! 359: jeql 1f ! 360: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 361: movl $1,_ercode /* error code data miscompare */ ! 362: movl r6,_actual /* actual data */ ! 363: movl $0x66666666,_expected /* expected data */ ! 364: jmp *badrtn ! 365: 1: cmpl $0x77777777,r7 ! 366: jeql 1f ! 367: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 368: movl $1,_ercode /* error code data miscompare */ ! 369: movl r7,_actual /* actual data */ ! 370: movl $0x77777777,_expected /* expected data */ ! 371: jmp *badrtn ! 372: 1: cmpl $0x88888888,r8 ! 373: jeql 1f ! 374: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 375: movl $1,_ercode /* error code data miscompare */ ! 376: movl r8,_actual /* actual data */ ! 377: movl $0x88888888,_expected /* expected data */ ! 378: jmp *badrtn ! 379: 1: cmpl $0x99999999,r9 ! 380: jeql 1f ! 381: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 382: movl $1,_ercode /* error code data miscompare */ ! 383: movl r9,_actual /* actual data */ ! 384: movl $0x99999999,_expected /* expected data */ ! 385: jmp *badrtn ! 386: 1: cmpl $0xaaaaaaaa,r10 ! 387: jeql 1f ! 388: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 389: movl $1,_ercode /* error code data miscompare */ ! 390: movl r10,_actual /* actual data */ ! 391: movl $0xaaaaaaaa,_expected /* expected data */ ! 392: jmp *badrtn ! 393: 1: cmpl $0xbbbbbbbb,r11 ! 394: jeql 1f ! 395: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 396: movl $1,_ercode /* error code data miscompare */ ! 397: movl r11,_actual /* actual data */ ! 398: movl $0xbbbbbbbb,_expected /* expected data */ ! 399: jmp *badrtn ! 400: 1: cmpl $0xcccccccc,r12 ! 401: jeql 1f ! 402: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 403: movl $1,_ercode /* error code data miscompare */ ! 404: movl r12,_actual /* actual data */ ! 405: movl $0xcccccccc,_expected /* expected data */ ! 406: jmp *badrtn ! 407: 1: cmpl $0xdddddddd,r13 ! 408: jeql aldn ! 409: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 410: movl $1,_ercode /* error code data miscompare */ ! 411: movl r13,_actual /* actual data */ ! 412: movl $0xdddddddd,_expected /* expected data */ ! 413: jmp *badrtn ! 414: ! 415: aldn: bbs $0,_force_lp,0b /* if set loop on last subtest */ ! 416: jmp *return ! 417: ! 418: /* data space */ ! 419: ! 420: .align 2 ! 421: mask: ! 422: .long 0 ! 423: ! 424: l0: .long 0 ! 425: l1: .long 0x11111111 ! 426: l2: .long 0x22222222 ! 427: l3: .long 0x33333333 ! 428: l4: .long 0x44444444 ! 429: l5: .long 0x55555555 ! 430: l6: .long 0x66666666 ! 431: l7: .long 0x77777777 ! 432: l8: .long 0x88888888 ! 433: l9: .long 0x99999999 ! 434: l10: .long 0xaaaaaaaa ! 435: l11: .long 0xbbbbbbbb ! 436: l12: .long 0xcccccccc ! 437: l13: .long 0xdddddddd ! 438: .long 0xabababab ! 439: where: .long 0
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.