|
|
1.1 root 1:
2: /* AUTODECREMENT/INCREMENT ADDRESSING MODE TEST */
3: /* */
4: /* */
5: /* */
6: /* Syst.s - Constants */
7: /* */
8: .set IPL,8
9: .set HIGH,31
10: .set ZERO,0
11: .set ONES,0xffffffff
12: .set N,8
13: .set Z,4
14: .set V,2
15: .set C,1
16: .set T,16
17: .set IV,32
18: .set FU,64
19: .set DV,128
20: .set PSWMASK,0x003f
21:
22: .globl _adec_mode
23: _adec_mode:
24: callf $4,_setjmp /* save context for error return */
25: movab _adec_mode,_stpc /* save subtest pc */
26: movl $1,_subtst /* subtest number */
27: movl $1,_no_opr /* number of operands in use */
28: movl spb4,_opr /* test operand */
29: 0: movl $0x11223344,spbase-4
30: movl $0x55667788,spbase-8
31: movl $0x99aabbcc,spbase-12
32: movl $0xddeeff00,spbase-16
33: bicpsw $PSWMASK
34: movl spb,sp /* sp = stack base */
35: movl $-1,r3
36: movl r3,-(sp)
37: movab (sp),r3
38: cmpl r3,spb4 /*check sp = oldsp - 4 */
39: beql 8f
40: er8:
41: bbs $0,_scoplp,0b /* tight loop for scope loop */
42: movl $1,_ercode /*error code*/
43: movl r3,_actual /* actual data */
44: movl spb4,_expected /*expected */
45: jmp *badrtn /*display error */
46: /*sp not decremented by 4 on-(sp) mode */
47: 8:
48: cmpl $-1,(sp)
49: beql 9f
50: er9:
51: bbs $0,_scoplp,0b /* tight loop for scope loop */
52: movl $3,_ercode /* error code operand modified */
53: movl (sp),_actual /* actual data */
54: movl $-1,_expected /*expected */
55: jmp *badrtn /*-(sp) did not push correct value on stack*/
56: 9:
57: bbs $0,_force_lp,0b /* if set loop on subtest */
58: 9: callf $4,_setjmp /* save context for error return */
59: movab 9b,_stpc /* save subtest pc */
60: movl $2,_subtst /* subtest number */
61: movl $1,_no_opr /* number of operands in use */
62: movl spb16,_opr /* test operand */
63: 0: movl $1,-(sp)
64: movl $2,-(sp)
65: movl $3,-(sp)
66: movab (sp),r3
67: cmpl r3,spb16
68: beql 1f
69: bbs $0,_scoplp,0b /* tight loop for scope loop */
70: movl $1,_ercode /* error code data miscompare */
71: movl (sp),_actual /* actual data */
72: movl $spb16,_expected /*expected */
73: jmp *badrtn /*sp not decremented by 12 after 3 pushes*/
74: 1:
75: bbs $0,_force_lp,0b /* if set loop on subtest */
76: 1: callf $4,_setjmp /* save context for error return */
77: movab 1b,_stpc /* save subtest pc */
78: movl $3,_subtst /* subtest number */
79: movl $1,_no_opr /* number of operands in use */
80: movl $3,_opr /* test operand */
81: 0: movl $3,r4
82: movl (sp)+,r3
83: cmpl r3,r4
84: beql 1f
85: bbs $0,_scoplp,0b /* tight loop for scope loop */
86: movl $1,_ercode /* error code data miscompare */
87: movl r3,_actual /* actual data */
88: movl $3,_expected /*expected */
89: jmp *badrtn /*-(sp) did not push correct value*/
90: /*or (sp)+ did not pop correct value*/
91: 1:
92: bbs $0,_force_lp,0b /* if set loop on subtest */
93: 1: callf $4,_setjmp /* save context for error return */
94: movab 1b,_stpc /* save subtest pc */
95: movl $4,_subtst /* subtest number */
96: movl $1,_no_opr /* number of operands in use */
97: movl spb12,_opr /* test operand */
98: 0: movl spb12,r4
99: movab (sp),r3
100: cmpl r3,r4
101: beql 1f
102: bbs $0,_scoplp,0b /* tight loop for scope loop */
103: movl $1,_ercode /* error code data miscompare */
104: movl r3,_actual /* actual data */
105: movl spb12,_expected /*expected */
106: jmp *badrtn /*sp not incremented properly in (sp)+ mode*/
107: 1:
108: bbs $0,_force_lp,0b /* if set loop on subtest */
109: 1: callf $4,_setjmp /* save context for error return */
110: movab 1b,_stpc /* save subtest pc */
111: movl $5,_subtst /* subtest number */
112: movl $1,_no_opr /* number of operands in use */
113: movl $2,_opr /* test operand */
114: 0: movl $2,r4
115: movl (sp)+,r3
116: cmpl r3,r4
117: beql 1f
118: bbs $0,_scoplp,0b /* tight loop for scope loop */
119: movl $1,_ercode /* error code data miscompare */
120: movl r3,_actual /* actual data */
121: movl $2,_expected /*expected */
122: jmp *badrtn /*-(sp) did not push correct value*/
123:
124: /*or (sp)+ did not pop correct value*/
125: 1:
126: bbs $0,_force_lp,0b /* if set loop on subtest */
127: 1: callf $4,_setjmp /* save context for error return */
128: movab 1b,_stpc /* save subtest pc */
129: movl $6,_subtst /* subtest number */
130: movl $1,_no_opr /* number of operands in use */
131: movl spb8,_opr /* test operand */
132: 0: movl spb8,r4
133: movab (sp),r3
134: cmpl r3,r4
135: beql 1f
136: bbs $0,_scoplp,0b /* tight loop for scope loop */
137: movl $1,_ercode /* error code data miscompare */
138: movl r3,_actual /* actual data */
139: movl spb8,_expected /*expected */
140: jmp *badrtn /*sp not incremented properly in (sp)+ mode*/
141:
142:
143: 1: bbs $0,_force_lp,0b /* if set loop on subtest */
144: movl $0,_ercode /*no error*/
145: jmp *return /*end of test - goto monitor */
146:
147:
148:
149: /* Variables */
150: /* */
151: /* */
152:
153: .align 2
154: splimit: .space 100
155: .align 2
156: .fill 1,4,0xddeeff00
157: .fill 1,4,0x99aabbcc
158: .fill 1,4,0x55667788
159: .fill 1,4,0x11223344
160: .align 2
161: spbase: .space 4
162: spb: .long spbase
163: spb1: .long spbase - 1
164: spb2: .long spbase - 2
165: spb3: .long spbase - 3
166: spb4: .long spbase - 4
167: spb5: .long spbase - 5
168: spb6: .long spbase - 6
169: spb7: .long spbase - 7
170: spb8: .long spbase - 8
171: spb9: .long spbase - 9
172: spb10: .long spbase - 10
173: spb11: .long spbase - 11
174: spb12: .long spbase - 12
175: spb13: .long spbase - 13
176: spb14: .long spbase - 14
177: spb15: .long spbase - 15
178: spb16: .long spbase - 16
179: spb17: .long spbase - 17
180: spb18: .long spbase - 18
181: spb19: .long spbase - 19
182:
183:
184:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.