X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FRtsAPI.c;h=e0740b1c1aea9eec58e20469d0ad2b49b4ffd88a;hb=b6fcd8d1287ac70186c798013e270b0743eb7aa2;hp=c5c5561d57cc6e8d0997e54c20d01f72ee69a3d5;hpb=581a6a7cf8102a933259d576bdc0e7828fae16af;p=ghc-hetmet.git diff --git a/rts/RtsAPI.c b/rts/RtsAPI.c index c5c5561..e0740b1 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 */