/************************************************************************* * * * YAP Prolog %W% %G% * * Yap Prolog was developed at NCCUP - Universidade do Porto * * * * Copyright L.Damas, V.S.Costa and Universidade do Porto 1985-1997 * * * ************************************************************************** * * * File: Tags_32Ops.h.m4 * * Last rev: December 90 * * mods: * * comments: Original Tag Scheme for machines with 32 bits adresses * * version: $Id: Tags_64bits.h,v 1.3 2008-05-15 13:41:46 vsc Exp $ * *************************************************************************/ #if SIZEOF_INT_P==8 #define TAG_64BITS 1 /* Version for 64 bit addresses machines, Each term is represented internally as an unsigned 64 bit integer as follows: tag value ints 0m1....001 numeric value atoms 0m0....001 offset of atom entry pairs 0mr....011 ptr to pair aplied functor 0mr....101 ptr to functor followed by args undefined 0mr....000 address of cell pointing to itself functors are represented as ptrs to the functor entry in the atom property list We rely on the fact that addresses are always multiple of 8. */ #define SHIFT_HIGH_TAG 61 #define MKTAG(HI,LO) ((((UInt) (HI))<> 6); } #endif /* 64 Bits */