Unboxed 64-bit arithmetic
Describe the feature
CMUCL has support for unboxed arithmetic including values of type (signed-byte 32)
and (unsigned-byte 32)
. This support should be extended to include (signed-byte 64)
and (unsigned-byte 64)
.
Is there a prototype?
There is no complete prototype but the support for 32-bit is a partial prototype.
Describe the feature in more detail
The basic idea is to add compiler transformations to support unboxed double word arithmetic. Looking toward the future, this could be used to support unboxed 128-bit arithmetic on a 64-bit machine. This will benefit any application that needs to perform successive operations on 64-bit values and the performance overhead of allocating bignum objects for the intermediate values is undesirable.