From 3a31421d099bfaaf7d35cff1267a064f6d2d3dba Mon Sep 17 00:00:00 2001 From: wlott <wlott> Date: Wed, 18 Sep 1991 06:22:55 +0000 Subject: [PATCH] Fixed unbind-to-here to only load the symbol from the binding stack if we are going to unbind it. This fixes an off-by-one bug where it tried to grab a symbol from beyond the end of the stack when the entire stack was being unwound. --- compiler/sparc/cell.lisp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/compiler/sparc/cell.lisp b/compiler/sparc/cell.lisp index 0cc093130..fa8a05f9d 100644 --- a/compiler/sparc/cell.lisp +++ b/compiler/sparc/cell.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman (FAHLMAN@CMUC). ;;; ********************************************************************** ;;; -;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/sparc/cell.lisp,v 1.6 1991/03/23 12:32:31 wlott Exp $ +;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/sparc/cell.lisp,v 1.7 1991/09/18 06:22:55 wlott Exp $ ;;; ;;; This file contains the VM definition of various primitive memory access ;;; VOPs for the SPARC. @@ -272,9 +272,10 @@ (move where arg) (inst cmp where bsp-tn) (inst b :eq done) - (loadw symbol bsp-tn (- vm:binding-symbol-slot vm:binding-size)) + (inst nop) (emit-label loop) + (loadw symbol bsp-tn (- vm:binding-symbol-slot vm:binding-size)) (inst cmp symbol) (inst b :eq skip) (loadw value bsp-tn (- vm:binding-value-slot vm:binding-size)) @@ -285,7 +286,7 @@ (inst sub bsp-tn bsp-tn (* 2 vm:word-bytes)) (inst cmp where bsp-tn) (inst b :ne loop) - (loadw symbol bsp-tn (- vm:binding-symbol-slot vm:binding-size)) + (inst nop) (emit-label done)))) -- GitLab