<div id="__MailbirdStyleContent" style="font-size: 10pt;font-family: Arial;color: #000000;text-align: left" dir="ltr">Hi Eliot, hi all --<div class="mb_sig"></div><div><br></div><div>I think we have an sign-bit bug for character literals with code points > 16r7FFF.</div><div><br></div><div>Steps to reproduce:</div><div><br></div><div>1. Print it: "Character value: 16r8000"</div><div>2. Inspect the result by evaluating the character literal or send #asInteger to it. It will most likely not render in a standard Squeak and show up like "$? asInteger".</div><div><br></div><div>In a 32-bit VM, I will get the (positive) integer value 16r3FFF8000.</div><div>In a 64-bit VM, I will get the (negative) integer value '-16r8000'.</div><div><br></div><div>Somehow, starting at bit 0, the bits 16 to 29 flip from 0 to 1. In 64-bit, this means a negative number. Not sure about bits 30 and 31 here.</div><div><br></div><div>Is there a bug in the upper tag bits of immediate characters?</div><div>Is this related to the 2-byte or 3-byte byte codes in SistaV1?</div><div><br></div><div>Works fine up to 16r7FFF. (This is unrelated to #leadingChar. Mine was 0 in this experiment.)</div><div><br></div><div>VM: 202112201228 (VMMaker.oscog-eem.3116)</div><div><br></div><div>Best,</div><div>Marcel</div></div>