[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Floats in self.
I have just been re-reading the OOPSLA'89 paper on Self and in section
3.3 it says that floats are immediates with a tag of (binary) 10 in
the least significant two bits.
I was wondering what happens when a float is tagged. Is the mantissa
truncated and then tagged:
float x = ...
tagged_x = ((unsigned) x & ~0x3) | 0x2;
or is the mantissa rounded so that it only uses the 21 bits
and then tagged:
tagged_x = round_to_21(x) | 0x2;
or does something else happen?
How about un-tagging, what happens then?