| Index: src/code-stubs.h
|
| diff --git a/src/code-stubs.h b/src/code-stubs.h
|
| index bb9ff78f47f0d42af112f1c9468ebb92ddca9873..4e49680652fbd5518b983a47447d8be85d1db89c 100644
|
| --- a/src/code-stubs.h
|
| +++ b/src/code-stubs.h
|
| @@ -42,8 +42,6 @@ namespace internal {
|
| V(CallFunction) \
|
| V(CallConstruct) \
|
| V(BinaryOpIC) \
|
| - V(BinaryOpICWithAllocationSite) \
|
| - V(BinaryOpWithAllocationSite) \
|
| V(StringAdd) \
|
| V(NewStringAdd) \
|
| V(SubString) \
|
| @@ -1064,7 +1062,7 @@ class KeyedArrayCallStub: public HICStub {
|
| };
|
|
|
|
|
| -class BinaryOpICStub : public HydrogenCodeStub {
|
| +class BinaryOpICStub V8_FINAL : public HydrogenCodeStub {
|
| public:
|
| BinaryOpICStub(Token::Value op, OverwriteMode mode)
|
| : HydrogenCodeStub(UNINITIALIZED), state_(op, mode) {}
|
| @@ -1082,15 +1080,15 @@ class BinaryOpICStub : public HydrogenCodeStub {
|
| return Code::BINARY_OP_IC;
|
| }
|
|
|
| - virtual InlineCacheState GetICState() V8_FINAL V8_OVERRIDE {
|
| + virtual InlineCacheState GetICState() V8_OVERRIDE {
|
| return state_.GetICState();
|
| }
|
|
|
| - virtual ExtraICState GetExtraICState() V8_FINAL V8_OVERRIDE {
|
| + virtual ExtraICState GetExtraICState() V8_OVERRIDE {
|
| return state_.GetExtraICState();
|
| }
|
|
|
| - virtual void VerifyPlatformFeatures(Isolate* isolate) V8_FINAL V8_OVERRIDE {
|
| + virtual void VerifyPlatformFeatures(Isolate* isolate) V8_OVERRIDE {
|
| ASSERT(CpuFeatures::VerifyCrossCompiling(SSE2));
|
| }
|
|
|
| @@ -1098,12 +1096,7 @@ class BinaryOpICStub : public HydrogenCodeStub {
|
|
|
| const BinaryOpIC::State& state() const { return state_; }
|
|
|
| - virtual void PrintState(StringStream* stream) V8_FINAL V8_OVERRIDE;
|
| -
|
| - virtual Major MajorKey() V8_OVERRIDE { return BinaryOpIC; }
|
| - virtual int NotMissMinorKey() V8_FINAL V8_OVERRIDE {
|
| - return GetExtraICState();
|
| - }
|
| + virtual void PrintState(StringStream* stream) V8_OVERRIDE;
|
|
|
| // Parameters accessed via CodeStubGraphBuilder::GetParameter()
|
| static const int kLeft = 0;
|
| @@ -1113,86 +1106,12 @@ class BinaryOpICStub : public HydrogenCodeStub {
|
| static void GenerateAheadOfTime(Isolate* isolate,
|
| const BinaryOpIC::State& state);
|
|
|
| - BinaryOpIC::State state_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(BinaryOpICStub);
|
| -};
|
| -
|
| -
|
| -// TODO(bmeurer): Merge this into the BinaryOpICStub once we have proper tail
|
| -// call support for stubs in Hydrogen.
|
| -class BinaryOpICWithAllocationSiteStub V8_FINAL : public PlatformCodeStub {
|
| - public:
|
| - explicit BinaryOpICWithAllocationSiteStub(const BinaryOpIC::State& state)
|
| - : state_(state) {}
|
| -
|
| - static void GenerateAheadOfTime(Isolate* isolate);
|
| -
|
| - Handle<Code> GetCodeCopyFromTemplate(Isolate* isolate,
|
| - Handle<AllocationSite> allocation_site) {
|
| - Handle<Code> code = CodeStub::GetCodeCopyFromTemplate(isolate);
|
| - // Replace the placeholder oddball with the actual allocation site.
|
| - code->ReplaceNthObject(1, isolate->heap()->oddball_map(), *allocation_site);
|
| - return code;
|
| - }
|
| -
|
| - virtual Code::Kind GetCodeKind() const V8_OVERRIDE {
|
| - return Code::BINARY_OP_IC;
|
| - }
|
| -
|
| - virtual InlineCacheState GetICState() V8_OVERRIDE {
|
| - return state_.GetICState();
|
| - }
|
| -
|
| - virtual ExtraICState GetExtraICState() V8_OVERRIDE {
|
| - return state_.GetExtraICState();
|
| - }
|
| -
|
| - virtual void VerifyPlatformFeatures(Isolate* isolate) V8_OVERRIDE {
|
| - ASSERT(CpuFeatures::VerifyCrossCompiling(SSE2));
|
| - }
|
| -
|
| - virtual void Generate(MacroAssembler* masm) V8_OVERRIDE;
|
| -
|
| - virtual void PrintState(StringStream* stream) V8_OVERRIDE;
|
| -
|
| - virtual Major MajorKey() V8_OVERRIDE { return BinaryOpICWithAllocationSite; }
|
| - virtual int MinorKey() V8_OVERRIDE { return GetExtraICState(); }
|
| -
|
| - private:
|
| - static void GenerateAheadOfTime(Isolate* isolate,
|
| - const BinaryOpIC::State& state);
|
| + virtual Major MajorKey() V8_OVERRIDE { return BinaryOpIC; }
|
| + virtual int NotMissMinorKey() V8_OVERRIDE { return GetExtraICState(); }
|
|
|
| BinaryOpIC::State state_;
|
|
|
| - DISALLOW_COPY_AND_ASSIGN(BinaryOpICWithAllocationSiteStub);
|
| -};
|
| -
|
| -
|
| -class BinaryOpWithAllocationSiteStub V8_FINAL : public BinaryOpICStub {
|
| - public:
|
| - explicit BinaryOpWithAllocationSiteStub(const BinaryOpIC::State& state)
|
| - : BinaryOpICStub(state) {}
|
| -
|
| - virtual void InitializeInterfaceDescriptor(
|
| - Isolate* isolate, CodeStubInterfaceDescriptor* descriptor) V8_OVERRIDE;
|
| -
|
| - static void InstallDescriptors(Isolate* isolate);
|
| -
|
| - virtual Code::Kind GetCodeKind() const V8_FINAL V8_OVERRIDE {
|
| - return Code::STUB;
|
| - }
|
| -
|
| - virtual Handle<Code> GenerateCode(Isolate* isolate) V8_OVERRIDE;
|
| -
|
| - virtual Major MajorKey() V8_OVERRIDE {
|
| - return BinaryOpWithAllocationSite;
|
| - }
|
| -
|
| - // Parameters accessed via CodeStubGraphBuilder::GetParameter()
|
| - static const int kAllocationSite = 0;
|
| - static const int kLeft = 1;
|
| - static const int kRight = 2;
|
| + DISALLOW_COPY_AND_ASSIGN(BinaryOpICStub);
|
| };
|
|
|
|
|
| @@ -1211,10 +1130,6 @@ class NewStringAddStub V8_FINAL : public HydrogenCodeStub {
|
| return PretenureFlagBits::decode(bit_field_);
|
| }
|
|
|
| - virtual void VerifyPlatformFeatures(Isolate* isolate) V8_OVERRIDE {
|
| - ASSERT(CpuFeatures::VerifyCrossCompiling(SSE2));
|
| - }
|
| -
|
| virtual Handle<Code> GenerateCode(Isolate* isolate) V8_OVERRIDE;
|
|
|
| virtual void InitializeInterfaceDescriptor(
|
|
|