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 |