From ecf9476f9e868be0ee969901e075b84d7afcf9ae Mon Sep 17 00:00:00 2001 From: Christophe Rhodes Date: Fri, 5 Sep 2003 08:15:44 +0000 Subject: [PATCH] 0.8.3.38: Confirming what we already knew, part LXXVI ... the coverage of the compiler in the test suite isn't complete ... the coverage of the compiler in compiling the compiler is at least different ... so fix the operand to ADDIS in %SINGLE-FLOAT/SIGNED sufficiently to allow the compiler to compile --- src/compiler/ppc/float.lisp | 2 +- tests/float.impure.lisp | 6 ++++++ version.lisp-expr | 2 +- 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/compiler/ppc/float.lisp b/src/compiler/ppc/float.lisp index d2bd56f..86a5a9d 100644 --- a/src/compiler/ppc/float.lisp +++ b/src/compiler/ppc/float.lisp @@ -467,7 +467,7 @@ (temp-offset-low (* (1+ stack-offset) sb!vm:n-word-bytes))) (inst lis rtemp #x4330) ; High word of magic constant (inst stw rtemp nfp-tn temp-offset-high) - (inst lis rtemp #x8000) + (inst lis rtemp #x-8000) (inst stw rtemp nfp-tn temp-offset-low) (inst lfd fmagic nfp-tn temp-offset-high) (inst xor rtemp rtemp x) ; invert sign bit of x : rtemp had #x80000000 diff --git a/tests/float.impure.lisp b/tests/float.impure.lisp index f9b8f0d..7225011 100644 --- a/tests/float.impure.lisp +++ b/tests/float.impure.lisp @@ -62,5 +62,11 @@ (assert (= (complex-double-float-ppc #c(0.0d0 1.0d0) #c(2.0d0 3.0d0)) #c(2.0d0 4.0d0))) +(defun single-float-ppc (x) + (declare (type (signed-byte 32) x) (optimize speed)) + (float x 1f0)) +(compile 'single-float-ppc) +(assert (= (single-float-ppc -30) -30f0)) + ;;; success (quit :unix-status 104) diff --git a/version.lisp-expr b/version.lisp-expr index 1696b3d..5044d09 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.8.3.37" +"0.8.3.38" -- 1.7.10.4