From b171bfec23a26c4697b6c957c7f5302e1cdc37aa Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Fri, 1 Mar 2019 15:10:50 -0700 Subject: [PATCH] repair for `eqv?` on literal flonum original commit: 16a0aa0d286234a9f0a898eec4443524301066fe --- s/cpnanopass.ss | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/s/cpnanopass.ss b/s/cpnanopass.ss index b747dbd9b8..0e2d388f7f 100644 --- a/s/cpnanopass.ss +++ b/s/cpnanopass.ss @@ -6063,9 +6063,9 @@ ;; Non-NaN: compare bits (constant-case ptr-bits [(32) - (let ([d0 (if (eq? (constant-case native-endianness) (native-endianness)) 0 4)]) - (let ([word1 ($object-ref 'iptr d (fx+ (constant flonum-data-disp) d0))] - [word2 ($object-ref 'iptr d (fx+ (constant flonum-data-disp) (fx- 4 d0)))]) + (let ([d0 (if (eq? (constant native-endianness) (native-endianness)) 0 4)]) + (let ([word1 ($object-ref 'integer-32 d (fx+ (constant flonum-data-disp) d0))] + [word2 ($object-ref 'integer-32 d (fx+ (constant flonum-data-disp) (fx- 4 d0)))]) (build-and (%inline eq? ,(%mref ,e2 ,(constant flonum-data-disp)) @@ -6074,7 +6074,7 @@ ,(%mref ,e2 ,(fx+ (constant flonum-data-disp) 4)) (immediate ,word2)))))] [(64) - (let ([word ($object-ref 'iptr d (constant flonum-data-disp))]) + (let ([word ($object-ref 'integer-64 d (constant flonum-data-disp))]) (%inline eq? ,(%mref ,e2 ,(constant flonum-data-disp)) (immediate ,word)))]