Date: Mon, 29 Apr 2002 23:37:26 -0700 (PDT) From: Marcel Moolenaar <marcel@FreeBSD.org> To: cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org Subject: cvs commit: src/sys/ia64/ia64 exception.s src/sys/ia64/include frame.h Message-ID: <200204300637.g3U6bQc25956@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
marcel 2002/04/29 23:37:25 PDT
Modified files:
sys/ia64/ia64 exception.s
sys/ia64/include frame.h
Log:
Add ar.lc and ar.ec to the trapframe. These are not saved for syscalls,
only for exceptions.
While adding this to exception_save and exception_restore, it was hard
to find a good place to put the instructions. The code sequence was
sufficiently arbitrarily ordered that the density was low (roughly 67%).
No explicit bundling was used.
Thus, I rewrote the functions to optimize for density (close to 80% now),
and added explicit bundles and nop instructions. The immediate operand
on the nop instruction has been incremented with each instance, to make
debugging a bit easier when looking at recurring patterns. Redundant
stops have been removed as much as possible. Future optimizations can
focus more on performance. A well-placed lfetch can make all the
difference here!
Also, the FRAME_Fxx defines in frame.h were mostly bogus. FRAME_F10 to
FRAME_F15 were copied from FRAME_F9 and still had the same index. We
don't use them yet, so nothing was broken.
Revision Changes Path
1.34 +458 -171 src/sys/ia64/ia64/exception.s
1.4 +13 -10 src/sys/ia64/include/frame.h
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200204300637.g3U6bQc25956>
