summaryrefslogtreecommitdiff
path: root/rts
diff options
context:
space:
mode:
Diffstat (limited to 'rts')
-rw-r--r--rts/RtsAPI.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/rts/RtsAPI.c b/rts/RtsAPI.c
index c5c5561d57..e0740b1c1a 100644
--- a/rts/RtsAPI.c
+++ b/rts/RtsAPI.c
@@ -301,12 +301,14 @@ rts_getInt32 (HaskellObj p)
HsInt64
rts_getInt64 (HaskellObj p)
{
- HsInt64* tmp;
+ HsInt32* tmp;
// See comment above:
// ASSERT(p->header.info == I64zh_con_info ||
// p->header.info == I64zh_static_info);
- tmp = (HsInt64*)&(UNTAG_CLOSURE(p)->payload[0]);
- return *tmp;
+ tmp = (HsInt32*)&(UNTAG_CLOSURE(p)->payload[0]);
+
+ HsInt64 i = (HsInt64)(tmp[0] << 32) | (HsInt64)tmp[1];
+ return i;
}
#else
@@ -314,14 +316,12 @@ rts_getInt64 (HaskellObj p)
HsInt64
rts_getInt64 (HaskellObj p)
{
- HsInt32* tmp;
+ HsInt64* tmp;
// See comment above:
// ASSERT(p->header.info == I64zh_con_info ||
// p->header.info == I64zh_static_info);
- tmp = (HsInt32*)&(UNTAG_CLOSURE(p)->payload[0]);
-
- HsInt64 i = (HsInt64)(tmp[0] << 32) | (HsInt64)tmp[1];
- return i
+ tmp = (HsInt64*)&(UNTAG_CLOSURE(p)->payload[0]);
+ return *tmp;
}
#endif /* sparc_HOST_ARCH */