libera/#sicl - IRC Chatlog
Search
18:44:15
jcowan
The idea is that if the exponent bits of an unboxed double are all zeros, we change them to all ones. This frees up space for pointers+fixnums+chars+specials (PFCS) type using low-order tagging. The displaced floats are the signaling NaNs, since we need only 48 bits for PFCS.
18:56:53
moon-child
I don't follow. If the exponent bits of an unboxed double are all zeros, that's a denormal, which is a valid double value, so you don't get to steal those bits
19:02:10
moon-child
there still remains the question of how you do a type test. On x86, immediates generally only go up to 32 bits. (I think on arm you can shift your immediates around, so it could work there)
20:13:00
jcowan
https://wingolog.org/archives/2011/05/18/value-representation-in-javascript-implementations is not 100% clear, but I don't have time atm to do better