Commit b6f4b744 authored by David Mosberger's avatar David Mosberger Committed by Tony Luck

[IA64] Resched skip_rbs_switch to run 4 cycles faster on McKinley-type cores

Signed-off-by: default avatarDavid Mosberger-Tang <davidm@hpl.hp.com>
Signed-off-by: default avatarTony Luck <tony.luck@intel.com>
parent 6fb9f8e0
...@@ -1032,23 +1032,33 @@ rse_clear_invalid: ...@@ -1032,23 +1032,33 @@ rse_clear_invalid:
loadrs loadrs
;; ;;
skip_rbs_switch: skip_rbs_switch:
(pLvSys) mov r19=r0 // clear r19 for leave_syscall, no-op otherwise mov ar.unat=r25 // M2
mov b0=r21 nop.i 0 // I0
mov ar.pfs=r26 (pLvSys)mov r19=r0 // A clear r19 for leave_syscall, no-op otherwise
(pUStk) mov ar.bspstore=r23 ;;
(p9) mov cr.ifs=r30 (pUStk) mov ar.bspstore=r23 // M2
(pLvSys)mov r16=r0 // clear r16 for leave_syscall, no-op otherwise nop.i 0 // I0
mov cr.ipsr=r29 (pLvSys)mov r16=r0 // A clear r16 for leave_syscall, no-op otherwise
mov ar.fpsr=r20 ;;
(pLvSys)mov r17=r0 // clear r17 for leave_syscall, no-op otherwise mov cr.ipsr=r29 // M2
mov cr.iip=r28 mov ar.pfs=r26 // I0
;; (pLvSys)mov r17=r0 // A clear r17 for leave_syscall, no-op otherwise
(pUStk) mov ar.rnat=r24 // must happen with RSE in lazy mode
(pLvSys)mov r18=r0 // clear r18 for leave_syscall, no-op otherwise (p9) mov cr.ifs=r30 // M2
mov ar.rsc=r27 mov b0=r21 // I0
mov ar.unat=r25 (pLvSys)mov r18=r0 // A clear r18 for leave_syscall, no-op otherwise
mov pr=r31,-1
rfi mov ar.fpsr=r20 // M2
mov cr.iip=r28 // M2
nop 0
;;
(pUStk) mov ar.rnat=r24 // M2 must happen with RSE in lazy mode
nop 0
nop 0
mov ar.rsc=r27 // M2
mov pr=r31,-1 // I0
rfi // B
/* /*
* On entry: * On entry:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment