|
|
1.1 root 1:
2:
3: /* CLRB (clear byte) test */
4:
5: /*Test name = Clrb */
6: /*Description = */
7: /* This test checks "clrb" instruction to see that */
8: /* (1)destination is cleared to zero */
9: /* (2)Z flag is set to one */
10: /* (3)N and V flags are set to zero */
11: /* (4)C flag is set to one. */
12: /* Register 0 (r1) & memory location tmloc(lebel) are used as */
13: /* destination. */
14: /* */
15: /* Constants definition */
16: /* */
17: .set IPL,8
18: .set HIGH,31
19: .set ZERO,0
20: .set ONES,0xffffffff
21: .set N,8
22: .set Z,4
23: .set V,2
24: .set C,1
25: .set EXPL,0
26: .set EXPW,0
27: .set EXPB,0
28: .set PSWMASK,0x003f
29: .globl _clr_b
30: _clr_b:
31: callf $4,_setjmp /* save caontext for error return */
32: movab _clr_b,_stpc /* save subtest address */
33: movl $1,_subtst /* subtest number */
34: movl $1,_no_opr /* number of operands in use */
35: movl $ONES,_opr /* first operand */
36: 0: movl $ONES,r3 /*set r3 to all bits ones */
37: bicpsw $PSWMASK /*disable overflow & other enable bits */
38: bispsw $(N|V) /*turn negetive, overflow, & */
39: clrb r3 /*execute "clrb" */
40: bneq error1 /*error if Z = 0 */
41: blss error1 /*error if N = 1 */
42: bvs error1 /*error if V = 1 */
43: bcc error1 /*error if C = 0 */
44: jmp 1f
45: error1: movpsl _actual /* actual psl MAYBE it is incorrect */
46: bbs $0,_scoplp,0b /* if set loop on error */
47: movl $2,_ercode /* error code flag failure */
48: jmp *badrtn
49: 1: bicpsw $Z /*clear Z flag */
50: cmpl r3,$EXPB /*check r3 = expected value */
51: beql clrbm /*if no error then continue */
52: bbs $0,_scoplp,0b /* if set scope loop on error */
53: movl $1,_ercode /* error code data miscompare */
54: movl r3,_actual /* actual data */
55: movl $EXPB,_expected /* expected data */
56: jmp *badrtn
57: /* */
58: /* Now repeat the above test with a memory location (tmloc). */
59: /* */
60:
61: clrbm:
62: bbs $0,_force_lp,0b /* if set loop on last subtest */
63: c2: callf $4,_setjmp /* save caontext for error return */
64: movab c2,_stpc /* save subtest address */
65: movl $2,_subtst /* subtest number */
66: 0: movl $ONES,tmloc /*set tmloc to all bits ones */
67: bicpsw $PSWMASK
68: bispsw $(N|V) /*turn negetive, and overflow */
69: /*ON in PSW */
70: clrb tmloc /*execute "clrb" */
71: bneq error2 /*error if Z = 0 */
72: blss error2 /*error if N = 1 */
73: bvs error2 /*error if V = 1 */
74: bcc error2 /*error if C = 0 */
75: jmp 1f
76: error2: movpsl _actual /* actual psl MAYBE it is incorrect */
77: bbs $0,_scoplp,0b /* if set loop on error */
78: movl $2,_ercode /* error code flag failure */
79: jmp *badrtn
80: 1: bicpsw $Z /*clear Z flag */
81: movl $0x00ffffff,r4
82: cmpl tmloc,$0x00ffffff/*check tmloc = expected value */
83: beql 1f /*if not, error */
84: bbs $0,_scoplp,0b /* if set scope loop on error */
85: movl $1,_ercode /* error code data miscompare */
86: movl tmloc,_actual /* actual data */
87: movl $0x00ffffff,_expected /* expected data */
88: jmp *badrtn
89: 1: bbs $0,_force_lp,0b /* if set loop on last subtest */
90: jmp *return /* good, return to monitor */
91:
92:
93: /* */
94: /* Variables definition */
95: /* */
96: .align 2
97: tmloc: .long 0xffffffff
98: /* End of file */
99:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.