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

Reply via email to