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 #include "src/v8.h" | 5 #include "src/v8.h" |
6 | 6 |
7 #include "src/ast.h" | 7 #include "src/ast.h" |
8 #include "src/ast-numbering.h" | 8 #include "src/ast-numbering.h" |
9 #include "src/code-factory.h" | 9 #include "src/code-factory.h" |
10 #include "src/codegen.h" | 10 #include "src/codegen.h" |
(...skipping 424 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
435 | 435 |
436 | 436 |
437 void FullCodeGenerator::CallLoadIC(ContextualMode contextual_mode, | 437 void FullCodeGenerator::CallLoadIC(ContextualMode contextual_mode, |
438 TypeFeedbackId id) { | 438 TypeFeedbackId id) { |
439 Handle<Code> ic = CodeFactory::LoadIC(isolate(), contextual_mode).code(); | 439 Handle<Code> ic = CodeFactory::LoadIC(isolate(), contextual_mode).code(); |
440 CallIC(ic, id); | 440 CallIC(ic, id); |
441 } | 441 } |
442 | 442 |
443 | 443 |
444 void FullCodeGenerator::CallGlobalLoadIC(Handle<String> name) { | 444 void FullCodeGenerator::CallGlobalLoadIC(Handle<String> name) { |
445 if (masm()->serializer_enabled()) return CallLoadIC(CONTEXTUAL); | 445 if (masm()->serializer_enabled() || FLAG_vector_ics) { |
| 446 // Vector-ICs don't work with LoadGlobalIC. |
| 447 return CallLoadIC(CONTEXTUAL); |
| 448 } |
446 Handle<Code> ic = CodeFactory::LoadGlobalIC( | 449 Handle<Code> ic = CodeFactory::LoadGlobalIC( |
447 isolate(), isolate()->global_object(), name).code(); | 450 isolate(), isolate()->global_object(), name).code(); |
448 CallIC(ic, TypeFeedbackId::None()); | 451 CallIC(ic, TypeFeedbackId::None()); |
449 } | 452 } |
450 | 453 |
451 | 454 |
452 void FullCodeGenerator::CallStoreIC(TypeFeedbackId id) { | 455 void FullCodeGenerator::CallStoreIC(TypeFeedbackId id) { |
453 Handle<Code> ic = CodeFactory::StoreIC(isolate(), language_mode()).code(); | 456 Handle<Code> ic = CodeFactory::StoreIC(isolate(), language_mode()).code(); |
454 CallIC(ic, id); | 457 CallIC(ic, id); |
455 } | 458 } |
(...skipping 1358 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1814 } | 1817 } |
1815 codegen_->PrepareForBailoutForId(exit_id_, NO_REGISTERS); | 1818 codegen_->PrepareForBailoutForId(exit_id_, NO_REGISTERS); |
1816 codegen_->scope_ = saved_scope_; | 1819 codegen_->scope_ = saved_scope_; |
1817 } | 1820 } |
1818 | 1821 |
1819 | 1822 |
1820 #undef __ | 1823 #undef __ |
1821 | 1824 |
1822 | 1825 |
1823 } } // namespace v8::internal | 1826 } } // namespace v8::internal |
OLD | NEW |