Rev 1053 | Rev 1221 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1053 | Rev 1196 | ||
|---|---|---|---|
| Line 130... | Line 130... | ||
| 130 | iip = get_symtab_entry(istate->cr_iip); |
130 | iip = get_symtab_entry(istate->cr_iip); |
| 131 | 131 | ||
| 132 | putchar('\n'); |
132 | putchar('\n'); |
| 133 | printf("Interrupted context dump:\n"); |
133 | printf("Interrupted context dump:\n"); |
| 134 | printf("ar.bsp=%P\tar.bspstore=%P\n", istate->ar_bsp, istate->ar_bspstore); |
134 | printf("ar.bsp=%P\tar.bspstore=%P\n", istate->ar_bsp, istate->ar_bspstore); |
| 135 | printf("ar.rnat=%Q\tar.rsc=%Q\n", istate->ar_rnat, istate->ar_rsc); |
135 | printf("ar.rnat=%#llX\tar.rsc=%$llX\n", istate->ar_rnat, istate->ar_rsc); |
| 136 | printf("ar.ifs=%Q\tar.pfs=%Q\n", istate->ar_ifs, istate->ar_pfs); |
136 | printf("ar.ifs=%#llX\tar.pfs=%#llX\n", istate->ar_ifs, istate->ar_pfs); |
| 137 | printf("cr.isr=%Q\tcr.ipsr=%Q\t\n", istate->cr_isr.value, istate->cr_ipsr); |
137 | printf("cr.isr=%#llX\tcr.ipsr=%#llX\t\n", istate->cr_isr.value, istate->cr_ipsr); |
| 138 | 138 | ||
| 139 | printf("cr.iip=%Q, #%d\t(%s)\n", istate->cr_iip, istate->cr_isr.ei ,iip ? iip : "?"); |
139 | printf("cr.iip=%#llX, #%d\t(%s)\n", istate->cr_iip, istate->cr_isr.ei ,iip ? iip : "?"); |
| 140 | printf("cr.iipa=%Q\t(%s)\n", istate->cr_iipa, iipa ? iipa : "?"); |
140 | printf("cr.iipa=%#llX\t(%s)\n", istate->cr_iipa, iipa ? iipa : "?"); |
| 141 | printf("cr.ifa=%Q\t(%s)\n", istate->cr_ifa, ifa ? ifa : "?"); |
141 | printf("cr.ifa=%#llX\t(%s)\n", istate->cr_ifa, ifa ? ifa : "?"); |
| 142 | } |
142 | } |
| 143 | 143 | ||
| 144 | void general_exception(__u64 vector, istate_t *istate) |
144 | void general_exception(__u64 vector, istate_t *istate) |
| 145 | { |
145 | { |
| 146 | char *desc = ""; |
146 | char *desc = ""; |
| Line 180... | Line 180... | ||
| 180 | { |
180 | { |
| 181 | #ifdef CONFIG_FPU_LAZY |
181 | #ifdef CONFIG_FPU_LAZY |
| 182 | scheduler_fpu_lazy_request(); |
182 | scheduler_fpu_lazy_request(); |
| 183 | #else |
183 | #else |
| 184 | dump_interrupted_context(istate); |
184 | dump_interrupted_context(istate); |
| 185 | panic("Interruption: %W (%s)\n", (__u16) vector, vector_to_string(vector)); |
185 | panic("Interruption: %#hX (%s)\n", (__u16) vector, vector_to_string(vector)); |
| 186 | #endif |
186 | #endif |
| 187 | } |
187 | } |
| 188 | 188 | ||
| 189 | 189 | ||
| 190 | void nop_handler(__u64 vector, istate_t *istate) |
190 | void nop_handler(__u64 vector, istate_t *istate) |
| Line 215... | Line 215... | ||
| 215 | } |
215 | } |
| 216 | 216 | ||
| 217 | void universal_handler(__u64 vector, istate_t *istate) |
217 | void universal_handler(__u64 vector, istate_t *istate) |
| 218 | { |
218 | { |
| 219 | dump_interrupted_context(istate); |
219 | dump_interrupted_context(istate); |
| 220 | panic("Interruption: %W (%s)\n", (__u16) vector, vector_to_string(vector)); |
220 | panic("Interruption: %#hX (%s)\n", (__u16) vector, vector_to_string(vector)); |
| 221 | } |
221 | } |
| 222 | 222 | ||
| 223 | void external_interrupt(__u64 vector, istate_t *istate) |
223 | void external_interrupt(__u64 vector, istate_t *istate) |
| 224 | { |
224 | { |
| 225 | cr_ivr_t ivr; |
225 | cr_ivr_t ivr; |