From 65e16a458bc069c5250e3c00cef63c6b65a511e0 Mon Sep 17 00:00:00 2001 From: ch <ch> Date: Sun, 13 May 1990 21:49:29 +0000 Subject: [PATCH] Made MAKE-FIXNUM always return positive fixnums. Some code in the system (hash tables for example) depend on this being true. --- compiler/mips/system.lisp | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/compiler/mips/system.lisp b/compiler/mips/system.lisp index fb0ebbe51..cc46e9f5f 100644 --- a/compiler/mips/system.lisp +++ b/compiler/mips/system.lisp @@ -7,7 +7,7 @@ ;;; Scott Fahlman (FAHLMAN@CMUC). ;;; ********************************************************************** ;;; -;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/mips/system.lisp,v 1.12 1990/05/09 06:40:50 wlott Exp $ +;;; $Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/compiler/mips/system.lisp,v 1.13 1990/05/13 21:49:29 ch Exp $ ;;; ;;; MIPS VM definitions of various system hacking operations. ;;; @@ -126,7 +126,11 @@ (:args (ptr :scs (any-reg descriptor-reg))) (:results (res :scs (any-reg descriptor-reg))) (:generator 1 - (inst sll res ptr 2))) + ;; + ;; Some code (the hash table code) depends on this returning a + ;; positive number so make sure it does. + (inst sll res ptr 3) + (inst srl res res 1))) (define-vop (make-other-immediate-type) (:args (val :scs (any-reg descriptor-reg)) -- GitLab