<div class="gmail_quote">2009/3/15 Hans-Martin Mosner <span dir="ltr">&lt;<a href="mailto:hmm@heeg.de">hmm@heeg.de</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
nicolas cellier schrieb:<br>
<div class="im">&gt; Hans,<br>
&gt; Tagging/untagging could be very fast! See my other post<br>
&gt;<br>
&gt; 1) UnTagging a double= No op<br>
&gt; 2) Tagging a double= a isnan test (so as to have a representable nan<br>
&gt; in Smalltalk)<br>
&gt; 3) This trick does not had any extra cost to tagging/untagging of<br>
&gt; other oops<br>
</div>That&#39;s true for a 64-bit processor, and on such hardware I see the<br>
advantages of this scheme.<br>
For 32-bit hardware, it won&#39;t work.<br>
Hopefully we&#39;ll all have suitable hardware in the near future...<br>
But for example, I&#39;m running 32-bit linux here on my 64-bit AMD<br>
processor just because the WLAN card I&#39;m using only has a 32-bit Windows<br>
driver, and ndiswrapper on 64-bit linux would require a 64-bit driver to<br>
work correctly (which is somewhat stupid IMHO but I&#39;m not going to hack<br>
ndiswrapper).<br>
In the real world, there are tons of silly constraints like this which<br>
still prevent people from fully using 64-bit hardware.<br>
<br>
Cheers,<br>
<font color="#888888">Hans-Martin<br>
</font></blockquote><div><br>Of course, most of the nice properties come from the 64 bits adressing... <br>Hey, wait, I don&#39;t even have a 64 processor in my house!<br>For the fun I imagine we could emulate by spanning each oop over two int32<br>
typedef struct {int32 high,low;} oop;<br>I would expect a slower VM by roughly a factor 2 - except for double arithmetic...<br><br>Nicolas<br> </div></div><br>