Changeset 32573ff in mainline for kernel/arch/sparc64/src/trap/sun4v/trap_table.S
- Timestamp:
- 2016-05-02T20:58:16Z (8 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 7c4b26c
- Parents:
- 6adb775f (diff), 5035ba05 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the(diff)
links above to see all the changes relative to each parent. - File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/sparc64/src/trap/sun4v/trap_table.S
r6adb775f r32573ff 38 38 .text 39 39 40 #include <abi/asmtool.h> 40 41 #include <arch/trap/trap_table.h> 41 42 #include <arch/trap/regwin.h> … … 58 59 */ 59 60 .align TABLE_SIZE 60 .global trap_table 61 trap_table: 61 SYMBOL(trap_table) 62 62 63 63 /* TT = 0x08, TL = 0, instruction_access_exception */ 64 64 /* TT = 0x08, TL = 0, IAE_privilege_violation on UltraSPARC T2 */ 65 65 .org trap_table + TT_INSTRUCTION_ACCESS_EXCEPTION*ENTRY_SIZE 66 .global instruction_access_exception_tl0 67 instruction_access_exception_tl0: 66 SYMBOL(instruction_access_exception_tl0) 68 67 mov TT_INSTRUCTION_ACCESS_EXCEPTION, %g2 69 68 clr %g5 … … 72 71 /* TT = 0x09, TL = 0, instruction_access_mmu_miss */ 73 72 .org trap_table + TT_INSTRUCTION_ACCESS_MMU_MISS*ENTRY_SIZE 74 .global instruction_access_mmu_miss_handler_tl0 73 SYMBOL(instruction_access_mmu_miss_handler_tl0) 75 74 ba,a %xcc, fast_instruction_access_mmu_miss_handler_tl0 76 75 77 76 /* TT = 0x0a, TL = 0, instruction_access_error */ 78 77 .org trap_table + TT_INSTRUCTION_ACCESS_ERROR*ENTRY_SIZE 79 .global instruction_access_error_tl0 80 instruction_access_error_tl0: 78 SYMBOL(instruction_access_error_tl0) 81 79 mov TT_INSTRUCTION_ACCESS_ERROR, %g2 82 80 clr %g5 … … 85 83 /* TT = 0x0b, TL = 0, IAE_unauth_access */ 86 84 .org trap_table + TT_IAE_UNAUTH_ACCESS*ENTRY_SIZE 87 .global iae_unauth_access_tl0 88 iae_unauth_access_tl0: 85 SYMBOL(iae_unauth_access_tl0) 89 86 mov TT_IAE_UNAUTH_ACCESS, %g2 90 87 clr %g5 … … 93 90 /* TT = 0x0c, TL = 0, IAE_nfo_page */ 94 91 .org trap_table + TT_IAE_NFO_PAGE*ENTRY_SIZE 95 .global iae_nfo_page_tl0 96 iae_nfo_page_tl0: 92 SYMBOL(iae_nfo_page_tl0) 97 93 mov TT_IAE_NFO_PAGE, %g2 98 94 clr %g5 … … 101 97 /* TT = 0x10, TL = 0, illegal_instruction */ 102 98 .org trap_table + TT_ILLEGAL_INSTRUCTION*ENTRY_SIZE 103 .global illegal_instruction_tl0 104 illegal_instruction_tl0: 99 SYMBOL(illegal_instruction_tl0) 105 100 mov TT_ILLEGAL_INSTRUCTION, %g2 106 101 clr %g5 … … 109 104 /* TT = 0x11, TL = 0, privileged_opcode */ 110 105 .org trap_table + TT_PRIVILEGED_OPCODE*ENTRY_SIZE 111 .global privileged_opcode_tl0 112 privileged_opcode_tl0: 106 SYMBOL(privileged_opcode_tl0) 113 107 mov TT_PRIVILEGED_OPCODE, %g2 114 108 clr %g5 … … 117 111 /* TT = 0x12, TL = 0, unimplemented_LDD */ 118 112 .org trap_table + TT_UNIMPLEMENTED_LDD*ENTRY_SIZE 119 .global unimplemented_LDD_tl0 120 unimplemented_LDD_tl0: 113 SYMBOL(unimplemented_LDD_tl0) 121 114 mov TT_UNIMPLEMENTED_LDD, %g2 122 115 clr %g5 … … 125 118 /* TT = 0x13, TL = 0, unimplemented_STD */ 126 119 .org trap_table + TT_UNIMPLEMENTED_STD*ENTRY_SIZE 127 .global unimplemented_STD_tl0 128 unimplemented_STD_tl0: 120 SYMBOL(unimplemented_STD_tl0) 129 121 mov TT_UNIMPLEMENTED_STD, %g2 130 122 clr %g5 … … 133 125 /* TT = 0x14, TL = 0, DAE_invalid_asi */ 134 126 .org trap_table + TT_DAE_INVALID_ASI*ENTRY_SIZE 135 .global dae_invalid_asi_tl0 136 dae_invalid_asi_tl0: 127 SYMBOL(dae_invalid_asi_tl0) 137 128 mov TT_DAE_INVALID_ASI, %g2 138 129 clr %g5 … … 141 132 /* TT = 0x15, TL = 0, DAE_privilege_violation */ 142 133 .org trap_table + TT_DAE_PRIVILEGE_VIOLATION*ENTRY_SIZE 143 .global dae_privilege_violation_tl0 144 dae_privilege_violation_tl0: 134 SYMBOL(dae_privilege_violation_tl0) 145 135 mov TT_DAE_PRIVILEGE_VIOLATION, %g2 146 136 clr %g5 … … 149 139 /* TT = 0x16, TL = 0, DAE_nc_page */ 150 140 .org trap_table + TT_DAE_NC_PAGE*ENTRY_SIZE 151 .global dae_nc_page_tl0 152 dae_nc_page_tl0: 141 SYMBOL(dae_nc_page_tl0) 153 142 mov TT_DAE_NC_PAGE, %g2 154 143 clr %g5 … … 157 146 /* TT = 0x17, TL = 0, DAE_nfo_page */ 158 147 .org trap_table + TT_DAE_NFO_PAGE*ENTRY_SIZE 159 .global dae_nfo_page_tl0 160 dae_nfo_page_tl0: 148 SYMBOL(dae_nfo_page_tl0) 161 149 mov TT_DAE_NFO_PAGE, %g2 162 150 clr %g5 … … 165 153 /* TT = 0x20, TL = 0, fb_disabled handler */ 166 154 .org trap_table + TT_FP_DISABLED*ENTRY_SIZE 167 .global fb_disabled_tl0 168 fp_disabled_tl0: 155 SYMBOL(fp_disabled_tl0) 169 156 mov TT_FP_DISABLED, %g2 170 157 clr %g5 … … 173 160 /* TT = 0x21, TL = 0, fb_exception_ieee_754 handler */ 174 161 .org trap_table + TT_FP_EXCEPTION_IEEE_754*ENTRY_SIZE 175 .global fb_exception_ieee_754_tl0 176 fp_exception_ieee_754_tl0: 162 SYMBOL(fp_exception_ieee_754_tl0) 177 163 mov TT_FP_EXCEPTION_IEEE_754, %g2 178 164 clr %g5 … … 181 167 /* TT = 0x22, TL = 0, fb_exception_other handler */ 182 168 .org trap_table + TT_FP_EXCEPTION_OTHER*ENTRY_SIZE 183 .global fb_exception_other_tl0 184 fp_exception_other_tl0: 169 SYMBOL(fp_exception_other_tl) 185 170 mov TT_FP_EXCEPTION_OTHER, %g2 186 171 clr %g5 … … 189 174 /* TT = 0x23, TL = 0, tag_overflow */ 190 175 .org trap_table + TT_TAG_OVERFLOW*ENTRY_SIZE 191 .global tag_overflow_tl0 192 tag_overflow_tl0: 176 SYMBOL(tag_overflow_tl0) 193 177 mov TT_TAG_OVERFLOW, %g2 194 178 clr %g5 … … 197 181 /* TT = 0x24, TL = 0, clean_window handler */ 198 182 .org trap_table + TT_CLEAN_WINDOW*ENTRY_SIZE 199 .global clean_window_tl0 200 clean_window_tl0: 183 SYMBOL(clean_window_tl0) 201 184 CLEAN_WINDOW_HANDLER 202 185 203 186 /* TT = 0x28, TL = 0, division_by_zero */ 204 187 .org trap_table + TT_DIVISION_BY_ZERO*ENTRY_SIZE 205 .global division_by_zero_tl0 206 division_by_zero_tl0: 188 SYMBOL(division_by_zero_tl0) 207 189 mov TT_DIVISION_BY_ZERO, %g2 208 190 clr %g5 … … 212 194 /* TT = 0x30, TL = 0, DAE_side_effect_page for UltraPSARC T2 */ 213 195 .org trap_table + TT_DATA_ACCESS_EXCEPTION*ENTRY_SIZE 214 .global data_access_exception_tl0 215 data_access_exception_tl0: 196 SYMBOL(data_access_exception_tl0) 216 197 mov TT_DATA_ACCESS_EXCEPTION, %g2 217 198 clr %g5 … … 220 201 /* TT = 0x31, TL = 0, data_access_mmu_miss */ 221 202 .org trap_table + TT_DATA_ACCESS_MMU_MISS*ENTRY_SIZE 222 .global data_access_mmu_miss_tl0 223 data_access_mmu_miss_tl0: 203 SYMBOL(data_access_mmu_miss_tl0) 224 204 ba,a %xcc, fast_data_access_mmu_miss_handler_tl0 225 205 226 206 /* TT = 0x32, TL = 0, data_access_error */ 227 207 .org trap_table + TT_DATA_ACCESS_ERROR*ENTRY_SIZE 228 .global data_access_error_tl0 229 data_access_error_tl0: 208 SYMBOL(data_access_error_tl0) 230 209 mov TT_DATA_ACCESS_ERROR, %g2 231 210 clr %g5 … … 234 213 /* TT = 0x34, TL = 0, mem_address_not_aligned */ 235 214 .org trap_table + TT_MEM_ADDRESS_NOT_ALIGNED*ENTRY_SIZE 236 .global mem_address_not_aligned_tl0 237 mem_address_not_aligned_tl0: 215 SYMBOL(mem_address_not_aligned_tl0) 238 216 mov TT_MEM_ADDRESS_NOT_ALIGNED, %g2 239 217 clr %g5 … … 242 220 /* TT = 0x35, TL = 0, LDDF_mem_address_not_aligned */ 243 221 .org trap_table + TT_LDDF_MEM_ADDRESS_NOT_ALIGNED*ENTRY_SIZE 244 .global LDDF_mem_address_not_aligned_tl0 245 LDDF_mem_address_not_aligned_tl0: 222 SYMBOL(LDDF_mem_address_not_aligned_tl0) 246 223 mov TT_LDDF_MEM_ADDRESS_NOT_ALIGNED, %g2 247 224 clr %g5 … … 250 227 /* TT = 0x36, TL = 0, STDF_mem_address_not_aligned */ 251 228 .org trap_table + TT_STDF_MEM_ADDRESS_NOT_ALIGNED*ENTRY_SIZE 252 .global STDF_mem_address_not_aligned_tl0 253 STDF_mem_address_not_aligned_tl0: 229 SYMBOL(STDF_mem_address_not_aligned_tl0) 254 230 mov TT_STDF_MEM_ADDRESS_NOT_ALIGNED, %g2 255 231 clr %g5 … … 258 234 /* TT = 0x37, TL = 0, privileged_action */ 259 235 .org trap_table + TT_PRIVILEGED_ACTION*ENTRY_SIZE 260 .global privileged_action_tl0 261 privileged_action_tl0: 236 SYMBOL(privileged_action_tl0) 262 237 mov TT_PRIVILEGED_ACTION, %g2 263 238 clr %g5 … … 266 241 /* TT = 0x38, TL = 0, LDQF_mem_address_not_aligned */ 267 242 .org trap_table + TT_LDQF_MEM_ADDRESS_NOT_ALIGNED*ENTRY_SIZE 268 .global LDQF_mem_address_not_aligned_tl0 269 LDQF_mem_address_not_aligned_tl0: 243 SYMBOL(LDQF_mem_address_not_aligned_tl0) 270 244 mov TT_LDQF_MEM_ADDRESS_NOT_ALIGNED, %g2 271 245 clr %g5 … … 274 248 /* TT = 0x39, TL = 0, STQF_mem_address_not_aligned */ 275 249 .org trap_table + TT_STQF_MEM_ADDRESS_NOT_ALIGNED*ENTRY_SIZE 276 .global STQF_mem_address_not_aligned_tl0 277 STQF_mem_address_not_aligned_tl0: 250 SYMBOL(STQF_mem_address_not_aligned_tl0) 278 251 mov TT_STQF_MEM_ADDRESS_NOT_ALIGNED, %g2 279 252 clr %g5 … … 282 255 /* TT = 0x41, TL = 0, interrupt_level_1 handler */ 283 256 .org trap_table + TT_INTERRUPT_LEVEL_1*ENTRY_SIZE 284 .global interrupt_level_1_handler_tl0 285 interrupt_level_1_handler_tl0: 257 SYMBOL(interrupt_level_1_handler_tl0) 286 258 mov TT_INTERRUPT_LEVEL_1, %g2 287 259 clr %g5 … … 290 262 /* TT = 0x42, TL = 0, interrupt_level_2 handler */ 291 263 .org trap_table + TT_INTERRUPT_LEVEL_2*ENTRY_SIZE 292 .global interrupt_level_2_handler_tl0 293 interrupt_level_2_handler_tl0: 264 SYMBOL(interrupt_level_2_handler_tl0) 294 265 mov TT_INTERRUPT_LEVEL_2, %g2 295 266 clr %g5 … … 298 269 /* TT = 0x43, TL = 0, interrupt_level_3 handler */ 299 270 .org trap_table + TT_INTERRUPT_LEVEL_3*ENTRY_SIZE 300 .global interrupt_level_3_handler_tl0 301 interrupt_level_3_handler_tl0: 271 SYMBOL(interrupt_level_3_handler_tl0) 302 272 mov TT_INTERRUPT_LEVEL_3, %g2 303 273 clr %g5 … … 306 276 /* TT = 0x44, TL = 0, interrupt_level_4 handler */ 307 277 .org trap_table + TT_INTERRUPT_LEVEL_4*ENTRY_SIZE 308 .global interrupt_level_4_handler_tl0 309 interrupt_level_4_handler_tl0: 278 SYMBOL(interrupt_level_4_handler_tl0) 310 279 mov TT_INTERRUPT_LEVEL_4, %g2 311 280 clr %g5 … … 314 283 /* TT = 0x45, TL = 0, interrupt_level_5 handler */ 315 284 .org trap_table + TT_INTERRUPT_LEVEL_5*ENTRY_SIZE 316 .global interrupt_level_5_handler_tl0 317 interrupt_level_5_handler_tl0: 285 SYMBOL(interrupt_level_5_handler_tl0) 318 286 mov TT_INTERRUPT_LEVEL_5, %g2 319 287 clr %g5 … … 322 290 /* TT = 0x46, TL = 0, interrupt_level_6 handler */ 323 291 .org trap_table + TT_INTERRUPT_LEVEL_6*ENTRY_SIZE 324 .global interrupt_level_6_handler_tl0 325 interrupt_level_6_handler_tl0: 292 SYMBOL(interrupt_level_6_handler_tl0) 326 293 mov TT_INTERRUPT_LEVEL_6, %g2 327 294 clr %g5 … … 330 297 /* TT = 0x47, TL = 0, interrupt_level_7 handler */ 331 298 .org trap_table + TT_INTERRUPT_LEVEL_7*ENTRY_SIZE 332 .global interrupt_level_7_handler_tl0 333 interrupt_level_7_handler_tl0: 299 SYMBOL(interrupt_level_7_handler_tl0) 334 300 mov TT_INTERRUPT_LEVEL_7, %g2 335 301 clr %g5 … … 338 304 /* TT = 0x48, TL = 0, interrupt_level_8 handler */ 339 305 .org trap_table + TT_INTERRUPT_LEVEL_8*ENTRY_SIZE 340 .global interrupt_level_8_handler_tl0 341 interrupt_level_8_handler_tl0: 306 SYMBOL(interrupt_level_8_handler_tl0) 342 307 mov TT_INTERRUPT_LEVEL_8, %g2 343 308 clr %g5 … … 346 311 /* TT = 0x49, TL = 0, interrupt_level_9 handler */ 347 312 .org trap_table + TT_INTERRUPT_LEVEL_9*ENTRY_SIZE 348 .global interrupt_level_9_handler_tl0 349 interrupt_level_9_handler_tl0: 313 SYMBOL(interrupt_level_9_handler_tl0) 350 314 mov TT_INTERRUPT_LEVEL_9, %g2 351 315 clr %g5 … … 354 318 /* TT = 0x4a, TL = 0, interrupt_level_10 handler */ 355 319 .org trap_table + TT_INTERRUPT_LEVEL_10*ENTRY_SIZE 356 .global interrupt_level_10_handler_tl0 357 interrupt_level_10_handler_tl0: 320 SYMBOL(interrupt_level_10_handler_tl0) 358 321 mov TT_INTERRUPT_LEVEL_10, %g2 359 322 clr %g5 … … 362 325 /* TT = 0x4b, TL = 0, interrupt_level_11 handler */ 363 326 .org trap_table + TT_INTERRUPT_LEVEL_11*ENTRY_SIZE 364 .global interrupt_level_11_handler_tl0 365 interrupt_level_11_handler_tl0: 327 SYMBOL(interrupt_level_11_handler_tl0) 366 328 mov TT_INTERRUPT_LEVEL_11, %g2 367 329 clr %g5 … … 370 332 /* TT = 0x4c, TL = 0, interrupt_level_12 handler */ 371 333 .org trap_table + TT_INTERRUPT_LEVEL_12*ENTRY_SIZE 372 .global interrupt_level_12_handler_tl0 373 interrupt_level_12_handler_tl0: 334 SYMBOL(interrupt_level_12_handler_tl0) 374 335 mov TT_INTERRUPT_LEVEL_12, %g2 375 336 clr %g5 … … 378 339 /* TT = 0x4d, TL = 0, interrupt_level_13 handler */ 379 340 .org trap_table + TT_INTERRUPT_LEVEL_13*ENTRY_SIZE 380 .global interrupt_level_13_handler_tl0 381 interrupt_level_13_handler_tl0: 341 SYMBOL(interrupt_level_13_handler_tl0) 382 342 mov TT_INTERRUPT_LEVEL_13, %g2 383 343 clr %g5 … … 386 346 /* TT = 0x4e, TL = 0, interrupt_level_14 handler */ 387 347 .org trap_table + TT_INTERRUPT_LEVEL_14*ENTRY_SIZE 388 .global interrupt_level_14_handler_tl0 389 interrupt_level_14_handler_tl0: 348 SYMBOL(interrupt_level_14_handler_tl0) 390 349 mov TT_INTERRUPT_LEVEL_14, %g2 391 350 clr %g5 … … 394 353 /* TT = 0x4f, TL = 0, interrupt_level_15 handler */ 395 354 .org trap_table + TT_INTERRUPT_LEVEL_15*ENTRY_SIZE 396 .global interrupt_level_15_handler_tl0 397 interrupt_level_15_handler_tl0: 355 SYMBOL(interrupt_level_15_handler_tl0) 398 356 mov TT_INTERRUPT_LEVEL_15, %g2 399 357 clr %g5 … … 402 360 /* TT = 0x64, TL = 0, fast_instruction_access_MMU_miss */ 403 361 .org trap_table + TT_FAST_INSTRUCTION_ACCESS_MMU_MISS*ENTRY_SIZE 404 .global fast_instruction_access_mmu_miss_handler_tl0 405 fast_instruction_access_mmu_miss_handler_tl0: 362 SYMBOL(fast_instruction_access_mmu_miss_handler_tl0) 406 363 FAST_INSTRUCTION_ACCESS_MMU_MISS_HANDLER 407 364 408 365 /* TT = 0x68, TL = 0, fast_data_access_MMU_miss */ 409 366 .org trap_table + TT_FAST_DATA_ACCESS_MMU_MISS*ENTRY_SIZE 410 .global fast_data_access_mmu_miss_handler_tl0 411 fast_data_access_mmu_miss_handler_tl0: 367 SYMBOL(fast_data_access_mmu_miss_handler_tl0) 412 368 FAST_DATA_ACCESS_MMU_MISS_HANDLER 0 413 369 414 370 /* TT = 0x6c, TL = 0, fast_data_access_protection */ 415 371 .org trap_table + TT_FAST_DATA_ACCESS_PROTECTION*ENTRY_SIZE 416 .global fast_data_access_protection_handler_tl0 417 fast_data_access_protection_handler_tl0: 372 SYMBOL(fast_data_access_protection_handler_tl0) 418 373 FAST_DATA_ACCESS_PROTECTION_HANDLER 0 419 374 420 375 /* TT = 0x7c, TL = 0, cpu_mondo */ 421 376 .org trap_table + TT_CPU_MONDO*ENTRY_SIZE 422 .global cpu_mondo_handler_tl0 423 cpu_mondo_handler_tl0: 377 SYMBOL(cpu_mondo_handler_tl0) 424 378 mov TT_CPU_MONDO, %g2 425 379 clr %g5 … … 428 382 /* TT = 0x80, TL = 0, spill_0_normal handler */ 429 383 .org trap_table + TT_SPILL_0_NORMAL*ENTRY_SIZE 430 .global spill_0_normal_tl0 431 spill_0_normal_tl0: 384 SYMBOL(spill_0_normal_tl0) 432 385 SPILL_NORMAL_HANDLER_KERNEL 433 386 434 387 /* TT = 0x84, TL = 0, spill_1_normal handler */ 435 388 .org trap_table + TT_SPILL_1_NORMAL*ENTRY_SIZE 436 .global spill_1_normal_tl0 437 spill_1_normal_tl0: 389 SYMBOL(spill_1_normal_tl0) 438 390 SPILL_NORMAL_HANDLER_USERSPACE 439 391 440 392 /* TT = 0x88, TL = 0, spill_2_normal handler */ 441 393 .org trap_table + TT_SPILL_2_NORMAL*ENTRY_SIZE 442 .global spill_2_normal_tl0 443 spill_2_normal_tl0: 394 SYMBOL(spill_2_normal_tl0) 444 395 SPILL_TO_USPACE_WINDOW_BUFFER 445 396 446 397 /* TT = 0xa0, TL = 0, spill_0_other handler */ 447 398 .org trap_table + TT_SPILL_0_OTHER*ENTRY_SIZE 448 .global spill_0_other_tl0 449 spill_0_other_tl0: 399 SYMBOL(spill_0_other_tl0) 450 400 SPILL_TO_USPACE_WINDOW_BUFFER 451 401 452 402 /* TT = 0xc0, TL = 0, fill_0_normal handler */ 453 403 .org trap_table + TT_FILL_0_NORMAL*ENTRY_SIZE 454 .global fill_0_normal_tl0 455 fill_0_normal_tl0: 404 SYMBOL(fill_0_normal_tl0) 456 405 FILL_NORMAL_HANDLER_KERNEL 457 406 458 407 /* TT = 0xc4, TL = 0, fill_1_normal handler */ 459 408 .org trap_table + TT_FILL_1_NORMAL*ENTRY_SIZE 460 .global fill_1_normal_tl0 461 fill_1_normal_tl0: 409 SYMBOL(fill_1_normal_tl0) 462 410 FILL_NORMAL_HANDLER_USERSPACE 463 411 … … 472 420 127 473 421 .org trap_table + (TT_TRAP_INSTRUCTION_0+\cur)*ENTRY_SIZE 474 .global trap_instruction_\cur\()_tl0 475 trap_instruction_\cur\()_tl0: 422 SYMBOL(trap_instruction_\cur\()_tl0) 476 423 mov \cur, %g2 477 424 ba %xcc, trap_instruction_handler … … 486 433 /* TT = 0x08, TL > 0, IAE_privilege_violation on UltraSPARC T2 */ 487 434 .org trap_table + (TT_INSTRUCTION_ACCESS_EXCEPTION+512)*ENTRY_SIZE 488 .global instruction_access_exception_tl1 489 instruction_access_exception_tl1: 435 SYMBOL(instruction_access_exception_tl1) 490 436 wrpr %g0, 1, %tl 491 437 mov TT_INSTRUCTION_ACCESS_EXCEPTION, %g2 … … 495 441 /* TT = 0x09, TL > 0, instruction_access_mmu_miss */ 496 442 .org trap_table + (TT_INSTRUCTION_ACCESS_MMU_MISS+512)*ENTRY_SIZE 497 .global instruction_access_mmu_miss_handler_tl1 443 SYMBOL(instruction_access_mmu_miss_handler_tl1) 498 444 wrpr %g0, 1, %tl 499 445 ba,a %xcc, fast_instruction_access_mmu_miss_handler_tl0 … … 501 447 /* TT = 0x0a, TL > 0, instruction_access_error */ 502 448 .org trap_table + (TT_INSTRUCTION_ACCESS_ERROR+512)*ENTRY_SIZE 503 .global instruction_access_error_tl1 504 instruction_access_error_tl1: 449 SYMBOL(instruction_access_error_tl1) 505 450 wrpr %g0, 1, %tl 506 451 mov TT_INSTRUCTION_ACCESS_ERROR, %g2 … … 510 455 /* TT = 0x0b, TL > 0, IAE_unauth_access */ 511 456 .org trap_table + (TT_IAE_UNAUTH_ACCESS+512)*ENTRY_SIZE 512 .global iae_unauth_access_tl1 513 iae_unauth_access_tl1: 457 SYMBOL(iae_unauth_access_tl1) 514 458 wrpr %g0, 1, %tl 515 459 mov TT_IAE_UNAUTH_ACCESS, %g2 … … 519 463 /* TT = 0x0c, TL > 0, IAE_nfo_page */ 520 464 .org trap_table + (TT_IAE_NFO_PAGE+512)*ENTRY_SIZE 521 .global iae_nfo_page_tl1 522 iae_nfo_page_tl1: 465 SYMBOL(iae_nfo_page_tl1) 523 466 wrpr %g0, 1, %tl 524 467 mov TT_IAE_NFO_PAGE, %g2 … … 528 471 /* TT = 0x10, TL > 0, illegal_instruction */ 529 472 .org trap_table + (TT_ILLEGAL_INSTRUCTION+512)*ENTRY_SIZE 530 .global illegal_instruction_tl1 531 illegal_instruction_tl1: 473 SYMBOL(illegal_instruction_tl1) 532 474 wrpr %g0, 1, %tl 533 475 mov TT_ILLEGAL_INSTRUCTION, %g2 … … 537 479 /* TT = 0x14, TL > 0, DAE_invalid_asi */ 538 480 .org trap_table + (TT_DAE_INVALID_ASI+512)*ENTRY_SIZE 539 .global dae_invalid_asi_tl1 540 dae_invalid_asi_tl1: 481 SYMBOL(dae_invalid_asi_tl1) 541 482 wrpr %g0, 1, %tl 542 483 mov TT_DAE_INVALID_ASI, %g2 … … 546 487 /* TT = 0x15, TL > 0, DAE_privilege_violation */ 547 488 .org trap_table + (TT_DAE_PRIVILEGE_VIOLATION+512)*ENTRY_SIZE 548 .global dae_privilege_violation_tl1 549 dae_privilege_violation_tl1: 489 SYMBOL(dae_privilege_violation_tl1) 550 490 wrpr %g0, 1, %tl 551 491 mov TT_DAE_PRIVILEGE_VIOLATION, %g2 … … 555 495 /* TT = 0x16, TL > 0, DAE_nc_page */ 556 496 .org trap_table + (TT_DAE_NC_PAGE+512)*ENTRY_SIZE 557 .global dae_nc_page_tl1 558 dae_nc_page_tl1: 497 SYMBOL(dae_nc_page_tl1) 559 498 wrpr %g0, 1, %tl 560 499 mov TT_DAE_NC_PAGE, %g2 … … 564 503 /* TT = 0x17, TL > 0, DAE_nfo_page */ 565 504 .org trap_table + (TT_DAE_NFO_PAGE+512)*ENTRY_SIZE 566 .global dae_nfo_page_tl1 567 dae_nfo_page_tl1: 505 SYMBOL(dae_nfo_page_tl1) 568 506 wrpr %g0, 1, %tl 569 507 mov TT_DAE_NFO_PAGE, %g2 … … 573 511 /* TT = 0x24, TL > 0, clean_window handler */ 574 512 .org trap_table + (TT_CLEAN_WINDOW+512)*ENTRY_SIZE 575 .global clean_window_tl1 576 clean_window_tl1: 513 SYMBOL(clean_window_tl1) 577 514 CLEAN_WINDOW_HANDLER 578 515 579 516 /* TT = 0x28, TL > 0, division_by_zero */ 580 517 .org trap_table + (TT_DIVISION_BY_ZERO+512)*ENTRY_SIZE 581 .global division_by_zero_tl1 582 division_by_zero_tl1: 518 SYMBOL(division_by_zero_tl1) 583 519 wrpr %g0, 1, %tl 584 520 mov TT_DIVISION_BY_ZERO, %g2 … … 588 524 /* TT = 0x30, TL > 0, data_access_exception */ 589 525 .org trap_table + (TT_DATA_ACCESS_EXCEPTION+512)*ENTRY_SIZE 590 .global data_access_exception_tl1 591 data_access_exception_tl1: 526 SYMBOL(data_access_exception_tl1) 592 527 wrpr %g0, 1, %tl 593 528 mov TT_DATA_ACCESS_EXCEPTION, %g2 … … 597 532 /* TT = 0x31, TL > 0, data_access_mmu_miss */ 598 533 .org trap_table + (TT_DATA_ACCESS_MMU_MISS+512)*ENTRY_SIZE 599 .global data_access_mmu_miss_tl1 600 data_access_mmu_miss_tl1: 534 SYMBOL(data_access_mmu_miss_tl1) 601 535 ba,a %xcc, fast_data_access_mmu_miss_handler_tl1 602 536 603 537 /* TT = 0x32, TL > 0, data_access_error */ 604 538 .org trap_table + (TT_DATA_ACCESS_ERROR+512)*ENTRY_SIZE 605 .global data_access_error_tl1 606 data_access_error_tl1: 539 SYMBOL(data_access_error_tl1) 607 540 wrpr %g0, 1, %tl 608 541 mov TT_DATA_ACCESS_ERROR, %g2 … … 612 545 /* TT = 0x34, TL > 0, mem_address_not_aligned */ 613 546 .org trap_table + (TT_MEM_ADDRESS_NOT_ALIGNED+512)*ENTRY_SIZE 614 .global mem_address_not_aligned_tl1 615 mem_address_not_aligned_tl1: 547 SYMBOL(mem_address_not_aligned_tl1) 616 548 wrpr %g0, 1, %tl 617 549 mov TT_MEM_ADDRESS_NOT_ALIGNED, %g2 … … 621 553 /* TT = 0x68, TL > 0, fast_data_access_MMU_miss */ 622 554 .org trap_table + (TT_FAST_DATA_ACCESS_MMU_MISS+512)*ENTRY_SIZE 623 .global fast_data_access_mmu_miss_handler_tl1 624 fast_data_access_mmu_miss_handler_tl1: 555 SYMBOL(fast_data_access_mmu_miss_handler_tl1) 625 556 FAST_DATA_ACCESS_MMU_MISS_HANDLER 1 626 557 627 558 /* TT = 0x6c, TL > 0, fast_data_access_protection */ 628 559 .org trap_table + (TT_FAST_DATA_ACCESS_PROTECTION+512)*ENTRY_SIZE 629 .global fast_data_access_protection_handler_tl1 630 fast_data_access_protection_handler_tl1: 560 SYMBOL(fast_data_access_protection_handler_tl1) 631 561 FAST_DATA_ACCESS_PROTECTION_HANDLER 1 632 562 633 563 /* TT = 0x7c, TL > 0, cpu_mondo */ 634 564 .org trap_table + (TT_CPU_MONDO+512)*ENTRY_SIZE 635 .global cpu_mondo_handler_tl1 636 cpu_mondo_handler_tl1: 565 SYMBOL(cpu_mondo_handler_tl1) 637 566 wrpr %g0, %tl 638 567 mov TT_CPU_MONDO, %g2 … … 642 571 /* TT = 0x80, TL > 0, spill_0_normal handler */ 643 572 .org trap_table + (TT_SPILL_0_NORMAL+512)*ENTRY_SIZE 644 .global spill_0_normal_tl1 645 spill_0_normal_tl1: 573 SYMBOL(spill_0_normal_tl1) 646 574 SPILL_NORMAL_HANDLER_KERNEL 647 575 648 576 /* TT = 0x88, TL > 0, spill_2_normal handler */ 649 577 .org trap_table + (TT_SPILL_2_NORMAL+512)*ENTRY_SIZE 650 .global spill_2_normal_tl1 651 spill_2_normal_tl1: 578 SYMBOL(spill_2_normal_tl1) 652 579 SPILL_TO_USPACE_WINDOW_BUFFER 653 580 654 581 /* TT = 0xa0, TL > 0, spill_0_other handler */ 655 582 .org trap_table + (TT_SPILL_0_OTHER+512)*ENTRY_SIZE 656 .global spill_0_other_tl1 657 spill_0_other_tl1: 583 SYMBOL(spill_0_other_tl1) 658 584 SPILL_TO_USPACE_WINDOW_BUFFER 659 585 660 586 /* TT = 0xc0, TL > 0, fill_0_normal handler */ 661 587 .org trap_table + (TT_FILL_0_NORMAL+512)*ENTRY_SIZE 662 .global fill_0_normal_tl1 663 fill_0_normal_tl1: 588 SYMBOL(fill_0_normal_tl1) 664 589 FILL_NORMAL_HANDLER_KERNEL 665 590 … … 1178 1103 .endm 1179 1104 1180 .global preemptible_handler 1181 preemptible_handler: 1105 SYMBOL(preemptible_handler) 1182 1106 PREEMPTIBLE_HANDLER_TEMPLATE 0 1183 1107 1184 .global trap_instruction_handler 1185 trap_instruction_handler: 1108 SYMBOL(trap_instruction_handler) 1186 1109 PREEMPTIBLE_HANDLER_TEMPLATE 1
Note:
See TracChangeset
for help on using the changeset viewer.