| Index: src/ia32/macro-assembler-ia32.cc
|
| ===================================================================
|
| --- src/ia32/macro-assembler-ia32.cc (revision 7757)
|
| +++ src/ia32/macro-assembler-ia32.cc (working copy)
|
| @@ -1435,7 +1435,7 @@
|
| const Operand& code_operand,
|
| NearLabel* done,
|
| InvokeFlag flag,
|
| - PostCallGenerator* post_call_generator) {
|
| + CallWrapper* call_wrapper) {
|
| bool definitely_matches = false;
|
| Label invoke;
|
| if (expected.is_immediate()) {
|
| @@ -1485,8 +1485,11 @@
|
| }
|
|
|
| if (flag == CALL_FUNCTION) {
|
| + if (call_wrapper != NULL) {
|
| + call_wrapper->BeforeCall(CallSize(adaptor, RelocInfo::CODE_TARGET));
|
| + }
|
| call(adaptor, RelocInfo::CODE_TARGET);
|
| - if (post_call_generator != NULL) post_call_generator->Generate();
|
| + if (call_wrapper != NULL) call_wrapper->AfterCall();
|
| jmp(done);
|
| } else {
|
| jmp(adaptor, RelocInfo::CODE_TARGET);
|
| @@ -1500,13 +1503,14 @@
|
| const ParameterCount& expected,
|
| const ParameterCount& actual,
|
| InvokeFlag flag,
|
| - PostCallGenerator* post_call_generator) {
|
| + CallWrapper* call_wrapper) {
|
| NearLabel done;
|
| InvokePrologue(expected, actual, Handle<Code>::null(), code,
|
| - &done, flag, post_call_generator);
|
| + &done, flag, call_wrapper);
|
| if (flag == CALL_FUNCTION) {
|
| + if (call_wrapper != NULL) call_wrapper->BeforeCall(CallSize(code));
|
| call(code);
|
| - if (post_call_generator != NULL) post_call_generator->Generate();
|
| + if (call_wrapper != NULL) call_wrapper->AfterCall();
|
| } else {
|
| ASSERT(flag == JUMP_FUNCTION);
|
| jmp(code);
|
| @@ -1520,14 +1524,14 @@
|
| const ParameterCount& actual,
|
| RelocInfo::Mode rmode,
|
| InvokeFlag flag,
|
| - PostCallGenerator* post_call_generator) {
|
| + CallWrapper* call_wrapper) {
|
| NearLabel done;
|
| Operand dummy(eax);
|
| - InvokePrologue(expected, actual, code, dummy, &done,
|
| - flag, post_call_generator);
|
| + InvokePrologue(expected, actual, code, dummy, &done, flag, call_wrapper);
|
| if (flag == CALL_FUNCTION) {
|
| + if (call_wrapper != NULL) call_wrapper->BeforeCall(CallSize(code, rmode));
|
| call(code, rmode);
|
| - if (post_call_generator != NULL) post_call_generator->Generate();
|
| + if (call_wrapper != NULL) call_wrapper->AfterCall();
|
| } else {
|
| ASSERT(flag == JUMP_FUNCTION);
|
| jmp(code, rmode);
|
| @@ -1539,7 +1543,7 @@
|
| void MacroAssembler::InvokeFunction(Register fun,
|
| const ParameterCount& actual,
|
| InvokeFlag flag,
|
| - PostCallGenerator* post_call_generator) {
|
| + CallWrapper* call_wrapper) {
|
| ASSERT(fun.is(edi));
|
| mov(edx, FieldOperand(edi, JSFunction::kSharedFunctionInfoOffset));
|
| mov(esi, FieldOperand(edi, JSFunction::kContextOffset));
|
| @@ -1548,14 +1552,14 @@
|
|
|
| ParameterCount expected(ebx);
|
| InvokeCode(FieldOperand(edi, JSFunction::kCodeEntryOffset),
|
| - expected, actual, flag, post_call_generator);
|
| + expected, actual, flag, call_wrapper);
|
| }
|
|
|
|
|
| void MacroAssembler::InvokeFunction(JSFunction* function,
|
| const ParameterCount& actual,
|
| InvokeFlag flag,
|
| - PostCallGenerator* post_call_generator) {
|
| + CallWrapper* call_wrapper) {
|
| ASSERT(function->is_compiled());
|
| // Get the function and setup the context.
|
| mov(edi, Immediate(Handle<JSFunction>(function)));
|
| @@ -1567,18 +1571,18 @@
|
| // code field in the function to allow recompilation to take effect
|
| // without changing any of the call sites.
|
| InvokeCode(FieldOperand(edi, JSFunction::kCodeEntryOffset),
|
| - expected, actual, flag, post_call_generator);
|
| + expected, actual, flag, call_wrapper);
|
| } else {
|
| Handle<Code> code(function->code());
|
| InvokeCode(code, expected, actual, RelocInfo::CODE_TARGET,
|
| - flag, post_call_generator);
|
| + flag, call_wrapper);
|
| }
|
| }
|
|
|
|
|
| void MacroAssembler::InvokeBuiltin(Builtins::JavaScript id,
|
| InvokeFlag flag,
|
| - PostCallGenerator* post_call_generator) {
|
| + CallWrapper* call_wrapper) {
|
| // Calls are not allowed in some stubs.
|
| ASSERT(flag == JUMP_FUNCTION || allow_stub_calls());
|
|
|
| @@ -1588,7 +1592,7 @@
|
| ParameterCount expected(0);
|
| GetBuiltinFunction(edi, id);
|
| InvokeCode(FieldOperand(edi, JSFunction::kCodeEntryOffset),
|
| - expected, expected, flag, post_call_generator);
|
| + expected, expected, flag, call_wrapper);
|
| }
|
|
|
| void MacroAssembler::GetBuiltinFunction(Register target,
|
|
|