OLD | NEW |
1 // Copyright 2012 the V8 project authors. All rights reserved. | 1 // Copyright 2012 the V8 project authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #ifndef V8_CODE_STUBS_H_ | 5 #ifndef V8_CODE_STUBS_H_ |
6 #define V8_CODE_STUBS_H_ | 6 #define V8_CODE_STUBS_H_ |
7 | 7 |
8 #include "src/allocation.h" | 8 #include "src/allocation.h" |
9 #include "src/assembler.h" | 9 #include "src/assembler.h" |
10 #include "src/code-stub-assembler.h" | 10 #include "src/code-stub-assembler.h" |
(...skipping 13 matching lines...) Expand all Loading... |
24 V(ArrayConstructor) \ | 24 V(ArrayConstructor) \ |
25 V(BinaryOpICWithAllocationSite) \ | 25 V(BinaryOpICWithAllocationSite) \ |
26 V(CallApiCallback) \ | 26 V(CallApiCallback) \ |
27 V(CallApiGetter) \ | 27 V(CallApiGetter) \ |
28 V(CallConstruct) \ | 28 V(CallConstruct) \ |
29 V(CallIC) \ | 29 V(CallIC) \ |
30 V(CEntry) \ | 30 V(CEntry) \ |
31 V(CompareIC) \ | 31 V(CompareIC) \ |
32 V(DoubleToI) \ | 32 V(DoubleToI) \ |
33 V(FunctionPrototype) \ | 33 V(FunctionPrototype) \ |
34 V(InstanceOf) \ | |
35 V(InternalArrayConstructor) \ | 34 V(InternalArrayConstructor) \ |
36 V(JSEntry) \ | 35 V(JSEntry) \ |
37 V(KeyedLoadICTrampoline) \ | 36 V(KeyedLoadICTrampoline) \ |
38 V(LoadICTrampoline) \ | 37 V(LoadICTrampoline) \ |
39 V(CallICTrampoline) \ | 38 V(CallICTrampoline) \ |
40 V(LoadIndexedString) \ | 39 V(LoadIndexedString) \ |
41 V(MathPow) \ | 40 V(MathPow) \ |
42 V(ProfileEntryHook) \ | 41 V(ProfileEntryHook) \ |
43 V(RecordWrite) \ | 42 V(RecordWrite) \ |
44 V(RegExpExec) \ | 43 V(RegExpExec) \ |
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
114 V(ShiftRight) \ | 113 V(ShiftRight) \ |
115 V(ShiftRightLogical) \ | 114 V(ShiftRightLogical) \ |
116 V(ShiftLeft) \ | 115 V(ShiftLeft) \ |
117 V(BitwiseAnd) \ | 116 V(BitwiseAnd) \ |
118 V(BitwiseOr) \ | 117 V(BitwiseOr) \ |
119 V(BitwiseXor) \ | 118 V(BitwiseXor) \ |
120 V(Inc) \ | 119 V(Inc) \ |
121 V(InternalArrayNoArgumentConstructor) \ | 120 V(InternalArrayNoArgumentConstructor) \ |
122 V(Dec) \ | 121 V(Dec) \ |
123 V(FastCloneShallowObject) \ | 122 V(FastCloneShallowObject) \ |
| 123 V(InstanceOf) \ |
124 V(LessThan) \ | 124 V(LessThan) \ |
125 V(LessThanOrEqual) \ | 125 V(LessThanOrEqual) \ |
126 V(GreaterThan) \ | 126 V(GreaterThan) \ |
127 V(GreaterThanOrEqual) \ | 127 V(GreaterThanOrEqual) \ |
128 V(Equal) \ | 128 V(Equal) \ |
129 V(NotEqual) \ | 129 V(NotEqual) \ |
130 V(StrictEqual) \ | 130 V(StrictEqual) \ |
131 V(StrictNotEqual) \ | 131 V(StrictNotEqual) \ |
132 V(StringEqual) \ | 132 V(StringEqual) \ |
133 V(StringNotEqual) \ | 133 V(StringNotEqual) \ |
(...skipping 640 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
774 }; | 774 }; |
775 | 775 |
776 class DecStub final : public TurboFanCodeStub { | 776 class DecStub final : public TurboFanCodeStub { |
777 public: | 777 public: |
778 explicit DecStub(Isolate* isolate) : TurboFanCodeStub(isolate) {} | 778 explicit DecStub(Isolate* isolate) : TurboFanCodeStub(isolate) {} |
779 | 779 |
780 DEFINE_CALL_INTERFACE_DESCRIPTOR(CountOp); | 780 DEFINE_CALL_INTERFACE_DESCRIPTOR(CountOp); |
781 DEFINE_TURBOFAN_CODE_STUB(Dec, TurboFanCodeStub); | 781 DEFINE_TURBOFAN_CODE_STUB(Dec, TurboFanCodeStub); |
782 }; | 782 }; |
783 | 783 |
| 784 class InstanceOfStub final : public TurboFanCodeStub { |
| 785 public: |
| 786 explicit InstanceOfStub(Isolate* isolate) : TurboFanCodeStub(isolate) {} |
| 787 |
| 788 private: |
| 789 DEFINE_CALL_INTERFACE_DESCRIPTOR(Compare); |
| 790 DEFINE_TURBOFAN_CODE_STUB(InstanceOf, TurboFanCodeStub); |
| 791 }; |
| 792 |
784 class LessThanStub final : public TurboFanCodeStub { | 793 class LessThanStub final : public TurboFanCodeStub { |
785 public: | 794 public: |
786 explicit LessThanStub(Isolate* isolate) : TurboFanCodeStub(isolate) {} | 795 explicit LessThanStub(Isolate* isolate) : TurboFanCodeStub(isolate) {} |
787 | 796 |
788 DEFINE_CALL_INTERFACE_DESCRIPTOR(Compare); | 797 DEFINE_CALL_INTERFACE_DESCRIPTOR(Compare); |
789 DEFINE_TURBOFAN_CODE_STUB(LessThan, TurboFanCodeStub); | 798 DEFINE_TURBOFAN_CODE_STUB(LessThan, TurboFanCodeStub); |
790 }; | 799 }; |
791 | 800 |
792 class LessThanOrEqualStub final : public TurboFanCodeStub { | 801 class LessThanOrEqualStub final : public TurboFanCodeStub { |
793 public: | 802 public: |
(...skipping 437 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1231 | 1240 |
1232 class FastArrayPushStub : public HydrogenCodeStub { | 1241 class FastArrayPushStub : public HydrogenCodeStub { |
1233 public: | 1242 public: |
1234 explicit FastArrayPushStub(Isolate* isolate) : HydrogenCodeStub(isolate) {} | 1243 explicit FastArrayPushStub(Isolate* isolate) : HydrogenCodeStub(isolate) {} |
1235 | 1244 |
1236 private: | 1245 private: |
1237 DEFINE_CALL_INTERFACE_DESCRIPTOR(FastArrayPush); | 1246 DEFINE_CALL_INTERFACE_DESCRIPTOR(FastArrayPush); |
1238 DEFINE_HYDROGEN_CODE_STUB(FastArrayPush, HydrogenCodeStub); | 1247 DEFINE_HYDROGEN_CODE_STUB(FastArrayPush, HydrogenCodeStub); |
1239 }; | 1248 }; |
1240 | 1249 |
1241 class InstanceOfStub final : public PlatformCodeStub { | |
1242 public: | |
1243 explicit InstanceOfStub(Isolate* isolate, bool es6_instanceof = false) | |
1244 : PlatformCodeStub(isolate) { | |
1245 minor_key_ = IsES6InstanceOfBits::encode(es6_instanceof); | |
1246 } | |
1247 | |
1248 bool is_es6_instanceof() const { | |
1249 return IsES6InstanceOfBits::decode(minor_key_); | |
1250 } | |
1251 | |
1252 private: | |
1253 class IsES6InstanceOfBits : public BitField<bool, 0, 1> {}; | |
1254 | |
1255 DEFINE_CALL_INTERFACE_DESCRIPTOR(InstanceOf); | |
1256 DEFINE_PLATFORM_CODE_STUB(InstanceOf, PlatformCodeStub); | |
1257 }; | |
1258 | |
1259 | 1250 |
1260 enum AllocationSiteOverrideMode { | 1251 enum AllocationSiteOverrideMode { |
1261 DONT_OVERRIDE, | 1252 DONT_OVERRIDE, |
1262 DISABLE_ALLOCATION_SITES, | 1253 DISABLE_ALLOCATION_SITES, |
1263 LAST_ALLOCATION_SITE_OVERRIDE_MODE = DISABLE_ALLOCATION_SITES | 1254 LAST_ALLOCATION_SITE_OVERRIDE_MODE = DISABLE_ALLOCATION_SITES |
1264 }; | 1255 }; |
1265 | 1256 |
1266 | 1257 |
1267 class ArrayConstructorStub: public PlatformCodeStub { | 1258 class ArrayConstructorStub: public PlatformCodeStub { |
1268 public: | 1259 public: |
(...skipping 1977 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
3246 #undef DEFINE_HYDROGEN_CODE_STUB | 3237 #undef DEFINE_HYDROGEN_CODE_STUB |
3247 #undef DEFINE_CODE_STUB | 3238 #undef DEFINE_CODE_STUB |
3248 #undef DEFINE_CODE_STUB_BASE | 3239 #undef DEFINE_CODE_STUB_BASE |
3249 | 3240 |
3250 extern Representation RepresentationFromType(Type* type); | 3241 extern Representation RepresentationFromType(Type* type); |
3251 | 3242 |
3252 } // namespace internal | 3243 } // namespace internal |
3253 } // namespace v8 | 3244 } // namespace v8 |
3254 | 3245 |
3255 #endif // V8_CODE_STUBS_H_ | 3246 #endif // V8_CODE_STUBS_H_ |
OLD | NEW |