| 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/codegen.h" | 10 #include "src/codegen.h" |
| (...skipping 2928 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2939 StoreModeBits::encode(store_mode)); | 2939 StoreModeBits::encode(store_mode)); |
| 2940 } | 2940 } |
| 2941 | 2941 |
| 2942 ElementsKind from_kind() const { return FromBits::decode(sub_minor_key()); } | 2942 ElementsKind from_kind() const { return FromBits::decode(sub_minor_key()); } |
| 2943 ElementsKind to_kind() const { return ToBits::decode(sub_minor_key()); } | 2943 ElementsKind to_kind() const { return ToBits::decode(sub_minor_key()); } |
| 2944 bool is_jsarray() const { return IsJSArrayBits::decode(sub_minor_key()); } | 2944 bool is_jsarray() const { return IsJSArrayBits::decode(sub_minor_key()); } |
| 2945 KeyedAccessStoreMode store_mode() const { | 2945 KeyedAccessStoreMode store_mode() const { |
| 2946 return StoreModeBits::decode(sub_minor_key()); | 2946 return StoreModeBits::decode(sub_minor_key()); |
| 2947 } | 2947 } |
| 2948 | 2948 |
| 2949 // Parameters accessed via CodeStubGraphBuilder::GetParameter() | |
| 2950 enum ParameterIndices { | |
| 2951 kValueIndex, | |
| 2952 kMapIndex, | |
| 2953 kKeyIndex, | |
| 2954 kObjectIndex, | |
| 2955 kParameterCount | |
| 2956 }; | |
| 2957 | |
| 2958 static const Register ValueRegister() { | |
| 2959 return ElementTransitionAndStoreDescriptor::ValueRegister(); | |
| 2960 } | |
| 2961 static const Register MapRegister() { | |
| 2962 return ElementTransitionAndStoreDescriptor::MapRegister(); | |
| 2963 } | |
| 2964 static const Register KeyRegister() { | |
| 2965 return ElementTransitionAndStoreDescriptor::NameRegister(); | |
| 2966 } | |
| 2967 static const Register ObjectRegister() { | |
| 2968 return ElementTransitionAndStoreDescriptor::ReceiverRegister(); | |
| 2969 } | |
| 2970 | |
| 2971 private: | 2949 private: |
| 2972 class FromBits : public BitField<ElementsKind, 0, 8> {}; | 2950 class FromBits : public BitField<ElementsKind, 0, 8> {}; |
| 2973 class ToBits : public BitField<ElementsKind, 8, 8> {}; | 2951 class ToBits : public BitField<ElementsKind, 8, 8> {}; |
| 2974 class IsJSArrayBits : public BitField<bool, 16, 1> {}; | 2952 class IsJSArrayBits : public BitField<bool, 16, 1> {}; |
| 2975 class StoreModeBits : public BitField<KeyedAccessStoreMode, 17, 4> {}; | 2953 class StoreModeBits : public BitField<KeyedAccessStoreMode, 17, 4> {}; |
| 2976 | 2954 |
| 2977 DEFINE_CALL_INTERFACE_DESCRIPTOR(ElementTransitionAndStore); | 2955 DEFINE_CALL_INTERFACE_DESCRIPTOR(StoreTransition); |
| 2978 DEFINE_HYDROGEN_CODE_STUB(ElementsTransitionAndStore, HydrogenCodeStub); | 2956 DEFINE_HYDROGEN_CODE_STUB(ElementsTransitionAndStore, HydrogenCodeStub); |
| 2979 }; | 2957 }; |
| 2980 | 2958 |
| 2981 | 2959 |
| 2982 class StoreArrayLiteralElementStub : public PlatformCodeStub { | 2960 class StoreArrayLiteralElementStub : public PlatformCodeStub { |
| 2983 public: | 2961 public: |
| 2984 explicit StoreArrayLiteralElementStub(Isolate* isolate) | 2962 explicit StoreArrayLiteralElementStub(Isolate* isolate) |
| 2985 : PlatformCodeStub(isolate) { } | 2963 : PlatformCodeStub(isolate) { } |
| 2986 | 2964 |
| 2987 DEFINE_CALL_INTERFACE_DESCRIPTOR(StoreArrayLiteralElement); | 2965 DEFINE_CALL_INTERFACE_DESCRIPTOR(StoreArrayLiteralElement); |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3083 #undef DEFINE_PLATFORM_CODE_STUB | 3061 #undef DEFINE_PLATFORM_CODE_STUB |
| 3084 #undef DEFINE_HANDLER_CODE_STUB | 3062 #undef DEFINE_HANDLER_CODE_STUB |
| 3085 #undef DEFINE_HYDROGEN_CODE_STUB | 3063 #undef DEFINE_HYDROGEN_CODE_STUB |
| 3086 #undef DEFINE_CODE_STUB | 3064 #undef DEFINE_CODE_STUB |
| 3087 #undef DEFINE_CODE_STUB_BASE | 3065 #undef DEFINE_CODE_STUB_BASE |
| 3088 | 3066 |
| 3089 extern Representation RepresentationFromType(Type* type); | 3067 extern Representation RepresentationFromType(Type* type); |
| 3090 } } // namespace v8::internal | 3068 } } // namespace v8::internal |
| 3091 | 3069 |
| 3092 #endif // V8_CODE_STUBS_H_ | 3070 #endif // V8_CODE_STUBS_H_ |
| OLD | NEW |