[Openmcl-cvs-notifications] r15241 - in /release/1.8/source: ./ compiler/X86/x862.lisp level-0/X86/X8632/x8632-misc.lisp lib/macros.lisp

rme at clozure.com rme at clozure.com
Fri Mar 9 13:46:34 CST 2012


Author: rme
Date: Fri Mar  9 13:46:33 2012
New Revision: 15241

Log:
Merge from trunk:
  * fix for ticket:865 (r15222-r15223)
  * emit *x862-tail-label* before processing &aux variables (r15225)
  * handle double-float cases in %vect-data-to-macptr on x8632 (r15226)

Modified:
    release/1.8/source/   (props changed)
    release/1.8/source/compiler/X86/x862.lisp
    release/1.8/source/level-0/X86/X8632/x8632-misc.lisp
    release/1.8/source/lib/macros.lisp

Propchange: release/1.8/source/
---------------------------------------------------------------------------=
---
--- svn:mergeinfo (original)
+++ svn:mergeinfo Fri Mar  9 13:46:33 2012
@@ -4,3 +4,4 @@
 /branches/rme-logops:13875-13886
 /branches/working-0711/ccl:7970-13192,13197-13198,13202,13208,13214,13235-=
13236,13239,13263,13277-13278,13290,13293-13294,13302-13306,13331-13332,133=
39,13361-13364,13379,13383,13386,13388,13409,13435-13436,13438,13440-13442,=
13460-13461,13465,13467,13476,13487,13490,13492-13493,13502-13528,13545-135=
47,13549,13557-13558
 /release/1.5/source:13667
+/trunk/source:15221-15223,15225-15226

Modified: release/1.8/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
--- release/1.8/source/compiler/X86/x862.lisp (original)
+++ release/1.8/source/compiler/X86/x862.lisp Fri Mar  9 13:46:33 2012
@@ -1061,7 +1061,7 @@
 		   (decf ea *x862-target-node-size*))))))))))
 =

 =

-(defun x862-bind-lambda (seg lcells req opt rest keys auxen optsupvloc pas=
sed-in-regs lexpr &optional inherited
+(defun x862-bind-lambda (seg lcells req opt rest keys auxen optsupvloc pas=
sed-in-regs lexpr inherited tail-label
                              &aux (vloc 0) (numopt (list-length (%car opt)=
))
                              (nkeys (list-length (%cadr keys))) =

                              reg)
@@ -1104,16 +1104,19 @@
           (progn
             (x862-copy-register seg reg *x862-arg-z*)
             (x862-set-var-ea seg rest reg))
-            (let* ((loc *x862-vstack*))
-              (x862-vpush-register seg *x862-arg-z* :reserved)
-              (x862-note-top-cell rest)
-              (x862-bind-var seg rest loc *x862-top-vstack-lcell*))))
+          (let* ((loc *x862-vstack*))
+            (x862-vpush-register seg *x862-arg-z* :reserved)
+            (x862-note-top-cell rest)
+            (x862-bind-var seg rest loc *x862-top-vstack-lcell*))))
       (let* ((rvloc (+ vloc (* 2 *x862-target-node-size* nkeys))))
         (if (setq reg (nx2-assign-register-var rest))
           (x862-init-regvar seg rest reg (x862-vloc-ea rvloc))
           (x862-bind-var seg rest rvloc (pop lcells))))))
-    (when keys
-      (apply #'x862-init-keys seg vloc lcells keys))
+  (when keys
+    (apply #'x862-init-keys seg vloc lcells keys))
+  (when tail-label
+    (with-x86-local-vinsn-macros (seg)
+      (@+ tail-label)))
   (x862-seq-bind seg (%car auxen) (%cadr auxen)))
 =

 =

@@ -6722,9 +6725,7 @@
             (x862-open-undo $undostkblk))
           (setq *x862-entry-vstack* *x862-vstack*)
           (setq reserved-lcells (x862-collect-lcells :reserved))
-          (x862-bind-lambda seg reserved-lcells req opt rest keys auxen op=
tsupvloc arg-regs lexprp inherited-vars)
-          (when *x862-tail-label*
-            (@+ *x862-tail-label*))
+          (x862-bind-lambda seg reserved-lcells req opt rest keys auxen op=
tsupvloc arg-regs lexprp inherited-vars *x862-tail-label*)
           (when next-method-var-scope-info
             (push next-method-var-scope-info *x862-recorded-symbols*)))
         (when method-var (x862-heap-cons-next-method-var seg method-var))

Modified: release/1.8/source/level-0/X86/X8632/x8632-misc.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
--- release/1.8/source/level-0/X86/X8632/x8632-misc.lisp (original)
+++ release/1.8/source/level-0/X86/X8632/x8632-misc.lisp Fri Mar  9 13:46:3=
3 2012
@@ -712,7 +712,15 @@
   (single-value-return))
 =

 (defx8632lapfunction %vect-data-to-macptr ((vect arg_y) (ptr arg_z))
+  (cmpb ($ x8632::subtag-double-float-vector) (@ x8632::misc-subtag-offset=
 (% vect)))
+  (je @dfloat)
+  (cmpb ($ x8632::subtag-double-float) (@ x8632::misc-subtag-offset (% vec=
t)))
+  (je @dfloat)
   (lea (@ x8632::misc-data-offset (% vect)) (% imm0))
+  (jmp @common)
+  @dfloat
+  (lea (@ x8632::misc-dfloat-offset (% vect)) (% imm0))
+  @common
   (movl (% imm0) (@ x8632::macptr.address (% ptr)))
   (single-value-return))
 =


Modified: release/1.8/source/lib/macros.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
--- release/1.8/source/lib/macros.lisp (original)
+++ release/1.8/source/lib/macros.lisp Fri Mar  9 13:46:33 2012
@@ -405,7 +405,7 @@
            (destructuring-bind =

              (continue cond &rest args) expansion
              (setq condform `(condition-arg ,cond (list , at args) 'simple-er=
ror)
-                   signalform `(cerror ,continue ,cname))))
+                   signalform `(cerror ,continue ,cname , at args))))
           ((signal error warn)
            (destructuring-bind
              (cond &rest args) expansion



More information about the Openmcl-cvs-notifications mailing list