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, |