From 8d4d7efcb1fa6e11840d18e1212ba3a2423ac523 Mon Sep 17 00:00:00 2001 From: Chris Hanson Date: Mon, 27 Apr 1987 14:21:48 +0000 Subject: [PATCH] `make-non-pointer-literal' was not being careful to handle negative `datum' values correctly, resulting in the type code of the literal being off by one. --- v7/src/compiler/machines/bobcat/lapgen.scm | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/v7/src/compiler/machines/bobcat/lapgen.scm b/v7/src/compiler/machines/bobcat/lapgen.scm index 0af2af795..8e529de76 100644 --- a/v7/src/compiler/machines/bobcat/lapgen.scm +++ b/v7/src/compiler/machines/bobcat/lapgen.scm @@ -1,6 +1,6 @@ #| -*-Scheme-*- -$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/bobcat/lapgen.scm,v 1.157 1987/04/17 10:55:17 cph Exp $ +$Header: /Users/cph/tmp/foo/mit-scheme/mit-scheme/v7/src/compiler/machines/bobcat/lapgen.scm,v 1.158 1987/04/27 14:21:48 cph Exp $ Copyright (c) 1987 Massachusetts Institute of Technology @@ -123,7 +123,9 @@ MIT in each case. |# (define make-non-pointer-literal (let ((type-scale-factor (expt 2 24))) (lambda (type datum) - (+ (* type type-scale-factor) datum)))) + (+ (* (if (negative? datum) (1+ type) type) + type-scale-factor) + datum)))) (define (set-standard-branches! cc) (set-current-branches! (lambda (label) -- 2.25.1