[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