|
|
1.1 root 1: #
2: # interrupt stack not valid event test
3: #
4: # WARNING-- This test, if works, halts the machine with
5: # r0 = 0xcafebabe, & r1 = -1.
6: #
7: # R0 = error code
8: # 1 - Expected interrupt stack not valid exception did not happen
9: # R1 = current PSL , R2 = Current ISP
10: # 2 - Took software interrupt #3 while ISP is invalid
11: # R1 = current ISP
12: #
13: .set SIVEC3,0x1c /* Offset into SCB for soft int level 3 */
14: #
15: .globl _isnv_evt
16: _isnv_evt:
17: .word 0x1fff
18:
19: mtpr $0x1f,$IPL
20: movpsl r1
21: andl2 $0x051f0000,r1
22: cmpl $0x041f0000,r1 /* PSL : IS must be ON, K mode, */
23: /* IPL must be 0x1f for this */
24: /* test to work */
25: beql 1f
26: movl $1,r0
27: movl $0x041f0000,r2
28: halt /* PSL not right for this test */
29: /* r0 = 1; r1 = psl; r2 =exp psl */
30:
31: /* Invalidate interrupt stack page table entry in SPT */
32: 1:
33: movab (sp),r8 /* Get current ISP */
34: subl2 $4,r8 /* Address of next push */
35: andl2 $0x3fffffff,r8 /* Mask out bit 30, 31 */
36: shrl $PGSHIFT,r8,r8 /* Get page no. of this address */
37:
38: andl3 _Sysmap[r8],$0x7fffffff,_Sysmap[r8] /* Set valid bit off */
39: mtpr $0,$TBIA /* Invalidate translation buffer */
40:
41: movl _scb+SIVEC3,_savvec0 /* Set new vector for soft int #3 */
42: movab _sivec3,_scb+SIVEC3
43: mtpr $2,$IPL /* Set IPL = 2 */
44: movl $0xcafebabe,r1
45: mtpr $3,$SIRR /* Force soft int level #3 */
46: /* Since ISP is not valid, the machine */
47: /* should halt with r0 = 0, $ r1 = -1 */
48: movpsl r1
49: movl $1,r0
50: movab (sp),r2
51: jmp *badrtn /* error code = 2 = r0; did not halt */
52: /* when trying to force soft int #3 and */
53: /* interrupt stack was invalid */
54:
55: .align 2
56: _sivec3: /* should not come here either */
57: movl $2,r0
58: movab (sp),r1
59: jmp *badrtn /* errorcode = r0 ; took soft int #3 */
60: /* vector when int stack was invalid */
61:
62: /* NO RETURN FROM THIS TEST --- IT HALTS */
63:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.