From: Chris Hanson Date: Mon, 27 Apr 1987 14:21:48 +0000 (+0000) Subject: `make-non-pointer-literal' was not being careful to handle negative X-Git-Tag: 20090517-FFI~13580 X-Git-Url: https://birchwood-abbey.net/git?a=commitdiff_plain;h=8d4d7efcb1fa6e11840d18e1212ba3a2423ac523;p=mit-scheme.git `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. --- 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)