From 0bdfa26e72e482ebfd519acf1a900b9a084e0173 Mon Sep 17 00:00:00 2001 From: wlott <wlott> Date: Fri, 27 Apr 1990 19:22:40 +0000 Subject: [PATCH] Changed sap+ to take its argument as an unboxed value, so we don't have to shift. Made pointer- translate sap- --- compiler/mips/sap.lisp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/compiler/mips/sap.lisp b/compiler/mips/sap.lisp index 6b7f691fb..cafa3dc2e 100644 --- a/compiler/mips/sap.lisp +++ b/compiler/mips/sap.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman (FAHLMAN@CMUC). ;;; ********************************************************************** ;;; -;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/mips/sap.lisp,v 1.8 1990/04/26 20:32:28 wlott Exp $ +;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/mips/sap.lisp,v 1.9 1990/04/27 19:22:40 wlott Exp $ ;;; ;;; This file contains the MIPS VM definition of SAP operations. ;;; @@ -121,18 +121,25 @@ (define-vop (pointer+) (:translate sap+) (:args (ptr :scs (sap-reg)) - (offset :scs (any-reg descriptor-reg))) + (offset :scs (signed-reg immediate))) (:arg-types system-area-pointer fixnum) (:results (res :scs (sap-reg))) (:policy :fast-safe) (:generator 1 - (inst addu res ptr offset))) + (sc-case offset + (signed-reg + (inst addu res ptr offset)) + (immediate + (inst addu res ptr (tn-value offset)))))) (define-vop (pointer-) + (:translate sap-) (:args (ptr1 :scs (sap-reg)) (ptr2 :scs (sap-reg))) (:arg-types system-area-pointer system-area-pointer) - (:results (res :scs (any-reg descriptor-reg))) + (:policy :fast-safe) + (:arg-types system-area-pointer system-area-pointer) + (:results (res :scs (signed-reg))) (:generator 1 (inst subu res ptr1 ptr2))) -- GitLab