Chromium Code Reviews| 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) |