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
