[movitz-cvs] CVS movitz/losp/muerte
ffjeld
ffjeld at common-lisp.net
Mon Feb 4 10:08:25 UTC 2008
Update of /project/movitz/cvsroot/movitz/losp/muerte
In directory clnet:/tmp/cvs-serv12581
Modified Files:
integers.lisp
Log Message:
assembly instruction je should be keyword.
--- /project/movitz/cvsroot/movitz/losp/muerte/integers.lisp 2007/04/07 07:56:45 1.123
+++ /project/movitz/cvsroot/movitz/losp/muerte/integers.lisp 2008/02/04 10:08:18 1.124
@@ -9,7 +9,7 @@
;;;; Created at: Wed Nov 8 18:44:57 2000
;;;; Distribution: See the accompanying file COPYING.
;;;;
-;;;; $Id: integers.lisp,v 1.123 2007/04/07 07:56:45 ffjeld Exp $
+;;;; $Id: integers.lisp,v 1.124 2008/02/04 10:08:18 ffjeld Exp $
;;;;
;;;;------------------------------------------------------------------
@@ -1899,26 +1899,26 @@
(:shrl 5 :ecx) ; compute msb bigit index/fixnum in ecx
(:addl 4 :ecx)
(:cmpw :cx (:ebx (:offset movitz-bignum length)))
- (je '(:sub-program (equal-size-maybe-return-same)
- (:testl :edx :edx) ; Can only return same if (zerop position).
- (:jnz 'adjust-size)
- (:movl :eax :ecx) ; size/fixnum
- (:shrl ,movitz:+movitz-fixnum-shift+ :ecx)
- (:andl 31 :ecx)
- (:jz 'yes-return-same)
- (:std) ; <================
- ;; we know EDX=0, now generate mask in EDX
- (:addl 1 :edx)
- (:shll :cl :edx)
- (:movzxw (:ebx (:offset movitz-bignum length))
- :ecx)
- (:cmpl :edx (:ebx :ecx (:offset movitz-bignum bigit0 -4)))
- (:movl 0 :edx) ; Safe value, and correct if we need to go to adjust-size.
- (:cld) ; =================>
- (:jnc 'adjust-size) ; nope, we have to generate a new bignum.
- yes-return-same
- (:movl :ebx :eax) ; yep, we can return same bignum.
- (:jmp 'ldb-done)))
+ (:je '(:sub-program (equal-size-maybe-return-same)
+ (:testl :edx :edx) ; Can only return same if (zerop position).
+ (:jnz 'adjust-size)
+ (:movl :eax :ecx) ; size/fixnum
+ (:shrl ,movitz:+movitz-fixnum-shift+ :ecx)
+ (:andl 31 :ecx)
+ (:jz 'yes-return-same)
+ (:std) ; <================
+ ;; we know EDX=0, now generate mask in EDX
+ (:addl 1 :edx)
+ (:shll :cl :edx)
+ (:movzxw (:ebx (:offset movitz-bignum length))
+ :ecx)
+ (:cmpl :edx (:ebx :ecx (:offset movitz-bignum bigit0 -4)))
+ (:movl 0 :edx) ; Safe value, and correct if we need to go to adjust-size.
+ (:cld) ; =================>
+ (:jnc 'adjust-size) ; nope, we have to generate a new bignum.
+ yes-return-same
+ (:movl :ebx :eax) ; yep, we can return same bignum.
+ (:jmp 'ldb-done)))
(:jnc 'size-ok)
;; We now know that (+ size position) is beyond the size of the bignum.
;; So, if (zerop position), we can return the bignum as our result.
More information about the Movitz-cvs
mailing list