Changeset 1b20da0 in mainline for kernel/arch/ia64/src/ivt.S
- Timestamp:
- 2018-02-28T17:52:03Z (7 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 3061bc1
- Parents:
- df6ded8
- git-author:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-02-28 17:26:03)
- git-committer:
- Jiří Zárevúcky <zarevucky.jiri@…> (2018-02-28 17:52:03)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ia64/src/ivt.S
rdf6ded8 r1b20da0 48 48 49 49 /* Speculation vector handler */ 50 .macro SPECULATION_VECTOR_HANDLER vector 50 .macro SPECULATION_VECTOR_HANDLER vector 51 51 .org ivt + \vector * 0x100 52 52 … … 111 111 /* Set up FPU as in interrupted context. */ 112 112 mov r24 = psr 113 mov r25 = cr.ipsr 113 mov r25 = cr.ipsr 114 114 mov r26 = PSR_DFH_MASK 115 115 mov r27 = ~PSR_DFH_MASK ;; … … 175 175 (p6) st8 [r31] = r38, -STACK_ITEM_SIZE ;; /* save in6 */ 176 176 (p6) st8 [r31] = r37, -STACK_ITEM_SIZE ;; /* save in5 */ 177 (p6) st8 [r31] = r36, -STACK_ITEM_SIZE ;; /* save in4 */ 177 (p6) st8 [r31] = r36, -STACK_ITEM_SIZE ;; /* save in4 */ 178 178 (p6) st8 [r31] = r35, -STACK_ITEM_SIZE ;; /* save in3 */ 179 179 (p6) st8 [r31] = r34, -STACK_ITEM_SIZE ;; /* save in2 */ … … 182 182 (p5) add r31 = -(7 * STACK_ITEM_SIZE), r31 ;; 183 183 184 st8 [r31] = r30, -STACK_ITEM_SIZE ;; /* save old stack pointer */ 184 st8 [r31] = r30, -STACK_ITEM_SIZE ;; /* save old stack pointer */ 185 185 186 186 st8 [r31] = r29, -STACK_ITEM_SIZE ;; /* save predicate registers */ … … 250 250 mov r24 = ar.rsc ;; 251 251 and r30 = ~3, r24 ;; 252 or r24 = r30 , r27 ;; 252 or r24 = r30 , r27 ;; 253 253 mov ar.rsc = r24 ;; /* place RSE in enforced lazy mode */ 254 254 … … 264 264 265 265 mov ar.pfs = r25 /* (step 6) */ 266 mov cr.ifs = r26 266 mov cr.ifs = r26 267 267 268 268 mov ar.rsc = r24 /* (step 7) */ 269 269 270 270 /* 17. restore interruption state from memory stack */ 271 ld8 r28 = [r31], +STACK_ITEM_SIZE ;; /* load cr.ifa */ 271 ld8 r28 = [r31], +STACK_ITEM_SIZE ;; /* load cr.ifa */ 272 272 ld8 r27 = [r31], +STACK_ITEM_SIZE ;; /* load cr.isr */ 273 273 ld8 r26 = [r31], +STACK_ITEM_SIZE ;; /* load cr.iipa */ … … 294 294 295 295 /* 19. return from interruption */ 296 ld8 r12 = [r31] /* load stack pointer */ 296 ld8 r12 = [r31] /* load stack pointer */ 297 297 rfi ;; 298 298 … … 391 391 stf.spill [r31] = f15, 8 * FLOAT_ITEM_SIZE ;; 392 392 393 stf.spill [r24] = f16, 8 * FLOAT_ITEM_SIZE 393 stf.spill [r24] = f16, 8 * FLOAT_ITEM_SIZE 394 394 stf.spill [r25] = f17, 8 * FLOAT_ITEM_SIZE 395 395 stf.spill [r26] = f18, 8 * FLOAT_ITEM_SIZE … … 503 503 mov r24 = loc39 504 504 mov r25 = loc40 505 mov r26 = loc41 505 mov r26 = loc41 506 506 mov r27 = loc42 507 507 mov r28 = loc43 … … 575 575 HEAVYWEIGHT_HANDLER 0x5b 576 576 HEAVYWEIGHT_HANDLER 0x5c 577 HEAVYWEIGHT_HANDLER 0x5d 577 HEAVYWEIGHT_HANDLER 0x5d 578 578 HEAVYWEIGHT_HANDLER 0x5e 579 579 HEAVYWEIGHT_HANDLER 0x5f
Note:
See TracChangeset
for help on using the changeset viewer.