I also ran into this issue tonight.  I also have a fix.  It's my fault.
 Patch coming up on Monday.

Den 23. apr. 2010 14.19 skrev Søren Gjesse <[email protected]>:

> Testing a bit more this looks like a GC issue, possibly unrelated to this
> change, as I need to have specific path names to get the error. Having built
> the shell with the simulator running
>
>   ./shell /home/sgjesse/prj/v8/edge-ro/test/mjsunit/mjsunit.js
> /home/sgjesse/prj/v8/edge-ro/test/mjsunit/div-mod.js
>
> gives the error, whereas
>
>   ./shell ../test/mjsunit/mjsunit.js ../test/mjsunit/div-mod.js
>
> dose not (working dir is /home/sgjesse/prj/v8/edge-ro).
>
> Regards,
> Søren
>
>
> On Fri, Apr 23, 2010 at 15:14, Søren Gjesse <[email protected]> wrote:
>
>> I started getting failure in the mjsunit/div-mod.js test on the ARM
>> simulator after this commit. It does not show up on the buildbot.
>>
>> Running
>>
>> $ tools/test.py -S simulator=arm
>>
>> mjsunit/div-mod.js fails with:
>>
>> (function(left) { return left / 0; })
>> (function(left) { return left / 1; })
>> (function(left) { return left / 2; })
>>  (function(left) { return left / 3; })
>> /home/sgjesse/prj/v8/edge-ro/test/mjsunit/mjsunit.js:50: Failure (-256%3):
>>  expected <-1> found <3>
>>   throw new MjsUnitAssertionError(start + " expected <" + expected + ">
>> found
>>
>> Regards,
>> Søren
>>
>> On Fri, Apr 23, 2010 at 12:09, <[email protected]> wrote:
>>
>>> Revision: 4483
>>> Author: [email protected]
>>> Date: Fri Apr 23 03:08:24 2010
>>> Log: Fix BinaryOpIC implementation on ARM.
>>>
>>> On a pair of smis HEAP_NUMBERS stub is significantly slower than GENERIC.
>>> This slows
>>> down some tests dramatically (crypto-aes from SunSpider).
>>> With this change HEAP_NUMBERS stub switches to GENERIC stub the first
>>> time it sees 2 smis
>>> as its operands.
>>>
>>> Review URL: http://codereview.chromium.org/1687005
>>> http://code.google.com/p/v8/source/detail?r=4483
>>>
>>> Modified:
>>>  /branches/bleeding_edge/src/arm/codegen-arm.cc
>>>
>>> =======================================
>>> --- /branches/bleeding_edge/src/arm/codegen-arm.cc      Fri Apr 23
>>> 00:42:45 2010
>>> +++ /branches/bleeding_edge/src/arm/codegen-arm.cc      Fri Apr 23
>>> 03:08:24 2010
>>> @@ -6467,12 +6467,23 @@
>>>       __ Call(stub3.GetCode(), RelocInfo::CODE_TARGET);
>>>       __ pop(lr);
>>>     }
>>> +
>>> +    // HEAP_NUMBERS stub is slower than GENERIC on a pair of smis.
>>> +    // r0 is known to be a smi. If r1 is also a smi then switch to
>>> GENERIC.
>>> +    Label r1_is_not_smi;
>>> +    if (runtime_operands_type_ == BinaryOpIC::HEAP_NUMBERS) {
>>> +      __ tst(r1, Operand(kSmiTagMask));
>>> +      __ b(ne, &r1_is_not_smi);
>>> +      GenerateTypeTransition(masm);
>>> +      __ jmp(&r1_is_smi);
>>> +    }
>>>
>>>     __ bind(&finished_loading_r0);
>>>
>>>     // Move r1 to a double in r0-r1.
>>>     __ tst(r1, Operand(kSmiTagMask));
>>>     __ b(eq, &r1_is_smi);  // It's a Smi so don't check it's a heap
>>> number.
>>> +    __ bind(&r1_is_not_smi);
>>>     __ CompareObjectType(r1, r4, r4, HEAP_NUMBER_TYPE);
>>>     __ b(ne, &slow);
>>>     if (mode_ == OVERWRITE_LEFT) {
>>>
>>> --
>>> v8-dev mailing list
>>> [email protected]
>>> http://groups.google.com/group/v8-dev
>>>
>>
>>
>  --
> v8-dev mailing list
> [email protected]
> http://groups.google.com/group/v8-dev
>

-- 
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev

Reply via email to