<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Nov 21, 2014 at 10:36 AM, Bert Freudenberg <span dir="ltr"><<a href="mailto:bert@freudenbergs.de" target="_blank">bert@freudenbergs.de</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word"><span class="">On 21.11.2014, at 19:25, Eliot Miranda <<a href="mailto:eliot.miranda@gmail.com" target="_blank">eliot.miranda@gmail.com</a>> wrote:<br><div><br><blockquote type="cite"><div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><div>In fact, I'm thinking that a 2 bit tag is probably better. AFAIA, since I implemented 64-bit VisualWorks with a 3 bit tag no one has added any new immediate types. Points don't have the necessary dynamic frequency and indeed points with floats may be very common in newer UI architectures. Making nil, true and false immediates doesn't have much benefit either; they're unique values, and unique addresses work just as well as immediates. Essentially expanding the number of tagged types, and especially making the tagged type organization non-uniform (see e.g. Eliot Moss's VMs where nil, true, false have one organization, character has a another and SmallInteger another one still) makes the decode bloat, which slows down message send. So I think for the moment I'll go with a 2 bit tag, giving us an even larger range for SmallDouble and SmallInteger, and keep the simple representation:</div><div><br></div><div>immediates</div><div>[62 bit value][2 bit tag]</div><div>non-immediates</div><div>[64 bit pointer (least 3 bits 0)] -> [8 bit slot count][2 gc bits][22 bit hash][3 gc bits][5 bit format][2 flag bits][22 bit class index]</div></div></div></div></blockquote></div><div><br></div></span><div>I don't think that one additional bit will be helpful to either SmallInts or SmallDoubles. But having it can make for nice VM experiments. I'd reserve it.</div></div></blockquote><div><br></div><div>OK, less work too ;-)</div><div><br></div></div>-- <br><div class="gmail_signature">best,<div>Eliot</div></div>
</div></div>