|
|
1.1 root 1:
2: /* REGISTER DEFERRED INDEXED 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 _rdi_mode
23: _rdi_mode:
24: callf $4,_setjmp /* save context */
25: movab _rdi_mode,_stpc /* save subtest pc */
26: movl $1,_subtst /* subtest number */
27: movl $3,_no_opr /* number of operands in use */
28: 0: clrl r5
29: movl dta,r3 /*data table address - base */
30: movb $3,r4 /*index */
31: movl r3,_opr /* first operand */
32: movl r4,_opr + 4 /* second operand */
33: movl r5,_opr + 8 /* third operand */
34: movb (r3)[r4],r5 /*get third byte from data_table*/
35: cmpl r5,$0x44 /*which is 0x44 */
36: beql 1f
37: er1:
38: bbs $0,_scoplp,0b /* if set scope loop on error */
39: movl $1,_ercode /* error code data miscompare */
40: movl r5,_actual /* actual data */
41: movl $0x44,_expected /* expected data */
42: jmp *badrtn /*display error */
43: 1: cmpl r3,dta /*check r3 did not changed */
44: beql 2f
45: er2:
46: bbs $0,_scoplp,0b /* if set scope loop on error */
47: movl $3,_ercode /* error code operand was changed */
48: movl r3,_actual /* actual data */
49: movl dta,_expected /* expected data */
50: jmp *badrtn /*display error */
51: 2: cmpl $3,r4 /*check index reg r5 unchanged */
52: beql 3f
53: er3:
54: bbs $0,_scoplp,0b /* if set scope loop on error */
55: movl $3,_ercode /* error code operand was changed */
56: movl r4,_actual /* actual data */
57: movl $3,_expected /* expected data */
58: jmp *badrtn /*display error */
59: 3: bbs $0,_force_lp,0b /* if set loop on last subtest */
60: 3: callf $4,_setjmp /* save context */
61: movab 3b,_stpc /* save subtest pc */
62: movl $2,_subtst /* subtest number */
63: movl $3,_no_opr /* number of operands in use */
64: movl r3,_opr /* first operand */
65: movl r4,_opr + 4 /* second operand */
66: movl r5,_opr + 8 /* third operand */
67: 0: movw (r3)[r4],r5 /*get third word from data_table*/
68: cmpl r5,$0x7788 /*which is 0x7788 */
69: beql 4f
70: er4:
71: bbs $0,_scoplp,0b /* if set scope loop on error */
72: movl $1,_ercode /* error code data miscompare */
73: movl r5,_actual /* actual data */
74: movl $0x7788,_expected /* expected data */
75: jmp *badrtn /*display error */
76: 4: bbs $0,_force_lp,0b /* if set loop on last subtest */
77: 4: callf $4,_setjmp /* save context */
78: movab 4b,_stpc /* save subtest pc */
79: movl $3,_subtst /* subtest number */
80: movl $3,_no_opr /* number of operands in use */
81: movl r3,_opr /* first operand */
82: movl r4,_opr + 4 /* second operand */
83: movl r5,_opr + 8 /* third operand */
84: 0: movl (r3)[r4],r5 /*get third longword from table */
85: cmpl r5,$0xddeeff00 /*which is 0xddeeff00 */
86: beql 5f
87: er5:
88: bbs $0,_scoplp,0b /* if set scope loop on error */
89: movl $1,_ercode /* error code data miscompare */
90: movl r5,_actual /* actual data */
91: movl $0xddeeff00,_expected /* expected data */
92: jmp *badrtn /*display error */
93: 5:
94: bbs $0,_force_lp,0b /* if set loop on last subtest */
95: movl $0,_ercode /*no error*/
96: jmp *return /*end of test - goto monitor */
97:
98:
99: /* Variables */
100:
101: .align 2
102: disp: .space 4
103: data_table:
104: .fill 1,4,0x11223344 /*relative location 0*/
105: .fill 1,4,0x55667788 /*rl 4 */
106: .fill 1,4,0x99aabbcc /*rl 8 */
107: .fill 1,4,0xddeeff00 /*rl 12 */
108: .fill 1,4,0x00000000
109:
110: .align 2
111: dta: .long data_table
112: dta1: .long disp
113:
114: /* end of file */
115:
116:
117:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.