|
|
1.1 root 1:
2: /* andl3 mask,src,dest */
3: /* Combination = 2,3,4 */
4: /* mask src dest */
5: /* ---- --- ---- */
6: /* 2 3 4 */
7: /* 2 4 3 */
8: /* 3 2 4 */
9: /* 3 4 2 */
10: /* 4 2 3 */
11: /* 4 3 2 */
12: /* where 1 = register mode */
13: /* 2 = (register) mode */
14: /* 3 = immidiate mode */
15: /* 4 = longword displacement deferred mode */
16:
17: /* Constants */
18:
19: .set MASK,0x55555555
20: .set SRC,0xaaaaaaaa
21: .set DEST,-1
22:
23:
24: /* */
25: /* Syst.s - Constants */
26: /* */
27: .set IPL,8
28: .set HIGH,31
29: .set ZERO,0
30: .set ONES,0xffffffff
31: .set N,8
32: .set Z,4
33: .set V,2
34: .set C,1
35: .set T,16
36: .set IV,32
37: .set FU,64
38: .set DV,128
39: .set PSWMASK,0x003f
40:
41:
42: .globl _ca234
43: _ca234: callf $4,_setjmp /* save context */
44: movab _ca234,_stpc /* save subtest pc */
45: movl $1,_subtst /* subtest number */
46: movl $4,_no_opr /* number of operands in use */
47: 0: movl ma,r4 /*mask address */
48: movl $3,r6 /*index for dest */
49: movl base_add,r5 /*base of add_table */
50: movl r4,_opr /* first operand */
51: movl $SRC,_opr + 4 /* second operand */
52: movl r5,_opr + 8 /* third operand */
53: movl r6,_opr + 12 /* fourth operand */
54: andl3 (r4),$SRC,*l^64020(r5)[r6]
55: cmpl $0,dest
56: beql 1f
57: er1: bbs $0,_scoplp,0b /* if set loop on error for scope */
58: movl $1,_ercode /* error code data miscompare */
59: movl dest,_actual /* actual data */
60: movl $0,_expected /* expected data */
61: jmp *badrtn /*error - mode = 234 */
62: 1: bbs $0,_force_lp,0b /* if set loop on last subtest */
63: 1: callf $4,_setjmp /* save context */
64: movab 1b,_stpc /* save subtest pc */
65: movl $2,_subtst /* subtest number */
66: movl $4,_no_opr /* number of operands in use */
67: 0: movl $SRC,src
68: movl sa,r4 /*source address */
69: movl $-1,dest
70: movl $MASK,_opr /* first operand */
71: movl r4,_opr + 4 /* second operand */
72: movl r5,_opr + 8 /* third operand */
73: movl r6,_opr + 12 /* fourth operand */
74: andl3 $MASK,(r4),*l^64020(r5)[r6]
75: cmpl $0,dest
76: beql 2f
77: er2: bbs $0,_scoplp,0b /* if set loop on error for scope */
78: movl $1,_ercode /* error code data miscompare */
79: movl dest,_actual /* actual data */
80: movl $0,_expected /* expected data */
81: jmp *badrtn /*error - mode = 324 */
82: 2: bbs $0,_force_lp,0b /* if set loop on last subtest */
83: 2: callf $4,_setjmp /* save context */
84: movab 2b,_stpc /* save subtest pc */
85: movl $3,_subtst /* subtest number */
86: movl $4,_no_opr /* number of operands in use */
87: 0: movl $SRC,src
88: movl $2,r6 /*index for source */
89: movl $DEST,dest
90: movl da,r4
91: movl $MASK,_opr /* first operand */
92: movl r5,_opr + 4 /* second operand */
93: movl r6,_opr + 8 /* third operand */
94: movl r4,_opr + 12 /* fourth operand */
95: andl3 $MASK,*l^64020(r5)[r6],(r4)
96: cmpl $0,dest
97: beql 3f
98: er3: bbs $0,_scoplp,0b /* if set loop on error for scope */
99: movl $1,_ercode /* error code data miscompare */
100: movl dest,_actual /* actual data */
101: movl $0,_expected /* expected data */
102: jmp *badrtn /*error - mode = 342 */
103: 3: bbs $0,_force_lp,0b /* if set loop on last subtest */
104: 3: callf $4,_setjmp /* save context */
105: movab 3b,_stpc /* save subtest pc */
106: movl $4,_subtst /* subtest number */
107: movl $4,_no_opr /* number of operands in use */
108: 0: movl $MASK,mask
109: movl $1,r6 /*index for mask */
110: movl $DEST,dest
111: movl da,r4
112: movl r5,_opr /* first operand */
113: movl r6,_opr + 4 /* second operand */
114: movl $SRC,_opr + 8 /* third operand */
115: movl r4,_opr + 12 /* fourth operand */
116: andl3 *l^64020(r5)[r6],$SRC,(r4)
117: cmpl $0,dest
118: beql 4f
119: er4: bbs $0,_scoplp,0b /* if set loop on error for scope */
120: movl $1,_ercode /* error code data miscompare */
121: movl dest,_actual /* actual data */
122: movl $0,_expected /* expected data */
123: jmp *badrtn /*error - mode = 432 */
124: 4: bbs $0,_force_lp,0b /* if set loop on last subtest */
125: movl $0,_ercode /* no error */
126: jmp *return /*end of test - goto monitor */
127:
128:
129:
130:
131: /* end of file */
132:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.