unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* XUINT/XSET performance -- mips and hp800
@ 2002-07-21 20:18 Ken Raeburn
  0 siblings, 0 replies; only message in thread
From: Ken Raeburn @ 2002-07-21 20:18 UTC (permalink / raw)



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.

Ken

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2002-07-21 20:18 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2002-07-21 20:18 XUINT/XSET performance -- mips and hp800 Ken Raeburn

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).