From e0a60ac950fb081b358011ddad91ac2f14cc4479 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Sat, 20 Jun 2020 08:54:15 -0600 Subject: [PATCH] ppc32: add missing step in double->single floating-point conversion original commit: 62a8fbe33a3fecdad1701e3ec196dcf032a777c4 --- s/ppc32.ss | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/s/ppc32.ss b/s/ppc32.ss index 1e26233104..55fa85f45b 100644 --- a/s/ppc32.ss +++ b/s/ppc32.ss @@ -1788,12 +1788,14 @@ (define asm-store-double->single (lambda (code* dest-mem src-reg) (Trivit (dest-mem src-reg) - (select-addressing-mode - dest-mem - (lambda (dest-reg dest-offset) - (emit stfs src-reg dest-reg dest-offset code*)) - (lambda (dest-reg index-reg) - (emit stfsx src-reg dest-reg index-reg code*)))))) + (let ([tmp `(reg . ,%fptmp1)]) + (emit frsp tmp src-reg + (select-addressing-mode + dest-mem + (lambda (dest-reg dest-offset) + (emit stfs tmp dest-reg dest-offset code*)) + (lambda (dest-reg index-reg) + (emit stfsx tmp dest-reg index-reg code*)))))))) (define-who asm-fpop-2 (lambda (op)