[webkit-reviews] review granted: [Bug 112141] LLInt CLoop backend misses Double2Ints() on 32bit architectures : [Attachment 192723] proposed fix

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Tue Mar 12 08:23:39 PDT 2013


Filip Pizlo <fpizlo at apple.com> has granted Gabor Rapcsanyi
<rgabor at webkit.org>'s request for review:
Bug 112141: LLInt CLoop backend misses Double2Ints() on 32bit architectures
https://bugs.webkit.org/show_bug.cgi?id=112141

Attachment 192723: proposed fix
https://bugs.webkit.org/attachment.cgi?id=192723&action=review

------- Additional Comments from Filip Pizlo <fpizlo at apple.com>
View in context: https://bugs.webkit.org/attachment.cgi?id=192723&action=review


R=me, but it looks like both Ints2Double and Double2Ints are not
endianness-friendly.

> Source/JavaScriptCore/llint/LowLevelInterpreter.cpp:130
> +static void Double2Ints(double val, uint32_t& lo, uint32_t& hi)
> +{
> +    union {
> +	   double dval;
> +	   uint64_t ival64;
> +    } u;
> +    u.dval = val;
> +    hi = static_cast<uint32_t>(u.ival64 >> 32);
> +    lo = static_cast<uint32_t>(u.ival64);
> +}

Is this right?	Does Double2Ints mandate 'hi' and 'lo' being the low-order bits
and the high-order bits, or are they supposed to be the first bits and the last
bits?


More information about the webkit-reviews mailing list