From 77cb8a966dc4773c50fa6be359d76dd7d171e2ed Mon Sep 17 00:00:00 2001
From: ram <ram>
Date: Wed, 15 Jan 1992 18:15:06 +0000
Subject: [PATCH] Don't prefetch symbol in the unbind-to-here loop delay slot,
 since on the RT, the word before the base of the binding stack is unreadable.

---
 compiler/rt/cell.lisp | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/compiler/rt/cell.lisp b/compiler/rt/cell.lisp
index 486eee63a..c177eaf90 100644
--- a/compiler/rt/cell.lisp
+++ b/compiler/rt/cell.lisp
@@ -7,7 +7,7 @@
 ;;; Lisp, please contact Scott Fahlman (Scott.Fahlman@CS.CMU.EDU)
 ;;; **********************************************************************
 ;;;
-;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/rt/cell.lisp,v 1.5 1992/01/01 15:06:00 ram Exp $
+;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/rt/cell.lisp,v 1.6 1992/01/15 18:15:06 ram Exp $
 ;;;
 ;;; This file contains the VM definition of various primitive memory access
 ;;; VOPs for the IBM RT.
@@ -264,9 +264,9 @@
       (load-symbol-value bsp *binding-stack-pointer*)
       (inst c where bsp)
       (inst bc :eq done)
-      (loadw symbol bsp (- vm:binding-symbol-slot vm:binding-size))
 
       (emit-label loop)
+      (loadw symbol bsp (- vm:binding-symbol-slot vm:binding-size))
       (inst c symbol 0)
       (inst bc :eq skip)
       (loadw value bsp (- vm:binding-value-slot vm:binding-size))
@@ -278,8 +278,7 @@
       (inst dec bsp (* vm:binding-size vm:word-bytes))
       (store-symbol-value bsp *binding-stack-pointer*)
       (inst c where bsp)
-      (inst bncx :eq loop)
-      (loadw symbol bsp (- vm:binding-symbol-slot vm:binding-size))
+      (inst bnc :eq loop)
 
       (emit-label done))))
 
-- 
GitLab