Changeset 34d9469e in mainline
- Timestamp:
- 2006-09-13T14:12:58Z (18 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- da02e69
- Parents:
- 6eabb6e6
- Location:
- kernel/arch/sparc64
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/sparc64/include/trap/exception.h
r6eabb6e6 r34d9469e 41 41 #define TT_ILLEGAL_INSTRUCTION 0x10 42 42 #define TT_PRIVILEGED_OPCODE 0x11 43 #define TT_UNIMPLEMENTED_LDD 0x12 44 #define TT_UNIMPLEMENTED_STD 0x13 43 45 #define TT_FP_DISABLED 0x20 46 #define TT_FP_EXCEPTION_IEEE_754 0x21 47 #define TT_FP_EXCEPTION_OTHER 0x22 48 #define TT_TAG_OVERFLOW 0x23 44 49 #define TT_DIVISION_BY_ZERO 0x28 45 50 #define TT_DATA_ACCESS_EXCEPTION 0x30 46 51 #define TT_DATA_ACCESS_ERROR 0x32 47 52 #define TT_MEM_ADDRESS_NOT_ALIGNED 0x34 48 #define TT_PRIVILEGED_ACTION 0x38 53 #define TT_LDDF_MEM_ADDRESS_NOT_ALIGNED 0x35 54 #define TT_STDF_MEM_ADDRESS_NOT_ALIGNED 0x36 55 #define TT_PRIVILEGED_ACTION 0x37 56 #define TT_LDQF_MEM_ADDRESS_NOT_ALIGNED 0x38 57 #define TT_STQF_MEM_ADDRESS_NOT_ALIGNED 0x39 49 58 50 59 #ifndef __ASM__ … … 58 67 extern void illegal_instruction(int n, istate_t *istate); 59 68 extern void privileged_opcode(int n, istate_t *istate); 69 extern void unimplemented_LDD(int n, istate_t *istate); 70 extern void unimplemented_STD(int n, istate_t *istate); 60 71 extern void fp_disabled(int n, istate_t *istate); 72 extern void fp_exception_ieee_754(int n, istate_t *istate); 73 extern void fp_exception_other(int n, istate_t *istate); 74 extern void tag_overflow(int n, istate_t *istate); 61 75 extern void division_by_zero(int n, istate_t *istate); 62 76 extern void data_access_exception(int n, istate_t *istate); 63 77 extern void data_access_error(int n, istate_t *istate); 64 78 extern void mem_address_not_aligned(int n, istate_t *istate); 79 extern void LDDF_mem_address_not_aligned(int n, istate_t *istate); 80 extern void STDF_mem_address_not_aligned(int n, istate_t *istate); 65 81 extern void privileged_action(int n, istate_t *istate); 66 82 extern void LDQF_mem_address_not_aligned(int n, istate_t *istate); 83 extern void STQF_mem_address_not_aligned(int n, istate_t *istate); 67 84 68 85 #endif /* !__ASM__ */ -
kernel/arch/sparc64/src/trap/exception.c
r6eabb6e6 r34d9469e 83 83 } 84 84 85 /** Handle unimplemented_LDD. (0x12) */ 86 void unimplemented_LDD(int n, istate_t *istate) 87 { 88 fault_if_from_uspace(istate, "%s\n", __FUNCTION__); 89 dump_istate(istate); 90 panic("%s\n", __FUNCTION__); 91 } 92 93 /** Handle unimplemented_STD. (0x13) */ 94 void unimplemented_STD(int n, istate_t *istate) 95 { 96 fault_if_from_uspace(istate, "%s\n", __FUNCTION__); 97 dump_istate(istate); 98 panic("%s\n", __FUNCTION__); 99 } 100 85 101 /** Handle fp_disabled. (0x20) */ 86 102 void fp_disabled(int n, istate_t *istate) … … 104 120 } 105 121 122 /** Handle fp_exception_ieee_754. (0x21) */ 123 void fp_exception_ieee_754(int n, istate_t *istate) 124 { 125 fault_if_from_uspace(istate, "%s\n", __FUNCTION__); 126 dump_istate(istate); 127 panic("%s\n", __FUNCTION__); 128 } 129 130 /** Handle fp_exception_other. (0x22) */ 131 void fp_exception_other(int n, istate_t *istate) 132 { 133 fault_if_from_uspace(istate, "%s\n", __FUNCTION__); 134 dump_istate(istate); 135 panic("%s\n", __FUNCTION__); 136 } 137 138 /** Handle tag_overflow. (0x23) */ 139 void tag_overflow(int n, istate_t *istate) 140 { 141 fault_if_from_uspace(istate, "%s\n", __FUNCTION__); 142 dump_istate(istate); 143 panic("%s\n", __FUNCTION__); 144 } 145 106 146 /** Handle division_by_zero. (0x28) */ 107 147 void division_by_zero(int n, istate_t *istate) … … 136 176 } 137 177 178 /** Handle LDDF_mem_address_not_aligned. (0x35) */ 179 void LDDF_mem_address_not_aligned(int n, istate_t *istate) 180 { 181 fault_if_from_uspace(istate, "%s\n", __FUNCTION__); 182 dump_istate(istate); 183 panic("%s\n", __FUNCTION__); 184 } 185 186 /** Handle STDF_mem_address_not_aligned. (0x36) */ 187 void STDF_mem_address_not_aligned(int n, istate_t *istate) 188 { 189 fault_if_from_uspace(istate, "%s\n", __FUNCTION__); 190 dump_istate(istate); 191 panic("%s\n", __FUNCTION__); 192 } 193 138 194 /** Handle privileged_action. (0x37) */ 139 195 void privileged_action(int n, istate_t *istate) … … 144 200 } 145 201 202 /** Handle LDQF_mem_address_not_aligned. (0x38) */ 203 void LDQF_mem_address_not_aligned(int n, istate_t *istate) 204 { 205 fault_if_from_uspace(istate, "%s\n", __FUNCTION__); 206 dump_istate(istate); 207 panic("%s\n", __FUNCTION__); 208 } 209 210 /** Handle STQF_mem_address_not_aligned. (0x39) */ 211 void STQF_mem_address_not_aligned(int n, istate_t *istate) 212 { 213 fault_if_from_uspace(istate, "%s\n", __FUNCTION__); 214 dump_istate(istate); 215 panic("%s\n", __FUNCTION__); 216 } 217 146 218 /** @} 147 219 */ -
kernel/arch/sparc64/src/trap/trap_table.S
r6eabb6e6 r34d9469e 83 83 PREEMPTIBLE_HANDLER privileged_opcode 84 84 85 /* TT = 0x12, TL = 0, unimplemented_LDD */ 86 .org trap_table + TT_UNIMPLEMENTED_LDD*ENTRY_SIZE 87 .global unimplemented_LDD_tl0 88 unimplemented_LDD_tl0: 89 PREEMPTIBLE_HANDLER unimplemented_LDD 90 91 /* TT = 0x13, TL = 0, unimplemented_STD */ 92 .org trap_table + TT_UNIMPLEMENTED_STD*ENTRY_SIZE 93 .global unimplemented_STD_tl0 94 unimplemented_STD_tl0: 95 PREEMPTIBLE_HANDLER unimplemented_STD 96 85 97 /* TT = 0x20, TL = 0, fb_disabled handler */ 86 98 .org trap_table + TT_FP_DISABLED*ENTRY_SIZE … … 88 100 fp_disabled_tl0: 89 101 PREEMPTIBLE_HANDLER fp_disabled 102 103 /* TT = 0x21, TL = 0, fb_exception_ieee_754 handler */ 104 .org trap_table + TT_FP_EXCEPTION_IEEE_754*ENTRY_SIZE 105 .global fb_exception_ieee_754_tl0 106 fp_exception_ieee_754_tl0: 107 PREEMPTIBLE_HANDLER fp_exception_ieee_754 108 109 /* TT = 0x22, TL = 0, fb_exception_other handler */ 110 .org trap_table + TT_FP_EXCEPTION_OTHER*ENTRY_SIZE 111 .global fb_exception_other_tl0 112 fp_exception_other_tl0: 113 PREEMPTIBLE_HANDLER fp_exception_other 114 115 /* TT = 0x23, TL = 0, tag_overflow */ 116 .org trap_table + TT_TAG_OVERFLOW*ENTRY_SIZE 117 .global tag_overflow_tl0 118 tag_overflow_tl0: 119 PREEMPTIBLE_HANDLER tag_overflow 90 120 91 121 /* TT = 0x24, TL = 0, clean_window handler */ … … 120 150 PREEMPTIBLE_HANDLER mem_address_not_aligned 121 151 122 /* TT = 0x38, TL = 0, privileged_action */ 152 /* TT = 0x35, TL = 0, LDDF_mem_address_not_aligned */ 153 .org trap_table + TT_LDDF_MEM_ADDRESS_NOT_ALIGNED*ENTRY_SIZE 154 .global LDDF_mem_address_not_aligned_tl0 155 LDDF_mem_address_not_aligned_tl0: 156 PREEMPTIBLE_HANDLER LDDF_mem_address_not_aligned 157 158 /* TT = 0x36, TL = 0, STDF_mem_address_not_aligned */ 159 .org trap_table + TT_STDF_MEM_ADDRESS_NOT_ALIGNED*ENTRY_SIZE 160 .global STDF_mem_address_not_aligned_tl0 161 STDF_mem_address_not_aligned_tl0: 162 PREEMPTIBLE_HANDLER STDF_mem_address_not_aligned 163 164 /* TT = 0x37, TL = 0, privileged_action */ 123 165 .org trap_table + TT_PRIVILEGED_ACTION*ENTRY_SIZE 124 166 .global privileged_action_tl0 125 167 privileged_action_tl0: 126 168 PREEMPTIBLE_HANDLER privileged_action 169 170 /* TT = 0x38, TL = 0, LDQF_mem_address_not_aligned */ 171 .org trap_table + TT_LDQF_MEM_ADDRESS_NOT_ALIGNED*ENTRY_SIZE 172 .global LDQF_mem_address_not_aligned_tl0 173 LDQF_mem_address_not_aligned_tl0: 174 PREEMPTIBLE_HANDLER LDQF_mem_address_not_aligned 175 176 /* TT = 0x39, TL = 0, STQF_mem_address_not_aligned */ 177 .org trap_table + TT_STQF_MEM_ADDRESS_NOT_ALIGNED*ENTRY_SIZE 178 .global STQF_mem_address_not_aligned_tl0 179 STQF_mem_address_not_aligned_tl0: 180 PREEMPTIBLE_HANDLER STQF_mem_address_not_aligned 127 181 128 182 /* TT = 0x41, TL = 0, interrupt_level_1 handler */
Note:
See TracChangeset
for help on using the changeset viewer.