/* -*-c-*-
*
- * $Id: bits.h,v 1.6 2000/07/16 12:28:28 mdw Exp $
+ * $Id: bits.h,v 1.7 2000/07/22 09:48:26 mdw Exp $
*
* Portable bit-level manipulation macros
*
/*----- Revision history --------------------------------------------------*
*
* $Log: bits.h,v $
+ * Revision 1.7 2000/07/22 09:48:26 mdw
+ * Added macros for reading 64-bit values.
+ *
* Revision 1.6 2000/07/16 12:28:28 mdw
* Add 64-bit support, with faked arithmetic on 32-bit hosts.
*
# define ASSIGN64(d, x) ((d).i = U64((x)))
# define HI64(x) U32((x).i >> 32)
# define LO64(x) U32((x).i)
+# define GET64(t, x) ((t)(x).i)
#else
# define SET64(d, h, l) ((d).hi = U32(h), (d).lo = U32(l))
# define ASSIGN64(d, x) \
((d).hi = ((x & ~MASK32) >> 16) >> 16, (d).lo = U32(x))
# define HI64(x) U32((x).hi)
# define LO64(x) U32((x).lo)
+# define GET64(t, x) (((((t)HI64(x) << 16) << 16) & ~MASK32) | (t)LO64(x))
#endif
#ifdef HAVE_UINT64