Simple issue, just took me a while to spot it. The arguments copy loop is based
on a3/r3, and that was no longer being setup. See comments.

The old way used one less instruction on arm & mips. You could do the load from
stack after your Push()'s, using the variable offset to sp like you did
elsewhere: int offset = (use_new_target ? 3 : 2) * kPointerSize;

(You could also make the copy loop counter an int instead Smi, but you'd still have to move to a3, so you would still use one more instruction. It's not in the
loop, so it probably doesn't matter)

With the changes, arm, mips, mips64 all passed optdebug.quickcheck


https://codereview.chromium.org/1203813002/diff/80001/src/arm/builtins-arm.cc
File src/arm/builtins-arm.cc (right):

https://codereview.chromium.org/1203813002/diff/80001/src/arm/builtins-arm.cc#newcode652
src/arm/builtins-arm.cc:652: __ add(r2, fp,
Operand(StandardFrameConstants::kCallerSPOffset));
Set up r3 as Smi-tagged loop counter.
  __ SmiTag(r3, r0);

https://codereview.chromium.org/1203813002/diff/80001/src/mips/builtins-mips.cc
File src/mips/builtins-mips.cc (right):

https://codereview.chromium.org/1203813002/diff/80001/src/mips/builtins-mips.cc#newcode386
src/mips/builtins-mips.cc:386: __ MultiPushReversed(a0.bit() | a1.bit()
| a3.bit());
nit: this would be more readable as Push(a0, a1, a3); and similar just
below. No functional change, and not related to your CL.

https://codereview.chromium.org/1203813002/diff/80001/src/mips/builtins-mips.cc#newcode668
src/mips/builtins-mips.cc:668:
Set up a3 as Smi-tagged loop counter.
  __ SmiTag(a3, a0);

https://codereview.chromium.org/1203813002/diff/80001/src/mips64/builtins-mips64.cc
File src/mips64/builtins-mips64.cc (right):

https://codereview.chromium.org/1203813002/diff/80001/src/mips64/builtins-mips64.cc#newcode386
src/mips64/builtins-mips64.cc:386: __ MultiPushReversed(a0.bit() |
a1.bit() | a3.bit());
nit: more readable as Push(a0, a1, a2); here and just below.

https://codereview.chromium.org/1203813002/diff/80001/src/mips64/builtins-mips64.cc#newcode675
src/mips64/builtins-mips64.cc:675:
Move untagged argument count to a3 for loop counter.
  __ mov(a3, a0);

https://codereview.chromium.org/1203813002/

--
--
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/d/optout.

Reply via email to