Index: src/lithium.h |
diff --git a/src/lithium.h b/src/lithium.h |
index d1e2e3cdef2edc104f6e5831db0580694e869b45..6d765ae8304e3a1f6c6834284c394123138b10af 100644 |
--- a/src/lithium.h |
+++ b/src/lithium.h |
@@ -35,6 +35,14 @@ |
namespace v8 { |
namespace internal { |
+#define LITHIUM_OPERAND_LIST(V) \ |
+ V(LConstantOperand, CONSTANT_OPERAND) \ |
+ V(LStackSlot, STACK_SLOT) \ |
+ V(LDoubleStackSlot, DOUBLE_STACK_SLOT) \ |
+ V(LRegister, REGISTER) \ |
+ V(LDoubleRegister, DOUBLE_REGISTER) |
+ |
+ |
class LOperand: public ZoneObject { |
public: |
enum Kind { |
@@ -69,9 +77,9 @@ class LOperand: public ZoneObject { |
ASSERT(this->index() == index); |
} |
- // Calls SetUpCache() for each subclass. Don't forget to update this method |
- // if you add a new LOperand subclass. |
+ // Calls SetUpCache()/TearDownCache() for each subclass. |
static void SetUpCaches(); |
+ static void TearDownCaches(); |
protected: |
static const int kKindFieldWidth = 3; |
@@ -265,6 +273,7 @@ class LConstantOperand: public LOperand { |
} |
static void SetUpCache(); |
+ static void TearDownCache(); |
private: |
static const int kNumCachedOperands = 128; |
@@ -300,6 +309,7 @@ class LStackSlot: public LOperand { |
} |
static void SetUpCache(); |
+ static void TearDownCache(); |
private: |
static const int kNumCachedOperands = 128; |
@@ -324,6 +334,7 @@ class LDoubleStackSlot: public LOperand { |
} |
static void SetUpCache(); |
+ static void TearDownCache(); |
private: |
static const int kNumCachedOperands = 128; |
@@ -348,6 +359,7 @@ class LRegister: public LOperand { |
} |
static void SetUpCache(); |
+ static void TearDownCache(); |
private: |
static const int kNumCachedOperands = 16; |
@@ -372,6 +384,7 @@ class LDoubleRegister: public LOperand { |
} |
static void SetUpCache(); |
+ static void TearDownCache(); |
private: |
static const int kNumCachedOperands = 16; |