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