Subversion Repositories HelenOS

Rev

Rev 438 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 438 Rev 439
Line 54... Line 54...
54
	
54
	
55
    /* 3. switch to kernel memory stack */
55
    /* 3. switch to kernel memory stack */
56
	/* TODO: support interruptions from userspace */
56
	/* TODO: support interruptions from userspace */
57
	/* assume kernel stack */
57
	/* assume kernel stack */
58
	
58
	
59
    /* 4. allocate memory stack for registers saved in bank 0 */
59
    /* 4. save registers in bank 0 into memory stack */
60
	st8 [r12] = r29, -8 ;;	/* save predicate registers */
60
	st8 [r12] = r29, -8 ;;	/* save predicate registers */
61
 
61
 
62
	st8 [r12] = r24, -8 ;;	/* save cr.iip */
62
	st8 [r12] = r24, -8 ;;	/* save cr.iip */
63
	st8 [r12] = r25, -8 ;;	/* save cr.ipsr */
63
	st8 [r12] = r25, -8 ;;	/* save cr.ipsr */
64
	st8 [r12] = r26, -8 ;;	/* save cr.iipa */
64
	st8 [r12] = r26, -8 ;;	/* save cr.iipa */
Line 99... Line 99...
99
	movl r24 = \handler
99
	movl r24 = \handler
100
	mov r25 = b0
100
	mov r25 = b0
101
	br.call.sptk.many rp = heavyweight_handler_inner
101
	br.call.sptk.many rp = heavyweight_handler_inner
102
0:	mov b0 = r25	
102
0:	mov b0 = r25	
103
 
103
 
104
	{ br heavyweight_handler_finalize }
104
	br heavyweight_handler_finalize
105
.endm
105
.endm
106
 
106
 
107
.global heavyweight_handler_inner
107
.global heavyweight_handler_inner
108
heavyweight_handler_inner:
108
heavyweight_handler_inner:
109
	/*
109
	/*