diff options
author | Ian Lynagh <igloo@earth.li> | 2012-03-23 23:06:52 +0000 |
---|---|---|
committer | Ian Lynagh <igloo@earth.li> | 2012-03-23 23:06:52 +0000 |
commit | 1212145be348b35ea91f17f62466de7841e0e705 (patch) | |
tree | 8d844aae16f83fb2feec5365647bc196daef22b0 /includes/Stg.h | |
parent | 5784df0ff9e286a592a0baa29ab97eaf38b4e8d2 (diff) | |
download | haskell-1212145be348b35ea91f17f62466de7841e0e705.tar.gz |
Fix ASSIGN_DBL on Win64
We were comparing ALIGNMENT_DOUBLE to ALIGNMENT_LONG, but really
we cared about W_ values, and sizeof(long) /= sizeof(void *) on Win64
Diffstat (limited to 'includes/Stg.h')
-rw-r--r-- | includes/Stg.h | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/includes/Stg.h b/includes/Stg.h index 4faed91c42..76067de451 100644 --- a/includes/Stg.h +++ b/includes/Stg.h @@ -257,7 +257,7 @@ typedef StgFunPtr F_; INLINE_HEADER void ASSIGN_FLT (W_ [], StgFloat); INLINE_HEADER StgFloat PK_FLT (W_ []); -#if ALIGNMENT_FLOAT <= ALIGNMENT_LONG +#if ALIGNMENT_FLOAT <= ALIGNMENT_VOID_P INLINE_HEADER void ASSIGN_FLT(W_ p_dest[], StgFloat src) { *(StgFloat *)p_dest = src; } INLINE_HEADER StgFloat PK_FLT (W_ p_src[]) { return *(StgFloat *)p_src; } @@ -278,9 +278,9 @@ INLINE_HEADER StgFloat PK_FLT(W_ p_src[]) return(y.f); } -#endif /* ALIGNMENT_FLOAT > ALIGNMENT_LONG */ +#endif /* ALIGNMENT_FLOAT > ALIGNMENT_VOID_P */ -#if ALIGNMENT_DOUBLE <= ALIGNMENT_LONG +#if ALIGNMENT_DOUBLE <= ALIGNMENT_VOID_P INLINE_HEADER void ASSIGN_DBL (W_ [], StgDouble); INLINE_HEADER StgDouble PK_DBL (W_ []); @@ -288,7 +288,7 @@ INLINE_HEADER StgDouble PK_DBL (W_ []); INLINE_HEADER void ASSIGN_DBL(W_ p_dest[], StgDouble src) { *(StgDouble *)p_dest = src; } INLINE_HEADER StgDouble PK_DBL (W_ p_src[]) { return *(StgDouble *)p_src; } -#else /* ALIGNMENT_DOUBLE > ALIGNMENT_LONG */ +#else /* ALIGNMENT_DOUBLE > ALIGNMENT_VOID_P */ /* Sparc uses two floating point registers to hold a double. We can * write ASSIGN_DBL and PK_DBL by directly accessing the registers |