Index: src/x64/lithium-codegen-x64.h |
=================================================================== |
--- src/x64/lithium-codegen-x64.h (revision 7090) |
+++ src/x64/lithium-codegen-x64.h (working copy) |
@@ -42,6 +42,7 @@ |
// Forward declarations. |
class LDeferredCode; |
class SafepointGenerator; |
+class JumpTableEntry; |
class LCodeGen BASE_EMBEDDED { |
public: |
@@ -240,13 +241,6 @@ |
// Emits code for pushing a constant operand. |
void EmitPushConstantOperand(LOperand* operand); |
- struct JumpTableEntry { |
- inline JumpTableEntry(Address address) |
- : label_(), |
- address_(address) { } |
- Label label_; |
- Address address_; |
- }; |
LChunk* const chunk_; |
MacroAssembler* const masm_; |
@@ -275,10 +269,24 @@ |
friend class LDeferredCode; |
friend class LEnvironment; |
friend class SafepointGenerator; |
+ friend class JumpTableEntry; |
DISALLOW_COPY_AND_ASSIGN(LCodeGen); |
}; |
+class JumpTableEntry : public ZoneObject { |
Lasse Reichstein
2011/03/09 09:16:54
Why create an external class for a purely internal
|
+ public: |
+ explicit JumpTableEntry() : address_(NULL) { } |
+ void SetAddress(Address address) { address_ = address; } |
+ byte* address() { return address_; } |
+ Label* label() { return &label_; } |
+ |
+ private: |
+ Label label_; |
+ byte* address_; |
+}; |
+ |
+ |
class LDeferredCode: public ZoneObject { |
public: |
explicit LDeferredCode(LCodeGen* codegen) |