Fix i386 and x86-64 generic multiplication hooks on fixnums.
authorTaylor R Campbell <campbell@mumble.net>
Thu, 12 Nov 2009 21:44:58 +0000 (16:44 -0500)
committerTaylor R Campbell <campbell@mumble.net>
Thu, 12 Nov 2009 21:44:58 +0000 (16:44 -0500)
commit84b1f57fbe67265816dde2cec64786e09ddcf349
treeafaf674c56612f0711b24f4a9fabe50114b68378
parente0c3f151eb50fe615af6600062e7ae5a0966cff6
Fix i386 and x86-64 generic multiplication hooks on fixnums.

Before multiplying, both tags must be cleared, and one of the
operands must be shifted to include a factor of 2^6.  Shifting both
operands, so that there is an extra factor of 2^12, or not clearing
the tag on both operands, is wrong.  However, this didn't affect any
real code, since the fixnum case of generic multiplication is always
open-coded by the compiler unless you futz with compiler switches.
src/microcode/cmpauxmd/i386.m4
src/microcode/cmpauxmd/x86-64.m4