http://codereview.chromium.org/6879081/diff/1/src/arm/code-stubs-arm.cc File src/arm/code-stubs-arm.cc (right):
http://codereview.chromium.org/6879081/diff/1/src/arm/code-stubs-arm.cc#newcode1983 src/arm/code-stubs-arm.cc:1983: if (!mode_ == UNARY_OVERWRITE) { On 2011/04/20 19:13:30, Erik Corry wrote:
!mode_ == should be mode_ !=
... or even clearer: mode == UNARY_NO_OVERWRITE (Uncle Bob says: Don't use negation ;-) My code was based on GenericUnaryOpStub::Generate, which has a similar comparison, but I guess that GenericUnaryOpStub can be nuked soon, anyway. http://codereview.chromium.org/6879081/diff/1/src/arm/code-stubs-arm.cc#newcode1987 src/arm/code-stubs-arm.cc:1987: __ AllocateHeapNumber(r2, r3, r4, r6, slow); On 2011/04/20 19:13:30, Erik Corry wrote:
This will generate a type transition on a GC. That gives wrong type
feedback to
the Cranker because it goes generic.
I don't understand that one. Could you elaborate, please? http://codereview.chromium.org/6879081/diff/1/src/arm/code-stubs-arm.cc#newcode2003 src/arm/code-stubs-arm.cc:2003: __ Call(stub.GetCode(), RelocInfo::CODE_TARGET); On 2011/04/20 19:13:30, Erik Corry wrote:
tail call
Done. http://codereview.chromium.org/6879081/diff/1/src/arm/code-stubs-arm.cc#newcode2004 src/arm/code-stubs-arm.cc:2004: __ pop(lr); On 2011/04/20 19:13:30, Erik Corry wrote:
Instead of push-call-pop you can use a tail call ie a jump.
I guess that this means simply using __ Jump(...) here. For clarity, I've moved the Ret into the if branch where it belongs then. http://codereview.chromium.org/6879081/ -- v8-dev mailing list [email protected] http://groups.google.com/group/v8-dev
