| Index: src/arm/macro-assembler-arm.cc
|
| diff --git a/src/arm/macro-assembler-arm.cc b/src/arm/macro-assembler-arm.cc
|
| index c3babe3ff4a14792a8a2b475265b2f1f65eda1ff..2c5caa5e7d926e1c15e9c40467b1b2f96bdf663f 100644
|
| --- a/src/arm/macro-assembler-arm.cc
|
| +++ b/src/arm/macro-assembler-arm.cc
|
| @@ -682,7 +682,8 @@ void MacroAssembler::InvokePrologue(const ParameterCount& expected,
|
| Handle<Code> code_constant,
|
| Register code_reg,
|
| Label* done,
|
| - InvokeFlag flag) {
|
| + InvokeFlag flag,
|
| + PostCallGenerator* post_call_generator) {
|
| bool definitely_matches = false;
|
| Label regular_invoke;
|
|
|
| @@ -738,6 +739,7 @@ void MacroAssembler::InvokePrologue(const ParameterCount& expected,
|
| Handle<Code>(Builtins::builtin(Builtins::ArgumentsAdaptorTrampoline));
|
| if (flag == CALL_FUNCTION) {
|
| Call(adaptor, RelocInfo::CODE_TARGET);
|
| + if (post_call_generator != NULL) post_call_generator->Generate();
|
| b(done);
|
| } else {
|
| Jump(adaptor, RelocInfo::CODE_TARGET);
|
| @@ -750,12 +752,15 @@ void MacroAssembler::InvokePrologue(const ParameterCount& expected,
|
| void MacroAssembler::InvokeCode(Register code,
|
| const ParameterCount& expected,
|
| const ParameterCount& actual,
|
| - InvokeFlag flag) {
|
| + InvokeFlag flag,
|
| + PostCallGenerator* post_call_generator) {
|
| Label done;
|
|
|
| - InvokePrologue(expected, actual, Handle<Code>::null(), code, &done, flag);
|
| + InvokePrologue(expected, actual, Handle<Code>::null(), code, &done, flag,
|
| + post_call_generator);
|
| if (flag == CALL_FUNCTION) {
|
| Call(code);
|
| + if (post_call_generator != NULL) post_call_generator->Generate();
|
| } else {
|
| ASSERT(flag == JUMP_FUNCTION);
|
| Jump(code);
|
| @@ -789,7 +794,8 @@ void MacroAssembler::InvokeCode(Handle<Code> code,
|
|
|
| void MacroAssembler::InvokeFunction(Register fun,
|
| const ParameterCount& actual,
|
| - InvokeFlag flag) {
|
| + InvokeFlag flag,
|
| + PostCallGenerator* post_call_generator) {
|
| // Contract with called JS functions requires that function is passed in r1.
|
| ASSERT(fun.is(r1));
|
|
|
| @@ -806,7 +812,7 @@ void MacroAssembler::InvokeFunction(Register fun,
|
| FieldMemOperand(r1, JSFunction::kCodeEntryOffset));
|
|
|
| ParameterCount expected(expected_reg);
|
| - InvokeCode(code_reg, expected, actual, flag);
|
| + InvokeCode(code_reg, expected, actual, flag, post_call_generator);
|
| }
|
|
|
|
|
|
|