| Index: src/a64/lithium-a64.h
|
| diff --git a/src/a64/lithium-a64.h b/src/a64/lithium-a64.h
|
| index 4d83b8e562295173c9d0b19262851798744387a6..45246425631386566603ac708e72a3f7e5ea3d50 100644
|
| --- a/src/a64/lithium-a64.h
|
| +++ b/src/a64/lithium-a64.h
|
| @@ -197,13 +197,17 @@ class LCodeGen;
|
| V(WrapReceiver)
|
|
|
|
|
| -#define DECLARE_CONCRETE_INSTRUCTION(type, mnemonic) \
|
| - virtual Opcode opcode() const { return LInstruction::k##type; } \
|
| - virtual void CompileToNative(LCodeGen* generator); \
|
| - virtual const char* Mnemonic() const { return mnemonic; } \
|
| - static L##type* cast(LInstruction* instr) { \
|
| - ASSERT(instr->Is##type()); \
|
| - return reinterpret_cast<L##type*>(instr); \
|
| +#define DECLARE_CONCRETE_INSTRUCTION(type, mnemonic) \
|
| + virtual Opcode opcode() const V8_FINAL V8_OVERRIDE { \
|
| + return LInstruction::k##type; \
|
| + } \
|
| + virtual void CompileToNative(LCodeGen* generator) V8_FINAL V8_OVERRIDE; \
|
| + virtual const char* Mnemonic() const V8_FINAL V8_OVERRIDE { \
|
| + return mnemonic; \
|
| + } \
|
| + static L##type* cast(LInstruction* instr) { \
|
| + ASSERT(instr->Is##type()); \
|
| + return reinterpret_cast<L##type*>(instr); \
|
| }
|
|
|
|
|
| @@ -213,7 +217,7 @@ class LCodeGen;
|
| }
|
|
|
|
|
| -class LInstruction: public ZoneObject {
|
| +class LInstruction : public ZoneObject {
|
| public:
|
| LInstruction()
|
| : environment_(NULL),
|
| @@ -315,40 +319,45 @@ class LInstruction: public ZoneObject {
|
| // I = number of input operands.
|
| // T = number of temporary operands.
|
| template<int R, int I, int T>
|
| -class LTemplateInstruction: public LInstruction {
|
| +class LTemplateInstruction : public LInstruction {
|
| public:
|
| // Allow 0 or 1 output operands.
|
| STATIC_ASSERT(R == 0 || R == 1);
|
| - virtual bool HasResult() const { return (R != 0) && (result() != NULL); }
|
| + virtual bool HasResult() const V8_FINAL V8_OVERRIDE {
|
| + return (R != 0) && (result() != NULL);
|
| + }
|
| void set_result(LOperand* operand) { results_[0] = operand; }
|
| LOperand* result() const { return results_[0]; }
|
|
|
| - int InputCount() { return I; }
|
| - LOperand* InputAt(int i) { return inputs_[i]; }
|
| -
|
| - int TempCount() { return T; }
|
| - LOperand* TempAt(int i) { return temps_[i]; }
|
| -
|
| protected:
|
| EmbeddedContainer<LOperand*, R> results_;
|
| EmbeddedContainer<LOperand*, I> inputs_;
|
| EmbeddedContainer<LOperand*, T> temps_;
|
| +
|
| + private:
|
| + virtual int InputCount() V8_FINAL V8_OVERRIDE { return I; }
|
| + virtual LOperand* InputAt(int i) V8_FINAL V8_OVERRIDE { return inputs_[i]; }
|
| +
|
| + virtual int TempCount() V8_FINAL V8_OVERRIDE { return T; }
|
| + virtual LOperand* TempAt(int i) V8_FINAL V8_OVERRIDE { return temps_[i]; }
|
| };
|
|
|
|
|
| -class LUnknownOSRValue: public LTemplateInstruction<1, 0, 0> {
|
| +class LUnknownOSRValue V8_FINAL : public LTemplateInstruction<1, 0, 0> {
|
| public:
|
| - virtual bool HasInterestingComment(LCodeGen* gen) const { return false; }
|
| + virtual bool HasInterestingComment(LCodeGen* gen) const V8_OVERRIDE {
|
| + return false;
|
| + }
|
| DECLARE_CONCRETE_INSTRUCTION(UnknownOSRValue, "unknown-osr-value")
|
| };
|
|
|
|
|
| template<int I, int T>
|
| -class LControlInstruction: public LTemplateInstruction<0, I, T> {
|
| +class LControlInstruction : public LTemplateInstruction<0, I, T> {
|
| public:
|
| LControlInstruction() : false_label_(NULL), true_label_(NULL) { }
|
|
|
| - virtual bool IsControl() const { return true; }
|
| + virtual bool IsControl() const V8_FINAL V8_OVERRIDE { return true; }
|
|
|
| int SuccessorCount() { return hydrogen()->SuccessorCount(); }
|
| HBasicBlock* SuccessorAt(int i) { return hydrogen()->SuccessorAt(i); }
|
| @@ -387,7 +396,7 @@ class LControlInstruction: public LTemplateInstruction<0, I, T> {
|
| };
|
|
|
|
|
| -class LGap: public LTemplateInstruction<0, 0, 0> {
|
| +class LGap : public LTemplateInstruction<0, 0, 0> {
|
| public:
|
| explicit LGap(HBasicBlock* block)
|
| : block_(block) {
|
| @@ -398,8 +407,8 @@ class LGap: public LTemplateInstruction<0, 0, 0> {
|
| }
|
|
|
| // Can't use the DECLARE-macro here because of sub-classes.
|
| - virtual bool IsGap() const { return true; }
|
| - virtual void PrintDataTo(StringStream* stream);
|
| + virtual bool IsGap() const V8_OVERRIDE { return true; }
|
| + virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
|
| static LGap* cast(LInstruction* instr) {
|
| ASSERT(instr->IsGap());
|
| return reinterpret_cast<LGap*>(instr);
|
| @@ -435,7 +444,7 @@ class LGap: public LTemplateInstruction<0, 0, 0> {
|
| };
|
|
|
|
|
| -class LInstanceSize: public LTemplateInstruction<1, 1, 0> {
|
| +class LInstanceSize V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LInstanceSize(LOperand* object) {
|
| inputs_[0] = object;
|
| @@ -448,11 +457,11 @@ class LInstanceSize: public LTemplateInstruction<1, 1, 0> {
|
| };
|
|
|
|
|
| -class LInstructionGap: public LGap {
|
| +class LInstructionGap V8_FINAL : public LGap {
|
| public:
|
| explicit LInstructionGap(HBasicBlock* block) : LGap(block) { }
|
|
|
| - virtual bool HasInterestingComment(LCodeGen* gen) const {
|
| + virtual bool HasInterestingComment(LCodeGen* gen) const V8_OVERRIDE {
|
| return !IsRedundant();
|
| }
|
|
|
| @@ -460,7 +469,7 @@ class LInstructionGap: public LGap {
|
| };
|
|
|
|
|
| -class LDrop: public LTemplateInstruction<0, 0, 0> {
|
| +class LDrop V8_FINAL : public LTemplateInstruction<0, 0, 0> {
|
| public:
|
| explicit LDrop(int count) : count_(count) { }
|
|
|
| @@ -473,7 +482,7 @@ class LDrop: public LTemplateInstruction<0, 0, 0> {
|
| };
|
|
|
|
|
| -class LDummyUse: public LTemplateInstruction<1, 1, 0> {
|
| +class LDummyUse V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LDummyUse(LOperand* value) {
|
| inputs_[0] = value;
|
| @@ -482,14 +491,14 @@ class LDummyUse: public LTemplateInstruction<1, 1, 0> {
|
| };
|
|
|
|
|
| -class LGoto: public LTemplateInstruction<0, 0, 0> {
|
| +class LGoto V8_FINAL : public LTemplateInstruction<0, 0, 0> {
|
| public:
|
| explicit LGoto(int block_id) : block_id_(block_id) { }
|
|
|
| - virtual bool HasInterestingComment(LCodeGen* gen) const;
|
| + virtual bool HasInterestingComment(LCodeGen* gen) const V8_OVERRIDE;
|
| DECLARE_CONCRETE_INSTRUCTION(Goto, "goto")
|
| - virtual void PrintDataTo(StringStream* stream);
|
| - virtual bool IsControl() const { return true; }
|
| + virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
|
| + virtual bool IsControl() const V8_OVERRIDE { return true; }
|
|
|
| int block_id() const { return block_id_; }
|
|
|
| @@ -498,7 +507,7 @@ class LGoto: public LTemplateInstruction<0, 0, 0> {
|
| };
|
|
|
|
|
| -class LLazyBailout: public LTemplateInstruction<0, 0, 0> {
|
| +class LLazyBailout V8_FINAL : public LTemplateInstruction<0, 0, 0> {
|
| public:
|
| LLazyBailout() : gap_instructions_size_(0) { }
|
|
|
| @@ -514,15 +523,17 @@ class LLazyBailout: public LTemplateInstruction<0, 0, 0> {
|
| };
|
|
|
|
|
| -class LLabel: public LGap {
|
| +class LLabel V8_FINAL : public LGap {
|
| public:
|
| explicit LLabel(HBasicBlock* block)
|
| : LGap(block), replacement_(NULL) { }
|
|
|
| - virtual bool HasInterestingComment(LCodeGen* gen) const { return false; }
|
| + virtual bool HasInterestingComment(LCodeGen* gen) const V8_OVERRIDE {
|
| + return false;
|
| + }
|
| DECLARE_CONCRETE_INSTRUCTION(Label, "label")
|
|
|
| - virtual void PrintDataTo(StringStream* stream);
|
| + virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
|
|
|
| int block_id() const { return block()->block_id(); }
|
| bool is_loop_header() const { return block()->IsLoopHeader(); }
|
| @@ -538,16 +549,18 @@ class LLabel: public LGap {
|
| };
|
|
|
|
|
| -class LOsrEntry: public LTemplateInstruction<0, 0, 0> {
|
| +class LOsrEntry V8_FINAL : public LTemplateInstruction<0, 0, 0> {
|
| public:
|
| LOsrEntry() {}
|
|
|
| - virtual bool HasInterestingComment(LCodeGen* gen) const { return false; }
|
| + virtual bool HasInterestingComment(LCodeGen* gen) const V8_OVERRIDE {
|
| + return false;
|
| + }
|
| DECLARE_CONCRETE_INSTRUCTION(OsrEntry, "osr-entry")
|
| };
|
|
|
|
|
| -class LOuterContext: public LTemplateInstruction<1, 1, 0> {
|
| +class LOuterContext V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LOuterContext(LOperand* context) {
|
| inputs_[0] = context;
|
| @@ -559,7 +572,7 @@ class LOuterContext: public LTemplateInstruction<1, 1, 0> {
|
| };
|
|
|
|
|
| -class LAccessArgumentsAt: public LTemplateInstruction<1, 3, 1> {
|
| +class LAccessArgumentsAt V8_FINAL : public LTemplateInstruction<1, 3, 1> {
|
| public:
|
| LAccessArgumentsAt(LOperand* arguments,
|
| LOperand* length,
|
| @@ -578,11 +591,11 @@ class LAccessArgumentsAt: public LTemplateInstruction<1, 3, 1> {
|
| LOperand* index() { return inputs_[2]; }
|
| LOperand* temp() { return temps_[0]; }
|
|
|
| - virtual void PrintDataTo(StringStream* stream);
|
| + virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
|
| };
|
|
|
|
|
| -class LAddI: public LTemplateInstruction<1, 2, 0> {
|
| +class LAddI V8_FINAL : public LTemplateInstruction<1, 2, 0> {
|
| public:
|
| LAddI(LOperand* left, LOperand* right) {
|
| inputs_[0] = left;
|
| @@ -597,7 +610,7 @@ class LAddI: public LTemplateInstruction<1, 2, 0> {
|
| };
|
|
|
|
|
| -class LAddS: public LTemplateInstruction<1, 2, 0> {
|
| +class LAddS V8_FINAL : public LTemplateInstruction<1, 2, 0> {
|
| public:
|
| LAddS(LOperand* left, LOperand* right) {
|
| inputs_[0] = left;
|
| @@ -612,7 +625,7 @@ class LAddS: public LTemplateInstruction<1, 2, 0> {
|
| };
|
|
|
|
|
| -class LAllocate: public LTemplateInstruction<1, 1, 2> {
|
| +class LAllocate V8_FINAL : public LTemplateInstruction<1, 1, 2> {
|
| public:
|
| // TODO(jbramley): On ia32, this takes a context, and it is used by the
|
| // deferred code. On ARM, an LOperand is allocated for another input, but it
|
| @@ -632,7 +645,7 @@ class LAllocate: public LTemplateInstruction<1, 1, 2> {
|
| };
|
|
|
|
|
| -class LApplyArguments: public LTemplateInstruction<1, 4, 0> {
|
| +class LApplyArguments V8_FINAL : public LTemplateInstruction<1, 4, 0> {
|
| public:
|
| LApplyArguments(LOperand* function,
|
| LOperand* receiver,
|
| @@ -653,7 +666,7 @@ class LApplyArguments: public LTemplateInstruction<1, 4, 0> {
|
| };
|
|
|
|
|
| -class LArgumentsElements: public LTemplateInstruction<1, 0, 1> {
|
| +class LArgumentsElements V8_FINAL : public LTemplateInstruction<1, 0, 1> {
|
| public:
|
| explicit LArgumentsElements(LOperand* temp) {
|
| temps_[0] = temp;
|
| @@ -666,7 +679,7 @@ class LArgumentsElements: public LTemplateInstruction<1, 0, 1> {
|
| };
|
|
|
|
|
| -class LArgumentsLength: public LTemplateInstruction<1, 1, 0> {
|
| +class LArgumentsLength V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LArgumentsLength(LOperand* elements) {
|
| inputs_[0] = elements;
|
| @@ -678,7 +691,7 @@ class LArgumentsLength: public LTemplateInstruction<1, 1, 0> {
|
| };
|
|
|
|
|
| -class LArithmeticD: public LTemplateInstruction<1, 2, 0> {
|
| +class LArithmeticD V8_FINAL : public LTemplateInstruction<1, 2, 0> {
|
| public:
|
| LArithmeticD(Token::Value op, LOperand* left, LOperand* right)
|
| : op_(op) {
|
| @@ -690,16 +703,18 @@ class LArithmeticD: public LTemplateInstruction<1, 2, 0> {
|
| LOperand* left() { return inputs_[0]; }
|
| LOperand* right() { return inputs_[1]; }
|
|
|
| - virtual Opcode opcode() const { return LInstruction::kArithmeticD; }
|
| - virtual void CompileToNative(LCodeGen* generator);
|
| - virtual const char* Mnemonic() const;
|
| + virtual Opcode opcode() const V8_OVERRIDE {
|
| + return LInstruction::kArithmeticD;
|
| + }
|
| + virtual void CompileToNative(LCodeGen* generator) V8_OVERRIDE;
|
| + virtual const char* Mnemonic() const V8_OVERRIDE;
|
|
|
| private:
|
| Token::Value op_;
|
| };
|
|
|
|
|
| -class LArithmeticT: public LTemplateInstruction<1, 2, 0> {
|
| +class LArithmeticT V8_FINAL : public LTemplateInstruction<1, 2, 0> {
|
| public:
|
| LArithmeticT(Token::Value op, LOperand* left, LOperand* right)
|
| : op_(op) {
|
| @@ -711,16 +726,18 @@ class LArithmeticT: public LTemplateInstruction<1, 2, 0> {
|
| LOperand* right() { return inputs_[1]; }
|
| Token::Value op() const { return op_; }
|
|
|
| - virtual Opcode opcode() const { return LInstruction::kArithmeticT; }
|
| - virtual void CompileToNative(LCodeGen* generator);
|
| - virtual const char* Mnemonic() const;
|
| + virtual Opcode opcode() const V8_OVERRIDE {
|
| + return LInstruction::kArithmeticT;
|
| + }
|
| + virtual void CompileToNative(LCodeGen* generator) V8_OVERRIDE;
|
| + virtual const char* Mnemonic() const V8_OVERRIDE;
|
|
|
| private:
|
| Token::Value op_;
|
| };
|
|
|
|
|
| -class LBoundsCheck: public LTemplateInstruction<0, 2, 0> {
|
| +class LBoundsCheck V8_FINAL : public LTemplateInstruction<0, 2, 0> {
|
| public:
|
| explicit LBoundsCheck(LOperand* index, LOperand* length) {
|
| inputs_[0] = index;
|
| @@ -735,7 +752,7 @@ class LBoundsCheck: public LTemplateInstruction<0, 2, 0> {
|
| };
|
|
|
|
|
| -class LBitI: public LTemplateInstruction<1, 2, 0> {
|
| +class LBitI V8_FINAL : public LTemplateInstruction<1, 2, 0> {
|
| public:
|
| LBitI(LOperand* left, LOperand* right) {
|
| inputs_[0] = left;
|
| @@ -752,7 +769,7 @@ class LBitI: public LTemplateInstruction<1, 2, 0> {
|
| };
|
|
|
|
|
| -class LBitS: public LTemplateInstruction<1, 2, 0> {
|
| +class LBitS V8_FINAL : public LTemplateInstruction<1, 2, 0> {
|
| public:
|
| LBitS(LOperand* left, LOperand* right) {
|
| inputs_[0] = left;
|
| @@ -769,7 +786,7 @@ class LBitS: public LTemplateInstruction<1, 2, 0> {
|
| };
|
|
|
|
|
| -class LBranch: public LControlInstruction<1, 2> {
|
| +class LBranch V8_FINAL : public LControlInstruction<1, 2> {
|
| public:
|
| explicit LBranch(LOperand* value, LOperand *temp1, LOperand *temp2) {
|
| inputs_[0] = value;
|
| @@ -784,23 +801,23 @@ class LBranch: public LControlInstruction<1, 2> {
|
| DECLARE_CONCRETE_INSTRUCTION(Branch, "branch")
|
| DECLARE_HYDROGEN_ACCESSOR(Branch)
|
|
|
| - virtual void PrintDataTo(StringStream* stream);
|
| + virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
|
| };
|
|
|
|
|
| -class LCallConstantFunction: public LTemplateInstruction<1, 0, 0> {
|
| +class LCallConstantFunction V8_FINAL : public LTemplateInstruction<1, 0, 0> {
|
| public:
|
| DECLARE_CONCRETE_INSTRUCTION(CallConstantFunction, "call-constant-function")
|
| DECLARE_HYDROGEN_ACCESSOR(CallConstantFunction)
|
|
|
| - virtual void PrintDataTo(StringStream* stream);
|
| + virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
|
|
|
| Handle<JSFunction> function() { return hydrogen()->function(); }
|
| int arity() const { return hydrogen()->argument_count() - 1; }
|
| };
|
|
|
|
|
| -class LCallFunction: public LTemplateInstruction<1, 1, 0> {
|
| +class LCallFunction V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LCallFunction(LOperand* function) {
|
| inputs_[0] = function;
|
| @@ -815,30 +832,30 @@ class LCallFunction: public LTemplateInstruction<1, 1, 0> {
|
| };
|
|
|
|
|
| -class LCallKnownGlobal: public LTemplateInstruction<1, 0, 0> {
|
| +class LCallKnownGlobal V8_FINAL : public LTemplateInstruction<1, 0, 0> {
|
| public:
|
| DECLARE_CONCRETE_INSTRUCTION(CallKnownGlobal, "call-known-global")
|
| DECLARE_HYDROGEN_ACCESSOR(CallKnownGlobal)
|
|
|
| - virtual void PrintDataTo(StringStream* stream);
|
| + virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
|
|
|
| int arity() const { return hydrogen()->argument_count() - 1; }
|
| };
|
|
|
|
|
| -class LCallGlobal: public LTemplateInstruction<1, 0, 0> {
|
| +class LCallGlobal V8_FINAL : public LTemplateInstruction<1, 0, 0> {
|
| public:
|
| DECLARE_CONCRETE_INSTRUCTION(CallGlobal, "call-global")
|
| DECLARE_HYDROGEN_ACCESSOR(CallGlobal)
|
|
|
| - virtual void PrintDataTo(StringStream* stream);
|
| + virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
|
|
|
| Handle<String> name() const { return hydrogen()->name(); }
|
| int arity() const { return hydrogen()->argument_count() - 1; }
|
| };
|
|
|
|
|
| -class LCallKeyed: public LTemplateInstruction<1, 1, 0> {
|
| +class LCallKeyed V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LCallKeyed(LOperand* key) {
|
| inputs_[0] = key;
|
| @@ -849,25 +866,25 @@ class LCallKeyed: public LTemplateInstruction<1, 1, 0> {
|
| DECLARE_CONCRETE_INSTRUCTION(CallKeyed, "call-keyed")
|
| DECLARE_HYDROGEN_ACCESSOR(CallKeyed)
|
|
|
| - virtual void PrintDataTo(StringStream* stream);
|
| + virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
|
|
|
| int arity() const { return hydrogen()->argument_count() - 1; }
|
| };
|
|
|
|
|
| -class LCallNamed: public LTemplateInstruction<1, 0, 0> {
|
| +class LCallNamed V8_FINAL : public LTemplateInstruction<1, 0, 0> {
|
| public:
|
| DECLARE_CONCRETE_INSTRUCTION(CallNamed, "call-named")
|
| DECLARE_HYDROGEN_ACCESSOR(CallNamed)
|
|
|
| - virtual void PrintDataTo(StringStream* stream);
|
| + virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
|
|
|
| Handle<String> name() const { return hydrogen()->name(); }
|
| int arity() const { return hydrogen()->argument_count() - 1; }
|
| };
|
|
|
|
|
| -class LCallNew: public LTemplateInstruction<1, 1, 0> {
|
| +class LCallNew V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LCallNew(LOperand* constructor) {
|
| inputs_[0] = constructor;
|
| @@ -878,13 +895,13 @@ class LCallNew: public LTemplateInstruction<1, 1, 0> {
|
| DECLARE_CONCRETE_INSTRUCTION(CallNew, "call-new")
|
| DECLARE_HYDROGEN_ACCESSOR(CallNew)
|
|
|
| - virtual void PrintDataTo(StringStream* stream);
|
| + virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
|
|
|
| int arity() const { return hydrogen()->argument_count() - 1; }
|
| };
|
|
|
|
|
| -class LCallNewArray: public LTemplateInstruction<1, 1, 0> {
|
| +class LCallNewArray V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LCallNewArray(LOperand* constructor) {
|
| inputs_[0] = constructor;
|
| @@ -895,13 +912,13 @@ class LCallNewArray: public LTemplateInstruction<1, 1, 0> {
|
| DECLARE_CONCRETE_INSTRUCTION(CallNewArray, "call-new-array")
|
| DECLARE_HYDROGEN_ACCESSOR(CallNewArray)
|
|
|
| - virtual void PrintDataTo(StringStream* stream);
|
| + virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
|
|
|
| int arity() const { return hydrogen()->argument_count() - 1; }
|
| };
|
|
|
|
|
| -class LCallRuntime: public LTemplateInstruction<1, 0, 0> {
|
| +class LCallRuntime V8_FINAL : public LTemplateInstruction<1, 0, 0> {
|
| public:
|
| DECLARE_CONCRETE_INSTRUCTION(CallRuntime, "call-runtime")
|
| DECLARE_HYDROGEN_ACCESSOR(CallRuntime)
|
| @@ -911,7 +928,7 @@ class LCallRuntime: public LTemplateInstruction<1, 0, 0> {
|
| };
|
|
|
|
|
| -class LCallStub: public LTemplateInstruction<1, 0, 0> {
|
| +class LCallStub V8_FINAL : public LTemplateInstruction<1, 0, 0> {
|
| public:
|
| DECLARE_CONCRETE_INSTRUCTION(CallStub, "call-stub")
|
| DECLARE_HYDROGEN_ACCESSOR(CallStub)
|
| @@ -922,7 +939,7 @@ class LCallStub: public LTemplateInstruction<1, 0, 0> {
|
| };
|
|
|
|
|
| -class LCheckInstanceType: public LTemplateInstruction<0, 1, 1> {
|
| +class LCheckInstanceType V8_FINAL : public LTemplateInstruction<0, 1, 1> {
|
| public:
|
| explicit LCheckInstanceType(LOperand* value, LOperand* temp) {
|
| inputs_[0] = value;
|
| @@ -937,7 +954,7 @@ class LCheckInstanceType: public LTemplateInstruction<0, 1, 1> {
|
| };
|
|
|
|
|
| -class LCheckMaps: public LTemplateInstruction<0, 1, 1> {
|
| +class LCheckMaps V8_FINAL : public LTemplateInstruction<0, 1, 1> {
|
| public:
|
| explicit LCheckMaps(LOperand* value, LOperand* temp = NULL) {
|
| inputs_[0] = value;
|
| @@ -952,7 +969,7 @@ class LCheckMaps: public LTemplateInstruction<0, 1, 1> {
|
| };
|
|
|
|
|
| -class LCheckNonSmi: public LTemplateInstruction<0, 1, 0> {
|
| +class LCheckNonSmi V8_FINAL : public LTemplateInstruction<0, 1, 0> {
|
| public:
|
| explicit LCheckNonSmi(LOperand* value) {
|
| inputs_[0] = value;
|
| @@ -965,7 +982,7 @@ class LCheckNonSmi: public LTemplateInstruction<0, 1, 0> {
|
| };
|
|
|
|
|
| -class LCheckSmi: public LTemplateInstruction<1, 1, 0> {
|
| +class LCheckSmi V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LCheckSmi(LOperand* value) {
|
| inputs_[0] = value;
|
| @@ -977,7 +994,7 @@ class LCheckSmi: public LTemplateInstruction<1, 1, 0> {
|
| };
|
|
|
|
|
| -class LCheckValue: public LTemplateInstruction<0, 1, 1> {
|
| +class LCheckValue V8_FINAL : public LTemplateInstruction<0, 1, 1> {
|
| public:
|
| LCheckValue(LOperand* value, LOperand* temp) {
|
| inputs_[0] = value;
|
| @@ -992,7 +1009,7 @@ class LCheckValue: public LTemplateInstruction<0, 1, 1> {
|
| };
|
|
|
|
|
| -class LClampDToUint8: public LTemplateInstruction<1, 1, 0> {
|
| +class LClampDToUint8 V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LClampDToUint8(LOperand* unclamped) {
|
| inputs_[0] = unclamped;
|
| @@ -1004,7 +1021,7 @@ class LClampDToUint8: public LTemplateInstruction<1, 1, 0> {
|
| };
|
|
|
|
|
| -class LClampIToUint8: public LTemplateInstruction<1, 1, 0> {
|
| +class LClampIToUint8 V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LClampIToUint8(LOperand* unclamped) {
|
| inputs_[0] = unclamped;
|
| @@ -1016,7 +1033,7 @@ class LClampIToUint8: public LTemplateInstruction<1, 1, 0> {
|
| };
|
|
|
|
|
| -class LClampTToUint8: public LTemplateInstruction<1, 1, 2> {
|
| +class LClampTToUint8 V8_FINAL : public LTemplateInstruction<1, 1, 2> {
|
| public:
|
| LClampTToUint8(LOperand* unclamped, LOperand* temp1, LOperand* temp2) {
|
| inputs_[0] = unclamped;
|
| @@ -1032,7 +1049,7 @@ class LClampTToUint8: public LTemplateInstruction<1, 1, 2> {
|
| };
|
|
|
|
|
| -class LClassOfTestAndBranch: public LControlInstruction<1, 2> {
|
| +class LClassOfTestAndBranch V8_FINAL : public LControlInstruction<1, 2> {
|
| public:
|
| LClassOfTestAndBranch(LOperand* value, LOperand* temp1, LOperand* temp2) {
|
| inputs_[0] = value;
|
| @@ -1048,11 +1065,11 @@ class LClassOfTestAndBranch: public LControlInstruction<1, 2> {
|
| "class-of-test-and-branch")
|
| DECLARE_HYDROGEN_ACCESSOR(ClassOfTestAndBranch)
|
|
|
| - virtual void PrintDataTo(StringStream* stream);
|
| + virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
|
| };
|
|
|
|
|
| -class LCmpHoleAndBranchD: public LControlInstruction<1, 1> {
|
| +class LCmpHoleAndBranchD V8_FINAL : public LControlInstruction<1, 1> {
|
| public:
|
| explicit LCmpHoleAndBranchD(LOperand* object, LOperand* temp) {
|
| inputs_[0] = object;
|
| @@ -1067,7 +1084,7 @@ class LCmpHoleAndBranchD: public LControlInstruction<1, 1> {
|
| };
|
|
|
|
|
| -class LCmpHoleAndBranchT: public LControlInstruction<1, 0> {
|
| +class LCmpHoleAndBranchT V8_FINAL : public LControlInstruction<1, 0> {
|
| public:
|
| explicit LCmpHoleAndBranchT(LOperand* object) {
|
| inputs_[0] = object;
|
| @@ -1080,7 +1097,7 @@ class LCmpHoleAndBranchT: public LControlInstruction<1, 0> {
|
| };
|
|
|
|
|
| -class LCmpMapAndBranch: public LControlInstruction<1, 1> {
|
| +class LCmpMapAndBranch V8_FINAL : public LControlInstruction<1, 1> {
|
| public:
|
| LCmpMapAndBranch(LOperand* value, LOperand* temp) {
|
| inputs_[0] = value;
|
| @@ -1097,7 +1114,7 @@ class LCmpMapAndBranch: public LControlInstruction<1, 1> {
|
| };
|
|
|
|
|
| -class LCmpObjectEqAndBranch: public LControlInstruction<2, 0> {
|
| +class LCmpObjectEqAndBranch V8_FINAL : public LControlInstruction<2, 0> {
|
| public:
|
| LCmpObjectEqAndBranch(LOperand* left, LOperand* right) {
|
| inputs_[0] = left;
|
| @@ -1112,7 +1129,7 @@ class LCmpObjectEqAndBranch: public LControlInstruction<2, 0> {
|
| };
|
|
|
|
|
| -class LCmpT: public LTemplateInstruction<1, 2, 0> {
|
| +class LCmpT V8_FINAL : public LTemplateInstruction<1, 2, 0> {
|
| public:
|
| LCmpT(LOperand* left, LOperand* right) {
|
| inputs_[0] = left;
|
| @@ -1129,7 +1146,7 @@ class LCmpT: public LTemplateInstruction<1, 2, 0> {
|
| };
|
|
|
|
|
| -class LCompareNumericAndBranch: public LControlInstruction<2, 0> {
|
| +class LCompareNumericAndBranch V8_FINAL : public LControlInstruction<2, 0> {
|
| public:
|
| LCompareNumericAndBranch(LOperand* left, LOperand* right) {
|
| inputs_[0] = left;
|
| @@ -1148,11 +1165,11 @@ class LCompareNumericAndBranch: public LControlInstruction<2, 0> {
|
| return hydrogen()->representation().IsDouble();
|
| }
|
|
|
| - virtual void PrintDataTo(StringStream* stream);
|
| + virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
|
| };
|
|
|
|
|
| -class LConstantD: public LTemplateInstruction<1, 0, 0> {
|
| +class LConstantD V8_FINAL : public LTemplateInstruction<1, 0, 0> {
|
| public:
|
| DECLARE_CONCRETE_INSTRUCTION(ConstantD, "constant-d")
|
| DECLARE_HYDROGEN_ACCESSOR(Constant)
|
| @@ -1161,7 +1178,7 @@ class LConstantD: public LTemplateInstruction<1, 0, 0> {
|
| };
|
|
|
|
|
| -class LConstantE: public LTemplateInstruction<1, 0, 0> {
|
| +class LConstantE V8_FINAL : public LTemplateInstruction<1, 0, 0> {
|
| public:
|
| DECLARE_CONCRETE_INSTRUCTION(ConstantE, "constant-e")
|
| DECLARE_HYDROGEN_ACCESSOR(Constant)
|
| @@ -1172,7 +1189,7 @@ class LConstantE: public LTemplateInstruction<1, 0, 0> {
|
| };
|
|
|
|
|
| -class LConstantI: public LTemplateInstruction<1, 0, 0> {
|
| +class LConstantI V8_FINAL : public LTemplateInstruction<1, 0, 0> {
|
| public:
|
| DECLARE_CONCRETE_INSTRUCTION(ConstantI, "constant-i")
|
| DECLARE_HYDROGEN_ACCESSOR(Constant)
|
| @@ -1181,7 +1198,7 @@ class LConstantI: public LTemplateInstruction<1, 0, 0> {
|
| };
|
|
|
|
|
| -class LConstantS: public LTemplateInstruction<1, 0, 0> {
|
| +class LConstantS V8_FINAL : public LTemplateInstruction<1, 0, 0> {
|
| public:
|
| DECLARE_CONCRETE_INSTRUCTION(ConstantS, "constant-s")
|
| DECLARE_HYDROGEN_ACCESSOR(Constant)
|
| @@ -1190,7 +1207,7 @@ class LConstantS: public LTemplateInstruction<1, 0, 0> {
|
| };
|
|
|
|
|
| -class LConstantT: public LTemplateInstruction<1, 0, 0> {
|
| +class LConstantT V8_FINAL : public LTemplateInstruction<1, 0, 0> {
|
| public:
|
| DECLARE_CONCRETE_INSTRUCTION(ConstantT, "constant-t")
|
| DECLARE_HYDROGEN_ACCESSOR(Constant)
|
| @@ -1201,14 +1218,14 @@ class LConstantT: public LTemplateInstruction<1, 0, 0> {
|
| };
|
|
|
|
|
| -class LContext: public LTemplateInstruction<1, 0, 0> {
|
| +class LContext V8_FINAL : public LTemplateInstruction<1, 0, 0> {
|
| public:
|
| DECLARE_CONCRETE_INSTRUCTION(Context, "context")
|
| DECLARE_HYDROGEN_ACCESSOR(Context)
|
| };
|
|
|
|
|
| -class LDateField: public LTemplateInstruction<1, 1, 0> {
|
| +class LDateField V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| LDateField(LOperand* date, Smi* index) : index_(index) {
|
| inputs_[0] = date;
|
| @@ -1225,27 +1242,27 @@ class LDateField: public LTemplateInstruction<1, 1, 0> {
|
| };
|
|
|
|
|
| -class LDebugBreak: public LTemplateInstruction<0, 0, 0> {
|
| +class LDebugBreak V8_FINAL : public LTemplateInstruction<0, 0, 0> {
|
| public:
|
| DECLARE_CONCRETE_INSTRUCTION(DebugBreak, "break")
|
| };
|
|
|
|
|
| -class LDeclareGlobals: public LTemplateInstruction<0, 0, 0> {
|
| +class LDeclareGlobals V8_FINAL : public LTemplateInstruction<0, 0, 0> {
|
| public:
|
| DECLARE_CONCRETE_INSTRUCTION(DeclareGlobals, "declare-globals")
|
| DECLARE_HYDROGEN_ACCESSOR(DeclareGlobals)
|
| };
|
|
|
|
|
| -class LDeoptimize: public LTemplateInstruction<0, 0, 0> {
|
| +class LDeoptimize V8_FINAL : public LTemplateInstruction<0, 0, 0> {
|
| public:
|
| DECLARE_CONCRETE_INSTRUCTION(Deoptimize, "deoptimize")
|
| DECLARE_HYDROGEN_ACCESSOR(Deoptimize)
|
| };
|
|
|
|
|
| -class LDivI: public LTemplateInstruction<1, 2, 1> {
|
| +class LDivI V8_FINAL : public LTemplateInstruction<1, 2, 1> {
|
| public:
|
| LDivI(LOperand* left, LOperand* right, LOperand* temp) {
|
| inputs_[0] = left;
|
| @@ -1262,7 +1279,7 @@ class LDivI: public LTemplateInstruction<1, 2, 1> {
|
| };
|
|
|
|
|
| -class LDoubleToIntOrSmi: public LTemplateInstruction<1, 1, 0> {
|
| +class LDoubleToIntOrSmi V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LDoubleToIntOrSmi(LOperand* value) {
|
| inputs_[0] = value;
|
| @@ -1277,7 +1294,7 @@ class LDoubleToIntOrSmi: public LTemplateInstruction<1, 1, 0> {
|
| };
|
|
|
|
|
| -class LElementsKind: public LTemplateInstruction<1, 1, 0> {
|
| +class LElementsKind V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LElementsKind(LOperand* value) {
|
| inputs_[0] = value;
|
| @@ -1290,7 +1307,7 @@ class LElementsKind: public LTemplateInstruction<1, 1, 0> {
|
| };
|
|
|
|
|
| -class LForInCacheArray: public LTemplateInstruction<1, 1, 0> {
|
| +class LForInCacheArray V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LForInCacheArray(LOperand* map) {
|
| inputs_[0] = map;
|
| @@ -1306,7 +1323,7 @@ class LForInCacheArray: public LTemplateInstruction<1, 1, 0> {
|
| };
|
|
|
|
|
| -class LForInPrepareMap: public LTemplateInstruction<1, 1, 0> {
|
| +class LForInPrepareMap V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LForInPrepareMap(LOperand* object) {
|
| inputs_[0] = object;
|
| @@ -1318,7 +1335,7 @@ class LForInPrepareMap: public LTemplateInstruction<1, 1, 0> {
|
| };
|
|
|
|
|
| -class LGetCachedArrayIndex: public LTemplateInstruction<1, 1, 0> {
|
| +class LGetCachedArrayIndex V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LGetCachedArrayIndex(LOperand* value) {
|
| inputs_[0] = value;
|
| @@ -1331,7 +1348,7 @@ class LGetCachedArrayIndex: public LTemplateInstruction<1, 1, 0> {
|
| };
|
|
|
|
|
| -class LGlobalObject: public LTemplateInstruction<1, 1, 0> {
|
| +class LGlobalObject V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LGlobalObject(LOperand* context) {
|
| inputs_[0] = context;
|
| @@ -1343,7 +1360,7 @@ class LGlobalObject: public LTemplateInstruction<1, 1, 0> {
|
| };
|
|
|
|
|
| -class LGlobalReceiver: public LTemplateInstruction<1, 1, 0> {
|
| +class LGlobalReceiver V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LGlobalReceiver(LOperand* global_object) {
|
| inputs_[0] = global_object;
|
| @@ -1355,7 +1372,8 @@ class LGlobalReceiver: public LTemplateInstruction<1, 1, 0> {
|
| };
|
|
|
|
|
| -class LHasCachedArrayIndexAndBranch: public LControlInstruction<1, 1> {
|
| +class LHasCachedArrayIndexAndBranch V8_FINAL
|
| + : public LControlInstruction<1, 1> {
|
| public:
|
| LHasCachedArrayIndexAndBranch(LOperand* value, LOperand* temp) {
|
| inputs_[0] = value;
|
| @@ -1369,11 +1387,11 @@ class LHasCachedArrayIndexAndBranch: public LControlInstruction<1, 1> {
|
| "has-cached-array-index-and-branch")
|
| DECLARE_HYDROGEN_ACCESSOR(HasCachedArrayIndexAndBranch)
|
|
|
| - virtual void PrintDataTo(StringStream* stream);
|
| + virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
|
| };
|
|
|
|
|
| -class LHasInstanceTypeAndBranch: public LControlInstruction<1, 1> {
|
| +class LHasInstanceTypeAndBranch V8_FINAL : public LControlInstruction<1, 1> {
|
| public:
|
| LHasInstanceTypeAndBranch(LOperand* value, LOperand* temp) {
|
| inputs_[0] = value;
|
| @@ -1387,11 +1405,11 @@ class LHasInstanceTypeAndBranch: public LControlInstruction<1, 1> {
|
| "has-instance-type-and-branch")
|
| DECLARE_HYDROGEN_ACCESSOR(HasInstanceTypeAndBranch)
|
|
|
| - virtual void PrintDataTo(StringStream* stream);
|
| + virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
|
| };
|
|
|
|
|
| -class LInnerAllocatedObject: public LTemplateInstruction<1, 1, 0> {
|
| +class LInnerAllocatedObject V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LInnerAllocatedObject(LOperand* base_object) {
|
| inputs_[0] = base_object;
|
| @@ -1400,14 +1418,14 @@ class LInnerAllocatedObject: public LTemplateInstruction<1, 1, 0> {
|
| LOperand* base_object() { return inputs_[0]; }
|
| int offset() { return hydrogen()->offset(); }
|
|
|
| - virtual void PrintDataTo(StringStream* stream);
|
| + virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
|
|
|
| DECLARE_CONCRETE_INSTRUCTION(InnerAllocatedObject, "sub-allocated-object")
|
| DECLARE_HYDROGEN_ACCESSOR(InnerAllocatedObject)
|
| };
|
|
|
|
|
| -class LInstanceOf: public LTemplateInstruction<1, 2, 0> {
|
| +class LInstanceOf V8_FINAL : public LTemplateInstruction<1, 2, 0> {
|
| public:
|
| LInstanceOf(LOperand* left, LOperand* right) {
|
| inputs_[0] = left;
|
| @@ -1421,7 +1439,7 @@ class LInstanceOf: public LTemplateInstruction<1, 2, 0> {
|
| };
|
|
|
|
|
| -class LInstanceOfKnownGlobal: public LTemplateInstruction<1, 1, 0> {
|
| +class LInstanceOfKnownGlobal V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LInstanceOfKnownGlobal(LOperand* value) {
|
| inputs_[0] = value;
|
| @@ -1437,7 +1455,8 @@ class LInstanceOfKnownGlobal: public LTemplateInstruction<1, 1, 0> {
|
| LEnvironment* GetDeferredLazyDeoptimizationEnvironment() {
|
| return lazy_deopt_env_;
|
| }
|
| - virtual void SetDeferredLazyDeoptimizationEnvironment(LEnvironment* env) {
|
| + virtual void SetDeferredLazyDeoptimizationEnvironment(
|
| + LEnvironment* env) V8_OVERRIDE {
|
| lazy_deopt_env_ = env;
|
| }
|
|
|
| @@ -1446,7 +1465,7 @@ class LInstanceOfKnownGlobal: public LTemplateInstruction<1, 1, 0> {
|
| };
|
|
|
|
|
| -class LInteger32ToDouble: public LTemplateInstruction<1, 1, 0> {
|
| +class LInteger32ToDouble V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LInteger32ToDouble(LOperand* value) {
|
| inputs_[0] = value;
|
| @@ -1458,7 +1477,7 @@ class LInteger32ToDouble: public LTemplateInstruction<1, 1, 0> {
|
| };
|
|
|
|
|
| -class LInteger32ToSmi: public LTemplateInstruction<1, 1, 0> {
|
| +class LInteger32ToSmi V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LInteger32ToSmi(LOperand* value) {
|
| inputs_[0] = value;
|
| @@ -1471,7 +1490,7 @@ class LInteger32ToSmi: public LTemplateInstruction<1, 1, 0> {
|
| };
|
|
|
|
|
| -class LInvokeFunction: public LTemplateInstruction<1, 1, 0> {
|
| +class LInvokeFunction V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LInvokeFunction(LOperand* function) {
|
| inputs_[0] = function;
|
| @@ -1482,13 +1501,13 @@ class LInvokeFunction: public LTemplateInstruction<1, 1, 0> {
|
| DECLARE_CONCRETE_INSTRUCTION(InvokeFunction, "invoke-function")
|
| DECLARE_HYDROGEN_ACCESSOR(InvokeFunction)
|
|
|
| - virtual void PrintDataTo(StringStream* stream);
|
| + virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
|
|
|
| int arity() const { return hydrogen()->argument_count() - 1; }
|
| };
|
|
|
|
|
| -class LIsConstructCallAndBranch: public LControlInstruction<0, 2> {
|
| +class LIsConstructCallAndBranch V8_FINAL : public LControlInstruction<0, 2> {
|
| public:
|
| LIsConstructCallAndBranch(LOperand* temp1, LOperand* temp2) {
|
| temps_[0] = temp1;
|
| @@ -1503,7 +1522,7 @@ class LIsConstructCallAndBranch: public LControlInstruction<0, 2> {
|
| };
|
|
|
|
|
| -class LIsNumberAndBranch: public LControlInstruction<1, 0> {
|
| +class LIsNumberAndBranch V8_FINAL : public LControlInstruction<1, 0> {
|
| public:
|
| explicit LIsNumberAndBranch(LOperand* value) {
|
| inputs_[0] = value;
|
| @@ -1516,7 +1535,7 @@ class LIsNumberAndBranch: public LControlInstruction<1, 0> {
|
| };
|
|
|
|
|
| -class LIsObjectAndBranch: public LControlInstruction<1, 2> {
|
| +class LIsObjectAndBranch V8_FINAL : public LControlInstruction<1, 2> {
|
| public:
|
| LIsObjectAndBranch(LOperand* value, LOperand* temp1, LOperand* temp2) {
|
| inputs_[0] = value;
|
| @@ -1531,11 +1550,11 @@ class LIsObjectAndBranch: public LControlInstruction<1, 2> {
|
| DECLARE_CONCRETE_INSTRUCTION(IsObjectAndBranch, "is-object-and-branch")
|
| DECLARE_HYDROGEN_ACCESSOR(IsObjectAndBranch)
|
|
|
| - virtual void PrintDataTo(StringStream* stream);
|
| + virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
|
| };
|
|
|
|
|
| -class LIsStringAndBranch: public LControlInstruction<1, 1> {
|
| +class LIsStringAndBranch V8_FINAL : public LControlInstruction<1, 1> {
|
| public:
|
| LIsStringAndBranch(LOperand* value, LOperand* temp) {
|
| inputs_[0] = value;
|
| @@ -1548,11 +1567,11 @@ class LIsStringAndBranch: public LControlInstruction<1, 1> {
|
| DECLARE_CONCRETE_INSTRUCTION(IsStringAndBranch, "is-string-and-branch")
|
| DECLARE_HYDROGEN_ACCESSOR(IsStringAndBranch)
|
|
|
| - virtual void PrintDataTo(StringStream* stream);
|
| + virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
|
| };
|
|
|
|
|
| -class LIsSmiAndBranch: public LControlInstruction<1, 0> {
|
| +class LIsSmiAndBranch V8_FINAL : public LControlInstruction<1, 0> {
|
| public:
|
| explicit LIsSmiAndBranch(LOperand* value) {
|
| inputs_[0] = value;
|
| @@ -1563,11 +1582,11 @@ class LIsSmiAndBranch: public LControlInstruction<1, 0> {
|
| DECLARE_CONCRETE_INSTRUCTION(IsSmiAndBranch, "is-smi-and-branch")
|
| DECLARE_HYDROGEN_ACCESSOR(IsSmiAndBranch)
|
|
|
| - virtual void PrintDataTo(StringStream* stream);
|
| + virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
|
| };
|
|
|
|
|
| -class LIsUndetectableAndBranch: public LControlInstruction<1, 1> {
|
| +class LIsUndetectableAndBranch V8_FINAL : public LControlInstruction<1, 1> {
|
| public:
|
| explicit LIsUndetectableAndBranch(LOperand* value, LOperand* temp) {
|
| inputs_[0] = value;
|
| @@ -1581,11 +1600,11 @@ class LIsUndetectableAndBranch: public LControlInstruction<1, 1> {
|
| "is-undetectable-and-branch")
|
| DECLARE_HYDROGEN_ACCESSOR(IsUndetectableAndBranch)
|
|
|
| - virtual void PrintDataTo(StringStream* stream);
|
| + virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
|
| };
|
|
|
|
|
| -class LLoadContextSlot: public LTemplateInstruction<1, 1, 0> {
|
| +class LLoadContextSlot V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LLoadContextSlot(LOperand* context) {
|
| inputs_[0] = context;
|
| @@ -1596,13 +1615,13 @@ class LLoadContextSlot: public LTemplateInstruction<1, 1, 0> {
|
| DECLARE_CONCRETE_INSTRUCTION(LoadContextSlot, "load-context-slot")
|
| DECLARE_HYDROGEN_ACCESSOR(LoadContextSlot)
|
|
|
| - int slot_index() { return hydrogen()->slot_index(); }
|
| + int slot_index() const { return hydrogen()->slot_index(); }
|
|
|
| - virtual void PrintDataTo(StringStream* stream);
|
| + virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
|
| };
|
|
|
|
|
| -class LLoadNamedField: public LTemplateInstruction<1, 1, 0> {
|
| +class LLoadNamedField V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LLoadNamedField(LOperand* object) {
|
| inputs_[0] = object;
|
| @@ -1615,14 +1634,15 @@ class LLoadNamedField: public LTemplateInstruction<1, 1, 0> {
|
| };
|
|
|
|
|
| -class LFunctionLiteral: public LTemplateInstruction<1, 0, 0> {
|
| +class LFunctionLiteral V8_FINAL : public LTemplateInstruction<1, 0, 0> {
|
| public:
|
| DECLARE_CONCRETE_INSTRUCTION(FunctionLiteral, "function-literal")
|
| DECLARE_HYDROGEN_ACCESSOR(FunctionLiteral)
|
| };
|
|
|
|
|
| -class LLoadExternalArrayPointer: public LTemplateInstruction<1, 1, 0> {
|
| +class LLoadExternalArrayPointer V8_FINAL
|
| + : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LLoadExternalArrayPointer(LOperand* object) {
|
| inputs_[0] = object;
|
| @@ -1635,7 +1655,7 @@ class LLoadExternalArrayPointer: public LTemplateInstruction<1, 1, 0> {
|
| };
|
|
|
|
|
| -class LLoadFunctionPrototype: public LTemplateInstruction<1, 1, 1> {
|
| +class LLoadFunctionPrototype V8_FINAL : public LTemplateInstruction<1, 1, 1> {
|
| public:
|
| LLoadFunctionPrototype(LOperand* function, LOperand* temp) {
|
| inputs_[0] = function;
|
| @@ -1650,14 +1670,14 @@ class LLoadFunctionPrototype: public LTemplateInstruction<1, 1, 1> {
|
| };
|
|
|
|
|
| -class LLoadGlobalCell: public LTemplateInstruction<1, 0, 0> {
|
| +class LLoadGlobalCell V8_FINAL : public LTemplateInstruction<1, 0, 0> {
|
| public:
|
| DECLARE_CONCRETE_INSTRUCTION(LoadGlobalCell, "load-global-cell")
|
| DECLARE_HYDROGEN_ACCESSOR(LoadGlobalCell)
|
| };
|
|
|
|
|
| -class LLoadGlobalGeneric: public LTemplateInstruction<1, 1, 0> {
|
| +class LLoadGlobalGeneric V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LLoadGlobalGeneric(LOperand* global_object) {
|
| inputs_[0] = global_object;
|
| @@ -1674,7 +1694,7 @@ class LLoadGlobalGeneric: public LTemplateInstruction<1, 1, 0> {
|
|
|
|
|
| template<int T>
|
| -class LLoadKeyed: public LTemplateInstruction<1, 2, T> {
|
| +class LLoadKeyed V8_FINAL : public LTemplateInstruction<1, 2, T> {
|
| public:
|
| LLoadKeyed(LOperand* elements, LOperand* key) {
|
| this->inputs_[0] = elements;
|
| @@ -1692,7 +1712,7 @@ class LLoadKeyed: public LTemplateInstruction<1, 2, T> {
|
| uint32_t additional_index() const {
|
| return this->hydrogen()->index_offset();
|
| }
|
| - void PrintDataTo(StringStream* stream) {
|
| + void PrintDataTo(StringStream* stream) V8_OVERRIDE {
|
| this->elements()->PrintTo(stream);
|
| stream->Add("[");
|
| this->key()->PrintTo(stream);
|
| @@ -1746,7 +1766,7 @@ class LLoadKeyedFixedDouble: public LLoadKeyed<1> {
|
| };
|
|
|
|
|
| -class LLoadKeyedGeneric: public LTemplateInstruction<1, 2, 0> {
|
| +class LLoadKeyedGeneric V8_FINAL : public LTemplateInstruction<1, 2, 0> {
|
| public:
|
| LLoadKeyedGeneric(LOperand* object, LOperand* key) {
|
| inputs_[0] = object;
|
| @@ -1760,7 +1780,7 @@ class LLoadKeyedGeneric: public LTemplateInstruction<1, 2, 0> {
|
| };
|
|
|
|
|
| -class LLoadNamedGeneric: public LTemplateInstruction<1, 1, 0> {
|
| +class LLoadNamedGeneric V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LLoadNamedGeneric(LOperand* object) {
|
| inputs_[0] = object;
|
| @@ -1775,7 +1795,7 @@ class LLoadNamedGeneric: public LTemplateInstruction<1, 1, 0> {
|
| };
|
|
|
|
|
| -class LMapEnumLength: public LTemplateInstruction<1, 1, 0> {
|
| +class LMapEnumLength V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LMapEnumLength(LOperand* value) {
|
| inputs_[0] = value;
|
| @@ -1788,7 +1808,7 @@ class LMapEnumLength: public LTemplateInstruction<1, 1, 0> {
|
|
|
|
|
| template<int T>
|
| -class LUnaryMathOperation: public LTemplateInstruction<1, 1, T> {
|
| +class LUnaryMathOperation V8_FINAL : public LTemplateInstruction<1, 1, T> {
|
| public:
|
| explicit LUnaryMathOperation(LOperand* value) {
|
| this->inputs_[0] = value;
|
| @@ -1797,13 +1817,13 @@ class LUnaryMathOperation: public LTemplateInstruction<1, 1, T> {
|
| LOperand* value() { return this->inputs_[0]; }
|
| BuiltinFunctionId op() const { return this->hydrogen()->op(); }
|
|
|
| - void PrintDataTo(StringStream* stream);
|
| + void PrintDataTo(StringStream* stream) V8_OVERRIDE;
|
|
|
| DECLARE_HYDROGEN_ACCESSOR(UnaryMathOperation)
|
| };
|
|
|
|
|
| -class LMathAbs: public LUnaryMathOperation<0> {
|
| +class LMathAbs V8_FINAL : public LUnaryMathOperation<0> {
|
| public:
|
| explicit LMathAbs(LOperand* value) : LUnaryMathOperation<0>(value) { }
|
| DECLARE_CONCRETE_INSTRUCTION(MathAbs, "math-abs")
|
| @@ -1828,14 +1848,14 @@ class LMathAbsTagged: public LUnaryMathOperation<3> {
|
| };
|
|
|
|
|
| -class LMathCos: public LUnaryMathOperation<0> {
|
| +class LMathCos V8_FINAL : public LUnaryMathOperation<0> {
|
| public:
|
| explicit LMathCos(LOperand* value) : LUnaryMathOperation<0>(value) { }
|
| DECLARE_CONCRETE_INSTRUCTION(MathCos, "math-cos")
|
| };
|
|
|
|
|
| -class LMathExp: public LUnaryMathOperation<4> {
|
| +class LMathExp V8_FINAL : public LUnaryMathOperation<4> {
|
| public:
|
| LMathExp(LOperand* value,
|
| LOperand* double_temp1,
|
| @@ -1859,14 +1879,14 @@ class LMathExp: public LUnaryMathOperation<4> {
|
| };
|
|
|
|
|
| -class LMathFloor: public LUnaryMathOperation<0> {
|
| +class LMathFloor V8_FINAL : public LUnaryMathOperation<0> {
|
| public:
|
| explicit LMathFloor(LOperand* value) : LUnaryMathOperation<0>(value) { }
|
| DECLARE_CONCRETE_INSTRUCTION(MathFloor, "math-floor")
|
| };
|
|
|
|
|
| -class LMathFloorOfDiv : public LTemplateInstruction<1, 2, 1> {
|
| +class LMathFloorOfDiv V8_FINAL : public LTemplateInstruction<1, 2, 1> {
|
| public:
|
| LMathFloorOfDiv(LOperand* left,
|
| LOperand* right,
|
| @@ -1885,14 +1905,14 @@ class LMathFloorOfDiv : public LTemplateInstruction<1, 2, 1> {
|
| };
|
|
|
|
|
| -class LMathLog: public LUnaryMathOperation<0> {
|
| +class LMathLog V8_FINAL : public LUnaryMathOperation<0> {
|
| public:
|
| explicit LMathLog(LOperand* value) : LUnaryMathOperation<0>(value) { }
|
| DECLARE_CONCRETE_INSTRUCTION(MathLog, "math-log")
|
| };
|
|
|
|
|
| -class LMathMinMax: public LTemplateInstruction<1, 2, 0> {
|
| +class LMathMinMax V8_FINAL : public LTemplateInstruction<1, 2, 0> {
|
| public:
|
| LMathMinMax(LOperand* left, LOperand* right) {
|
| inputs_[0] = left;
|
| @@ -1907,14 +1927,14 @@ class LMathMinMax: public LTemplateInstruction<1, 2, 0> {
|
| };
|
|
|
|
|
| -class LMathPowHalf: public LUnaryMathOperation<0> {
|
| +class LMathPowHalf V8_FINAL : public LUnaryMathOperation<0> {
|
| public:
|
| explicit LMathPowHalf(LOperand* value) : LUnaryMathOperation<0>(value) { }
|
| DECLARE_CONCRETE_INSTRUCTION(MathPowHalf, "math-pow-half")
|
| };
|
|
|
|
|
| -class LMathRound: public LUnaryMathOperation<1> {
|
| +class LMathRound V8_FINAL : public LUnaryMathOperation<1> {
|
| public:
|
| LMathRound(LOperand* value, LOperand* temp1)
|
| : LUnaryMathOperation<1>(value) {
|
| @@ -1927,28 +1947,28 @@ class LMathRound: public LUnaryMathOperation<1> {
|
| };
|
|
|
|
|
| -class LMathSin: public LUnaryMathOperation<0> {
|
| +class LMathSin V8_FINAL : public LUnaryMathOperation<0> {
|
| public:
|
| explicit LMathSin(LOperand* value) : LUnaryMathOperation<0>(value) { }
|
| DECLARE_CONCRETE_INSTRUCTION(MathSin, "math-sin")
|
| };
|
|
|
|
|
| -class LMathSqrt: public LUnaryMathOperation<0> {
|
| +class LMathSqrt V8_FINAL : public LUnaryMathOperation<0> {
|
| public:
|
| explicit LMathSqrt(LOperand* value) : LUnaryMathOperation<0>(value) { }
|
| DECLARE_CONCRETE_INSTRUCTION(MathSqrt, "math-sqrt")
|
| };
|
|
|
|
|
| -class LMathTan: public LUnaryMathOperation<0> {
|
| +class LMathTan V8_FINAL : public LUnaryMathOperation<0> {
|
| public:
|
| explicit LMathTan(LOperand* value) : LUnaryMathOperation<0>(value) { }
|
| DECLARE_CONCRETE_INSTRUCTION(MathTan, "math-tan")
|
| };
|
|
|
|
|
| -class LModI: public LTemplateInstruction<1, 2, 0> {
|
| +class LModI V8_FINAL : public LTemplateInstruction<1, 2, 0> {
|
| public:
|
| LModI(LOperand* left, LOperand* right) {
|
| inputs_[0] = left;
|
| @@ -1963,7 +1983,7 @@ class LModI: public LTemplateInstruction<1, 2, 0> {
|
| };
|
|
|
|
|
| -class LMulConstIS: public LTemplateInstruction<1, 2, 0> {
|
| +class LMulConstIS V8_FINAL : public LTemplateInstruction<1, 2, 0> {
|
| public:
|
| LMulConstIS(LOperand* left, LConstantOperand* right) {
|
| inputs_[0] = left;
|
| @@ -1978,7 +1998,7 @@ class LMulConstIS: public LTemplateInstruction<1, 2, 0> {
|
| };
|
|
|
|
|
| -class LMulI: public LTemplateInstruction<1, 2, 0> {
|
| +class LMulI V8_FINAL : public LTemplateInstruction<1, 2, 0> {
|
| public:
|
| LMulI(LOperand* left, LOperand* right) {
|
| inputs_[0] = left;
|
| @@ -1993,7 +2013,7 @@ class LMulI: public LTemplateInstruction<1, 2, 0> {
|
| };
|
|
|
|
|
| -class LMulS: public LTemplateInstruction<1, 2, 0> {
|
| +class LMulS V8_FINAL : public LTemplateInstruction<1, 2, 0> {
|
| public:
|
| LMulS(LOperand* left, LOperand* right) {
|
| inputs_[0] = left;
|
| @@ -2008,7 +2028,7 @@ class LMulS: public LTemplateInstruction<1, 2, 0> {
|
| };
|
|
|
|
|
| -class LNumberTagD: public LTemplateInstruction<1, 1, 2> {
|
| +class LNumberTagD V8_FINAL : public LTemplateInstruction<1, 1, 2> {
|
| public:
|
| LNumberTagD(LOperand* value, LOperand* temp1, LOperand* temp2) {
|
| inputs_[0] = value;
|
| @@ -2025,7 +2045,7 @@ class LNumberTagD: public LTemplateInstruction<1, 1, 2> {
|
| };
|
|
|
|
|
| -class LNumberTagU: public LTemplateInstruction<1, 1, 2> {
|
| +class LNumberTagU V8_FINAL : public LTemplateInstruction<1, 1, 2> {
|
| public:
|
| explicit LNumberTagU(LOperand* value,
|
| LOperand* temp1,
|
| @@ -2043,7 +2063,7 @@ class LNumberTagU: public LTemplateInstruction<1, 1, 2> {
|
| };
|
|
|
|
|
| -class LNumberUntagD: public LTemplateInstruction<1, 1, 1> {
|
| +class LNumberUntagD V8_FINAL : public LTemplateInstruction<1, 1, 1> {
|
| public:
|
| LNumberUntagD(LOperand* value, LOperand* temp) {
|
| inputs_[0] = value;
|
| @@ -2059,14 +2079,14 @@ class LNumberUntagD: public LTemplateInstruction<1, 1, 1> {
|
| };
|
|
|
|
|
| -class LParameter: public LTemplateInstruction<1, 0, 0> {
|
| +class LParameter V8_FINAL : public LTemplateInstruction<1, 0, 0> {
|
| public:
|
| virtual bool HasInterestingComment(LCodeGen* gen) const { return false; }
|
| DECLARE_CONCRETE_INSTRUCTION(Parameter, "parameter")
|
| };
|
|
|
|
|
| -class LPower: public LTemplateInstruction<1, 2, 0> {
|
| +class LPower V8_FINAL : public LTemplateInstruction<1, 2, 0> {
|
| public:
|
| LPower(LOperand* left, LOperand* right) {
|
| inputs_[0] = left;
|
| @@ -2081,7 +2101,7 @@ class LPower: public LTemplateInstruction<1, 2, 0> {
|
| };
|
|
|
|
|
| -class LPushArgument: public LTemplateInstruction<0, 1, 0> {
|
| +class LPushArgument V8_FINAL : public LTemplateInstruction<0, 1, 0> {
|
| public:
|
| explicit LPushArgument(LOperand* value) {
|
| inputs_[0] = value;
|
| @@ -2093,7 +2113,7 @@ class LPushArgument: public LTemplateInstruction<0, 1, 0> {
|
| };
|
|
|
|
|
| -class LRandom: public LTemplateInstruction<1, 1, 0> {
|
| +class LRandom V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LRandom(LOperand* global_object) {
|
| inputs_[0] = global_object;
|
| @@ -2106,14 +2126,14 @@ class LRandom: public LTemplateInstruction<1, 1, 0> {
|
| };
|
|
|
|
|
| -class LRegExpLiteral: public LTemplateInstruction<1, 0, 0> {
|
| +class LRegExpLiteral V8_FINAL : public LTemplateInstruction<1, 0, 0> {
|
| public:
|
| DECLARE_CONCRETE_INSTRUCTION(RegExpLiteral, "regexp-literal")
|
| DECLARE_HYDROGEN_ACCESSOR(RegExpLiteral)
|
| };
|
|
|
|
|
| -class LReturn: public LTemplateInstruction<0, 2, 0> {
|
| +class LReturn V8_FINAL : public LTemplateInstruction<0, 2, 0> {
|
| public:
|
| LReturn(LOperand* value, LOperand* parameter_count) {
|
| inputs_[0] = value;
|
| @@ -2135,7 +2155,7 @@ class LReturn: public LTemplateInstruction<0, 2, 0> {
|
| };
|
|
|
|
|
| -class LSeqStringSetChar: public LTemplateInstruction<1, 3, 1> {
|
| +class LSeqStringSetChar V8_FINAL : public LTemplateInstruction<1, 3, 1> {
|
| public:
|
| LSeqStringSetChar(String::Encoding encoding,
|
| LOperand* string,
|
| @@ -2162,7 +2182,7 @@ class LSeqStringSetChar: public LTemplateInstruction<1, 3, 1> {
|
| };
|
|
|
|
|
| -class LSmiTag: public LTemplateInstruction<1, 1, 0> {
|
| +class LSmiTag V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LSmiTag(LOperand* value) {
|
| inputs_[0] = value;
|
| @@ -2174,7 +2194,7 @@ class LSmiTag: public LTemplateInstruction<1, 1, 0> {
|
| };
|
|
|
|
|
| -class LSmiUntag: public LTemplateInstruction<1, 1, 0> {
|
| +class LSmiUntag V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| LSmiUntag(LOperand* value, bool needs_check)
|
| : needs_check_(needs_check) {
|
| @@ -2191,7 +2211,7 @@ class LSmiUntag: public LTemplateInstruction<1, 1, 0> {
|
| };
|
|
|
|
|
| -class LStackCheck: public LTemplateInstruction<0, 0, 0> {
|
| +class LStackCheck V8_FINAL : public LTemplateInstruction<0, 0, 0> {
|
| public:
|
| DECLARE_CONCRETE_INSTRUCTION(StackCheck, "stack-check")
|
| DECLARE_HYDROGEN_ACCESSOR(StackCheck)
|
| @@ -2204,7 +2224,7 @@ class LStackCheck: public LTemplateInstruction<0, 0, 0> {
|
|
|
|
|
| template<int T>
|
| -class LStoreKeyed: public LTemplateInstruction<0, 3, T> {
|
| +class LStoreKeyed V8_FINAL : public LTemplateInstruction<0, 3, T> {
|
| public:
|
| LStoreKeyed(LOperand* elements, LOperand* key, LOperand* value) {
|
| this->inputs_[0] = elements;
|
| @@ -2225,7 +2245,7 @@ class LStoreKeyed: public LTemplateInstruction<0, 3, T> {
|
| }
|
| uint32_t additional_index() const { return this->hydrogen()->index_offset(); }
|
|
|
| - void PrintDataTo(StringStream* stream) {
|
| + void PrintDataTo(StringStream* stream) V8_OVERRIDE {
|
| this->elements()->PrintTo(stream);
|
| stream->Add("[");
|
| this->key()->PrintTo(stream);
|
| @@ -2248,7 +2268,7 @@ class LStoreKeyed: public LTemplateInstruction<0, 3, T> {
|
| };
|
|
|
|
|
| -class LStoreKeyedExternal: public LStoreKeyed<1> {
|
| +class LStoreKeyedExternal V8_FINAL : public LStoreKeyed<1> {
|
| public:
|
| LStoreKeyedExternal(LOperand* elements, LOperand* key, LOperand* value,
|
| LOperand* temp) :
|
| @@ -2262,7 +2282,7 @@ class LStoreKeyedExternal: public LStoreKeyed<1> {
|
| };
|
|
|
|
|
| -class LStoreKeyedFixed: public LStoreKeyed<1> {
|
| +class LStoreKeyedFixed V8_FINAL : public LStoreKeyed<1> {
|
| public:
|
| LStoreKeyedFixed(LOperand* elements, LOperand* key, LOperand* value,
|
| LOperand* temp) :
|
| @@ -2276,7 +2296,7 @@ class LStoreKeyedFixed: public LStoreKeyed<1> {
|
| };
|
|
|
|
|
| -class LStoreKeyedFixedDouble: public LStoreKeyed<1> {
|
| +class LStoreKeyedFixedDouble V8_FINAL : public LStoreKeyed<1> {
|
| public:
|
| LStoreKeyedFixedDouble(LOperand* elements, LOperand* key, LOperand* value,
|
| LOperand* temp) :
|
| @@ -2291,7 +2311,7 @@ class LStoreKeyedFixedDouble: public LStoreKeyed<1> {
|
| };
|
|
|
|
|
| -class LStoreKeyedGeneric: public LTemplateInstruction<0, 3, 0> {
|
| +class LStoreKeyedGeneric V8_FINAL : public LTemplateInstruction<0, 3, 0> {
|
| public:
|
| LStoreKeyedGeneric(LOperand* obj, LOperand* key, LOperand* value) {
|
| inputs_[0] = obj;
|
| @@ -2306,13 +2326,13 @@ class LStoreKeyedGeneric: public LTemplateInstruction<0, 3, 0> {
|
| DECLARE_CONCRETE_INSTRUCTION(StoreKeyedGeneric, "store-keyed-generic")
|
| DECLARE_HYDROGEN_ACCESSOR(StoreKeyedGeneric)
|
|
|
| - virtual void PrintDataTo(StringStream* stream);
|
| + virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
|
|
|
| StrictModeFlag strict_mode_flag() { return hydrogen()->strict_mode_flag(); }
|
| };
|
|
|
|
|
| -class LStoreNamedField: public LTemplateInstruction<0, 2, 2> {
|
| +class LStoreNamedField V8_FINAL : public LTemplateInstruction<0, 2, 2> {
|
| public:
|
| LStoreNamedField(LOperand* object, LOperand* value,
|
| LOperand* temp0, LOperand* temp1) {
|
| @@ -2330,7 +2350,7 @@ class LStoreNamedField: public LTemplateInstruction<0, 2, 2> {
|
| DECLARE_CONCRETE_INSTRUCTION(StoreNamedField, "store-named-field")
|
| DECLARE_HYDROGEN_ACCESSOR(StoreNamedField)
|
|
|
| - virtual void PrintDataTo(StringStream* stream);
|
| + virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
|
|
|
| Handle<Map> transition() const { return hydrogen()->transition_map(); }
|
| Representation representation() const {
|
| @@ -2339,7 +2359,7 @@ class LStoreNamedField: public LTemplateInstruction<0, 2, 2> {
|
| };
|
|
|
|
|
| -class LStoreNamedGeneric: public LTemplateInstruction<0, 2, 0> {
|
| +class LStoreNamedGeneric V8_FINAL: public LTemplateInstruction<0, 2, 0> {
|
| public:
|
| LStoreNamedGeneric(LOperand* object, LOperand* value) {
|
| inputs_[0] = object;
|
| @@ -2352,14 +2372,14 @@ class LStoreNamedGeneric: public LTemplateInstruction<0, 2, 0> {
|
| DECLARE_CONCRETE_INSTRUCTION(StoreNamedGeneric, "store-named-generic")
|
| DECLARE_HYDROGEN_ACCESSOR(StoreNamedGeneric)
|
|
|
| - virtual void PrintDataTo(StringStream* stream);
|
| + virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
|
|
|
| Handle<Object> name() const { return hydrogen()->name(); }
|
| StrictModeFlag strict_mode_flag() { return hydrogen()->strict_mode_flag(); }
|
| };
|
|
|
|
|
| -class LStringAdd: public LTemplateInstruction<1, 2, 0> {
|
| +class LStringAdd V8_FINAL : public LTemplateInstruction<1, 2, 0> {
|
| public:
|
| LStringAdd(LOperand* left, LOperand* right) {
|
| inputs_[0] = left;
|
| @@ -2375,7 +2395,7 @@ class LStringAdd: public LTemplateInstruction<1, 2, 0> {
|
|
|
|
|
|
|
| -class LStringCharCodeAt: public LTemplateInstruction<1, 2, 0> {
|
| +class LStringCharCodeAt V8_FINAL : public LTemplateInstruction<1, 2, 0> {
|
| public:
|
| LStringCharCodeAt(LOperand* string, LOperand* index) {
|
| inputs_[0] = string;
|
| @@ -2390,7 +2410,7 @@ class LStringCharCodeAt: public LTemplateInstruction<1, 2, 0> {
|
| };
|
|
|
|
|
| -class LStringCharFromCode: public LTemplateInstruction<1, 1, 0> {
|
| +class LStringCharFromCode V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LStringCharFromCode(LOperand* char_code) {
|
| inputs_[0] = char_code;
|
| @@ -2403,7 +2423,7 @@ class LStringCharFromCode: public LTemplateInstruction<1, 1, 0> {
|
| };
|
|
|
|
|
| -class LStringCompareAndBranch: public LControlInstruction<2, 0> {
|
| +class LStringCompareAndBranch V8_FINAL : public LControlInstruction<2, 0> {
|
| public:
|
| LStringCompareAndBranch(LOperand* left, LOperand* right) {
|
| inputs_[0] = left;
|
| @@ -2419,12 +2439,12 @@ class LStringCompareAndBranch: public LControlInstruction<2, 0> {
|
|
|
| Token::Value op() const { return hydrogen()->token(); }
|
|
|
| - virtual void PrintDataTo(StringStream* stream);
|
| + virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
|
| };
|
|
|
|
|
| // Truncating conversion from a tagged value to an int32.
|
| -class LTaggedToI: public LTemplateInstruction<1, 1, 2> {
|
| +class LTaggedToI V8_FINAL : public LTemplateInstruction<1, 1, 2> {
|
| public:
|
| explicit LTaggedToI(LOperand* value, LOperand* temp1, LOperand* temp2) {
|
| inputs_[0] = value;
|
| @@ -2443,7 +2463,7 @@ class LTaggedToI: public LTemplateInstruction<1, 1, 2> {
|
| };
|
|
|
|
|
| -class LShiftI: public LTemplateInstruction<1, 2, 0> {
|
| +class LShiftI V8_FINAL : public LTemplateInstruction<1, 2, 0> {
|
| public:
|
| LShiftI(Token::Value op, LOperand* left, LOperand* right, bool can_deopt)
|
| : op_(op), can_deopt_(can_deopt) {
|
| @@ -2484,7 +2504,7 @@ class LStoreCodeEntry V8_FINAL: public LTemplateInstruction<0, 2, 1> {
|
| };
|
|
|
|
|
| -class LStoreContextSlot: public LTemplateInstruction<0, 2, 1> {
|
| +class LStoreContextSlot V8_FINAL : public LTemplateInstruction<0, 2, 1> {
|
| public:
|
| LStoreContextSlot(LOperand* context, LOperand* value, LOperand* temp) {
|
| inputs_[0] = context;
|
| @@ -2501,11 +2521,11 @@ class LStoreContextSlot: public LTemplateInstruction<0, 2, 1> {
|
|
|
| int slot_index() { return hydrogen()->slot_index(); }
|
|
|
| - virtual void PrintDataTo(StringStream* stream);
|
| + virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
|
| };
|
|
|
|
|
| -class LStoreGlobalCell: public LTemplateInstruction<0, 1, 2> {
|
| +class LStoreGlobalCell V8_FINAL : public LTemplateInstruction<0, 1, 2> {
|
| public:
|
| LStoreGlobalCell(LOperand* value, LOperand* temp1, LOperand* temp2) {
|
| inputs_[0] = value;
|
| @@ -2522,7 +2542,7 @@ class LStoreGlobalCell: public LTemplateInstruction<0, 1, 2> {
|
| };
|
|
|
|
|
| -class LStoreGlobalGeneric: public LTemplateInstruction<0, 2, 0> {
|
| +class LStoreGlobalGeneric V8_FINAL : public LTemplateInstruction<0, 2, 0> {
|
| public:
|
| LStoreGlobalGeneric(LOperand* global_object, LOperand* value) {
|
| inputs_[0] = global_object;
|
| @@ -2540,7 +2560,7 @@ class LStoreGlobalGeneric: public LTemplateInstruction<0, 2, 0> {
|
| };
|
|
|
|
|
| -class LSubI: public LTemplateInstruction<1, 2, 0> {
|
| +class LSubI V8_FINAL : public LTemplateInstruction<1, 2, 0> {
|
| public:
|
| LSubI(LOperand* left, LOperand* right) {
|
| inputs_[0] = left;
|
| @@ -2570,14 +2590,14 @@ class LSubS: public LTemplateInstruction<1, 2, 0> {
|
| };
|
|
|
|
|
| -class LThisFunction: public LTemplateInstruction<1, 0, 0> {
|
| +class LThisFunction V8_FINAL : public LTemplateInstruction<1, 0, 0> {
|
| public:
|
| DECLARE_CONCRETE_INSTRUCTION(ThisFunction, "this-function")
|
| DECLARE_HYDROGEN_ACCESSOR(ThisFunction)
|
| };
|
|
|
|
|
| -class LThrow: public LTemplateInstruction<0, 1, 0> {
|
| +class LThrow V8_FINAL : public LTemplateInstruction<0, 1, 0> {
|
| public:
|
| explicit LThrow(LOperand* value) {
|
| inputs_[0] = value;
|
| @@ -2589,7 +2609,7 @@ class LThrow: public LTemplateInstruction<0, 1, 0> {
|
| };
|
|
|
|
|
| -class LToFastProperties: public LTemplateInstruction<1, 1, 0> {
|
| +class LToFastProperties V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LToFastProperties(LOperand* value) {
|
| inputs_[0] = value;
|
| @@ -2602,7 +2622,7 @@ class LToFastProperties: public LTemplateInstruction<1, 1, 0> {
|
| };
|
|
|
|
|
| -class LTransitionElementsKind: public LTemplateInstruction<0, 1, 2> {
|
| +class LTransitionElementsKind V8_FINAL : public LTemplateInstruction<0, 1, 2> {
|
| public:
|
| LTransitionElementsKind(LOperand* object,
|
| LOperand* temp1,
|
| @@ -2620,16 +2640,18 @@ class LTransitionElementsKind: public LTemplateInstruction<0, 1, 2> {
|
| "transition-elements-kind")
|
| DECLARE_HYDROGEN_ACCESSOR(TransitionElementsKind)
|
|
|
| - virtual void PrintDataTo(StringStream* stream);
|
| + virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
|
|
|
| - Handle<Map> original_map() { return hydrogen()->original_map(); }
|
| - Handle<Map> transitioned_map() { return hydrogen()->transitioned_map(); }
|
| - ElementsKind from_kind() { return hydrogen()->from_kind(); }
|
| - ElementsKind to_kind() { return hydrogen()->to_kind(); }
|
| + Handle<Map> original_map() const { return hydrogen()->original_map(); }
|
| + Handle<Map> transitioned_map() const {
|
| + return hydrogen()->transitioned_map();
|
| + }
|
| + ElementsKind from_kind() const { return hydrogen()->from_kind(); }
|
| + ElementsKind to_kind() const { return hydrogen()->to_kind(); }
|
| };
|
|
|
|
|
| -class LTrapAllocationMemento : public LTemplateInstruction<0, 1, 2> {
|
| +class LTrapAllocationMemento V8_FINAL : public LTemplateInstruction<0, 1, 2> {
|
| public:
|
| LTrapAllocationMemento(LOperand* object, LOperand* temp1, LOperand* temp2) {
|
| inputs_[0] = object;
|
| @@ -2645,7 +2667,8 @@ class LTrapAllocationMemento : public LTemplateInstruction<0, 1, 2> {
|
| };
|
|
|
|
|
| -class LTruncateDoubleToIntOrSmi: public LTemplateInstruction<1, 1, 2> {
|
| +class LTruncateDoubleToIntOrSmi V8_FINAL
|
| + : public LTemplateInstruction<1, 1, 2> {
|
| public:
|
| LTruncateDoubleToIntOrSmi(LOperand* value, LOperand* temp1, LOperand* temp2) {
|
| inputs_[0] = value;
|
| @@ -2665,7 +2688,7 @@ class LTruncateDoubleToIntOrSmi: public LTemplateInstruction<1, 1, 2> {
|
| };
|
|
|
|
|
| -class LTypeof: public LTemplateInstruction<1, 1, 0> {
|
| +class LTypeof V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LTypeof(LOperand* value) {
|
| inputs_[0] = value;
|
| @@ -2677,7 +2700,7 @@ class LTypeof: public LTemplateInstruction<1, 1, 0> {
|
| };
|
|
|
|
|
| -class LTypeofIsAndBranch: public LControlInstruction<1, 2> {
|
| +class LTypeofIsAndBranch V8_FINAL : public LControlInstruction<1, 2> {
|
| public:
|
| LTypeofIsAndBranch(LOperand* value, LOperand* temp1, LOperand* temp2) {
|
| inputs_[0] = value;
|
| @@ -2692,13 +2715,13 @@ class LTypeofIsAndBranch: public LControlInstruction<1, 2> {
|
| DECLARE_CONCRETE_INSTRUCTION(TypeofIsAndBranch, "typeof-is-and-branch")
|
| DECLARE_HYDROGEN_ACCESSOR(TypeofIsAndBranch)
|
|
|
| - Handle<String> type_literal() { return hydrogen()->type_literal(); }
|
| + Handle<String> type_literal() const { return hydrogen()->type_literal(); }
|
|
|
| - virtual void PrintDataTo(StringStream* stream);
|
| + virtual void PrintDataTo(StringStream* stream) V8_OVERRIDE;
|
| };
|
|
|
|
|
| -class LUint32ToDouble: public LTemplateInstruction<1, 1, 0> {
|
| +class LUint32ToDouble V8_FINAL : public LTemplateInstruction<1, 1, 0> {
|
| public:
|
| explicit LUint32ToDouble(LOperand* value) {
|
| inputs_[0] = value;
|
| @@ -2710,7 +2733,7 @@ class LUint32ToDouble: public LTemplateInstruction<1, 1, 0> {
|
| };
|
|
|
|
|
| -class LValueOf: public LTemplateInstruction<1, 1, 1> {
|
| +class LValueOf V8_FINAL : public LTemplateInstruction<1, 1, 1> {
|
| public:
|
| LValueOf(LOperand* value, LOperand* temp) {
|
| inputs_[0] = value;
|
| @@ -2725,7 +2748,7 @@ class LValueOf: public LTemplateInstruction<1, 1, 1> {
|
| };
|
|
|
|
|
| -class LCheckMapValue: public LTemplateInstruction<0, 2, 1> {
|
| +class LCheckMapValue V8_FINAL : public LTemplateInstruction<0, 2, 1> {
|
| public:
|
| LCheckMapValue(LOperand* value, LOperand* map, LOperand* temp) {
|
| inputs_[0] = value;
|
| @@ -2741,7 +2764,7 @@ class LCheckMapValue: public LTemplateInstruction<0, 2, 1> {
|
| };
|
|
|
|
|
| -class LLoadFieldByIndex: public LTemplateInstruction<1, 2, 0> {
|
| +class LLoadFieldByIndex V8_FINAL : public LTemplateInstruction<1, 2, 0> {
|
| public:
|
| LLoadFieldByIndex(LOperand* object, LOperand* index) {
|
| inputs_[0] = object;
|
| @@ -2755,7 +2778,7 @@ class LLoadFieldByIndex: public LTemplateInstruction<1, 2, 0> {
|
| };
|
|
|
|
|
| -class LWrapReceiver: public LTemplateInstruction<1, 2, 1> {
|
| +class LWrapReceiver V8_FINAL : public LTemplateInstruction<1, 2, 1> {
|
| public:
|
| LWrapReceiver(LOperand* receiver, LOperand* function, LOperand* temp) {
|
| inputs_[0] = receiver;
|
| @@ -2772,7 +2795,7 @@ class LWrapReceiver: public LTemplateInstruction<1, 2, 1> {
|
|
|
|
|
| class LChunkBuilder;
|
| -class LPlatformChunk: public LChunk {
|
| +class LPlatformChunk V8_FINAL : public LChunk {
|
| public:
|
| LPlatformChunk(CompilationInfo* info, HGraph* graph)
|
| : LChunk(info, graph) { }
|
| @@ -2782,7 +2805,7 @@ class LPlatformChunk: public LChunk {
|
| };
|
|
|
|
|
| -class LChunkBuilder BASE_EMBEDDED {
|
| +class LChunkBuilder V8_FINAL BASE_EMBEDDED {
|
| public:
|
| LChunkBuilder(CompilationInfo* info, HGraph* graph, LAllocator* allocator)
|
| : chunk_(NULL),
|
|
|