Rev 238 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 238 | Rev 272 | ||
---|---|---|---|
Line 30... | Line 30... | ||
30 | 30 | ||
31 | #include <panic.h> |
31 | #include <panic.h> |
32 | #include <print.h> |
32 | #include <print.h> |
33 | #include <arch/types.h> |
33 | #include <arch/types.h> |
34 | #include <arch/asm.h> |
34 | #include <arch/asm.h> |
- | 35 | #include <symtab.h> |
|
35 | 36 | ||
36 | extern __u64 REG_DUMP; |
37 | extern __u64 REG_DUMP; |
37 | 38 | ||
38 | 39 | ||
39 | void general_exception(void); |
40 | void general_exception(void); |
Line 49... | Line 50... | ||
49 | { |
50 | { |
50 | panic("\nBreak Instruction\n"); |
51 | panic("\nBreak Instruction\n"); |
51 | } |
52 | } |
52 | 53 | ||
53 | 54 | ||
54 | #define cr_dump(r) {__u64 val; get_control_register(r,val); printf("cr"#r":%Q\n",val);} |
55 | #define cr_dump(r) {__u64 val; get_control_register(r,val); printf("\ncr"#r":%Q",val);} |
55 | #define ar_dump(r) {__u64 val; get_aplication_register(r,val); printf("ar"#r":%Q\n",val);} |
56 | #define ar_dump(r) {__u64 val; get_aplication_register(r,val); printf("\nar"#r":%Q",val);} |
56 | 57 | ||
57 | void universal_handler(void); |
58 | void universal_handler(void); |
58 | void universal_handler(void) |
59 | void universal_handler(void) |
59 | { |
60 | { |
60 | __u64 vector,psr; |
61 | __u64 vector,psr,PC; |
61 | __u64 *p; |
62 | __u64 *p; |
62 | int i; |
63 | int i; |
- | 64 | char *sym; |
|
63 | 65 | ||
64 | 66 | ||
65 | get_shadow_register(16,vector); |
67 | get_shadow_register(16,vector); |
66 | 68 | ||
67 | 69 | ||
Line 74... | Line 76... | ||
74 | cr_dump(1); |
76 | cr_dump(1); |
75 | cr_dump(2); |
77 | cr_dump(2); |
76 | cr_dump(8); |
78 | cr_dump(8); |
77 | cr_dump(16); |
79 | cr_dump(16); |
78 | cr_dump(17); |
80 | cr_dump(17); |
79 | cr_dump(19); |
81 | cr_dump(19);get_control_register(19,PC); if(sym=get_symtab_entry(PC)) printf("(%s)",sym); |
80 | cr_dump(20); |
82 | cr_dump(20);get_control_register(20,PC); if(sym=get_symtab_entry(PC)) printf("(%s)",sym); |
81 | cr_dump(21); |
83 | cr_dump(21); |
82 | cr_dump(22); |
84 | cr_dump(22);get_control_register(22,PC); if(sym=get_symtab_entry(PC)) printf("(%s)",sym); |
83 | cr_dump(23); |
85 | cr_dump(23); |
84 | cr_dump(24); |
86 | cr_dump(24); |
85 | cr_dump(25); |
87 | cr_dump(25); |
86 | cr_dump(64); |
88 | cr_dump(64); |
87 | cr_dump(65); |
89 | cr_dump(65); |