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/compiler/js-operator.h" | 5 #include "src/compiler/js-operator.h" |
6 | 6 |
7 #include <limits> | 7 #include <limits> |
8 | 8 |
9 #include "src/base/lazy-instance.h" | 9 #include "src/base/lazy-instance.h" |
10 #include "src/compiler/opcodes.h" | 10 #include "src/compiler/opcodes.h" |
(...skipping 306 matching lines...) Loading... |
317 return new (zone()) Operator1<int>( // -- | 317 return new (zone()) Operator1<int>( // -- |
318 IrOpcode::kJSCallConstruct, Operator::kNoProperties, // opcode | 318 IrOpcode::kJSCallConstruct, Operator::kNoProperties, // opcode |
319 "JSCallConstruct", // name | 319 "JSCallConstruct", // name |
320 arguments, 1, 1, 1, 1, 2, // counts | 320 arguments, 1, 1, 1, 1, 2, // counts |
321 arguments); // parameter | 321 arguments); // parameter |
322 } | 322 } |
323 | 323 |
324 | 324 |
325 const Operator* JSOperatorBuilder::LoadNamed(const Unique<Name>& name, | 325 const Operator* JSOperatorBuilder::LoadNamed(const Unique<Name>& name, |
326 const VectorSlotPair& feedback, | 326 const VectorSlotPair& feedback, |
327 ContextualMode contextual_mode) { | 327 ContextualMode contextual_mode, |
328 LoadNamedParameters parameters(name, feedback, contextual_mode); | 328 PropertyICMode load_ic) { |
| 329 LoadNamedParameters parameters(name, feedback, contextual_mode, load_ic); |
329 return new (zone()) Operator1<LoadNamedParameters>( // -- | 330 return new (zone()) Operator1<LoadNamedParameters>( // -- |
330 IrOpcode::kJSLoadNamed, Operator::kNoProperties, // opcode | 331 IrOpcode::kJSLoadNamed, Operator::kNoProperties, // opcode |
331 "JSLoadNamed", // name | 332 "JSLoadNamed", // name |
332 1, 1, 1, 1, 1, 2, // counts | 333 1, 1, 1, 1, 1, 2, // counts |
333 parameters); // parameter | 334 parameters); // parameter |
334 } | 335 } |
335 | 336 |
336 | 337 |
337 const Operator* JSOperatorBuilder::LoadProperty( | 338 const Operator* JSOperatorBuilder::LoadProperty( |
338 const VectorSlotPair& feedback) { | 339 const VectorSlotPair& feedback) { |
(...skipping 11 matching lines...) Loading... |
350 return &cache_.kStorePropertyStrictOperator; | 351 return &cache_.kStorePropertyStrictOperator; |
351 } else { | 352 } else { |
352 return &cache_.kStorePropertySloppyOperator; | 353 return &cache_.kStorePropertySloppyOperator; |
353 } | 354 } |
354 UNREACHABLE(); | 355 UNREACHABLE(); |
355 return nullptr; | 356 return nullptr; |
356 } | 357 } |
357 | 358 |
358 | 359 |
359 const Operator* JSOperatorBuilder::StoreNamed(LanguageMode language_mode, | 360 const Operator* JSOperatorBuilder::StoreNamed(LanguageMode language_mode, |
360 const Unique<Name>& name) { | 361 const Unique<Name>& name, |
361 StoreNamedParameters parameters(language_mode, name); | 362 PropertyICMode store_ic) { |
| 363 StoreNamedParameters parameters(language_mode, name, store_ic); |
362 return new (zone()) Operator1<StoreNamedParameters>( // -- | 364 return new (zone()) Operator1<StoreNamedParameters>( // -- |
363 IrOpcode::kJSStoreNamed, Operator::kNoProperties, // opcode | 365 IrOpcode::kJSStoreNamed, Operator::kNoProperties, // opcode |
364 "JSStoreNamed", // name | 366 "JSStoreNamed", // name |
365 2, 1, 1, 0, 1, 2, // counts | 367 2, 1, 1, 0, 1, 2, // counts |
366 parameters); // parameter | 368 parameters); // parameter |
367 } | 369 } |
368 | 370 |
369 | 371 |
370 const Operator* JSOperatorBuilder::DeleteProperty(LanguageMode language_mode) { | 372 const Operator* JSOperatorBuilder::DeleteProperty(LanguageMode language_mode) { |
371 return new (zone()) Operator1<LanguageMode>( // -- | 373 return new (zone()) Operator1<LanguageMode>( // -- |
(...skipping 32 matching lines...) Loading... |
404 return new (zone()) Operator1<Unique<String>>( // -- | 406 return new (zone()) Operator1<Unique<String>>( // -- |
405 IrOpcode::kJSCreateCatchContext, Operator::kNoProperties, // opcode | 407 IrOpcode::kJSCreateCatchContext, Operator::kNoProperties, // opcode |
406 "JSCreateCatchContext", // name | 408 "JSCreateCatchContext", // name |
407 2, 1, 1, 1, 1, 2, // counts | 409 2, 1, 1, 1, 1, 2, // counts |
408 name); // parameter | 410 name); // parameter |
409 } | 411 } |
410 | 412 |
411 } // namespace compiler | 413 } // namespace compiler |
412 } // namespace internal | 414 } // namespace internal |
413 } // namespace v8 | 415 } // namespace v8 |
OLD | NEW |