Rev 1769 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1769 | Rev 1780 | ||
|---|---|---|---|
| Line 93... | Line 93... | ||
| 93 | panic("unhandled exception %s\n", exctable[n]); |
93 | panic("unhandled exception %s\n", exctable[n]); |
| 94 | } |
94 | } |
| 95 | 95 | ||
| 96 | static void reserved_instr_exception(int n, istate_t *istate) |
96 | static void reserved_instr_exception(int n, istate_t *istate) |
| 97 | { |
97 | { |
| 98 | if (*((__u32 *)istate->epc) == 0x7c03e83b) { |
98 | if (*((uint32_t *)istate->epc) == 0x7c03e83b) { |
| 99 | ASSERT(THREAD); |
99 | ASSERT(THREAD); |
| 100 | istate->epc += 4; |
100 | istate->epc += 4; |
| 101 | istate->v1 = istate->k1; |
101 | istate->v1 = istate->k1; |
| 102 | } else |
102 | } else |
| 103 | unhandled_exception(n, istate); |
103 | unhandled_exception(n, istate); |
| Line 137... | Line 137... | ||
| 137 | } |
137 | } |
| 138 | #endif |
138 | #endif |
| 139 | 139 | ||
| 140 | static void interrupt_exception(int n, istate_t *istate) |
140 | static void interrupt_exception(int n, istate_t *istate) |
| 141 | { |
141 | { |
| 142 | __u32 cause; |
142 | uint32_t cause; |
| 143 | int i; |
143 | int i; |
| 144 | 144 | ||
| 145 | /* decode interrupt number and process the interrupt */ |
145 | /* decode interrupt number and process the interrupt */ |
| 146 | cause = (cp0_cause_read() >> 8) &0xff; |
146 | cause = (cp0_cause_read() >> 8) &0xff; |
| 147 | 147 | ||