From e797eb4c1e928e37c6f0314a065e92621b723b9f Mon Sep 17 00:00:00 2001
From: sewardj <unknown>
Date: Wed, 28 Apr 1999 12:42:45 +0000
Subject: [PATCH] [project @ 1999-04-28 12:42:45 by sewardj] Change PK_DBL and
 ASSIGN_DBL macros for sparc so they only reference their arguments once.

---
 ghc/includes/StgMacros.h | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/ghc/includes/StgMacros.h b/ghc/includes/StgMacros.h
index 89d6cef4f575..92feeaeed1e2 100644
--- a/ghc/includes/StgMacros.h
+++ b/ghc/includes/StgMacros.h
@@ -1,5 +1,5 @@
 /* -----------------------------------------------------------------------------
- * $Id: StgMacros.h,v 1.8 1999/04/27 12:31:40 simonm Exp $
+ * $Id: StgMacros.h,v 1.9 1999/04/28 12:42:45 sewardj Exp $
  *
  * (c) The GHC Team, 1998-1999
  *
@@ -475,12 +475,15 @@ static inline StgDouble PK_DBL    (W_ p_src[])                 { return *(StgDou
  */
 #if sparc_TARGET_ARCH
 
-#define ASSIGN_DBL(dst,src) \
+#define ASSIGN_DBL(dst0,src) \
+    { StgPtr dst = (StgPtr)(dst0); \
       __asm__("st %2,%0\n\tst %R2,%1" : "=m" (((P_)(dst))[0]), \
-	"=m" (((P_)(dst))[1]) : "f" (src));
+	"=m" (((P_)(dst))[1]) : "f" (src)); \
+    }
 
-#define PK_DBL(src) \
-    ( { register double d; \
+#define PK_DBL(src0) \
+    ( { StgPtr src = (StgPtr)(src0); \
+        register double d; \
       __asm__("ld %1,%0\n\tld %2,%R0" : "=f" (d) : \
 	"m" (((P_)(src))[0]), "m" (((P_)(src))[1])); d; \
     } )
-- 
GitLab