| Index: src/ia32/builtins-ia32.cc
|
| diff --git a/src/ia32/builtins-ia32.cc b/src/ia32/builtins-ia32.cc
|
| index e861db3acb69c708db2a4a7eaa1d08fc888d7739..08bc22784ecbb25549c1b7526161197ae58f293c 100644
|
| --- a/src/ia32/builtins-ia32.cc
|
| +++ b/src/ia32/builtins-ia32.cc
|
| @@ -1810,25 +1810,7 @@ void Builtins::Generate_ArgumentsAdaptorTrampoline(MacroAssembler* masm) {
|
|
|
|
|
| void Builtins::Generate_OnStackReplacement(MacroAssembler* masm) {
|
| - // Get the loop depth of the stack guard check. This is recorded in
|
| - // a test(eax, depth) instruction right after the call.
|
| - Label stack_check;
|
| - __ mov(ebx, Operand(esp, 0)); // return address
|
| - if (FLAG_debug_code) {
|
| - __ cmpb(Operand(ebx, 0), Assembler::kTestAlByte);
|
| - __ Assert(equal, "test eax instruction not found after loop stack check");
|
| - }
|
| - __ movzx_b(ebx, Operand(ebx, 1)); // depth
|
| -
|
| - // Get the loop nesting level at which we allow OSR from the
|
| - // unoptimized code and check if we want to do OSR yet. If not we
|
| - // should perform a stack guard check so we can get interrupts while
|
| - // waiting for on-stack replacement.
|
| __ mov(eax, Operand(ebp, JavaScriptFrameConstants::kFunctionOffset));
|
| - __ mov(ecx, FieldOperand(eax, JSFunction::kSharedFunctionInfoOffset));
|
| - __ mov(ecx, FieldOperand(ecx, SharedFunctionInfo::kCodeOffset));
|
| - __ cmpb(ebx, FieldOperand(ecx, Code::kAllowOSRAtLoopNestingLevelOffset));
|
| - __ j(greater, &stack_check);
|
|
|
| // Pass the function to optimize as the argument to the on-stack
|
| // replacement runtime function.
|
| @@ -1845,23 +1827,6 @@ void Builtins::Generate_OnStackReplacement(MacroAssembler* masm) {
|
| __ j(not_equal, &skip, Label::kNear);
|
| __ ret(0);
|
|
|
| - // Insert a stack guard check so that if we decide not to perform
|
| - // on-stack replacement right away, the function calling this stub can
|
| - // still be interrupted.
|
| - __ bind(&stack_check);
|
| - Label ok;
|
| - ExternalReference stack_limit =
|
| - ExternalReference::address_of_stack_limit(masm->isolate());
|
| - __ cmp(esp, Operand::StaticVariable(stack_limit));
|
| - __ j(above_equal, &ok, Label::kNear);
|
| - StackCheckStub stub;
|
| - __ TailCallStub(&stub);
|
| - if (FLAG_debug_code) {
|
| - __ Abort("Unreachable code: returned from tail call.");
|
| - }
|
| - __ bind(&ok);
|
| - __ ret(0);
|
| -
|
| __ bind(&skip);
|
| // Untag the AST id and push it on the stack.
|
| __ SmiUntag(eax);
|
|
|