| Index: src/code-stubs.h
|
| diff --git a/src/code-stubs.h b/src/code-stubs.h
|
| index 7a6ad6ad6e83c27b225ce90ba2a5a5f1bfebf7db..af9c41f71e635c2ea3ba49627528ce88f3a6e566 100644
|
| --- a/src/code-stubs.h
|
| +++ b/src/code-stubs.h
|
| @@ -82,7 +82,9 @@ namespace internal {
|
| V(ToBoolean) \
|
| V(TransitionElementsKind) \
|
| V(VectorKeyedLoad) \
|
| + V(VectorRawKeyedLoad) \
|
| V(VectorLoad) \
|
| + V(VectorRawLoad) \
|
| /* IC Handler stubs */ \
|
| V(LoadConstant) \
|
| V(LoadField) \
|
| @@ -1954,6 +1956,26 @@ class VectorLoadStub : public HydrogenCodeStub {
|
| };
|
|
|
|
|
| +class VectorRawLoadStub : public PlatformCodeStub {
|
| + public:
|
| + explicit VectorRawLoadStub(Isolate* isolate, const LoadICState& state)
|
| + : PlatformCodeStub(isolate) {
|
| + minor_key_ = state.GetExtraICState();
|
| + }
|
| +
|
| + virtual Code::Kind GetCodeKind() const OVERRIDE { return Code::LOAD_IC; }
|
| +
|
| + virtual InlineCacheState GetICState() const FINAL OVERRIDE { return DEFAULT; }
|
| +
|
| + virtual ExtraICState GetExtraICState() const FINAL OVERRIDE {
|
| + return static_cast<ExtraICState>(minor_key_);
|
| + }
|
| +
|
| + DEFINE_CALL_INTERFACE_DESCRIPTOR(VectorLoadIC);
|
| + DEFINE_PLATFORM_CODE_STUB(VectorRawLoad, PlatformCodeStub);
|
| +};
|
| +
|
| +
|
| class VectorKeyedLoadStub : public VectorLoadStub {
|
| public:
|
| explicit VectorKeyedLoadStub(Isolate* isolate)
|
| @@ -1968,6 +1990,22 @@ class VectorKeyedLoadStub : public VectorLoadStub {
|
| };
|
|
|
|
|
| +class VectorRawKeyedLoadStub : public PlatformCodeStub {
|
| + public:
|
| + explicit VectorRawKeyedLoadStub(Isolate* isolate)
|
| + : PlatformCodeStub(isolate) {}
|
| +
|
| + virtual Code::Kind GetCodeKind() const OVERRIDE {
|
| + return Code::KEYED_LOAD_IC;
|
| + }
|
| +
|
| + virtual InlineCacheState GetICState() const FINAL OVERRIDE { return DEFAULT; }
|
| +
|
| + DEFINE_CALL_INTERFACE_DESCRIPTOR(VectorLoadIC);
|
| + DEFINE_PLATFORM_CODE_STUB(VectorRawKeyedLoad, PlatformCodeStub);
|
| +};
|
| +
|
| +
|
| class DoubleToIStub : public PlatformCodeStub {
|
| public:
|
| DoubleToIStub(Isolate* isolate, Register source, Register destination,
|
|
|