On 2014/02/11 13:24:43, jbramley wrote:
On 2014/02/11 13:05:16, jochen wrote:
> On 2014/02/11 13:02:04, Rodolph Perfetta wrote:
> > not lgtm.
> >
> > As Jacob explained the top bits shouldn't be read, if you found a case
where
> it
> > is, then there is another bug lurking and you are just hiding it.
>
> As mentioned above, LCodeGen::DoBoundsCheck compares x registers with each
> other.
>
> So a better fix was to use ToRegister32 in DoBoundsCheck?

For the Integer32 representation, yes, though smi representations need a
64-bit
comparison, so you have to use the representation to select between ToRegister and ToRegister32. The constant-index case already does this, though it gets it
wrong because it still compares an X-sized 'length' with the constant.

MulConstIS is an example of how this is handled elsewhere. We sometimes also
split instructions for different representations (like DoAddI and DoAddS).

I guess I'm just unlucky, but the code following the bounds check can't cope
with the clobbered upper 32bit either... filed
https://code.google.com/p/v8/issues/detail?id=3149 to track this.

https://codereview.chromium.org/131333011/

--
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- You received this message because you are subscribed to the Google Groups "v8-dev" 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/groups/opt_out.

Reply via email to