Commit 2b7596a5 authored by sgjesse@chromium.org's avatar sgjesse@chromium.org

Instanceof slow case bind is incorrect.

Currently, the bind for the slow label is after the pushing of the
args registers which renders the args pushing dead code because there
is a Ret preceeding it. The comments also imply that the arg pushing
should be part of the InvokeBuiltins tail call.

Patch by Mark Lam from Hewlett-Packard Development Company, LP

Review URL: http://codereview.chromium.org/6107001


git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@6198 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
parent 82b9758e
...@@ -2987,10 +2987,10 @@ void InstanceofStub::Generate(MacroAssembler* masm) { ...@@ -2987,10 +2987,10 @@ void InstanceofStub::Generate(MacroAssembler* masm) {
__ Ret(HasArgsInRegisters() ? 0 : 2); __ Ret(HasArgsInRegisters() ? 0 : 2);
// Slow-case. Tail call builtin. // Slow-case. Tail call builtin.
__ bind(&slow);
if (HasArgsInRegisters()) { if (HasArgsInRegisters()) {
__ Push(r0, r1); __ Push(r0, r1);
} }
__ bind(&slow);
__ InvokeBuiltin(Builtins::INSTANCE_OF, JUMP_JS); __ InvokeBuiltin(Builtins::INSTANCE_OF, JUMP_JS);
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment