[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

XUINT/XSET performance -- mips and hp800

From: Ken Raeburn
Subject: XUINT/XSET performance -- mips and hp800
Date: Sun, 21 Jul 2002 16:18:30 -0400

Various mips and hp800 config files redefine XUINT, XSET, and XUNMARK
to use shifts rather than large mask values.  The comments indicate
that this is for performance reasons.  They're equivalent operations,
but the immediate constants are smaller, thus avoiding having to
construct the mask value in a register before using it.

Is this still relevant?  Do the compilers for these platforms suck
that much? :-)

If it's still important to keep that little optimization in at the C
level, I'd like to move it into lisp.h, and have it controlled by a
new macro SHIFTS_FASTER_THAN_MASK to be defined in the machine config
files.  Or, if the performance issue isn't that big a deal, just
delete these special versions of the macros altogether.

Either change will make the use of union or SCM for Lisp_Object
easier.  Currently, since ENABLE_CHECKING turns on the use of the
union, I expect that it's not possible to compile Emacs with
ENABLE_CHECKING on at least some of those platforms.


reply via email to

[Prev in Thread] Current Thread [Next in Thread]