Changeset 83817ea in mainline for arch/ia64/src/ivt.S
- Timestamp:
- 2005-11-07T15:10:49Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- a725deb
- Parents:
- 17a20bc
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
arch/ia64/src/ivt.S
r17a20bc r83817ea 256 256 heavyweight_handler_finalize: 257 257 /* 16. RSE switch to interrupted context */ 258 258 259 /********************************************************************************************/ 260 261 262 263 .auto 264 cover /*Allocate zerro size frame (Step 1(from Intel Docs))*/ 265 266 add r31 = STACK_SCRATCH_AREA_SIZE, r12;; 267 268 mov r28 = ar.bspstore /*Calculate loadrs (step 2)*/ 269 ld8 r29 = [r31], +8 270 sub r27 = r29 , r28 271 shl r27 = r27, 16 272 273 mov r24 = ar.rsc 274 and r30 = ~3, r24 275 or r24 = r30 , r27 276 mov ar.rsc = r24 /* place RSE in enforced lazy mode */ 277 278 279 280 loadrs /*(Step 3)*/ 281 282 283 /*Read saved registers*/ 284 ld8 r28 = [r31], +8 /*ar.bspstore*/ 285 ld8 r27 = [r31], +8 /*ar.rnat*/ 286 ld8 r26 = [r31], +8 /*cr.ifs*/ 287 ld8 r25 = [r31], +8 /*ar.pfs*/ 288 ld8 r24 = [r31], +8 /*ar.rsc*/ 289 290 291 mov ar.bspstore = r28 /*(Step 4)*/ 292 mov ar.rnat = r27 /*(Step 5)*/ 293 294 mov ar.pfs = r25 /*(Step 6)*/ 295 mov cr.ifs = r26 296 297 mov ar.rsc = r24 /*(Step 7)*/ 298 299 300 .explicit 301 302 303 /********************************************************************************************/ 304 305 306 259 307 /* 17. restore interruption state from memory stack */ 308 309 ld8 r28 = [r31] , +8 ;; /* load cr.ifa */ 310 ld8 r27 = [r31] , +8 ;; /* load cr.isr */ 311 ld8 r26 = [r31] , +8 ;; /* load cr.iipa */ 312 ld8 r25 = [r31] , +8 ;; /* load cr.ipsr */ 313 ld8 r24 = [r31] , +8 ;; /* load cr.iip */ 314 315 316 mov cr.iip = r24 317 mov cr.ipsr = r25 318 mov cr.iipa = r26 319 mov cr.isr = r27 320 mov cr.ifa = r28 321 322 260 323 261 324 /* 18. restore predicate registers from memory stack */ 325 326 327 ld8 r29 = [r31] , -8 ;; /* load predicate registers */ 328 mov pr =r29 ;; 329 330 add r12 = STACK_FRAME_SIZE,r12;; 262 331 263 332 /* 19. return from interruption */ 264 rfi 265 266 333 rfi;; 267 334 268 335
Note:
See TracChangeset
for help on using the changeset viewer.