Index: src/ia32/macro-assembler-ia32.cc |
diff --git a/src/ia32/macro-assembler-ia32.cc b/src/ia32/macro-assembler-ia32.cc |
index 41c8667f1c726224776f18f5d2678f453ce76189..14fb8ca85220f1adba75dd26fb86711466bb72ad 100644 |
--- a/src/ia32/macro-assembler-ia32.cc |
+++ b/src/ia32/macro-assembler-ia32.cc |
@@ -1920,9 +1920,25 @@ void MacroAssembler::CallApiFunctionAndReturn(Address function_address, |
mov(edi, Operand::StaticVariable(limit_address)); |
add(Operand::StaticVariable(level_address), Immediate(1)); |
+ if (FLAG_log_timer_events) { |
+ FrameScope frame(this, StackFrame::MANUAL); |
+ PushSafepointRegisters(); |
+ PrepareCallCFunction(0, eax); |
+ CallCFunction(ExternalReference::log_enter_external_function(isolate()), 0); |
+ PopSafepointRegisters(); |
+ } |
+ |
// Call the api function. |
call(function_address, RelocInfo::RUNTIME_ENTRY); |
+ if (FLAG_log_timer_events) { |
+ FrameScope frame(this, StackFrame::MANUAL); |
+ PushSafepointRegisters(); |
+ PrepareCallCFunction(0, eax); |
+ CallCFunction(ExternalReference::log_leave_external_function(isolate()), 0); |
+ PopSafepointRegisters(); |
+ } |
+ |
if (!kReturnHandlesDirectly) { |
// PrepareCallApiFunction saved pointer to the output slot into |
// callee-save register esi. |