Rev 220 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 220 | Rev 238 | ||
---|---|---|---|
Line 27... | Line 27... | ||
27 | * |
27 | * |
28 | */ |
28 | */ |
29 | 29 | ||
30 | 30 | ||
31 | #include <panic.h> |
31 | #include <panic.h> |
- | 32 | #include <print.h> |
|
32 | #include <arch/types.h> |
33 | #include <arch/types.h> |
- | 34 | #include <arch/asm.h> |
|
- | 35 | ||
- | 36 | extern __u64 REG_DUMP; |
|
33 | 37 | ||
34 | 38 | ||
35 | void general_exception(void); |
39 | void general_exception(void); |
36 | void general_exception(void) |
40 | void general_exception(void) |
37 | { |
41 | { |
Line 45... | Line 49... | ||
45 | { |
49 | { |
46 | panic("\nBreak Instruction\n"); |
50 | panic("\nBreak Instruction\n"); |
47 | } |
51 | } |
48 | 52 | ||
49 | 53 | ||
- | 54 | #define cr_dump(r) {__u64 val; get_control_register(r,val); printf("cr"#r":%Q\n",val);} |
|
- | 55 | #define ar_dump(r) {__u64 val; get_aplication_register(r,val); printf("ar"#r":%Q\n",val);} |
|
- | 56 | ||
50 | void universal_handler(void); |
57 | void universal_handler(void); |
51 | void universal_handler(void) |
58 | void universal_handler(void) |
52 | { |
59 | { |
- | 60 | __u64 vector,psr; |
|
53 | __u64 i; |
61 | __u64 *p; |
- | 62 | int i; |
|
- | 63 | ||
- | 64 | ||
- | 65 | get_shadow_register(16,vector); |
|
- | 66 | ||
- | 67 | ||
- | 68 | p=®_DUMP; |
|
- | 69 | ||
- | 70 | for(i=0;i<128;i+=2) printf("gr%d:%Q\tgr%d:%Q\n",i,p[i],i+1,p[i+1]); |
|
- | 71 | ||
54 | 72 | ||
- | 73 | cr_dump(0); |
|
55 | __asm__ ( |
74 | cr_dump(1); |
56 | "mov %0 = r12;;" |
75 | cr_dump(2); |
57 | : "=r" (i) |
76 | cr_dump(8); |
- | 77 | cr_dump(16); |
|
- | 78 | cr_dump(17); |
|
- | 79 | cr_dump(19); |
|
- | 80 | cr_dump(20); |
|
- | 81 | cr_dump(21); |
|
- | 82 | cr_dump(22); |
|
- | 83 | cr_dump(23); |
|
- | 84 | cr_dump(24); |
|
- | 85 | cr_dump(25); |
|
- | 86 | cr_dump(64); |
|
- | 87 | cr_dump(65); |
|
- | 88 | cr_dump(66); |
|
- | 89 | cr_dump(67); |
|
- | 90 | cr_dump(68); |
|
- | 91 | cr_dump(69); |
|
- | 92 | cr_dump(70); |
|
- | 93 | cr_dump(71); |
|
- | 94 | cr_dump(72); |
|
- | 95 | cr_dump(73); |
|
- | 96 | cr_dump(74); |
|
- | 97 | cr_dump(80); |
|
- | 98 | cr_dump(81); |
|
58 | : |
99 | |
- | 100 | ar_dump(0); |
|
- | 101 | ar_dump(1); |
|
- | 102 | ar_dump(2); |
|
- | 103 | ar_dump(3); |
|
- | 104 | ar_dump(4); |
|
59 | : "r15" |
105 | ar_dump(5); |
- | 106 | ar_dump(6); |
|
- | 107 | ar_dump(7); |
|
- | 108 | ar_dump(16); |
|
- | 109 | ar_dump(17); |
|
- | 110 | ar_dump(18); |
|
- | 111 | ar_dump(19); |
|
- | 112 | ar_dump(21); |
|
- | 113 | ar_dump(24); |
|
- | 114 | ar_dump(25); |
|
- | 115 | ar_dump(26); |
|
- | 116 | ar_dump(27); |
|
- | 117 | ar_dump(28); |
|
- | 118 | ar_dump(29); |
|
- | 119 | ar_dump(30); |
|
- | 120 | ar_dump(32); |
|
- | 121 | ar_dump(36); |
|
- | 122 | ar_dump(40); |
|
- | 123 | ar_dump(44); |
|
- | 124 | ar_dump(64); |
|
- | 125 | ar_dump(65); |
|
- | 126 | ar_dump(66); |
|
60 | ); |
127 | |
- | 128 | get_psr(psr); |
|
61 | 129 | ||
- | 130 | printf("\nPSR:%Q\n",psr); |
|
- | 131 | ||
62 | panic("\nException:%Q\n",i); |
132 | panic("\nException:%Q\n",vector); |
63 | } |
133 | } |
64 | 134 | ||
65 | 135 |