Index: /branches/ia32/lisp-kernel/x86-spentry32.s
===================================================================
--- /branches/ia32/lisp-kernel/x86-spentry32.s	(revision 8259)
+++ /branches/ia32/lisp-kernel/x86-spentry32.s	(revision 8260)
@@ -47,5 +47,5 @@
 	__(shll $word_shift,%imm0)
 	__(addl $local_label(misc_ref_jmp),%imm0)
-	__(jmp (%imm0))
+	__(jmp *(%imm0))
 	.p2align 2
 local_label(misc_ref_jmp):
@@ -1148,5 +1148,15 @@
 _endsubp(builtin_plus)
 
+/* %arg_z <- %arg_y - %arg_z.  Do the fixnum case - including overflow -  */
+/*  inline.  Call out otherwise.   */
 _spentry(builtin_minus)
+	__(movl %arg_y,%imm0)
+	__(orl %arg_z,%imm0)
+	__(testb $fixnummask,%imm0_b)
+	__(jne 1f)
+	__(xchgl %arg_y,%arg_z) 
+	__(subl %arg_y,%arg_z)
+	__(jo,pn C(fix_one_bit_overflow))
+	__(repret)
 	__(int $3)
 _endsubp(builtin_minus)
