Index: src/interpreter/bytecode-register-allocator.h |
diff --git a/src/interpreter/bytecode-register-allocator.h b/src/interpreter/bytecode-register-allocator.h |
index a4f68459cbc4696e8501394dbf812ee0de773b73..befc56be784db45a9727a81cfd856dbd3822a863 100644 |
--- a/src/interpreter/bytecode-register-allocator.h |
+++ b/src/interpreter/bytecode-register-allocator.h |
@@ -15,6 +15,8 @@ namespace interpreter { |
class BytecodeArrayBuilder; |
class Register; |
+class TemporaryRegisterObserver; |
rmcilroy
2016/05/26 10:24:52
nit - move into block above
oth
2016/05/26 21:26:50
Done.
|
+ |
class TemporaryRegisterAllocator final { |
public: |
TemporaryRegisterAllocator(Zone* zone, int start_index); |
@@ -54,6 +56,9 @@ class TemporaryRegisterAllocator final { |
// Returns the number of temporary register allocations made. |
int allocation_count() const { return allocation_count_; } |
+ // Sets an observer for temporary register events. |
+ void set_observer(TemporaryRegisterObserver* observer); |
+ |
private: |
// Allocate a temporary register. |
int AllocateTemporaryRegister(); |
@@ -61,10 +66,17 @@ class TemporaryRegisterAllocator final { |
ZoneSet<int> free_temporaries_; |
int allocation_base_; |
int allocation_count_; |
+ TemporaryRegisterObserver* observer_; |
DISALLOW_COPY_AND_ASSIGN(TemporaryRegisterAllocator); |
}; |
+class TemporaryRegisterObserver { |
+ public: |
+ virtual ~TemporaryRegisterObserver() {} |
+ virtual void TemporaryRegisterFreeEvent(Register reg) = 0; |
+}; |
+ |
// A class that allows the instantiator to allocate temporary registers that are |
// cleaned up when scope is closed. |
class BytecodeRegisterAllocator final { |