[IA64] need r29=psr *after* rsm psr.i
Yanmin Zhang pointed out a sequence problem when saving the psr. David Mosberger provided this patch (which gave up a cycle). Signed-off-by: Tony Luck <tony.luck@intel.com>
This commit is contained in:
parent
e7e965fa19
commit
8e3e50168c
|
@ -77,7 +77,7 @@ GLOBAL_ENTRY(__kernel_syscall_via_epc)
|
||||||
epc // B causes split-issue
|
epc // B causes split-issue
|
||||||
}
|
}
|
||||||
;;
|
;;
|
||||||
rsm psr.be // M2 (5 cyc to srlz.d)
|
rsm psr.be | psr.i // M2 (5 cyc to srlz.d)
|
||||||
LOAD_FSYSCALL_TABLE(r14) // X
|
LOAD_FSYSCALL_TABLE(r14) // X
|
||||||
;;
|
;;
|
||||||
mov r16=IA64_KR(CURRENT) // M2 (12 cyc)
|
mov r16=IA64_KR(CURRENT) // M2 (12 cyc)
|
||||||
|
@ -98,15 +98,14 @@ GLOBAL_ENTRY(__kernel_syscall_via_epc)
|
||||||
nop.i 0
|
nop.i 0
|
||||||
;;
|
;;
|
||||||
nop.m 0
|
nop.m 0
|
||||||
(p6) mov b7=r18 // I0
|
|
||||||
(p6) tbit.z.unc p8,p0=r18,0 // I0 (dual-issues with "mov b7=r18"!)
|
(p6) tbit.z.unc p8,p0=r18,0 // I0 (dual-issues with "mov b7=r18"!)
|
||||||
|
|
||||||
nop.m 0
|
|
||||||
nop.i 0
|
nop.i 0
|
||||||
|
;;
|
||||||
|
(p8) ssm psr.i
|
||||||
|
(p6) mov b7=r18 // I0
|
||||||
(p8) br.dptk.many b7 // B
|
(p8) br.dptk.many b7 // B
|
||||||
|
|
||||||
mov r27=ar.rsc // M2 (12 cyc)
|
mov r27=ar.rsc // M2 (12 cyc)
|
||||||
(p6) rsm psr.i // M2
|
|
||||||
/*
|
/*
|
||||||
* brl.cond doesn't work as intended because the linker would convert this branch
|
* brl.cond doesn't work as intended because the linker would convert this branch
|
||||||
* into a branch to a PLT. Perhaps there will be a way to avoid this with some
|
* into a branch to a PLT. Perhaps there will be a way to avoid this with some
|
||||||
|
@ -123,7 +122,7 @@ GLOBAL_ENTRY(__kernel_syscall_via_epc)
|
||||||
#else
|
#else
|
||||||
BRL_COND_FSYS_BUBBLE_DOWN(p6)
|
BRL_COND_FSYS_BUBBLE_DOWN(p6)
|
||||||
#endif
|
#endif
|
||||||
|
ssm psr.i
|
||||||
mov r10=-1
|
mov r10=-1
|
||||||
(p10) mov r8=EINVAL
|
(p10) mov r8=EINVAL
|
||||||
(p9) mov r8=ENOSYS
|
(p9) mov r8=ENOSYS
|
||||||
|
|
Loading…
Reference in New Issue