Changes in kernel/arch/ia64/src/ivt.S [27f67f5:2277e03] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ia64/src/ivt.S
r27f67f5 r2277e03 28 28 # 29 29 30 #include <abi/asmtool.h>31 30 #include <arch/stack.h> 32 31 #include <arch/register.h> 33 32 #include <arch/mm/page.h> 34 #include <arch/interrupt.h>35 #include <arch/istate_struct.h>36 33 #include <align.h> 37 34 38 #define STACK_FRAME_SIZE ALIGN_UP(ISTATE_SIZE + STACK_SCRATCH_AREA_SIZE, STACK_ALIGNMENT) 39 40 #define FLOAT_ITEM_SIZE (STACK_ITEM_SIZE * 2) 35 #define FRS_TO_SAVE 30 36 #define STACK_ITEMS (21 + FRS_TO_SAVE * 2) 37 #define STACK_FRAME_SIZE ALIGN_UP((STACK_ITEMS * STACK_ITEM_SIZE) + STACK_SCRATCH_AREA_SIZE, STACK_ALIGNMENT) 38 39 #if (STACK_ITEMS % 2 == 0) 40 # define STACK_FRAME_BIAS 8 41 #else 42 # define STACK_FRAME_BIAS 16 43 #endif 41 44 42 45 /** Partitioning of bank 0 registers. */ 43 #define R_ VECTORr1646 #define R_OFFS r16 44 47 #define R_HANDLER r17 45 48 #define R_RET r18 49 #define R_TMP r19 46 50 #define R_KSTACK_BSP r22 /* keep in sync with before_thread_runs_arch() */ 47 51 #define R_KSTACK r23 /* keep in sync with before_thread_runs_arch() */ 48 52 49 53 /* Speculation vector handler */ 50 .macro SPECULATION_VECTOR_HANDLER vector51 .org ivt + \ vector * 0x10054 .macro SPECULATION_VECTOR_HANDLER offs 55 .org ivt + \offs 52 56 53 57 /* 1. Save predicates, IIM, IIP, IPSR and ISR CR's in bank 0 registers. */ … … 95 99 * @param handler Interrupt handler address. 96 100 */ 97 .macro HEAVYWEIGHT_HANDLER vector, handler=exc_dispatch98 .org ivt + \ vector * 0x10099 mov R_ VECTOR = \vector101 .macro HEAVYWEIGHT_HANDLER offs, handler=universal_handler 102 .org ivt + \offs 103 mov R_OFFS = \offs 100 104 movl R_HANDLER = \handler ;; 101 105 br heavyweight_handler 102 106 .endm 103 107 104 SYMBOL(heavyweight_handler) 108 .global heavyweight_handler 109 heavyweight_handler: 105 110 /* 1. copy interrupt registers into bank 0 */ 106 111 … … 115 120 mov r27 = ~PSR_DFH_MASK ;; 116 121 and r26 = r25, r26 117 and r24 = r24, r27 118 or r24 = r24, r26 119 mov psr.l = r24 122 and r24 = r24, r27;; 123 or r24 = r24, r26;; 124 mov psr.l = r24;; 120 125 srlz.i 121 srlz.d 126 srlz.d;; 122 127 123 128 mov r24 = cr.iip … … 156 161 (p4) mov r12 = R_KSTACK ;; 157 162 158 add r 12 = -STACK_FRAME_SIZE, r12 ;;159 add r 31 = STACK_SCRATCH_AREA_SIZE + ISTATE_OFFSET_IN6, r12163 add r31 = -STACK_FRAME_BIAS, r12 ;; 164 add r12 = -STACK_FRAME_SIZE, r12 160 165 161 166 /* 4. save registers in bank 0 into memory stack */ … … 165 170 * copy input parameters to stack. 166 171 */ 167 cmp.eq p6, p5 = EXC_BREAK_INSTRUCTION, R_VECTOR ;; 172 mov R_TMP = 0x2c00 ;; 173 cmp.eq p6, p5 = R_OFFS, R_TMP ;; 168 174 169 175 /* … … 173 179 */ 174 180 175 (p6) st8 [r31] = r38, - STACK_ITEM_SIZE ;;/* save in6 */176 (p6) st8 [r31] = r37, - STACK_ITEM_SIZE ;;/* save in5 */177 (p6) st8 [r31] = r36, - STACK_ITEM_SIZE ;;/* save in4 */178 (p6) st8 [r31] = r35, - STACK_ITEM_SIZE ;;/* save in3 */179 (p6) st8 [r31] = r34, - STACK_ITEM_SIZE ;;/* save in2 */180 (p6) st8 [r31] = r33, - STACK_ITEM_SIZE ;;/* save in1 */181 (p6) st8 [r31] = r32, - STACK_ITEM_SIZE ;;/* save in0 */182 (p5) add r31 = - (7 * STACK_ITEM_SIZE), r31 ;;181 (p6) st8 [r31] = r38, -8 ;; /* save in6 */ 182 (p6) st8 [r31] = r37, -8 ;; /* save in5 */ 183 (p6) st8 [r31] = r36, -8 ;; /* save in4 */ 184 (p6) st8 [r31] = r35, -8 ;; /* save in3 */ 185 (p6) st8 [r31] = r34, -8 ;; /* save in2 */ 186 (p6) st8 [r31] = r33, -8 ;; /* save in1 */ 187 (p6) st8 [r31] = r32, -8 ;; /* save in0 */ 188 (p5) add r31 = -56, r31 ;; 183 189 184 st8 [r31] = r30, - STACK_ITEM_SIZE ;;/* save old stack pointer */185 186 st8 [r31] = r29, - STACK_ITEM_SIZE ;;/* save predicate registers */187 188 st8 [r31] = r24, - STACK_ITEM_SIZE ;;/* save cr.iip */189 st8 [r31] = r25, - STACK_ITEM_SIZE ;;/* save cr.ipsr */190 st8 [r31] = r26, - STACK_ITEM_SIZE ;;/* save cr.iipa */191 st8 [r31] = r27, - STACK_ITEM_SIZE ;;/* save cr.isr */192 st8 [r31] = r28, - STACK_ITEM_SIZE ;;/* save cr.ifa */190 st8 [r31] = r30, -8 ;; /* save old stack pointer */ 191 192 st8 [r31] = r29, -8 ;; /* save predicate registers */ 193 194 st8 [r31] = r24, -8 ;; /* save cr.iip */ 195 st8 [r31] = r25, -8 ;; /* save cr.ipsr */ 196 st8 [r31] = r26, -8 ;; /* save cr.iipa */ 197 st8 [r31] = r27, -8 ;; /* save cr.isr */ 198 st8 [r31] = r28, -8 ;; /* save cr.ifa */ 193 199 194 200 /* 5. RSE switch from interrupted context */ … … 198 204 mov r26 = cr.ifs 199 205 200 st8 [r31] = r24, - STACK_ITEM_SIZE ;;/* save ar.rsc */201 st8 [r31] = r25, - STACK_ITEM_SIZE ;;/* save ar.pfs */202 st8 [r31] = r26, - STACK_ITEM_SIZE/* save ar.ifs */206 st8 [r31] = r24, -8 ;; /* save ar.rsc */ 207 st8 [r31] = r25, -8 ;; /* save ar.pfs */ 208 st8 [r31] = r26, -8 /* save ar.ifs */ 203 209 204 210 and r24 = ~(RSC_PL_MASK), r24 ;; … … 225 231 mov r29 = ar.bsp 226 232 227 st8 [r31] = r27, - STACK_ITEM_SIZE ;;/* save ar.rnat */228 st8 [r31] = r30, - STACK_ITEM_SIZE ;;/* save new value written to ar.bspstore */229 st8 [r31] = r28, - STACK_ITEM_SIZE ;;/* save ar.bspstore */230 st8 [r31] = r29, - STACK_ITEM_SIZE/* save ar.bsp */233 st8 [r31] = r27, -8 ;; /* save ar.rnat */ 234 st8 [r31] = r30, -8 ;; /* save new value written to ar.bspstore */ 235 st8 [r31] = r28, -8 ;; /* save ar.bspstore */ 236 st8 [r31] = r29, -8 /* save ar.bsp */ 231 237 232 238 mov ar.rsc = r24 /* restore RSE's setting + kernel privileges */ … … 240 246 cover /* allocate zero size frame (step 1 (from Intel Docs)) */ 241 247 242 add r31 = STACK_SCRATCH_AREA_SIZE + ISTATE_OFFSET_AR_BSP, r12 ;;243 244 ld8 r30 = [r31], + STACK_ITEM_SIZE ;;/* load ar.bsp */245 ld8 r29 = [r31], + STACK_ITEM_SIZE ;;/* load ar.bspstore */246 ld8 r28 = [r31], + STACK_ITEM_SIZE ;;/* load ar.bspstore_new */248 add r31 = (STACK_SCRATCH_AREA_SIZE + (FRS_TO_SAVE * 2 * 8)), r12 ;; 249 250 ld8 r30 = [r31], +8 ;; /* load ar.bsp */ 251 ld8 r29 = [r31], +8 ;; /* load ar.bspstore */ 252 ld8 r28 = [r31], +8 ;; /* load ar.bspstore_new */ 247 253 sub r27 = r30 , r28 ;; /* calculate loadrs (step 2) */ 248 254 shl r27 = r27, 16 … … 255 261 loadrs /* (step 3) */ 256 262 257 ld8 r27 = [r31], + STACK_ITEM_SIZE ;;/* load ar.rnat */258 ld8 r26 = [r31], + STACK_ITEM_SIZE ;;/* load cr.ifs */259 ld8 r25 = [r31], + STACK_ITEM_SIZE ;;/* load ar.pfs */260 ld8 r24 = [r31], + STACK_ITEM_SIZE ;;/* load ar.rsc */263 ld8 r27 = [r31], +8 ;; /* load ar.rnat */ 264 ld8 r26 = [r31], +8 ;; /* load cr.ifs */ 265 ld8 r25 = [r31], +8 ;; /* load ar.pfs */ 266 ld8 r24 = [r31], +8 ;; /* load ar.rsc */ 261 267 262 268 mov ar.bspstore = r29 ;; /* (step 4) */ … … 269 275 270 276 /* 17. restore interruption state from memory stack */ 271 ld8 r28 = [r31], + STACK_ITEM_SIZE ;;/* load cr.ifa */272 ld8 r27 = [r31], + STACK_ITEM_SIZE ;;/* load cr.isr */273 ld8 r26 = [r31], + STACK_ITEM_SIZE ;;/* load cr.iipa */274 ld8 r25 = [r31], + STACK_ITEM_SIZE ;;/* load cr.ipsr */275 ld8 r24 = [r31], + STACK_ITEM_SIZE ;;/* load cr.iip */277 ld8 r28 = [r31], +8 ;; /* load cr.ifa */ 278 ld8 r27 = [r31], +8 ;; /* load cr.isr */ 279 ld8 r26 = [r31], +8 ;; /* load cr.iipa */ 280 ld8 r25 = [r31], +8 ;; /* load cr.ipsr */ 281 ld8 r24 = [r31], +8 ;; /* load cr.iip */ 276 282 277 283 mov cr.iip = r24;; … … 286 292 and r25 = r25, r27 287 293 and r24 = r24, r26 ;; 288 or r25 = r25, r24 294 or r25 = r25, r24;; 289 295 mov cr.ipsr = r25 290 296 291 297 /* 18. restore predicate registers from memory stack */ 292 ld8 r29 = [r31], + STACK_ITEM_SIZE ;;/* load predicate registers */298 ld8 r29 = [r31], +8 ;; /* load predicate registers */ 293 299 mov pr = r29 294 300 295 301 /* 19. return from interruption */ 296 ld8 r12 = [r31] 302 ld8 r12 = [r31] /* load stack pointer */ 297 303 rfi ;; 298 304 299 FUNCTION_BEGIN(heavyweight_handler_inner) 305 .global heavyweight_handler_inner 306 heavyweight_handler_inner: 300 307 /* 301 308 * From this point, the rest of the interrupted context … … 307 314 mov loc1 = R_RET /* b0 belonging to interrupted context */ 308 315 mov loc2 = R_HANDLER 309 mov out0 = R_ VECTOR316 mov out0 = R_OFFS 310 317 311 318 add out1 = STACK_SCRATCH_AREA_SIZE, r12 … … 366 373 mov loc46 = r31 367 374 368 add r24 = ISTATE_OFFSET_F8+ STACK_SCRATCH_AREA_SIZE, r12369 add r25 = ISTATE_OFFSET_F9+ STACK_SCRATCH_AREA_SIZE, r12370 add r26 = ISTATE_OFFSET_F2+ STACK_SCRATCH_AREA_SIZE, r12371 add r27 = ISTATE_OFFSET_F3+ STACK_SCRATCH_AREA_SIZE, r12372 add r28 = ISTATE_OFFSET_F4+ STACK_SCRATCH_AREA_SIZE, r12373 add r29 = ISTATE_OFFSET_F5+ STACK_SCRATCH_AREA_SIZE, r12374 add r30 = ISTATE_OFFSET_F6+ STACK_SCRATCH_AREA_SIZE, r12375 add r31 = ISTATE_OFFSET_F7+ STACK_SCRATCH_AREA_SIZE, r12 ;;376 377 stf.spill [r26] = f2, 8 * FLOAT_ITEM_SIZE378 stf.spill [r27] = f3, 8 * FLOAT_ITEM_SIZE379 stf.spill [r28] = f4, 8 * FLOAT_ITEM_SIZE380 stf.spill [r29] = f5, 8 * FLOAT_ITEM_SIZE381 stf.spill [r30] = f6, 8 * FLOAT_ITEM_SIZE382 stf.spill [r31] = f7, 8 * FLOAT_ITEM_SIZE;;383 384 stf.spill [r24] = f8, 8 * FLOAT_ITEM_SIZE385 stf.spill [r25] = f9, 8 * FLOAT_ITEM_SIZE386 stf.spill [r26] = f10, 8 * FLOAT_ITEM_SIZE387 stf.spill [r27] = f11, 8 * FLOAT_ITEM_SIZE388 stf.spill [r28] = f12, 8 * FLOAT_ITEM_SIZE389 stf.spill [r29] = f13, 8 * FLOAT_ITEM_SIZE390 stf.spill [r30] = f14, 8 * FLOAT_ITEM_SIZE391 stf.spill [r31] = f15, 8 * FLOAT_ITEM_SIZE;;392 393 stf.spill [r24] = f16, 8 * FLOAT_ITEM_SIZE394 stf.spill [r25] = f17, 8 * FLOAT_ITEM_SIZE395 stf.spill [r26] = f18, 8 * FLOAT_ITEM_SIZE396 stf.spill [r27] = f19, 8 * FLOAT_ITEM_SIZE397 stf.spill [r28] = f20, 8 * FLOAT_ITEM_SIZE398 stf.spill [r29] = f21, 8 * FLOAT_ITEM_SIZE399 stf.spill [r30] = f22, 8 * FLOAT_ITEM_SIZE400 stf.spill [r31] = f23, 8 * FLOAT_ITEM_SIZE;;401 402 stf.spill [r24] = f24 403 stf.spill [r25] = f25 404 stf.spill [r26] = f26 405 stf.spill [r27] = f27 406 stf.spill [r28] = f28 407 stf.spill [r29] = f29 408 stf.spill [r30] = f30 409 stf.spill [r31] = f31 ;;375 add r24 = 96 + STACK_SCRATCH_AREA_SIZE, r12 376 add r25 = 112 + STACK_SCRATCH_AREA_SIZE, r12 377 add r26 = 0 + STACK_SCRATCH_AREA_SIZE, r12 378 add r27 = 16 + STACK_SCRATCH_AREA_SIZE, r12 379 add r28 = 32 + STACK_SCRATCH_AREA_SIZE, r12 380 add r29 = 48 + STACK_SCRATCH_AREA_SIZE, r12 381 add r30 = 64 + STACK_SCRATCH_AREA_SIZE, r12 382 add r31 = 80 + STACK_SCRATCH_AREA_SIZE, r12 ;; 383 384 stf.spill [r26] = f2, 0x80 385 stf.spill [r27] = f3, 0x80 386 stf.spill [r28] = f4, 0x80 387 stf.spill [r29] = f5, 0x80 388 stf.spill [r30] = f6, 0x80 389 stf.spill [r31] = f7, 0x80 ;; 390 391 stf.spill [r24] = f8, 0x80 392 stf.spill [r25] = f9, 0x80 393 stf.spill [r26] = f10, 0x80 394 stf.spill [r27] = f11, 0x80 395 stf.spill [r28] = f12, 0x80 396 stf.spill [r29] = f13, 0x80 397 stf.spill [r30] = f14, 0x80 398 stf.spill [r31] = f15, 0x80 ;; 399 400 stf.spill [r24] = f16, 0x80 401 stf.spill [r25] = f17, 0x80 402 stf.spill [r26] = f18, 0x80 403 stf.spill [r27] = f19, 0x80 404 stf.spill [r28] = f20, 0x80 405 stf.spill [r29] = f21, 0x80 406 stf.spill [r30] = f22, 0x80 407 stf.spill [r31] = f23, 0x80 ;; 408 409 stf.spill [r24] = f24, 0x80 410 stf.spill [r25] = f25, 0x80 411 stf.spill [r26] = f26, 0x80 412 stf.spill [r27] = f27, 0x80 413 stf.spill [r28] = f28, 0x80 414 stf.spill [r29] = f29, 0x80 415 stf.spill [r30] = f30, 0x80 416 stf.spill [r31] = f31, 0x80 ;; 410 417 411 418 mov loc47 = ar.fpsr /* preserve floating point status register */ … … 435 442 436 443 /* 13. restore general and floating-point registers */ 437 add r24 = ISTATE_OFFSET_F8+ STACK_SCRATCH_AREA_SIZE, r12438 add r25 = ISTATE_OFFSET_F9+ STACK_SCRATCH_AREA_SIZE, r12439 add r26 = ISTATE_OFFSET_F2+ STACK_SCRATCH_AREA_SIZE, r12440 add r27 = ISTATE_OFFSET_F3+ STACK_SCRATCH_AREA_SIZE, r12441 add r28 = ISTATE_OFFSET_F4+ STACK_SCRATCH_AREA_SIZE, r12442 add r29 = ISTATE_OFFSET_F5+ STACK_SCRATCH_AREA_SIZE, r12443 add r30 = ISTATE_OFFSET_F6+ STACK_SCRATCH_AREA_SIZE, r12444 add r31 = ISTATE_OFFSET_F7+ STACK_SCRATCH_AREA_SIZE, r12 ;;445 446 ldf.fill f2 = [r26], 8 * FLOAT_ITEM_SIZE447 ldf.fill f3 = [r27], 8 * FLOAT_ITEM_SIZE448 ldf.fill f4 = [r28], 8 * FLOAT_ITEM_SIZE449 ldf.fill f5 = [r29], 8 * FLOAT_ITEM_SIZE450 ldf.fill f6 = [r30], 8 * FLOAT_ITEM_SIZE451 ldf.fill f7 = [r31], 8 * FLOAT_ITEM_SIZE;;452 453 ldf.fill f8 = [r24], 8 * FLOAT_ITEM_SIZE454 ldf.fill f9 = [r25], 8 * FLOAT_ITEM_SIZE455 ldf.fill f10 = [r26], 8 * FLOAT_ITEM_SIZE456 ldf.fill f11 = [r27], 8 * FLOAT_ITEM_SIZE457 ldf.fill f12 = [r28], 8 * FLOAT_ITEM_SIZE458 ldf.fill f13 = [r29], 8 * FLOAT_ITEM_SIZE459 ldf.fill f14 = [r30], 8 * FLOAT_ITEM_SIZE460 ldf.fill f15 = [r31], 8 * FLOAT_ITEM_SIZE;;461 462 ldf.fill f16 = [r24], 8 * FLOAT_ITEM_SIZE463 ldf.fill f17 = [r25], 8 * FLOAT_ITEM_SIZE464 ldf.fill f18 = [r26], 8 * FLOAT_ITEM_SIZE465 ldf.fill f19 = [r27], 8 * FLOAT_ITEM_SIZE466 ldf.fill f20 = [r28], 8 * FLOAT_ITEM_SIZE467 ldf.fill f21 = [r29], 8 * FLOAT_ITEM_SIZE468 ldf.fill f22 = [r30], 8 * FLOAT_ITEM_SIZE469 ldf.fill f23 = [r31], 8 * FLOAT_ITEM_SIZE;;470 471 ldf.fill f24 = [r24] 472 ldf.fill f25 = [r25] 473 ldf.fill f26 = [r26] 474 ldf.fill f27 = [r27] 475 ldf.fill f28 = [r28] 476 ldf.fill f29 = [r29] 477 ldf.fill f30 = [r30] 478 ldf.fill f31 = [r31] ;;444 add r24 = 96 + STACK_SCRATCH_AREA_SIZE, r12 445 add r25 = 112 + STACK_SCRATCH_AREA_SIZE, r12 446 add r26 = 0 + STACK_SCRATCH_AREA_SIZE, r12 447 add r27 = 16 + STACK_SCRATCH_AREA_SIZE, r12 448 add r28 = 32 + STACK_SCRATCH_AREA_SIZE, r12 449 add r29 = 48 + STACK_SCRATCH_AREA_SIZE, r12 450 add r30 = 64 + STACK_SCRATCH_AREA_SIZE, r12 451 add r31 = 80 + STACK_SCRATCH_AREA_SIZE, r12 ;; 452 453 ldf.fill f2 = [r26], 0x80 454 ldf.fill f3 = [r27], 0x80 455 ldf.fill f4 = [r28], 0x80 456 ldf.fill f5 = [r29], 0x80 457 ldf.fill f6 = [r30], 0x80 458 ldf.fill f7 = [r31], 0x80 ;; 459 460 ldf.fill f8 = [r24], 0x80 461 ldf.fill f9 = [r25], 0x80 462 ldf.fill f10 = [r26], 0x80 463 ldf.fill f11 = [r27], 0x80 464 ldf.fill f12 = [r28], 0x80 465 ldf.fill f13 = [r29], 0x80 466 ldf.fill f14 = [r30], 0x80 467 ldf.fill f15 = [r31], 0x80 ;; 468 469 ldf.fill f16 = [r24], 0x80 470 ldf.fill f17 = [r25], 0x80 471 ldf.fill f18 = [r26], 0x80 472 ldf.fill f19 = [r27], 0x80 473 ldf.fill f20 = [r28], 0x80 474 ldf.fill f21 = [r29], 0x80 475 ldf.fill f22 = [r30], 0x80 476 ldf.fill f23 = [r31], 0x80 ;; 477 478 ldf.fill f24 = [r24], 0x80 479 ldf.fill f25 = [r25], 0x80 480 ldf.fill f26 = [r26], 0x80 481 ldf.fill f27 = [r27], 0x80 482 ldf.fill f28 = [r28], 0x80 483 ldf.fill f29 = [r29], 0x80 484 ldf.fill f30 = [r30], 0x80 485 ldf.fill f31 = [r31], 0x80 ;; 479 486 480 487 mov r1 = loc17 … … 537 544 mov ar.pfs = loc0 538 545 br.ret.sptk.many b0 539 FUNCTION_END(heavyweight_handler_inner) 540 546 547 .global ivt 541 548 .align 32768 542 SYMBOL(ivt) 543 HEAVYWEIGHT_HANDLER 0x00 544 HEAVYWEIGHT_HANDLER 0x04 545 HEAVYWEIGHT_HANDLER 0x08 546 HEAVYWEIGHT_HANDLER 0x0c 547 HEAVYWEIGHT_HANDLER 0x10 548 HEAVYWEIGHT_HANDLER 0x14 549 HEAVYWEIGHT_HANDLER 0x18 550 HEAVYWEIGHT_HANDLER 0x1c 551 HEAVYWEIGHT_HANDLER 0x20 552 HEAVYWEIGHT_HANDLER 0x24 553 HEAVYWEIGHT_HANDLER 0x28 554 HEAVYWEIGHT_HANDLER 0x2c break_instruction555 HEAVYWEIGHT_HANDLER 0x30 556 HEAVYWEIGHT_HANDLER 0x34 557 HEAVYWEIGHT_HANDLER 0x38 558 HEAVYWEIGHT_HANDLER 0x3c 559 HEAVYWEIGHT_HANDLER 0x40 560 HEAVYWEIGHT_HANDLER 0x44 561 HEAVYWEIGHT_HANDLER 0x48 562 HEAVYWEIGHT_HANDLER 0x4c 563 564 HEAVYWEIGHT_HANDLER 0x50 565 HEAVYWEIGHT_HANDLER 0x51 566 HEAVYWEIGHT_HANDLER 0x52 567 HEAVYWEIGHT_HANDLER 0x53 568 HEAVYWEIGHT_HANDLER 0x54 569 HEAVYWEIGHT_HANDLER 0x55 570 HEAVYWEIGHT_HANDLER 0x56 571 SPECULATION_VECTOR_HANDLER 0x57 572 HEAVYWEIGHT_HANDLER 0x58 573 HEAVYWEIGHT_HANDLER 0x59 574 HEAVYWEIGHT_HANDLER 0x5a 575 HEAVYWEIGHT_HANDLER 0x5b 576 HEAVYWEIGHT_HANDLER 0x5c 577 HEAVYWEIGHT_HANDLER 0x5d 578 HEAVYWEIGHT_HANDLER 0x5e 579 HEAVYWEIGHT_HANDLER 0x5f 580 581 HEAVYWEIGHT_HANDLER 0x60 582 HEAVYWEIGHT_HANDLER 0x61 583 HEAVYWEIGHT_HANDLER 0x62 584 HEAVYWEIGHT_HANDLER 0x63 585 HEAVYWEIGHT_HANDLER 0x64 586 HEAVYWEIGHT_HANDLER 0x65 587 HEAVYWEIGHT_HANDLER 0x66 588 HEAVYWEIGHT_HANDLER 0x67 589 HEAVYWEIGHT_HANDLER 0x68 590 HEAVYWEIGHT_HANDLER 0x69 591 HEAVYWEIGHT_HANDLER 0x6a 592 HEAVYWEIGHT_HANDLER 0x6b 593 HEAVYWEIGHT_HANDLER 0x6c 594 HEAVYWEIGHT_HANDLER 0x6d 595 HEAVYWEIGHT_HANDLER 0x6e 596 HEAVYWEIGHT_HANDLER 0x6f 597 598 HEAVYWEIGHT_HANDLER 0x70 599 HEAVYWEIGHT_HANDLER 0x71 600 HEAVYWEIGHT_HANDLER 0x72 601 HEAVYWEIGHT_HANDLER 0x73 602 HEAVYWEIGHT_HANDLER 0x74 603 HEAVYWEIGHT_HANDLER 0x75 604 HEAVYWEIGHT_HANDLER 0x76 605 HEAVYWEIGHT_HANDLER 0x77 606 HEAVYWEIGHT_HANDLER 0x78 607 HEAVYWEIGHT_HANDLER 0x79 608 HEAVYWEIGHT_HANDLER 0x7a 609 HEAVYWEIGHT_HANDLER 0x7b 610 HEAVYWEIGHT_HANDLER 0x7c 611 HEAVYWEIGHT_HANDLER 0x7d 612 HEAVYWEIGHT_HANDLER 0x7e 613 HEAVYWEIGHT_HANDLER 0x7f 549 ivt: 550 HEAVYWEIGHT_HANDLER 0x0000 551 HEAVYWEIGHT_HANDLER 0x0400 552 HEAVYWEIGHT_HANDLER 0x0800 553 HEAVYWEIGHT_HANDLER 0x0c00 alternate_instruction_tlb_fault 554 HEAVYWEIGHT_HANDLER 0x1000 alternate_data_tlb_fault 555 HEAVYWEIGHT_HANDLER 0x1400 data_nested_tlb_fault 556 HEAVYWEIGHT_HANDLER 0x1800 557 HEAVYWEIGHT_HANDLER 0x1c00 558 HEAVYWEIGHT_HANDLER 0x2000 data_dirty_bit_fault 559 HEAVYWEIGHT_HANDLER 0x2400 instruction_access_bit_fault 560 HEAVYWEIGHT_HANDLER 0x2800 data_access_bit_fault 561 HEAVYWEIGHT_HANDLER 0x2c00 break_instruction 562 HEAVYWEIGHT_HANDLER 0x3000 external_interrupt /* For external interrupt, heavyweight handler is used. */ 563 HEAVYWEIGHT_HANDLER 0x3400 564 HEAVYWEIGHT_HANDLER 0x3800 565 HEAVYWEIGHT_HANDLER 0x3c00 566 HEAVYWEIGHT_HANDLER 0x4000 567 HEAVYWEIGHT_HANDLER 0x4400 568 HEAVYWEIGHT_HANDLER 0x4800 569 HEAVYWEIGHT_HANDLER 0x4c00 570 571 HEAVYWEIGHT_HANDLER 0x5000 page_not_present 572 HEAVYWEIGHT_HANDLER 0x5100 573 HEAVYWEIGHT_HANDLER 0x5200 574 HEAVYWEIGHT_HANDLER 0x5300 data_access_rights_fault 575 HEAVYWEIGHT_HANDLER 0x5400 general_exception 576 HEAVYWEIGHT_HANDLER 0x5500 disabled_fp_register 577 HEAVYWEIGHT_HANDLER 0x5600 578 SPECULATION_VECTOR_HANDLER 0x5700 579 HEAVYWEIGHT_HANDLER 0x5800 580 HEAVYWEIGHT_HANDLER 0x5900 581 HEAVYWEIGHT_HANDLER 0x5a00 582 HEAVYWEIGHT_HANDLER 0x5b00 583 HEAVYWEIGHT_HANDLER 0x5c00 584 HEAVYWEIGHT_HANDLER 0x5d00 585 HEAVYWEIGHT_HANDLER 0x5e00 586 HEAVYWEIGHT_HANDLER 0x5f00 587 588 HEAVYWEIGHT_HANDLER 0x6000 589 HEAVYWEIGHT_HANDLER 0x6100 590 HEAVYWEIGHT_HANDLER 0x6200 591 HEAVYWEIGHT_HANDLER 0x6300 592 HEAVYWEIGHT_HANDLER 0x6400 593 HEAVYWEIGHT_HANDLER 0x6500 594 HEAVYWEIGHT_HANDLER 0x6600 595 HEAVYWEIGHT_HANDLER 0x6700 596 HEAVYWEIGHT_HANDLER 0x6800 597 HEAVYWEIGHT_HANDLER 0x6900 598 HEAVYWEIGHT_HANDLER 0x6a00 599 HEAVYWEIGHT_HANDLER 0x6b00 600 HEAVYWEIGHT_HANDLER 0x6c00 601 HEAVYWEIGHT_HANDLER 0x6d00 602 HEAVYWEIGHT_HANDLER 0x6e00 603 HEAVYWEIGHT_HANDLER 0x6f00 604 605 HEAVYWEIGHT_HANDLER 0x7000 606 HEAVYWEIGHT_HANDLER 0x7100 607 HEAVYWEIGHT_HANDLER 0x7200 608 HEAVYWEIGHT_HANDLER 0x7300 609 HEAVYWEIGHT_HANDLER 0x7400 610 HEAVYWEIGHT_HANDLER 0x7500 611 HEAVYWEIGHT_HANDLER 0x7600 612 HEAVYWEIGHT_HANDLER 0x7700 613 HEAVYWEIGHT_HANDLER 0x7800 614 HEAVYWEIGHT_HANDLER 0x7900 615 HEAVYWEIGHT_HANDLER 0x7a00 616 HEAVYWEIGHT_HANDLER 0x7b00 617 HEAVYWEIGHT_HANDLER 0x7c00 618 HEAVYWEIGHT_HANDLER 0x7d00 619 HEAVYWEIGHT_HANDLER 0x7e00 620 HEAVYWEIGHT_HANDLER 0x7f00
Note:
See TracChangeset
for help on using the changeset viewer.