| Index: src/arm/macro-assembler-arm.h
|
| ===================================================================
|
| --- src/arm/macro-assembler-arm.h (revision 7118)
|
| +++ src/arm/macro-assembler-arm.h (working copy)
|
| @@ -34,7 +34,7 @@
|
| namespace internal {
|
|
|
| // Forward declaration.
|
| -class PostCallGenerator;
|
| +class CallWrapper;
|
|
|
| // ----------------------------------------------------------------------------
|
| // Static helper functions
|
| @@ -96,8 +96,11 @@
|
| void Jump(Register target, Condition cond = al);
|
| void Jump(byte* target, RelocInfo::Mode rmode, Condition cond = al);
|
| void Jump(Handle<Code> code, RelocInfo::Mode rmode, Condition cond = al);
|
| + int CallSize(Register target, Condition cond = al);
|
| void Call(Register target, Condition cond = al);
|
| + int CallSize(byte* target, RelocInfo::Mode rmode, Condition cond = al);
|
| void Call(byte* target, RelocInfo::Mode rmode, Condition cond = al);
|
| + int CallSize(Handle<Code> code, RelocInfo::Mode rmode, Condition cond = al);
|
| void Call(Handle<Code> code, RelocInfo::Mode rmode, Condition cond = al);
|
| void Ret(Condition cond = al);
|
|
|
| @@ -343,7 +346,7 @@
|
| const ParameterCount& expected,
|
| const ParameterCount& actual,
|
| InvokeFlag flag,
|
| - PostCallGenerator* post_call_generator = NULL);
|
| + CallWrapper* call_wrapper = NULL);
|
|
|
| void InvokeCode(Handle<Code> code,
|
| const ParameterCount& expected,
|
| @@ -356,7 +359,7 @@
|
| void InvokeFunction(Register function,
|
| const ParameterCount& actual,
|
| InvokeFlag flag,
|
| - PostCallGenerator* post_call_generator = NULL);
|
| + CallWrapper* call_wrapper = NULL);
|
|
|
| void InvokeFunction(JSFunction* function,
|
| const ParameterCount& actual,
|
| @@ -748,7 +751,7 @@
|
| // the unresolved list if the name does not resolve.
|
| void InvokeBuiltin(Builtins::JavaScript id,
|
| InvokeJSFlags flags,
|
| - PostCallGenerator* post_call_generator = NULL);
|
| + CallWrapper* call_wrapper = NULL);
|
|
|
| // Store the code object for the given builtin in the target register and
|
| // setup the function in r1.
|
| @@ -911,6 +914,7 @@
|
|
|
| private:
|
| void Jump(intptr_t target, RelocInfo::Mode rmode, Condition cond = al);
|
| + int CallSize(intptr_t target, RelocInfo::Mode rmode, Condition cond = al);
|
| void Call(intptr_t target, RelocInfo::Mode rmode, Condition cond = al);
|
|
|
| // Helper functions for generating invokes.
|
| @@ -920,7 +924,7 @@
|
| Register code_reg,
|
| Label* done,
|
| InvokeFlag flag,
|
| - PostCallGenerator* post_call_generator = NULL);
|
| + CallWrapper* call_wrapper = NULL);
|
|
|
| // Activation support.
|
| void EnterFrame(StackFrame::Type type);
|
| @@ -984,11 +988,15 @@
|
| // Helper class for generating code or data associated with the code
|
| // right after a call instruction. As an example this can be used to
|
| // generate safepoint data after calls for crankshaft.
|
| -class PostCallGenerator {
|
| +class CallWrapper {
|
| public:
|
| - PostCallGenerator() { }
|
| - virtual ~PostCallGenerator() { }
|
| - virtual void Generate() = 0;
|
| + CallWrapper() { }
|
| + virtual ~CallWrapper() { }
|
| + // Called just before emitting a call. Argument is the size of the generated
|
| + // call code.
|
| + virtual void BeforeCall(int call_size) = 0;
|
| + // Called just after emitting a call, i.e., at the return site for the call.
|
| + virtual void AfterCall() = 0;
|
| };
|
|
|
|
|
|
|