| Index: src/arm/macro-assembler-arm.h
|
| diff --git a/src/arm/macro-assembler-arm.h b/src/arm/macro-assembler-arm.h
|
| index a1a13e32ef5c97fa017c075edb08f767d33d2c4b..18cdd9b7189c0c17073133f000461efeb9c89034 100644
|
| --- a/src/arm/macro-assembler-arm.h
|
| +++ b/src/arm/macro-assembler-arm.h
|
| @@ -287,10 +287,8 @@ class MacroAssembler: public Assembler {
|
| void LeaveConstructFrame() { LeaveFrame(StackFrame::CONSTRUCT); }
|
|
|
| // Enter exit frame.
|
| - // Expects the number of arguments in register r0 and
|
| - // the builtin function to call in register r1. Exits with argc in
|
| - // r4, argv in r6, and and the builtin function to call in r5.
|
| - void EnterExitFrame(bool save_doubles);
|
| + // stack_space - extra stack space, used for alignment before call to C.
|
| + void EnterExitFrame(bool save_doubles, int stack_space = 0);
|
|
|
| // Leave the current exit frame. Expects the return value in r0.
|
| void LeaveExitFrame(bool save_doubles);
|
| @@ -614,6 +612,12 @@ class MacroAssembler: public Assembler {
|
| // Call a code stub.
|
| void TailCallStub(CodeStub* stub, Condition cond = al);
|
|
|
| + // Tail call a code stub (jump) and return the code object called. Try to
|
| + // generate the code if necessary. Do not perform a GC but instead return
|
| + // a retry after GC failure.
|
| + MUST_USE_RESULT MaybeObject* TryTailCallStub(CodeStub* stub,
|
| + Condition cond = al);
|
| +
|
| // Call a runtime routine.
|
| void CallRuntime(Runtime::Function* f, int num_arguments);
|
| void CallRuntimeSaveDoubles(Runtime::FunctionId id);
|
| @@ -632,6 +636,12 @@ class MacroAssembler: public Assembler {
|
| int num_arguments,
|
| int result_size);
|
|
|
| + // Tail call of a runtime routine (jump). Try to generate the code if
|
| + // necessary. Do not perform a GC but instead return a retry after GC
|
| + // failure.
|
| + MUST_USE_RESULT MaybeObject* TryTailCallExternalReference(
|
| + const ExternalReference& ext, int num_arguments, int result_size);
|
| +
|
| // Convenience function: tail call a runtime routine (jump).
|
| void TailCallRuntime(Runtime::FunctionId fid,
|
| int num_arguments,
|
| @@ -655,9 +665,18 @@ class MacroAssembler: public Assembler {
|
| void CallCFunction(ExternalReference function, int num_arguments);
|
| void CallCFunction(Register function, int num_arguments);
|
|
|
| + // Calls an API function. Allocates HandleScope, extracts returned value
|
| + // from handle and propagates exceptions. Restores context.
|
| + // stack_space - space to be unwound on exit (includes the call js
|
| + // arguments space and the additional space allocated for the fast call).
|
| + MaybeObject* TryCallApiFunctionAndReturn(ApiFunction* function,
|
| + int stack_space);
|
| +
|
| // Jump to a runtime routine.
|
| void JumpToExternalReference(const ExternalReference& builtin);
|
|
|
| + MaybeObject* TryJumpToExternalReference(const ExternalReference& ext);
|
| +
|
| // Invoke specified builtin JavaScript function. Adds an entry to
|
| // the unresolved list if the name does not resolve.
|
| void InvokeBuiltin(Builtins::JavaScript id,
|
|
|