For some reason the StackGuard runtime function took a dummy argument
that it always ignored. Change it to take no arguments.
Review URL: http://codereview.chromium.org/3838003
git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@5660
ce2b1a6d-e550-0410-aec6-
3dcde31c8c00
void StackCheckStub::Generate(MacroAssembler* masm) {
- // Do tail-call to runtime routine. Runtime routines expect at least one
- // argument, so give it a Smi.
- __ mov(r0, Operand(Smi::FromInt(0)));
- __ push(r0);
- __ TailCallRuntime(Runtime::kStackGuard, 1, 1);
-
- __ Ret();
+ __ TailCallRuntime(Runtime::kStackGuard, 0, 1);
}
void StackCheckStub::Generate(MacroAssembler* masm) {
- // Because builtins always remove the receiver from the stack, we
- // have to fake one to avoid underflowing the stack. The receiver
- // must be inserted below the return address on the stack so we
- // temporarily store that in a register.
- __ pop(eax);
- __ push(Immediate(Smi::FromInt(0)));
- __ push(eax);
-
- // Do tail-call to runtime routine.
- __ TailCallRuntime(Runtime::kStackGuard, 1, 1);
+ __ TailCallRuntime(Runtime::kStackGuard, 0, 1);
}
static Object* Runtime_StackGuard(Arguments args) {
- ASSERT(args.length() == 1);
+ ASSERT(args.length() == 0);
// First check if this is a real stack overflow.
if (StackGuard::IsStackOverflow()) {
F(Throw, 1, 1) \
F(ReThrow, 1, 1) \
F(ThrowReferenceError, 1, 1) \
- F(StackGuard, 1, 1) \
+ F(StackGuard, 0, 1) \
F(PromoteScheduledException, 0, 1) \
\
/* Contexts */ \
void StackCheckStub::Generate(MacroAssembler* masm) {
- // Because builtins always remove the receiver from the stack, we
- // have to fake one to avoid underflowing the stack. The receiver
- // must be inserted below the return address on the stack so we
- // temporarily store that in a register.
- __ pop(rax);
- __ Push(Smi::FromInt(0));
- __ push(rax);
-
- // Do tail-call to runtime routine.
- __ TailCallRuntime(Runtime::kStackGuard, 1, 1);
+ __ TailCallRuntime(Runtime::kStackGuard, 0, 1);
}