cvs commit: src/sys/ia64/ia64 syscall.s
Marcel Moolenaar
marcel at FreeBSD.org
Sat May 31 13:57:28 PDT 2003
marcel 2003/05/31 13:57:27 PDT
FreeBSD src repository
Modified files:
sys/ia64/ia64 syscall.s
Log:
Some ia32 related finetuning for the EPC syscall path:
o The SDM states that flushing the RSE in the cycle prior to the
call to ia32 code yields the best performance. We don't really
care to much about performance here, but we do the same anyway.
I'm being paranoia and conservative here.
o Only initialize the ia32 state registers, not the registers used
as scratch by the ia32 engine. This saves a couple of loads from
the trapframe, but also helps debugging: we don't clobber useful
debugging data (engineering hints :-)
o Make sure all general registers constituting ia32 state have been
initialized. If there's no useful to be loaded from the trapframe,
clear the register. This avoids accidentally leaking NaT bits.
o Make sure we set ar.k6 prior to clobbering ar.bspstore and also
set ar.k7 prior to setting sp. This fixes a race seen for ia64
native code as well (and previously fixed too).
Revision Changes Path
1.3 +32 -25 src/sys/ia64/ia64/syscall.s
More information about the cvs-src
mailing list