Update of /project/movitz/cvsroot/movitz/losp/muerte In directory common-lisp.net:/tmp/cvs-serv31584
Modified Files: primitive-functions.lisp Log Message: Fixed fast-class-of-null and fast-class-of-character so that they actually do what they're supposed to do.
Date: Mon Apr 19 15:49:11 2004 Author: ffjeld
Index: movitz/losp/muerte/primitive-functions.lisp diff -u movitz/losp/muerte/primitive-functions.lisp:1.14 movitz/losp/muerte/primitive-functions.lisp:1.15 --- movitz/losp/muerte/primitive-functions.lisp:1.14 Mon Apr 19 11:06:38 2004 +++ movitz/losp/muerte/primitive-functions.lisp Mon Apr 19 15:49:11 2004 @@ -10,7 +10,7 @@ ;;;; Author: Frode Vatvedt Fjeld frodef@acm.org ;;;; Created at: Tue Oct 2 21:02:18 2001 ;;;; -;;;; $Id: primitive-functions.lisp,v 1.14 2004/04/19 15:06:38 ffjeld Exp $ +;;;; $Id: primitive-functions.lisp,v 1.15 2004/04/19 19:49:11 ffjeld Exp $ ;;;; ;;;;------------------------------------------------------------------
@@ -561,8 +561,12 @@ (define-primitive-function fast-class-of-character () "Return the class of a character object." (with-inline-assembly (:returns :multiple-values) - (:globally (:movl (:edi (:edi-offset classes)) :eax)) - (:movl (:eax #.(movitz::class-object-offset 'character)) :eax) + (:globally (:movl (:edi (:edi-offset classes)) :ebx)) + (:cmpb #.(movitz:tag :character) :al) + (:jne '(:sub-program () + (:globally (:movl (:edi (:edi-offset complicated-class-of)) :esi)) + (:jmp (:esi #.(bt:slot-offset 'movitz::movitz-funobj 'movitz::code-vector%1op))))) + (:movl (:ebx #.(movitz::class-object-offset 'character)) :eax) (:ret)))
(define-primitive-function fast-class-of-null ()