Index: src/x87/lithium-x87.h |
diff --git a/src/x87/lithium-x87.h b/src/x87/lithium-x87.h |
index dbb18ecabb78e9c1c6550cdeca3b40c1bf167444..946171825d281333ca26fd7b6b710b2001961846 100644 |
--- a/src/x87/lithium-x87.h |
+++ b/src/x87/lithium-x87.h |
@@ -168,17 +168,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); \ |
} |
@@ -297,11 +293,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_; |
@@ -319,11 +313,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]; } |
}; |
@@ -337,8 +331,8 @@ class LGap : public LTemplateInstruction<0, 0, 0> { |
} |
// Can't use the DECLARE-macro here because of sub-classes. |
- virtual bool IsGap() const FINAL OVERRIDE { return true; } |
- virtual void PrintDataTo(StringStream* stream) OVERRIDE; |
+ bool IsGap() const FINAL { return true; } |
+ void PrintDataTo(StringStream* stream) OVERRIDE; |
static LGap* cast(LInstruction* instr) { |
DCHECK(instr->IsGap()); |
return reinterpret_cast<LGap*>(instr); |
@@ -378,7 +372,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(); |
} |
@@ -390,9 +384,7 @@ class LClobberDoubles FINAL : public LTemplateInstruction<0, 0, 0> { |
public: |
explicit LClobberDoubles(Isolate* isolate) { } |
- virtual bool ClobbersDoubleRegisters(Isolate* isolate) const OVERRIDE { |
- return true; |
- } |
+ bool ClobbersDoubleRegisters(Isolate* isolate) const OVERRIDE { return true; } |
DECLARE_CONCRETE_INSTRUCTION(ClobberDoubles, "clobber-d") |
}; |
@@ -402,13 +394,13 @@ 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(); } |
- virtual bool ClobbersDoubleRegisters(Isolate* isolate) const OVERRIDE { |
+ bool ClobbersDoubleRegisters(Isolate* isolate) const OVERRIDE { |
return false; |
} |
@@ -444,7 +436,7 @@ class LDummyUse FINAL : public LTemplateInstruction<1, 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) |
}; |
@@ -455,12 +447,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(); } |
@@ -478,9 +468,7 @@ class LLabel FINAL : public LGap { |
class LParameter 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(Parameter, "parameter") |
}; |
@@ -521,9 +509,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") |
}; |
@@ -533,7 +519,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); } |
@@ -626,7 +612,7 @@ class LAccessArgumentsAt FINAL : public LTemplateInstruction<1, 3, 0> { |
DECLARE_CONCRETE_INSTRUCTION(AccessArgumentsAt, "access-arguments-at") |
- virtual void PrintDataTo(StringStream* stream) OVERRIDE; |
+ void PrintDataTo(StringStream* stream) OVERRIDE; |
}; |
@@ -875,7 +861,7 @@ class LCompareNumericAndBranch FINAL : public LControlInstruction<2, 0> { |
return hydrogen()->representation().IsDouble(); |
} |
- virtual void PrintDataTo(StringStream* stream); |
+ void PrintDataTo(StringStream* stream) OVERRIDE; |
}; |
@@ -1052,7 +1038,7 @@ class LIsObjectAndBranch FINAL : public LControlInstruction<1, 1> { |
DECLARE_CONCRETE_INSTRUCTION(IsObjectAndBranch, "is-object-and-branch") |
- virtual void PrintDataTo(StringStream* stream) OVERRIDE; |
+ void PrintDataTo(StringStream* stream) OVERRIDE; |
}; |
@@ -1069,7 +1055,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; |
}; |
@@ -1084,7 +1070,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; |
}; |
@@ -1102,7 +1088,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; |
}; |
@@ -1122,7 +1108,7 @@ class LStringCompareAndBranch FINAL : public LControlInstruction<3, 0> { |
"string-compare-and-branch") |
DECLARE_HYDROGEN_ACCESSOR(StringCompareAndBranch) |
- virtual void PrintDataTo(StringStream* stream) OVERRIDE; |
+ void PrintDataTo(StringStream* stream) OVERRIDE; |
Token::Value op() const { return hydrogen()->token(); } |
}; |
@@ -1142,7 +1128,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; |
}; |
@@ -1171,7 +1157,7 @@ class LHasCachedArrayIndexAndBranch FINAL |
DECLARE_CONCRETE_INSTRUCTION(HasCachedArrayIndexAndBranch, |
"has-cached-array-index-and-branch") |
- virtual void PrintDataTo(StringStream* stream) OVERRIDE; |
+ void PrintDataTo(StringStream* stream) OVERRIDE; |
}; |
@@ -1204,7 +1190,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; |
}; |
@@ -1399,7 +1385,7 @@ class LBranch FINAL : public LControlInstruction<1, 1> { |
DECLARE_CONCRETE_INSTRUCTION(Branch, "branch") |
DECLARE_HYDROGEN_ACCESSOR(Branch) |
- virtual void PrintDataTo(StringStream* stream) OVERRIDE; |
+ void PrintDataTo(StringStream* stream) OVERRIDE; |
}; |
@@ -1552,11 +1538,9 @@ class LArithmeticD FINAL : public LTemplateInstruction<1, 2, 0> { |
Token::Value op() const { return op_; } |
- 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_; |
@@ -1579,11 +1563,9 @@ class LArithmeticT FINAL : public LTemplateInstruction<1, 3, 0> { |
LOperand* left() { return inputs_[1]; } |
LOperand* right() { return inputs_[2]; } |
- 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; |
Token::Value op() const { return op_; } |
@@ -1696,7 +1678,7 @@ class LLoadKeyed FINAL : public LTemplateInstruction<1, 2, 0> { |
DECLARE_CONCRETE_INSTRUCTION(LoadKeyed, "load-keyed") |
DECLARE_HYDROGEN_ACCESSOR(LoadKeyed) |
- virtual void PrintDataTo(StringStream* stream) OVERRIDE; |
+ void PrintDataTo(StringStream* stream) OVERRIDE; |
uint32_t base_offset() const { return hydrogen()->base_offset(); } |
bool key_is_smi() { |
return hydrogen()->key()->representation().IsTagged(); |
@@ -1794,7 +1776,7 @@ class LLoadContextSlot FINAL : public LTemplateInstruction<1, 1, 0> { |
int slot_index() { return hydrogen()->slot_index(); } |
- virtual void PrintDataTo(StringStream* stream) OVERRIDE; |
+ void PrintDataTo(StringStream* stream) OVERRIDE; |
}; |
@@ -1815,7 +1797,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; |
}; |
@@ -1854,7 +1836,7 @@ class LStoreCodeEntry FINAL: public LTemplateInstruction<0, 2, 0> { |
LOperand* function() { return inputs_[0]; } |
LOperand* code_object() { return inputs_[1]; } |
- virtual void PrintDataTo(StringStream* stream); |
+ void PrintDataTo(StringStream* stream) OVERRIDE; |
DECLARE_CONCRETE_INSTRUCTION(StoreCodeEntry, "store-code-entry") |
DECLARE_HYDROGEN_ACCESSOR(StoreCodeEntry) |
@@ -1871,7 +1853,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); |
+ void PrintDataTo(StringStream* stream) OVERRIDE; |
DECLARE_CONCRETE_INSTRUCTION(InnerAllocatedObject, "inner-allocated-object") |
}; |
@@ -1915,7 +1897,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; } |
}; |
@@ -1937,18 +1919,18 @@ class LCallWithDescriptor FINAL : public LTemplateResultInstruction<1> { |
private: |
DECLARE_CONCRETE_INSTRUCTION(CallWithDescriptor, "call-with-descriptor") |
- virtual void PrintDataTo(StringStream* stream) OVERRIDE; |
+ void PrintDataTo(StringStream* stream) OVERRIDE; |
int arity() const { return hydrogen()->argument_count() - 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; } |
}; |
@@ -1965,7 +1947,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; } |
}; |
@@ -2001,7 +1983,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; } |
}; |
@@ -2020,7 +2002,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; } |
}; |
@@ -2037,7 +2019,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; |
} |
@@ -2225,7 +2207,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; |
}; |
@@ -2244,7 +2226,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(); } |
}; |
@@ -2275,7 +2257,7 @@ class LStoreKeyed FINAL : public LTemplateInstruction<0, 3, 0> { |
DECLARE_CONCRETE_INSTRUCTION(StoreKeyed, "store-keyed") |
DECLARE_HYDROGEN_ACCESSOR(StoreKeyed) |
- virtual void PrintDataTo(StringStream* stream) OVERRIDE; |
+ void PrintDataTo(StringStream* stream) OVERRIDE; |
uint32_t base_offset() const { return hydrogen()->base_offset(); } |
bool NeedsCanonicalization() { return hydrogen()->NeedsCanonicalization(); } |
}; |
@@ -2301,7 +2283,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(); } |
}; |
@@ -2328,7 +2310,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() { |
@@ -2628,15 +2610,13 @@ class LTypeofIsAndBranch FINAL : public LControlInstruction<1, 0> { |
Handle<String> type_literal() { return hydrogen()->type_literal(); } |
- virtual void PrintDataTo(StringStream* stream) OVERRIDE; |
+ void PrintDataTo(StringStream* stream) OVERRIDE; |
}; |
class LOsrEntry FINAL : public LTemplateInstruction<0, 0, 0> { |
public: |
- virtual bool HasInterestingComment(LCodeGen* gen) const OVERRIDE { |
- return false; |
- } |
+ bool HasInterestingComment(LCodeGen* gen) const OVERRIDE { return false; } |
DECLARE_CONCRETE_INSTRUCTION(OsrEntry, "osr-entry") |
}; |
@@ -2843,7 +2823,7 @@ class LChunkBuilder FINAL : public LChunkBuilderBase { |
// An input operand in register, stack slot or a constant operand. |
// Will not be moved to a register even if one is freely available. |
- virtual MUST_USE_RESULT LOperand* UseAny(HValue* value) OVERRIDE; |
+ MUST_USE_RESULT LOperand* UseAny(HValue* value) OVERRIDE; |
// Temporary operand that must be in a register. |
MUST_USE_RESULT LUnallocated* TempRegister(); |