|
|
1.1 ! root 1: /* INCL instruction test */ ! 2: /* Privilege registers */ ! 3: ! 4: .set IPL,0x8 ! 5: .set MAPEN,0x9 ! 6: .set KSP,0x19 ! 7: /* PSL fields */ ! 8: .set IV,32 ! 9: .set T,16 ! 10: .set N,8 ! 11: .set Z,4 ! 12: .set V,2 ! 13: .set C,1 ! 14: ! 15: /* constants */ ! 16: .set DISABLE,0 ! 17: .set ENABLE,1 ! 18: .set MAXPOSL,0x7fffffff ! 19: .set MAXNEGL,0x80000000 ! 20: .set MAXPOSW,0x7fff ! 21: .set MAXNEGW,0x8000 ! 22: .set MAXPOSB,0x7f ! 23: .set MAXNEGB,0x80 ! 24: .set ZERO,0 ! 25: .set ONES,0xffffffff ! 26: .set HIGH,31 /* highest interrupt priority */ ! 27: ! 28: .globl _inc_l ! 29: _inc_l: ! 30: callf $4,_setjmp /* save context for error return */ ! 31: movab _inc_l,_stpc /* save subtest starting address */ ! 32: movl $1,_subtst /* subtest number */ ! 33: movl $1,_no_opr /* number of operands in use */ ! 34: movl $0xfffffffe,_opr /* first operand */ ! 35: 0: bicpsw $(IV|T) /* disable overflow,trace exceptions */ ! 36: movl $0xfffffffe,r3 /* load r3 with -2 */ ! 37: bispsw $(Z|V|C) /* set z,v,c flags */ ! 38: bicpsw $N /* clear n flag */ ! 39: incl r3 /* increment r3 */ ! 40: jgeq error1 /* error if n flag not set */ ! 41: jeql error1 /* error if z flag still set */ ! 42: jvs error1 /* error if v flag still set */ ! 43: jcs error1 /* error if c flag still set */ ! 44: jmp 1f ! 45: error1: movpsl _actual /* actual = psl MAYBE it is incorrect */ ! 46: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 47: movl $2,_ercode /* error code flag failure */ ! 48: jmp *badrtn ! 49: 1: cmpl $0xffffffff,r3 /* is r3 == -1 */ ! 50: jeql step2 ! 51: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 52: movl $1,_ercode /* error code data miscompare */ ! 53: movl r3,_actual /* actual data */ ! 54: movl $0xffffffff,_expected /* expected data */ ! 55: jmp *badrtn ! 56: step2: ! 57: bbs $0,_force_lp,0b /* if set loop on last subtest */ ! 58: ai2: callf $4,_setjmp /* save context for error return */ ! 59: movab ai2,_stpc /* save subtest starting address */ ! 60: movl $2,_subtst /* subtest number */ ! 61: movl $1,_no_opr /* number of operands in use */ ! 62: movl $0xffffffff,_opr /* first operand */ ! 63: 0: bispsw $(N|V) /* set n,v flags */ ! 64: bicpsw $(Z|C) /* clear z,c flag */ ! 65: incl r3 /* increment r3 */ ! 66: jlss error2 /* error if n flag still set */ ! 67: jvs error2 /* error if v flag still set */ ! 68: jneq error2 /* error if z flag not set */ ! 69: jcc error2 /* error if c flag not set */ ! 70: jmp 1f ! 71: error2: movpsl _actual /* actual = psl MAYBE it is incorrect */ ! 72: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 73: movl $2,_ercode /* error code flag failure */ ! 74: jmp *badrtn ! 75: 1: bicpsw $Z ! 76: cmpl $0x0,r3 /* is r3 == 0 */ ! 77: jeql ovfl ! 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 $0,_expected /* expected data */ ! 82: jmp *badrtn ! 83: ovfl: ! 84: bbs $0,_force_lp,0b /* if set loop on last subtest */ ! 85: ai3: callf $4,_setjmp /* save context for error return */ ! 86: movab ai3,_stpc /* save subtest starting address */ ! 87: movl $3,_subtst /* subtest number */ ! 88: movl $1,_no_opr /* number of operands in use */ ! 89: movl $MAXPOSL,_opr /* first operand */ ! 90: 0: movl $MAXPOSL,r3 /* set r3 = 0x7fffffff */ ! 91: bispsw $(Z|C|N) /* set n,z,c flags */ ! 92: bicpsw $V /* clear v flags */ ! 93: incl r3 /* increment r3 */ ! 94: jvc error3 /* error if v flag not set */ ! 95: jlss error3 /* error if n flag not set; on overflow */ ! 96: /* sum is replaced by MAX negative no., */ ! 97: /* and N is reset */ ! 98: jeql error3 /* error if z flag still set */ ! 99: jcs error3 /* error if c flag set */ ! 100: jmp 1f ! 101: error3: movpsl _actual /* actual = psl MAYBE it is incorrect */ ! 102: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 103: movl $2,_ercode /* error code flag failure */ ! 104: jmp *badrtn ! 105: 1: cmpl $MAXNEGL,r3 /* is r3 == $MAXNEGL */ ! 106: jeql incml ! 107: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 108: movl $1,_ercode /* error code data miscompare */ ! 109: movl r3,_actual /* actual data */ ! 110: movl $MAXNEGL,_expected /* expected data */ ! 111: jmp *badrtn ! 112: incml: /* INCREMENT MEMORY */ ! 113: ! 114: bbs $0,_force_lp,0b /* if set loop on last subtest */ ! 115: ai4: callf $4,_setjmp /* save context for error return */ ! 116: movab ai4,_stpc /* save subtest starting address */ ! 117: movl $4,_subtst /* subtest number */ ! 118: movl $1,_no_opr /* number of operands in use */ ! 119: movl $0xfffffffe,_opr /* first operand */ ! 120: 0: movl $0xfffffffe,tstloc /* load tstloc with -2 */ ! 121: bispsw $(Z|V|C) /* set z,v,c flags */ ! 122: bicpsw $N /* clear n flag */ ! 123: incl tstloc /* increment tstloc */ ! 124: jgeq error4 /* error if n flag not set */ ! 125: jeql error4 /* error if z flag still set */ ! 126: jvs error4 /* error if v flag still set */ ! 127: jcs error4 /* error if c flag still set */ ! 128: jmp 1f ! 129: error4: movpsl _actual /* actual = psl MAYBE it is incorrect */ ! 130: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 131: movl $2,_ercode /* error code flag failure */ ! 132: jmp *badrtn ! 133: 1: cmpl $0xffffffff,tstloc /* is tstloc == -1 */ ! 134: jeql stp2 ! 135: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 136: movl $1,_ercode /* error code data miscompare */ ! 137: movl tstloc,_actual /* actual data */ ! 138: movl $0xfffffff,_expected /* expected data */ ! 139: jmp *badrtn ! 140: stp2: ! 141: bbs $0,_force_lp,0b /* if set loop on last subtest */ ! 142: ai5: callf $4,_setjmp /* save context for error return */ ! 143: movab ai5,_stpc /* save subtest starting address */ ! 144: movl $5,_subtst /* subtest number */ ! 145: movl $1,_no_opr /* number of operands in use */ ! 146: movl $0xffffffff,_opr /* first operand */ ! 147: 0: bispsw $(N|V) /* set n,v flags */ ! 148: bicpsw $(Z|C) /* clear z,c flag */ ! 149: incl tstloc /* increment tstloc */ ! 150: jlss error5 /* error if n flag still set */ ! 151: jvs error5 /* error if v flag still set */ ! 152: jneq error5 /* error if z flag not set */ ! 153: jcc error5 /* error if c flag not set */ ! 154: jmp 1f ! 155: error5: movpsl _actual /* actual = psl MAYBE it is incorrect */ ! 156: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 157: movl $2,_ercode /* error code flag failure */ ! 158: jmp *badrtn ! 159: 1: cmpl $0x0,tstloc /* is tstloc == 0 */ ! 160: jeql ovfl1 ! 161: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 162: movl $1,_ercode /* error code data miscompare */ ! 163: movl tstloc,_actual /* actual data */ ! 164: movl $0,_expected /* expected data */ ! 165: jmp *badrtn ! 166: ovfl1: ! 167: bbs $0,_force_lp,0b /* if set loop on last subtest */ ! 168: ai6: callf $4,_setjmp /* save context for error return */ ! 169: movab ai6,_stpc /* save subtest starting address */ ! 170: movl $6,_subtst /* subtest number */ ! 171: movl $1,_no_opr /* number of operands in use */ ! 172: movl $MAXPOSL,_opr /* first operand */ ! 173: 0: movl $MAXPOSL,tstloc /* set tstloc = 0x7fffffff */ ! 174: bispsw $(Z|C) /* set z,c flags */ ! 175: bicpsw $(N|V) /* clear n,v flags */ ! 176: incl tstloc /* increment tstloc */ ! 177: jvc error6 /* error if v flag not set */ ! 178: jlss error6 /* error if n flag set */ ! 179: jeql error6 /* error if z flag still set */ ! 180: jcs error6 /* error if c flag set */ ! 181: jmp 1f ! 182: error6: movpsl _actual /* actual = psl MAYBE it is incorrect */ ! 183: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 184: movl $2,_ercode /* error code flag failure */ ! 185: jmp *badrtn ! 186: 1: cmpl $MAXNEGL,tstloc /* is tstloc == $MAXNEGL */ ! 187: jeql aldn ! 188: bbs $0,_scoplp,0b /* if set scope loop on error */ ! 189: movl $1,_ercode /* error code data miscompare */ ! 190: movl tstloc,_actual /* actual data */ ! 191: movl $MAXNEGL,_expected /* expected data */ ! 192: jmp *badrtn ! 193: ! 194: aldn: bbs $0,_force_lp,0b /* if set loop on last subtest */ ! 195: jmp *return /* jmp absolute */ ! 196: ! 197: /* test data */ ! 198: .align 2 ! 199: tstloc: .long 0 ! 200:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.