[Openmcl-cvs-notifications] r14267 - /trunk/source/lisp-kernel/arm-uuo.s
rme at clozure.com
rme at clozure.com
Fri Sep 17 13:59:43 CDT 2010
Author: rme
Date: Fri Sep 17 13:59:43 2010
New Revision: 14267
Log:
Sprinkle some parentheses around to avoid trouble with operator
precedence when constructing a UUO instruction.
This problem was made evident when I mistakenly typed (uvref 0 #'car)
and got a crash instead of an error. The correct UUO is 0x17f065f3,
but we were generating 0x17f060f7 instead:
.word (uuo_base_opcode|(ne<<28)|uuo_format_error_fulltag|(r5|(fulltag_misc<=
<4)<<8))
With the extra parens, we get it right:
.word (uuo_base_opcode|((ne)<<28)|(uuo_format_error_fulltag)|((r5|(fulltag_=
misc<<4))<<8))
Modified:
trunk/source/lisp-kernel/arm-uuo.s
Modified: trunk/source/lisp-kernel/arm-uuo.s
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D
--- trunk/source/lisp-kernel/arm-uuo.s (original)
+++ trunk/source/lisp-kernel/arm-uuo.s Fri Sep 17 13:59:43 2010
@@ -50,7 +50,7 @@
=
/* Encode a UUO with cond =3D $1, format =3D $2, info =3D $3 */
define(`UUO',`
- .word (uuo_base_opcode|($1<<28)|$2|($3<<8))
+ .word (uuo_base_opcode|(($1)<<28)|($2)|(($3)<<8))
')
/* Nullary UUO with cond =3D $1, info =3D $2 */ =
define(`nullaryUUO',`UUO($1,uuo_format_nullary,$2)')
More information about the Openmcl-cvs-notifications
mailing list