<div dir="auto">Hi Marcel,<div dir="auto">Sounds like 32bits -1 missing a sign extension when converted to 64bits...</div><div dir="auto">At least, the result is correctly 64bits for sure.</div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">Le lun. 11 avr. 2022 à 18:42, Marcel Taeumel <<a href="mailto:marcel.taeumel@hpi.de" rel="noreferrer noreferrer" target="_blank">marcel.taeumel@hpi.de</a>> a écrit :<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> <div id="m_1045273152890182240m_5944435337651575203m_-5630769014190549904__MailbirdStyleContent" style="font-size:10pt;font-family:Arial;color:#000000;text-align:left" dir="ltr">Hi all --<div></div><div><br></div><div>This is not working in 32-bit on Windows:</div><div><br></div><div><span style="font-size:13.3333px">FFITestLibrary ffiTest8LongLongSum: -1 with: -1 with: -1 with: -1 with: -1 with: -1 with: -1 with: -1.</span><br></div><div><span style="font-size:13.3333px"><br></span></div><div><span style="font-size:13.3333px">It answers " 34359738360 " instead of " - 8 ". It's working fine in a 64-bit build. The debugging output in this test functions says:</span></div><div><span style="font-size:13.3333px"><br></span></div><div><div><span style="font-size:13.3333px">8 long longs came in as</span></div><div><span style="font-size:13.3333px">i1 = 4294967295 (ffffffff)</span></div><div><span style="font-size:13.3333px">i2 = 4294967295 (ffffffff)</span></div><div><span style="font-size:13.3333px">i3 = 4294967295 (ffffffff)</span></div><div><span style="font-size:13.3333px">i4 = 4294967295 (ffffffff)</span></div><div><span style="font-size:13.3333px">i5 = 4294967295 (ffffffff)</span></div><div><span style="font-size:13.3333px">i6 = 4294967295 (ffffffff)</span></div><div><span style="font-size:13.3333px">i7 = 4294967295 (ffffffff)</span></div><div><span style="font-size:13.3333px">i8 = 4294967295 (ffffffff)</span></div></div><div><span style="font-size:13.3333px"><br></span></div><div><span style="font-size:13.3333px">... this is clearly wrong. Or is it? On 64-bit, the same function says:</span></div><div><span style="font-size:13.3333px"><br></span></div><div><div style="font-size:13.3333px">8 long longs came in as</div><div style="font-size:13.3333px">i1 = -1 (ffffffffffffffff)</div><div style="font-size:13.3333px">i2 = -1 (ffffffffffffffff)</div><div style="font-size:13.3333px">i3 = -1 (ffffffffffffffff)</div><div style="font-size:13.3333px">i4 = -1 (ffffffffffffffff)</div><div style="font-size:13.3333px">i5 = -1 (ffffffffffffffff)</div><div style="font-size:13.3333px">i6 = -1 (ffffffffffffffff)</div><div style="font-size:13.3333px">i7 = -1 (ffffffffffffffff)</div><div style="font-size:13.3333px">i8 = -1 (ffffffffffffffff)</div><div style="font-size:13.3333px"><br></div><div style="font-size:13.3333px">Both are formatted via " %lld (%llx) " I am missing something here... did we change the representation of negative integers in Squeak and forgot to update something along ThreadedFFIPlugin >> #ffiIntegerValueOf:? :-/</div><div style="font-size:13.3333px"><br></div><div style="font-size:13.3333px">Best,<br>Marcel</div><div style="font-size:13.3333px"><br></div><div style="font-size:13.3333px">***</div><div style="font-size:13.3333px"><br></div><div><div><span style="font-size:13.3333px">EXPORT(long long) ffiTest8LongLongSum(long long c1, long long c2, long long c3, long long c4, long long c5, long long c6, long long c7, long long c8)</span></div><div><span style="font-size:13.3333px">{</span></div><div><span style="font-size:13.3333px"><span style="white-space:pre-wrap">     </span>printf("8 long longs came in as\ni1 = %lld (%llx)\ni2 = %lld (%llx)\ni3 = %lld (%llx)\ni4 = %lld (%llx)\ni5 = %lld (%llx)\ni6 = %lld (%llx)\ni7 = %lld (%llx)\ni8 = %lld (%llx)\n", c1, c1, c2, c2, c3, c3, c4, c4, c5, c5, c6, c6, c7, c7, c8, c8);</span></div><div><span style="font-size:13.3333px"><span style="white-space:pre-wrap">    </span>return c1 + c2 + c3 + c4 + c5 + c6 + c7 + c8;</span></div><div><span style="font-size:13.3333px">}</span></div></div></div></div></blockquote></div>