From 87fd43b1e5d42e7aeab2a602aedf08de4a84e91f Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Fri, 21 May 2021 15:49:37 -0600 Subject: [PATCH] Chez Scheme: unbreak for x86_64 Commit 4140627ed8 was broken. --- racket/src/ChezScheme/s/x86_64.ss | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/racket/src/ChezScheme/s/x86_64.ss b/racket/src/ChezScheme/s/x86_64.ss index e069e6e0b8..84904c2d79 100644 --- a/racket/src/ChezScheme/s/x86_64.ss +++ b/racket/src/ChezScheme/s/x86_64.ss @@ -744,7 +744,7 @@ (lambda (y w k) (nanopass-case (L15d Triv) w [(immediate ,imm) - (if (real-imm32? imm) + (if (signed-32? imm) (k y w) (let ([tmp (make-tmp 'u)] [zero (with-output-language (L15d Triv) @@ -752,8 +752,11 @@ (with-output-language (L15d Effect) (seq `(set! ,(make-live-info) ,tmp ,w) - `(set! ,(make-live-info) ,tmp (asm ,null-info ,asm-add ,tmp ,y)) - (k tmp zero)))))]))) + (if (eq? y %zero) + (k tmp zero) + (seq + `(set! ,(make-live-info) ,tmp (asm ,null-info ,asm-add ,tmp ,y)) + (k tmp zero)))))))]))) (let* ([info-cc-eq (make-info-condition-code 'eq? #f #t)] [asm-eq (asm-relop info-cc-eq)])