Chromium Code Reviews| Index: src/code-stubs.h |
| diff --git a/src/code-stubs.h b/src/code-stubs.h |
| index f110f21f451638e6f11d08d1fb792eaea8f5a1ae..4057e870473f73db6ba1f32852e294171c76fc96 100644 |
| --- a/src/code-stubs.h |
| +++ b/src/code-stubs.h |
| @@ -385,59 +385,27 @@ class CodeStub BASE_EMBEDDED { |
| Handle<Code> GenerateCode() override; \ |
| DEFINE_CODE_STUB(NAME, SUPER) |
| -#define DEFINE_TURBOFAN_CODE_STUB(NAME, SUPER) \ |
| - public: \ |
| - void GenerateAssembly(CodeStubAssembler* assembler) const override; \ |
| - DEFINE_CODE_STUB(NAME, SUPER) |
| - |
| -#define DEFINE_TURBOFAN_BINARY_OP_CODE_STUB(NAME, SUPER) \ |
|
Jakob Kummerow
2016/11/15 09:51:50
This was dead code.
|
| - public: \ |
| - static compiler::Node* Generate(CodeStubAssembler* assembler, \ |
| - compiler::Node* left, compiler::Node* right, \ |
| - compiler::Node* context); \ |
| - void GenerateAssembly(CodeStubAssembler* assembler) const override { \ |
| - assembler->Return(Generate(assembler, assembler->Parameter(0), \ |
| - assembler->Parameter(1), \ |
| - assembler->Parameter(2))); \ |
| - } \ |
| +#define DEFINE_TURBOFAN_CODE_STUB(NAME, SUPER) \ |
| + public: \ |
| + void GenerateAssembly(compiler::CodeAssemblerState* state) const override; \ |
| DEFINE_CODE_STUB(NAME, SUPER) |
| -#define DEFINE_TURBOFAN_BINARY_OP_CODE_STUB_WITH_FEEDBACK(NAME, SUPER) \ |
| - public: \ |
| - static compiler::Node* Generate( \ |
| - CodeStubAssembler* assembler, compiler::Node* left, \ |
| - compiler::Node* right, compiler::Node* slot_id, \ |
| - compiler::Node* type_feedback_vector, compiler::Node* context); \ |
| - void GenerateAssembly(CodeStubAssembler* assembler) const override { \ |
|
Jakob Kummerow
2016/11/15 09:51:50
Moved this implementation to the .cc file.
|
| - assembler->Return( \ |
| - Generate(assembler, assembler->Parameter(0), assembler->Parameter(1), \ |
| - assembler->Parameter(2), assembler->Parameter(3), \ |
| - assembler->Parameter(4))); \ |
| - } \ |
| +#define DEFINE_TURBOFAN_BINARY_OP_CODE_STUB_WITH_FEEDBACK(NAME, SUPER) \ |
| + public: \ |
| + static compiler::Node* Generate( \ |
| + CodeStubAssembler* assembler, compiler::Node* left, \ |
| + compiler::Node* right, compiler::Node* slot_id, \ |
| + compiler::Node* type_feedback_vector, compiler::Node* context); \ |
| + void GenerateAssembly(compiler::CodeAssemblerState* state) const override; \ |
| DEFINE_CODE_STUB(NAME, SUPER) |
| -#define DEFINE_TURBOFAN_UNARY_OP_CODE_STUB(NAME, SUPER) \ |
|
Jakob Kummerow
2016/11/15 09:51:50
This was dead code.
|
| - public: \ |
| - static compiler::Node* Generate(CodeStubAssembler* assembler, \ |
| - compiler::Node* value, \ |
| - compiler::Node* context); \ |
| - void GenerateAssembly(CodeStubAssembler* assembler) const override { \ |
| - assembler->Return(Generate(assembler, assembler->Parameter(0), \ |
| - assembler->Parameter(1))); \ |
| - } \ |
| - DEFINE_CODE_STUB(NAME, SUPER) |
| - |
| -#define DEFINE_TURBOFAN_UNARY_OP_CODE_STUB_WITH_FEEDBACK(NAME, SUPER) \ |
| - public: \ |
| - static compiler::Node* Generate( \ |
| - CodeStubAssembler* assembler, compiler::Node* value, \ |
| - compiler::Node* context, compiler::Node* type_feedback_vector, \ |
| - compiler::Node* slot_id); \ |
| - void GenerateAssembly(CodeStubAssembler* assembler) const override { \ |
|
Jakob Kummerow
2016/11/15 09:51:50
Moved this implementation to the .cc file.
|
| - assembler->Return( \ |
| - Generate(assembler, assembler->Parameter(0), assembler->Parameter(1), \ |
| - assembler->Parameter(2), assembler->Parameter(3))); \ |
| - } \ |
| +#define DEFINE_TURBOFAN_UNARY_OP_CODE_STUB_WITH_FEEDBACK(NAME, SUPER) \ |
| + public: \ |
| + static compiler::Node* Generate( \ |
| + CodeStubAssembler* assembler, compiler::Node* value, \ |
| + compiler::Node* context, compiler::Node* type_feedback_vector, \ |
| + compiler::Node* slot_id); \ |
| + void GenerateAssembly(compiler::CodeAssemblerState* state) const override; \ |
| DEFINE_CODE_STUB(NAME, SUPER) |
| #define DEFINE_HANDLER_CODE_STUB(NAME, SUPER) \ |
| @@ -637,7 +605,7 @@ class TurboFanCodeStub : public CodeStub { |
| protected: |
| explicit TurboFanCodeStub(Isolate* isolate) : CodeStub(isolate) {} |
| - virtual void GenerateAssembly(CodeStubAssembler* assembler) const = 0; |
| + virtual void GenerateAssembly(compiler::CodeAssemblerState* state) const = 0; |
| private: |
| DEFINE_CODE_STUB_BASE(TurboFanCodeStub, CodeStub); |
| @@ -793,7 +761,7 @@ class StoreInterceptorStub : public TurboFanCodeStub { |
| public: |
| explicit StoreInterceptorStub(Isolate* isolate) : TurboFanCodeStub(isolate) {} |
| - void GenerateAssembly(CodeStubAssembler* assember) const override; |
| + void GenerateAssembly(compiler::CodeAssemblerState* state) const override; |
|
Igor Sheludko
2016/11/15 13:06:35
While you are here, what if we remove this and ...
Jakob Kummerow
2016/11/15 13:40:31
Done.
|
| Code::Kind GetCodeKind() const override { return Code::HANDLER; } |
| ExtraICState GetExtraICState() const override { return Code::STORE_IC; } |
| @@ -1974,7 +1942,7 @@ class LoadICTrampolineStub : public TurboFanCodeStub { |
| public: |
| explicit LoadICTrampolineStub(Isolate* isolate) : TurboFanCodeStub(isolate) {} |
| - void GenerateAssembly(CodeStubAssembler* assembler) const override; |
| + void GenerateAssembly(compiler::CodeAssemblerState* state) const override; |
| Code::Kind GetCodeKind() const override { return Code::LOAD_IC; } |
| @@ -1990,7 +1958,7 @@ class LoadGlobalICTrampolineStub : public TurboFanCodeStub { |
| minor_key_ = state.GetExtraICState(); |
| } |
| - void GenerateAssembly(CodeStubAssembler* assembler) const override; |
| + void GenerateAssembly(compiler::CodeAssemblerState* state) const override; |
| Code::Kind GetCodeKind() const override { return Code::LOAD_GLOBAL_IC; } |
| @@ -2007,7 +1975,7 @@ class KeyedLoadICTrampolineTFStub : public LoadICTrampolineStub { |
| explicit KeyedLoadICTrampolineTFStub(Isolate* isolate) |
| : LoadICTrampolineStub(isolate) {} |
| - void GenerateAssembly(CodeStubAssembler* assembler) const override; |
| + void GenerateAssembly(compiler::CodeAssemblerState* state) const override; |
| Code::Kind GetCodeKind() const override { return Code::KEYED_LOAD_IC; } |
| @@ -2021,7 +1989,7 @@ class StoreICTrampolineStub : public TurboFanCodeStub { |
| minor_key_ = state.GetExtraICState(); |
| } |
| - void GenerateAssembly(CodeStubAssembler* assembler) const override; |
| + void GenerateAssembly(compiler::CodeAssemblerState* state) const override; |
| Code::Kind GetCodeKind() const override { return Code::STORE_IC; } |
| @@ -2062,7 +2030,7 @@ class KeyedStoreICTrampolineTFStub : public StoreICTrampolineStub { |
| KeyedStoreICTrampolineTFStub(Isolate* isolate, const StoreICState& state) |
| : StoreICTrampolineStub(isolate, state) {} |
| - void GenerateAssembly(CodeStubAssembler* assembler) const override; |
| + void GenerateAssembly(compiler::CodeAssemblerState* state) const override; |
| Code::Kind GetCodeKind() const override { return Code::KEYED_STORE_IC; } |
| @@ -2095,7 +2063,7 @@ class LoadICStub : public TurboFanCodeStub { |
| public: |
| explicit LoadICStub(Isolate* isolate) : TurboFanCodeStub(isolate) {} |
| - void GenerateAssembly(CodeStubAssembler* assembler) const override; |
| + void GenerateAssembly(compiler::CodeAssemblerState* state) const override; |
| Code::Kind GetCodeKind() const override { return Code::LOAD_IC; } |
| @@ -2110,7 +2078,7 @@ class LoadGlobalICStub : public TurboFanCodeStub { |
| minor_key_ = state.GetExtraICState(); |
| } |
| - void GenerateAssembly(CodeStubAssembler* assembler) const override; |
| + void GenerateAssembly(compiler::CodeAssemblerState* state) const override; |
| Code::Kind GetCodeKind() const override { return Code::LOAD_GLOBAL_IC; } |
| @@ -2126,7 +2094,7 @@ class KeyedLoadICTFStub : public LoadICStub { |
| public: |
| explicit KeyedLoadICTFStub(Isolate* isolate) : LoadICStub(isolate) {} |
| - void GenerateAssembly(CodeStubAssembler* assembler) const override; |
| + void GenerateAssembly(compiler::CodeAssemblerState* state) const override; |
| Code::Kind GetCodeKind() const override { return Code::KEYED_LOAD_IC; } |
| @@ -2140,7 +2108,7 @@ class StoreICStub : public TurboFanCodeStub { |
| minor_key_ = state.GetExtraICState(); |
| } |
| - void GenerateAssembly(CodeStubAssembler* assembler) const override; |
| + void GenerateAssembly(compiler::CodeAssemblerState* state) const override; |
| Code::Kind GetCodeKind() const override { return Code::STORE_IC; } |
| ExtraICState GetExtraICState() const final { |
| @@ -2178,7 +2146,7 @@ class KeyedStoreICTFStub : public StoreICStub { |
| KeyedStoreICTFStub(Isolate* isolate, const StoreICState& state) |
| : StoreICStub(isolate, state) {} |
| - void GenerateAssembly(CodeStubAssembler* assembler) const override; |
| + void GenerateAssembly(compiler::CodeAssemblerState* state) const override; |
| Code::Kind GetCodeKind() const override { return Code::KEYED_STORE_IC; } |
| @@ -2387,23 +2355,23 @@ class AllocateHeapNumberStub : public TurboFanCodeStub { |
| : TurboFanCodeStub(isolate) {} |
| void InitializeDescriptor(CodeStubDescriptor* descriptor) override; |
| - void GenerateAssembly(CodeStubAssembler* assembler) const override; |
| + void GenerateAssembly(compiler::CodeAssemblerState* state) const override; |
| DEFINE_CALL_INTERFACE_DESCRIPTOR(AllocateHeapNumber); |
| DEFINE_CODE_STUB(AllocateHeapNumber, TurboFanCodeStub); |
| }; |
| -#define SIMD128_ALLOC_STUB(TYPE, Type, type, lane_count, lane_type) \ |
| - class Allocate##Type##Stub : public TurboFanCodeStub { \ |
| - public: \ |
| - explicit Allocate##Type##Stub(Isolate* isolate) \ |
| - : TurboFanCodeStub(isolate) {} \ |
| - \ |
| - void InitializeDescriptor(CodeStubDescriptor* descriptor) override; \ |
| - void GenerateAssembly(CodeStubAssembler* assembler) const override; \ |
| - \ |
| - DEFINE_CALL_INTERFACE_DESCRIPTOR(Allocate##Type); \ |
| - DEFINE_CODE_STUB(Allocate##Type, TurboFanCodeStub); \ |
| +#define SIMD128_ALLOC_STUB(TYPE, Type, type, lane_count, lane_type) \ |
| + class Allocate##Type##Stub : public TurboFanCodeStub { \ |
| + public: \ |
| + explicit Allocate##Type##Stub(Isolate* isolate) \ |
| + : TurboFanCodeStub(isolate) {} \ |
| + \ |
| + void InitializeDescriptor(CodeStubDescriptor* descriptor) override; \ |
| + void GenerateAssembly(compiler::CodeAssemblerState* state) const override; \ |
| + \ |
| + DEFINE_CALL_INTERFACE_DESCRIPTOR(Allocate##Type); \ |
| + DEFINE_CODE_STUB(Allocate##Type, TurboFanCodeStub); \ |
| }; |
| SIMD128_TYPES(SIMD128_ALLOC_STUB) |
| #undef SIMD128_ALLOC_STUB |
| @@ -2702,13 +2670,7 @@ class SubStringStub : public TurboFanCodeStub { |
| compiler::Node* string, compiler::Node* from, |
| compiler::Node* to, compiler::Node* context); |
| - void GenerateAssembly(CodeStubAssembler* assembler) const override { |
| - assembler->Return(Generate(assembler, |
| - assembler->Parameter(Descriptor::kString), |
| - assembler->Parameter(Descriptor::kFrom), |
| - assembler->Parameter(Descriptor::kTo), |
| - assembler->Parameter(Descriptor::kContext))); |
| - } |
| + void GenerateAssembly(compiler::CodeAssemblerState* state) const override; |
| DEFINE_CALL_INTERFACE_DESCRIPTOR(SubString); |
| DEFINE_CODE_STUB(SubString, TurboFanCodeStub); |