Yes, but we do have a few spots that call it with that, I tested now. I assume they can be fixed up, but it isn't just a one-line fix.
- Alon On Mon, Dec 8, 2014 at 4:18 AM, Jukka Jylänki <[email protected]> wrote: > Can we throw a compiler error on makeGetValue of i64 that tells to use a > pair of 32-bit values? It looks odd that currently makeGetValue of i64 > silently does a makeGetValue of i32. > > 2014-12-02 14:22 GMT-08:00 Alon Zakai <[email protected]>: > > I suspect we just never implemented i64 support for makeGetValue. But it >> could only work on the range of i64s representable in doubles anyhow, so >> this is probably not that good an idea. If you can treat i64s as pairs of >> i32s, that would be better. >> >> - Alon >> >> >> On Tue, Dec 2, 2014 at 4:20 AM, Pepijn Van Eeckhoudt < >> [email protected]> wrote: >> >>> I'm generating code that contains pairs of macro calls of the form >>> >>> {{{ makeSetValue('ptr', '8', 'x', 'i64') }}} >>> >>> and >>> >>> x = {{{ makeGetValue('ptr', '8', 'i64') }}} >>> >>> >>> The compiler converts this to >>> >>> (tempI64 = [x>>>0,(tempDouble=x,(+(Math_abs(tempDouble))) >= 1.0 ? >>> (tempDouble > 0.0 ? ((Math_min((+(Math_floor((tempDouble)/4294967296.0))), >>> 4294967295.0))|0)>>>0 : (~~((+(Math_ceil((tempDouble - >>> +(((~~(tempDouble)))>>>0))/4294967296.0)))))>>>0) : >>> 0)],HEAP32[(((ptr)+(8))>>2)]=tempI64[0],HEAP32[(((ptr)+(12))>>2)]=tempI64[1]) >>> >>> and >>> >>> x = HEAP32[(((ptr)+(8))>>2)] >>> >>> respectively. >>> >>> The former is what I expected, the latter not quite. It seems that the >>> generated code is not symmetrical for i64 values. Is this a bug, known >>> limitation, missing feature, ...? Or am I using the makeGetValue macro >>> incorrectly? >>> >>> Thanks, >>> >>> Pepijn >>> >>> -- >>> You received this message because you are subscribed to the Google >>> Groups "emscripten-discuss" group. >>> To unsubscribe from this group and stop receiving emails from it, send >>> an email to [email protected]. >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "emscripten-discuss" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> For more options, visit https://groups.google.com/d/optout. >> > > -- > You received this message because you are subscribed to the Google Groups > "emscripten-discuss" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "emscripten-discuss" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/d/optout.
