OLD | NEW |
1 // Copyright 2014 the V8 project authors. All rights reserved. | 1 // Copyright 2014 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 #include "src/v8.h" | 5 #include "src/v8.h" |
6 | 6 |
7 #include "src/bootstrapper.h" | 7 #include "src/bootstrapper.h" |
8 #include "src/code-factory.h" | 8 #include "src/code-factory.h" |
9 #include "src/ic/ic.h" | 9 #include "src/ic/ic.h" |
10 | 10 |
(...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 return Callable( | 63 return Callable( |
64 CallIC::initialize_stub_in_optimized_code(isolate, argc, call_type), | 64 CallIC::initialize_stub_in_optimized_code(isolate, argc, call_type), |
65 CallFunctionWithFeedbackAndVectorDescriptor(isolate)); | 65 CallFunctionWithFeedbackAndVectorDescriptor(isolate)); |
66 } | 66 } |
67 | 67 |
68 | 68 |
69 // static | 69 // static |
70 Callable CodeFactory::StoreIC(Isolate* isolate, LanguageMode language_mode) { | 70 Callable CodeFactory::StoreIC(Isolate* isolate, LanguageMode language_mode) { |
71 return Callable( | 71 return Callable( |
72 StoreIC::initialize_stub(isolate, language_mode, UNINITIALIZED), | 72 StoreIC::initialize_stub(isolate, language_mode, UNINITIALIZED), |
73 StoreDescriptor(isolate)); | 73 FLAG_vector_stores ? VectorStoreICTrampolineDescriptor(isolate) |
| 74 : StoreDescriptor(isolate)); |
74 } | 75 } |
75 | 76 |
76 | 77 |
| 78 // static |
| 79 Callable CodeFactory::StoreICInOptimizedCode( |
| 80 Isolate* isolate, LanguageMode language_mode, |
| 81 InlineCacheState initialization_state) { |
| 82 CallInterfaceDescriptor descriptor = |
| 83 FLAG_vector_stores && initialization_state != MEGAMORPHIC |
| 84 ? VectorStoreICDescriptor(isolate) |
| 85 : StoreDescriptor(isolate); |
| 86 return Callable(StoreIC::initialize_stub_in_optimized_code( |
| 87 isolate, language_mode, initialization_state), |
| 88 descriptor); |
| 89 } |
| 90 |
| 91 |
77 // static | 92 // static |
78 Callable CodeFactory::KeyedStoreIC(Isolate* isolate, | 93 Callable CodeFactory::KeyedStoreIC(Isolate* isolate, |
79 LanguageMode language_mode) { | 94 LanguageMode language_mode) { |
80 return Callable( | 95 return Callable( |
81 KeyedStoreIC::initialize_stub(isolate, language_mode, UNINITIALIZED), | 96 KeyedStoreIC::initialize_stub(isolate, language_mode, UNINITIALIZED), |
82 StoreDescriptor(isolate)); | 97 FLAG_vector_stores ? VectorStoreICTrampolineDescriptor(isolate) |
| 98 : StoreDescriptor(isolate)); |
83 } | 99 } |
84 | 100 |
85 | 101 |
86 // static | 102 // static |
87 Callable CodeFactory::KeyedStoreICInOptimizedCode( | 103 Callable CodeFactory::KeyedStoreICInOptimizedCode( |
88 Isolate* isolate, LanguageMode language_mode, | 104 Isolate* isolate, LanguageMode language_mode, |
89 InlineCacheState initialization_state) { | 105 InlineCacheState initialization_state) { |
90 return Callable(KeyedStoreIC::initialize_stub(isolate, language_mode, | 106 CallInterfaceDescriptor descriptor = |
91 initialization_state), | 107 FLAG_vector_stores && initialization_state != MEGAMORPHIC |
92 StoreDescriptor(isolate)); | 108 ? VectorStoreICDescriptor(isolate) |
| 109 : StoreDescriptor(isolate); |
| 110 return Callable(KeyedStoreIC::initialize_stub_in_optimized_code( |
| 111 isolate, language_mode, initialization_state), |
| 112 descriptor); |
93 } | 113 } |
94 | 114 |
95 | 115 |
96 // static | 116 // static |
97 Callable CodeFactory::CompareIC(Isolate* isolate, Token::Value op, | 117 Callable CodeFactory::CompareIC(Isolate* isolate, Token::Value op, |
98 Strength strength) { | 118 Strength strength) { |
99 Handle<Code> code = CompareIC::GetUninitialized(isolate, op, strength); | 119 Handle<Code> code = CompareIC::GetUninitialized(isolate, op, strength); |
100 return Callable(code, CompareDescriptor(isolate)); | 120 return Callable(code, CompareDescriptor(isolate)); |
101 } | 121 } |
102 | 122 |
(...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
181 | 201 |
182 // static | 202 // static |
183 Callable CodeFactory::CallFunction(Isolate* isolate, int argc, | 203 Callable CodeFactory::CallFunction(Isolate* isolate, int argc, |
184 CallFunctionFlags flags) { | 204 CallFunctionFlags flags) { |
185 CallFunctionStub stub(isolate, argc, flags); | 205 CallFunctionStub stub(isolate, argc, flags); |
186 return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor()); | 206 return Callable(stub.GetCode(), stub.GetCallInterfaceDescriptor()); |
187 } | 207 } |
188 | 208 |
189 } // namespace internal | 209 } // namespace internal |
190 } // namespace v8 | 210 } // namespace v8 |
OLD | NEW |