Rev 438 | Rev 441 | 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 | /* |