[Openmcl-cvs-notifications] r15059 - /trunk/source/compiler/X86/x862.lisp
gb at clozure.com
gb at clozure.com
Sat Nov 5 03:32:01 CDT 2011
Author: gb
Date: Sat Nov 5 03:32:00 2011
New Revision: 15059
Log:
Same as r15058, for x86.
Modified:
trunk/source/compiler/X86/x862.lisp
Modified: trunk/source/compiler/X86/x862.lisp
=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/compiler/X86/x862.lisp (original)
+++ trunk/source/compiler/X86/x862.lisp Sat Nov 5 03:32:00 2011
@@ -7291,7 +7291,9 @@
(- 31 *x862-target-fixnum-shift*))))
(otherform (when fiximm (if fix1 form2 form1)))
(out-of-line (backend-get-next-label))
- (done (backend-get-next-label)))
+ (done (backend-get-next-label))
+ (continue (backend-get-next-label)))
+ =
(if otherform
(x862-one-targeted-reg-form seg otherform ($ *x862-arg-y*))
(x862-two-targeted-reg-forms seg form1 ($ *x862-arg-y*) form2 ($ *=
x862-arg-z*)))
@@ -7312,10 +7314,13 @@
(when otherform
(unless (or (and fix2 (not fix1)) (eq cr-bit x86::x86-e-bits))
(setq cr-bit (x862-reverse-cr-bit cr-bit))))
- (if (not true-p)
- (setq cr-bit (logxor 1 cr-bit)))
- (! cr-bit->boolean ($ *x862-arg-z*) cr-bit)
- (-> done)
+ (if (and vreg (eq (hard-regspec-class vreg) hard-reg-class-crf))
+ (x862-branch seg (x862-cd-merge xfer continue) cr-bit true-p)
+ (progn
+ (if (not true-p)
+ (setq cr-bit (logxor 1 cr-bit)))
+ (! cr-bit->boolean ($ *x862-arg-z*) cr-bit)
+ (-> done)))
(@ out-of-line)
(when otherform
(x862-lri seg ($ *x862-arg-z*) (ash fixval *x862-target-fixnum-s=
hift*))
@@ -7326,7 +7331,8 @@
(! call-subprim-2 ($ *x862-arg-z*) idx-subprim ($ *x862-arg-y*) =
($ *x862-arg-z*)))
(@ done)
(<- ($ *x862-arg-z*))
- (^)))))
+ (^)
+ (@ continue)))))
=
=
=
More information about the Openmcl-cvs-notifications
mailing list