| Index: src/arm64/lithium-arm64.h | 
| diff --git a/src/arm64/lithium-arm64.h b/src/arm64/lithium-arm64.h | 
| index 6ead3fe8ca3ba5bfa70cafee0a1811f71b3e6456..c646380eab274b3be7a83592f337cb48d7dd0ca0 100644 | 
| --- a/src/arm64/lithium-arm64.h | 
| +++ b/src/arm64/lithium-arm64.h | 
| @@ -178,17 +178,13 @@ class LCodeGen; | 
| V(WrapReceiver) | 
|  | 
|  | 
| -#define DECLARE_CONCRETE_INSTRUCTION(type, mnemonic)                        \ | 
| -  virtual Opcode opcode() const FINAL OVERRIDE {                      \ | 
| -    return LInstruction::k##type;                                           \ | 
| -  }                                                                         \ | 
| -  virtual void CompileToNative(LCodeGen* generator) FINAL OVERRIDE;   \ | 
| -  virtual const char* Mnemonic() const FINAL OVERRIDE {               \ | 
| -    return mnemonic;                                                        \ | 
| -  }                                                                         \ | 
| -  static L##type* cast(LInstruction* instr) {                               \ | 
| -    DCHECK(instr->Is##type());                                              \ | 
| -    return reinterpret_cast<L##type*>(instr);                               \ | 
| +#define DECLARE_CONCRETE_INSTRUCTION(type, mnemonic)            \ | 
| +  Opcode opcode() const FINAL { return LInstruction::k##type; } \ | 
| +  void CompileToNative(LCodeGen* generator) FINAL;              \ | 
| +  const char* Mnemonic() const FINAL { return mnemonic; }       \ | 
| +  static L##type* cast(LInstruction* instr) {                   \ | 
| +    DCHECK(instr->Is##type());                                  \ | 
| +    return reinterpret_cast<L##type*>(instr);                   \ | 
| } | 
|  | 
|  | 
| @@ -295,11 +291,9 @@ class LTemplateResultInstruction : public LInstruction { | 
| public: | 
| // Allow 0 or 1 output operands. | 
| STATIC_ASSERT(R == 0 || R == 1); | 
| -  virtual bool HasResult() const FINAL OVERRIDE { | 
| -    return (R != 0) && (result() != NULL); | 
| -  } | 
| +  bool HasResult() const FINAL { return (R != 0) && (result() != NULL); } | 
| void set_result(LOperand* operand) { results_[0] = operand; } | 
| -  LOperand* result() const { return results_[0]; } | 
| +  LOperand* result() const OVERRIDE { return results_[0]; } | 
|  | 
| protected: | 
| EmbeddedContainer<LOperand*, R> results_; | 
| @@ -317,11 +311,11 @@ class LTemplateInstruction : public LTemplateResultInstruction<R> { | 
|  | 
| private: | 
| // Iterator support. | 
| -  virtual int InputCount() FINAL OVERRIDE { return I; } | 
| -  virtual LOperand* InputAt(int i) FINAL OVERRIDE { return inputs_[i]; } | 
| +  int InputCount() FINAL { return I; } | 
| +  LOperand* InputAt(int i) FINAL { return inputs_[i]; } | 
|  | 
| -  virtual int TempCount() FINAL OVERRIDE { return T; } | 
| -  virtual LOperand* TempAt(int i) FINAL OVERRIDE { return temps_[i]; } | 
| +  int TempCount() FINAL { return T; } | 
| +  LOperand* TempAt(int i) FINAL { return temps_[i]; } | 
| }; | 
|  | 
|  | 
| @@ -348,9 +342,7 @@ class LTailCallThroughMegamorphicCache FINAL | 
|  | 
| class LUnknownOSRValue FINAL : public LTemplateInstruction<1, 0, 0> { | 
| public: | 
| -  virtual bool HasInterestingComment(LCodeGen* gen) const OVERRIDE { | 
| -    return false; | 
| -  } | 
| +  bool HasInterestingComment(LCodeGen* gen) const OVERRIDE { return false; } | 
| DECLARE_CONCRETE_INSTRUCTION(UnknownOSRValue, "unknown-osr-value") | 
| }; | 
|  | 
| @@ -360,7 +352,7 @@ class LControlInstruction : public LTemplateInstruction<0, I, T> { | 
| public: | 
| LControlInstruction() : false_label_(NULL), true_label_(NULL) { } | 
|  | 
| -  virtual bool IsControl() const FINAL OVERRIDE { return true; } | 
| +  bool IsControl() const FINAL { return true; } | 
|  | 
| int SuccessorCount() { return hydrogen()->SuccessorCount(); } | 
| HBasicBlock* SuccessorAt(int i) { return hydrogen()->SuccessorAt(i); } | 
| @@ -410,8 +402,8 @@ class LGap : public LTemplateInstruction<0, 0, 0> { | 
| } | 
|  | 
| // Can't use the DECLARE-macro here because of sub-classes. | 
| -  virtual bool IsGap() const OVERRIDE { return true; } | 
| -  virtual void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  bool IsGap() const OVERRIDE { return true; } | 
| +  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| static LGap* cast(LInstruction* instr) { | 
| DCHECK(instr->IsGap()); | 
| return reinterpret_cast<LGap*>(instr); | 
| @@ -451,7 +443,7 @@ class LInstructionGap FINAL : public LGap { | 
| public: | 
| explicit LInstructionGap(HBasicBlock* block) : LGap(block) { } | 
|  | 
| -  virtual bool HasInterestingComment(LCodeGen* gen) const OVERRIDE { | 
| +  bool HasInterestingComment(LCodeGen* gen) const OVERRIDE { | 
| return !IsRedundant(); | 
| } | 
|  | 
| @@ -492,10 +484,10 @@ class LGoto FINAL : public LTemplateInstruction<0, 0, 0> { | 
| public: | 
| explicit LGoto(HBasicBlock* block) : block_(block) { } | 
|  | 
| -  virtual bool HasInterestingComment(LCodeGen* gen) const OVERRIDE; | 
| +  bool HasInterestingComment(LCodeGen* gen) const OVERRIDE; | 
| DECLARE_CONCRETE_INSTRUCTION(Goto, "goto") | 
| -  virtual void PrintDataTo(StringStream* stream) OVERRIDE; | 
| -  virtual bool IsControl() const OVERRIDE { return true; } | 
| +  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  bool IsControl() const OVERRIDE { return true; } | 
|  | 
| int block_id() const { return block_->block_id(); } | 
|  | 
| @@ -525,12 +517,10 @@ class LLabel FINAL : public LGap { | 
| explicit LLabel(HBasicBlock* block) | 
| : LGap(block), replacement_(NULL) { } | 
|  | 
| -  virtual bool HasInterestingComment(LCodeGen* gen) const OVERRIDE { | 
| -    return false; | 
| -  } | 
| +  bool HasInterestingComment(LCodeGen* gen) const OVERRIDE { return false; } | 
| DECLARE_CONCRETE_INSTRUCTION(Label, "label") | 
|  | 
| -  virtual void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) OVERRIDE; | 
|  | 
| int block_id() const { return block()->block_id(); } | 
| bool is_loop_header() const { return block()->IsLoopHeader(); } | 
| @@ -550,9 +540,7 @@ class LOsrEntry FINAL : public LTemplateInstruction<0, 0, 0> { | 
| public: | 
| LOsrEntry() {} | 
|  | 
| -  virtual bool HasInterestingComment(LCodeGen* gen) const OVERRIDE { | 
| -    return false; | 
| -  } | 
| +  bool HasInterestingComment(LCodeGen* gen) const OVERRIDE { return false; } | 
| DECLARE_CONCRETE_INSTRUCTION(OsrEntry, "osr-entry") | 
| }; | 
|  | 
| @@ -573,7 +561,7 @@ class LAccessArgumentsAt FINAL : public LTemplateInstruction<1, 3, 0> { | 
| LOperand* length() { return inputs_[1]; } | 
| LOperand* index() { return inputs_[2]; } | 
|  | 
| -  virtual void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| }; | 
|  | 
|  | 
| @@ -721,11 +709,9 @@ class LArithmeticD FINAL : public LTemplateInstruction<1, 2, 0> { | 
| LOperand* left() { return inputs_[0]; } | 
| LOperand* right() { return inputs_[1]; } | 
|  | 
| -  virtual Opcode opcode() const OVERRIDE { | 
| -    return LInstruction::kArithmeticD; | 
| -  } | 
| -  virtual void CompileToNative(LCodeGen* generator) OVERRIDE; | 
| -  virtual const char* Mnemonic() const OVERRIDE; | 
| +  Opcode opcode() const OVERRIDE { return LInstruction::kArithmeticD; } | 
| +  void CompileToNative(LCodeGen* generator) OVERRIDE; | 
| +  const char* Mnemonic() const OVERRIDE; | 
|  | 
| private: | 
| Token::Value op_; | 
| @@ -749,11 +735,9 @@ class LArithmeticT FINAL : public LTemplateInstruction<1, 3, 0> { | 
| LOperand* right() { return inputs_[2]; } | 
| Token::Value op() const { return op_; } | 
|  | 
| -  virtual Opcode opcode() const OVERRIDE { | 
| -    return LInstruction::kArithmeticT; | 
| -  } | 
| -  virtual void CompileToNative(LCodeGen* generator) OVERRIDE; | 
| -  virtual const char* Mnemonic() const OVERRIDE; | 
| +  Opcode opcode() const OVERRIDE { return LInstruction::kArithmeticT; } | 
| +  void CompileToNative(LCodeGen* generator) OVERRIDE; | 
| +  const char* Mnemonic() const OVERRIDE; | 
|  | 
| private: | 
| Token::Value op_; | 
| @@ -838,7 +822,7 @@ class LBranch FINAL : public LControlInstruction<1, 2> { | 
| DECLARE_CONCRETE_INSTRUCTION(Branch, "branch") | 
| DECLARE_HYDROGEN_ACCESSOR(Branch) | 
|  | 
| -  virtual void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| }; | 
|  | 
|  | 
| @@ -853,7 +837,7 @@ class LCallJSFunction FINAL : public LTemplateInstruction<1, 1, 0> { | 
| DECLARE_CONCRETE_INSTRUCTION(CallJSFunction, "call-js-function") | 
| DECLARE_HYDROGEN_ACCESSOR(CallJSFunction) | 
|  | 
| -  virtual void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) OVERRIDE; | 
|  | 
| int arity() const { return hydrogen()->argument_count() - 1; } | 
| }; | 
| @@ -889,7 +873,7 @@ class LCallNew FINAL : public LTemplateInstruction<1, 2, 0> { | 
| DECLARE_CONCRETE_INSTRUCTION(CallNew, "call-new") | 
| DECLARE_HYDROGEN_ACCESSOR(CallNew) | 
|  | 
| -  virtual void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) OVERRIDE; | 
|  | 
| int arity() const { return hydrogen()->argument_count() - 1; } | 
| }; | 
| @@ -908,7 +892,7 @@ class LCallNewArray FINAL : public LTemplateInstruction<1, 2, 0> { | 
| DECLARE_CONCRETE_INSTRUCTION(CallNewArray, "call-new-array") | 
| DECLARE_HYDROGEN_ACCESSOR(CallNewArray) | 
|  | 
| -  virtual void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) OVERRIDE; | 
|  | 
| int arity() const { return hydrogen()->argument_count() - 1; } | 
| }; | 
| @@ -925,7 +909,7 @@ class LCallRuntime FINAL : public LTemplateInstruction<1, 1, 0> { | 
| DECLARE_CONCRETE_INSTRUCTION(CallRuntime, "call-runtime") | 
| DECLARE_HYDROGEN_ACCESSOR(CallRuntime) | 
|  | 
| -  virtual bool ClobbersDoubleRegisters(Isolate* isolate) const OVERRIDE { | 
| +  bool ClobbersDoubleRegisters(Isolate* isolate) const OVERRIDE { | 
| return save_doubles() == kDontSaveFPRegs; | 
| } | 
|  | 
| @@ -1097,7 +1081,7 @@ class LClassOfTestAndBranch FINAL : public LControlInstruction<1, 2> { | 
| "class-of-test-and-branch") | 
| DECLARE_HYDROGEN_ACCESSOR(ClassOfTestAndBranch) | 
|  | 
| -  virtual void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| }; | 
|  | 
|  | 
| @@ -1215,7 +1199,7 @@ class LCompareNumericAndBranch FINAL : public LControlInstruction<2, 0> { | 
| return hydrogen()->representation().IsDouble(); | 
| } | 
|  | 
| -  virtual void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| }; | 
|  | 
|  | 
| @@ -1313,7 +1297,7 @@ class LDeclareGlobals FINAL : public LTemplateInstruction<0, 1, 0> { | 
|  | 
| class LDeoptimize FINAL : public LTemplateInstruction<0, 0, 0> { | 
| public: | 
| -  virtual bool IsControl() const OVERRIDE { return true; } | 
| +  bool IsControl() const OVERRIDE { return true; } | 
| DECLARE_CONCRETE_INSTRUCTION(Deoptimize, "deoptimize") | 
| DECLARE_HYDROGEN_ACCESSOR(Deoptimize) | 
| }; | 
| @@ -1447,7 +1431,7 @@ class LHasCachedArrayIndexAndBranch FINAL | 
| "has-cached-array-index-and-branch") | 
| DECLARE_HYDROGEN_ACCESSOR(HasCachedArrayIndexAndBranch) | 
|  | 
| -  virtual void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| }; | 
|  | 
|  | 
| @@ -1465,7 +1449,7 @@ class LHasInstanceTypeAndBranch FINAL : public LControlInstruction<1, 1> { | 
| "has-instance-type-and-branch") | 
| DECLARE_HYDROGEN_ACCESSOR(HasInstanceTypeAndBranch) | 
|  | 
| -  virtual void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| }; | 
|  | 
|  | 
| @@ -1479,7 +1463,7 @@ class LInnerAllocatedObject FINAL : public LTemplateInstruction<1, 2, 0> { | 
| LOperand* base_object() const { return inputs_[0]; } | 
| LOperand* offset() const { return inputs_[1]; } | 
|  | 
| -  virtual void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) OVERRIDE; | 
|  | 
| DECLARE_CONCRETE_INSTRUCTION(InnerAllocatedObject, "inner-allocated-object") | 
| }; | 
| @@ -1559,7 +1543,7 @@ class LCallWithDescriptor FINAL : public LTemplateResultInstruction<1> { | 
| DECLARE_CONCRETE_INSTRUCTION(CallWithDescriptor, "call-with-descriptor") | 
| DECLARE_HYDROGEN_ACCESSOR(CallWithDescriptor) | 
|  | 
| -  virtual void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) OVERRIDE; | 
|  | 
| int arity() const { return hydrogen()->argument_count() - 1; } | 
|  | 
| @@ -1567,11 +1551,11 @@ class LCallWithDescriptor FINAL : public LTemplateResultInstruction<1> { | 
| ZoneList<LOperand*> inputs_; | 
|  | 
| // Iterator support. | 
| -  virtual int InputCount() FINAL OVERRIDE { return inputs_.length(); } | 
| -  virtual LOperand* InputAt(int i) FINAL OVERRIDE { return inputs_[i]; } | 
| +  int InputCount() FINAL { return inputs_.length(); } | 
| +  LOperand* InputAt(int i) FINAL { return inputs_[i]; } | 
|  | 
| -  virtual int TempCount() FINAL OVERRIDE { return 0; } | 
| -  virtual LOperand* TempAt(int i) FINAL OVERRIDE { return NULL; } | 
| +  int TempCount() FINAL { return 0; } | 
| +  LOperand* TempAt(int i) FINAL { return NULL; } | 
| }; | 
|  | 
|  | 
| @@ -1588,7 +1572,7 @@ class LInvokeFunction FINAL : public LTemplateInstruction<1, 2, 0> { | 
| DECLARE_CONCRETE_INSTRUCTION(InvokeFunction, "invoke-function") | 
| DECLARE_HYDROGEN_ACCESSOR(InvokeFunction) | 
|  | 
| -  virtual void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) OVERRIDE; | 
|  | 
| int arity() const { return hydrogen()->argument_count() - 1; } | 
| }; | 
| @@ -1624,7 +1608,7 @@ class LIsObjectAndBranch FINAL : public LControlInstruction<1, 2> { | 
| DECLARE_CONCRETE_INSTRUCTION(IsObjectAndBranch, "is-object-and-branch") | 
| DECLARE_HYDROGEN_ACCESSOR(IsObjectAndBranch) | 
|  | 
| -  virtual void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| }; | 
|  | 
|  | 
| @@ -1641,7 +1625,7 @@ class LIsStringAndBranch FINAL : public LControlInstruction<1, 1> { | 
| DECLARE_CONCRETE_INSTRUCTION(IsStringAndBranch, "is-string-and-branch") | 
| DECLARE_HYDROGEN_ACCESSOR(IsStringAndBranch) | 
|  | 
| -  virtual void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| }; | 
|  | 
|  | 
| @@ -1656,7 +1640,7 @@ class LIsSmiAndBranch FINAL : public LControlInstruction<1, 0> { | 
| DECLARE_CONCRETE_INSTRUCTION(IsSmiAndBranch, "is-smi-and-branch") | 
| DECLARE_HYDROGEN_ACCESSOR(IsSmiAndBranch) | 
|  | 
| -  virtual void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| }; | 
|  | 
|  | 
| @@ -1674,7 +1658,7 @@ class LIsUndetectableAndBranch FINAL : public LControlInstruction<1, 1> { | 
| "is-undetectable-and-branch") | 
| DECLARE_HYDROGEN_ACCESSOR(IsUndetectableAndBranch) | 
|  | 
| -  virtual void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| }; | 
|  | 
|  | 
| @@ -1691,7 +1675,7 @@ class LLoadContextSlot FINAL : public LTemplateInstruction<1, 1, 0> { | 
|  | 
| int slot_index() const { return hydrogen()->slot_index(); } | 
|  | 
| -  virtual void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| }; | 
|  | 
|  | 
| @@ -2272,7 +2256,7 @@ class LNumberUntagD FINAL : public LTemplateInstruction<1, 1, 1> { | 
|  | 
| class LParameter FINAL : public LTemplateInstruction<1, 0, 0> { | 
| public: | 
| -  virtual bool HasInterestingComment(LCodeGen* gen) const { return false; } | 
| +  bool HasInterestingComment(LCodeGen* gen) const OVERRIDE { return false; } | 
| DECLARE_CONCRETE_INSTRUCTION(Parameter, "parameter") | 
| }; | 
|  | 
| @@ -2331,11 +2315,11 @@ class LPushArguments FINAL : public LTemplateResultInstruction<0> { | 
|  | 
| private: | 
| // Iterator support. | 
| -  virtual int InputCount() FINAL OVERRIDE { return inputs_.length(); } | 
| -  virtual LOperand* InputAt(int i) FINAL OVERRIDE { return inputs_[i]; } | 
| +  int InputCount() FINAL { return inputs_.length(); } | 
| +  LOperand* InputAt(int i) FINAL { return inputs_[i]; } | 
|  | 
| -  virtual int TempCount() FINAL OVERRIDE { return 0; } | 
| -  virtual LOperand* TempAt(int i) FINAL OVERRIDE { return NULL; } | 
| +  int TempCount() FINAL { return 0; } | 
| +  LOperand* TempAt(int i) FINAL { return NULL; } | 
| }; | 
|  | 
|  | 
| @@ -2585,7 +2569,7 @@ class LStoreKeyedGeneric FINAL : public LTemplateInstruction<0, 4, 0> { | 
| DECLARE_CONCRETE_INSTRUCTION(StoreKeyedGeneric, "store-keyed-generic") | 
| DECLARE_HYDROGEN_ACCESSOR(StoreKeyedGeneric) | 
|  | 
| -  virtual void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) OVERRIDE; | 
|  | 
| StrictMode strict_mode() { return hydrogen()->strict_mode(); } | 
| }; | 
| @@ -2609,7 +2593,7 @@ class LStoreNamedField FINAL : public LTemplateInstruction<0, 2, 2> { | 
| DECLARE_CONCRETE_INSTRUCTION(StoreNamedField, "store-named-field") | 
| DECLARE_HYDROGEN_ACCESSOR(StoreNamedField) | 
|  | 
| -  virtual void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) OVERRIDE; | 
|  | 
| Representation representation() const { | 
| return hydrogen()->field_representation(); | 
| @@ -2632,7 +2616,7 @@ class LStoreNamedGeneric FINAL: public LTemplateInstruction<0, 3, 0> { | 
| DECLARE_CONCRETE_INSTRUCTION(StoreNamedGeneric, "store-named-generic") | 
| DECLARE_HYDROGEN_ACCESSOR(StoreNamedGeneric) | 
|  | 
| -  virtual void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) OVERRIDE; | 
|  | 
| Handle<Object> name() const { return hydrogen()->name(); } | 
| StrictMode strict_mode() { return hydrogen()->strict_mode(); } | 
| @@ -2707,7 +2691,7 @@ class LStringCompareAndBranch FINAL : public LControlInstruction<3, 0> { | 
|  | 
| Token::Value op() const { return hydrogen()->token(); } | 
|  | 
| -  virtual void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| }; | 
|  | 
|  | 
| @@ -2786,7 +2770,7 @@ class LStoreCodeEntry FINAL: public LTemplateInstruction<0, 2, 1> { | 
| LOperand* code_object() { return inputs_[1]; } | 
| LOperand* temp() { return temps_[0]; } | 
|  | 
| -  virtual void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) OVERRIDE; | 
|  | 
| DECLARE_CONCRETE_INSTRUCTION(StoreCodeEntry, "store-code-entry") | 
| DECLARE_HYDROGEN_ACCESSOR(StoreCodeEntry) | 
| @@ -2810,7 +2794,7 @@ class LStoreContextSlot FINAL : public LTemplateInstruction<0, 2, 1> { | 
|  | 
| int slot_index() { return hydrogen()->slot_index(); } | 
|  | 
| -  virtual void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| }; | 
|  | 
|  | 
| @@ -2916,7 +2900,7 @@ class LTransitionElementsKind FINAL : public LTemplateInstruction<0, 2, 2> { | 
| "transition-elements-kind") | 
| DECLARE_HYDROGEN_ACCESSOR(TransitionElementsKind) | 
|  | 
| -  virtual void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) OVERRIDE; | 
|  | 
| Handle<Map> original_map() { return hydrogen()->original_map().handle(); } | 
| Handle<Map> transitioned_map() { | 
| @@ -2991,7 +2975,7 @@ class LTypeofIsAndBranch FINAL : public LControlInstruction<1, 2> { | 
|  | 
| Handle<String> type_literal() const { return hydrogen()->type_literal(); } | 
|  | 
| -  virtual void PrintDataTo(StringStream* stream) OVERRIDE; | 
| +  void PrintDataTo(StringStream* stream) OVERRIDE; | 
| }; | 
|  | 
|  | 
|  |