| Index: src/ia32/macro-assembler-ia32.h
|
| ===================================================================
|
| --- src/ia32/macro-assembler-ia32.h (revision 5816)
|
| +++ src/ia32/macro-assembler-ia32.h (working copy)
|
| @@ -460,11 +460,23 @@
|
| 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,
|
| int result_size);
|
|
|
| + // Convenience function: tail call 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* TryTailCallRuntime(Runtime::FunctionId fid,
|
| + int num_arguments,
|
| + int result_size);
|
| +
|
| // Before calling a C-function from generated code, align arguments on stack.
|
| // After aligning the frame, arguments must be stored in esp[0], esp[4],
|
| // etc., not pushed. The argument count assumes all arguments are word sized.
|
| @@ -485,18 +497,21 @@
|
| // Prepares stack to put arguments (aligns and so on). Reserves
|
| // space for return value if needed (assumes the return value is a handle).
|
| // Uses callee-saved esi to restore stack state after call. Arguments must be
|
| - // stored in ApiParameterOperand(0), ApiParameterOperand(1) etc.
|
| + // stored in ApiParameterOperand(0), ApiParameterOperand(1) etc. Saves
|
| + // context (esi).
|
| void PrepareCallApiFunction(int stack_space, int argc);
|
|
|
| // Calls an API function. Allocates HandleScope, extracts
|
| // returned value from handle and propagates exceptions.
|
| - // Clobbers ebx, esi, edi and caller-save registers.
|
| - void CallApiFunctionAndReturn(ApiFunction* function, int argc);
|
| + // Clobbers ebx, edi and caller-save registers. Restores context.
|
| + MaybeObject* TryCallApiFunctionAndReturn(ApiFunction* function, int argc);
|
|
|
| // Jump to a runtime routine.
|
| void JumpToExternalReference(const ExternalReference& ext);
|
|
|
| + MaybeObject* TryJumpToExternalReference(const ExternalReference& ext);
|
|
|
| +
|
| // ---------------------------------------------------------------------------
|
| // Utilities
|
|
|
|
|