[Openmcl-cvs-notifications] r15261 - in /release/1.7/source: ./ compiler/X86/X8632/x8632-vinsns.lisp level-0/l0-cfm-support.lisp

rme at clozure.com rme at clozure.com
Tue Mar 20 19:08:15 CDT 2012


Author: rme
Date: Tue Mar 20 19:08:15 2012
New Revision: 15261

Log:
GC safety fix to x8632 init-closure vinsn from trunk.

Modified:
    release/1.7/source/   (props changed)
    release/1.7/source/compiler/X86/X8632/x8632-vinsns.lisp
    release/1.7/source/level-0/l0-cfm-support.lisp   (props changed)

Propchange: release/1.7/source/
---------------------------------------------------------------------------=
---
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Mar 20 19:08:15 2012
@@ -4,4 +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:14853-14889,14892-14897,14899-14905,14907-14910,14918,14920,=
14975,15009,15055,15149-15151,15226,15249
+/trunk/source:14853-14889,14892-14897,14899-14905,14907-14910,14918,14920,=
14975,15009,15055,15149-15151,15226,15249,15259

Modified: release/1.7/source/compiler/X86/X8632/x8632-vinsns.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.7/source/compiler/X86/X8632/x8632-vinsns.lisp (original)
+++ release/1.7/source/compiler/X86/X8632/x8632-vinsns.lisp Tue Mar 20 19:0=
8:15 2012
@@ -3355,13 +3355,15 @@
                                    ((closure :lisp)))
   (movb (:$b 6) (:@ x8632::misc-data-offset (:%l closure))) ;imm word count
   (movb (:$b #xbf) (:@ (+ x8632::misc-data-offset 2) (:%l closure))) ;movl=
 $self, %fn
-  (movl (:%l closure) (:@ (+ x8632::misc-data-offset 3) (:%l closure)))
   (movb (:$b #xff) (:@ (+ x8632::misc-data-offset 7) (:%l closure))) ;jmp
   (movl (:$l #x0150b425) (:@ (+ x8632::misc-data-offset 8) (:%l closure)))=
 ;.SPcall-closure
   ;; already aligned
   ;; (movl ($ 0) (:@ (+ x8632::misc-data-offset 12))) ;"end" of self-refer=
ences
   (movb (:$b 7) (:@ (+ x8632::misc-data-offset 16) (:%l closure))) ;self-r=
eference offset
-  (movb (:$b x8632::function-boundary-marker) (:@ (+ x8632::misc-data-offs=
et 20) (:%l closure))))
+  (movb (:$b x8632::function-boundary-marker) (:@ (+ x8632::misc-data-offs=
et 20) (:%l closure)))
+  ;; If the GC moved the closure before we finished creating its
+  ;; self-reference table, it wouldn't have updated this self-reference
+  (movl (:%l closure) (:@ (+ x8632::misc-data-offset 3) (:%l closure))))
 =

 (define-x8632-vinsn finalize-closure (((closure :lisp))
                                       ((closure :lisp)))

Propchange: release/1.7/source/level-0/l0-cfm-support.lisp
---------------------------------------------------------------------------=
---
--- svn:mergeinfo (original)
+++ svn:mergeinfo Tue Mar 20 19:08:15 2012
@@ -4,4 +4,4 @@
 /branches/rme-logops/level-0/l0-cfm-support.lisp:13875-13886
 /branches/working-0711/ccl/level-0/l0-cfm-support.lisp:7970-13192,13197-13=
198,13202,13208,13214,13235-13236,13239,13263,13277-13278,13290,13293-13294=
,13302-13306,13331-13332,13339,13361-13364,13379,13383,13386,13388,13409,13=
435-13436,13438,13440-13442,13460-13461,13465,13467,13476,13487,13490,13492=
-13493,13502-13528,13545-13547,13549,13557-13558
 /release/1.5/source/level-0/l0-cfm-support.lisp:13667
-/trunk/source/level-0/l0-cfm-support.lisp:14853-14889,14892-14897,14899-14=
905,14907-14910,14918,14920,14929,14975,15009,15055,15149-15151,15226,15249
+/trunk/source/level-0/l0-cfm-support.lisp:14853-14889,14892-14897,14899-14=
905,14907-14910,14918,14920,14929,14975,15009,15055,15149-15151,15226,15249=
,15259



More information about the Openmcl-cvs-notifications mailing list