Fred Gilham wrote on Fri, Oct 18, 2002 at 10:56:24AM -0700: > > > I think there is support for 64-bit ints in the FFI, but there are > > no native 64-bit ints[1]. The 64-bit int will be a bignum. Perhaps > > that's acceptable for those people who need to this. > > > Has anyone thought about taking the hint Erik Naggum gave in > comp.lang.lisp and using the MMX registers to implement 64 - <tagbits> > bit fixnums? Of course it has the problem of smashing the floating > point state, but maybe it's worth looking into? Virtually every CPU > that anyone would want to run CMU Lisp on these days will have MMX.
Looking over the spec I also find that there is no way to detect overflow. Not that big a deal, but still breaking some of the Lisp spirit. I am also not quite sure it is that much faster than using the x86 instructions to do gcc-like 64 bit integer arthmetic on two 32 bits registers. Granted, this way trashes registers like hell, but depending on your code and the processor in use the trashing of floating point state may be as bad or worse. What I would *really* like to do is doing this double-fixnum package which has two implementations: a portable CL one and the CMUCL implementing the data type nativly. Martin
