[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