Chromium Code Reviews| Index: src/arm/macro-assembler-arm.h |
| =================================================================== |
| --- src/arm/macro-assembler-arm.h (revision 6213) |
| +++ src/arm/macro-assembler-arm.h (working copy) |
| @@ -588,6 +588,12 @@ |
| // 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); |
| @@ -606,6 +612,12 @@ |
| 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, |
| @@ -629,9 +641,28 @@ |
| void CallCFunction(ExternalReference function, int num_arguments); |
| void CallCFunction(Register function, int num_arguments); |
| + // Creates the exit frame, pushes the arguments and aligns the stack |
| + // for the C call. saves the fp and context in top |
| + // arg_stack_space - space allocated for the structure (e.g. |
|
antonm
2011/01/13 12:47:08
nit: we use |<parameter name>| convention. Ditto
antonm
2011/01/13 12:47:08
maybe some other name? allocation_size or somethi
Zaheer
2011/01/13 14:17:09
Done.
Zaheer
2011/01/13 14:17:09
hmm arg_stack_size is taken from x64. do you insis
|
| + // v8::arguments in a direct call) on top of the exit frame |
| + // unwind_space - space to be unwound on exit (includes the call js |
| + // arguments space and the additonal space allocated for the fast call) |
| + void PrepareCallApiFunction(int arg_stack_space, |
| + int unwind_space); |
| + |
| + void EnterExitFramePrologue(int arg_stack_space); |
| + void EnterExitFrameEpilogue(int unwind_space); |
| + |
| + // Calls an API function. Allocates HandleScope, extracts |
| + // returned value from handle and propagates exceptions. |
| + // Restores context. |
| + MaybeObject* TryCallApiFunctionAndReturn(ApiFunction* function); |
| + |
| // 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, InvokeJSFlags flags); |