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
