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:
loadrs
;;
skip_rbs_switch:
(pLvSys) mov r19=r0 // clear r19 for leave_syscall, no-op otherwise
mov b0=r21
mov ar.pfs=r26
(pUStk) mov ar.bspstore=r23
(p9) mov cr.ifs=r30
(pLvSys)mov r16=r0 // clear r16 for leave_syscall, no-op otherwise
mov cr.ipsr=r29
mov ar.fpsr=r20
(pLvSys)mov r17=r0 // clear r17 for leave_syscall, no-op otherwise
mov cr.iip=r28
;;
(pUStk) mov ar.rnat=r24 // must happen with RSE in lazy mode
(pLvSys)mov r18=r0 // clear r18 for leave_syscall, no-op otherwise
mov ar.rsc=r27
mov ar.unat=r25
mov pr=r31,-1
rfi
mov ar.unat=r25 // M2
nop.i 0 // I0
(pLvSys)mov r19=r0 // A clear r19 for leave_syscall, no-op otherwise
;;
(pUStk) mov ar.bspstore=r23 // M2
nop.i 0 // I0
(pLvSys)mov r16=r0 // A clear r16 for leave_syscall, no-op otherwise
;;
mov cr.ipsr=r29 // M2
mov ar.pfs=r26 // I0
(pLvSys)mov r17=r0 // A clear r17 for leave_syscall, no-op otherwise
(p9) mov cr.ifs=r30 // M2
mov b0=r21 // I0
(pLvSys)mov r18=r0 // A clear r18 for leave_syscall, no-op otherwise
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:
......
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