Chromium Code Reviews| Index: src/code-events.h |
| diff --git a/src/code.h b/src/code-events.h |
| similarity index 58% |
| copy from src/code.h |
| copy to src/code-events.h |
| index 766c932e0f6182697670996180f5f66829751245..09e7711739e8a1b6d524772f40e0dc8255c2d00c 100644 |
| --- a/src/code.h |
| +++ b/src/code-events.h |
| @@ -1,4 +1,4 @@ |
| -// Copyright 2006-2008 the V8 project authors. All rights reserved. |
| +// Copyright 2012 the V8 project authors. All rights reserved. |
| // Redistribution and use in source and binary forms, with or without |
| // modification, are permitted provided that the following conditions are |
| // met: |
| @@ -25,46 +25,52 @@ |
| // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| -#ifndef V8_CODE_H_ |
| -#define V8_CODE_H_ |
| +#ifndef V8_CODE_EVENTS_H_ |
| +#define V8_CODE_EVENTS_H_ |
| #include "allocation.h" |
| namespace v8 { |
| namespace internal { |
| +class CompilationInfo; |
| -// Wrapper class for passing expected and actual parameter counts as |
| -// either registers or immediate values. Used to make sure that the |
| -// caller provides exactly the expected number of parameters to the |
| -// callee. |
| -class ParameterCount BASE_EMBEDDED { |
| +class CodeEvents : public AllStatic { |
| public: |
| - explicit ParameterCount(Register reg) |
| - : reg_(reg), immediate_(0) { } |
| - explicit ParameterCount(int immediate) |
| - : reg_(no_reg), immediate_(immediate) { } |
| - |
| - bool is_reg() const { return !reg_.is(no_reg); } |
| - bool is_immediate() const { return !is_reg(); } |
| - |
| - Register reg() const { |
| - ASSERT(is_reg()); |
| - return reg_; |
| + static bool is_active() { |
| + return event_handler_ != NULL; |
| } |
| - int immediate() const { |
| - ASSERT(is_immediate()); |
| - return immediate_; |
| + |
| + static void set_handler(JitCodeEventHandler event_handler) { |
| + event_handler_ = event_handler; |
| } |
| - private: |
| - const Register reg_; |
| - const int immediate_; |
| + // Code added notifications. |
| + static void AddCode(const char* name, |
| + Code* code, |
| + Script* script, |
| + CompilationInfo* info); |
| + static void AddCode(Handle<String> name, |
|
danno
2012/07/25 13:50:42
I find it a little odd that this interface takes b
Sigurður Ásgeirsson
2012/07/25 14:38:35
The interface here is substantially the same as th
Sigurður Ásgeirsson
2012/07/27 13:25:24
Added TODO to clean this up with the GDBJit fix.
|
| + Handle<Script> script, |
| + Handle<Code> code, |
|
danno
2012/07/25 13:50:42
Order or parameters same? In fact, if both routine
Sigurður Ásgeirsson
2012/07/25 14:38:35
SGTM
|
| + CompilationInfo* info); |
| + static void AddCode(String* name, Code* code); |
| + static void AddCode(const char* name, Code* code); |
| + static void AddCode(Code* code); |
| - DISALLOW_IMPLICIT_CONSTRUCTORS(ParameterCount); |
| + // Code moved notification. |
| + static void MoveCode(Address src, Address dst); |
| + |
| + // Code removed notification. |
| + static void RemoveCode(Code* code); |
| + |
| + private: |
| + static JitCodeEventHandler event_handler_; |
| }; |
| +#define JIT_CODE_EVENT(action) \ |
| + do { if (CodeEvents::is_active()) CodeEvents::action; } while(0) |
| } } // namespace v8::internal |
| -#endif // V8_CODE_H_ |
| +#endif // V8_CODE_EVENTS_H_ |