|
|
1.1 root 1:
2:
3:
4: /* RELATIVE INDEXED ADDRESSING MODE TEST */
5: /* */
6: /* */
7: /* */
8: /* Syst.s - Constants */
9: /* */
10: .set IPL,8
11: .set HIGH,31
12: .set ZERO,0
13: .set ONES,0xffffffff
14: .set N,8
15: .set Z,4
16: .set V,2
17: .set C,1
18: .set T,16
19: .set IV,32
20: .set FU,64
21: .set DV,128
22: .set PSWMASK,0x003f
23:
24: .globl _reli_mode
25: _reli_mode:
26: callf $4,_setjmp /* save context */
27: movab _reli_mode,_stpc /* save subtest pc */
28: movl $1,_subtst /* subtest number */
29: movl $1,_no_opr /* number of operands in use */
30: 0: clrl r5
31: movb $3,r4 /*index */
32: movl r4,_opr /* first operand */
33: movb data_table[r4],r5 /*get third byte from data_table*/
34: cmpl r5,$0x44 /*which is 0x44 */
35: beql 1f
36: er1:
37: bbs $0,_scoplp,0b /* if set loop on error */
38: movl $1,_ercode /*error code data miscompare*/
39: movl r5,_actual /* actual data */
40: movl $0x0044,_expected /*expected; r5 = observed*/
41: jmp *badrtn /*display error */
42: 1: cmpl $3,r4 /*check index reg r4 unchanged */
43: beql 3f
44: er3:
45: bbs $0,_scoplp,0b /* if set loop on error */
46: movl $3,_ercode /*error code operand was changed*/
47: movl r4,_actual /* actual data */
48: movl $3,_expected /*expected; r3 = observed*/
49: jmp *badrtn /*display error */
50: 3: bbs $0,_force_lp,0b /* if set loop on subtest */
51: 3: callf $4,_setjmp /* save context */
52: movab 3b,_stpc /* save subtest pc */
53: movl $2,_subtst /* subtest number */
54: movl $1,_no_opr /* number of operands in use */
55: 0: movw data_table[r4],r5 /*get third word from data_table*/
56: cmpl r5,$0x7788 /*which is 0x7788 */
57: beql 4f
58: er4:
59: bbs $0,_scoplp,0b /* if set loop on error */
60: movl $1,_ercode /*error code data miscompare*/
61: movl r5,_actual /* actual data */
62: movl $0x7788,_expected /*expected; r5 = observed*/
63: jmp *badrtn /*display error */
64: 4: bbs $0,_force_lp,0b /* if set loop on subtest */
65: 4: callf $4,_setjmp /* save context */
66: movab 4b,_stpc /* save subtest pc */
67: movl $3,_subtst /* subtest number */
68: movl $1,_no_opr /* number of operands in use */
69: 0: movl data_table[r4],r5 /*get third longword from table */
70: cmpl r5,$0xddeeff00 /*which is 0xddeeff00 */
71: beql 5f
72: er5:
73: bbs $0,_scoplp,0b /* if set loop on error */
74: movl $1,_ercode /*error code data miscompare*/
75: movl r5,_actual /* actual data */
76: movl $0xddeeff00,_expected /*expected; r5 = observed*/
77: jmp *badrtn /*display error */
78: 5:
79: bbs $0,_force_lp,0b /* if set loop on subtest */
80: movl $0,_ercode /*no error*/
81: jmp *return /*end of test - goto monitor */
82:
83:
84: /* Variables */
85:
86: .align 2
87: disp: .space 4
88: data_table:
89: .fill 1,4,0x11223344 /*relative location 0*/
90: .fill 1,4,0x55667788 /*rl 4 */
91: .fill 1,4,0x99aabbcc /*rl 8 */
92: .fill 1,4,0xddeeff00 /*rl 12 */
93: .fill 1,4,0x00000000
94:
95: /* end of file */
96:
97:
98:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.