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 423 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
434 } | 434 } |
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) { |
| 445 if (masm()->serializer_enabled()) return CallLoadIC(CONTEXTUAL); |
| 446 Handle<Code> ic = CodeFactory::LoadGlobalIC( |
| 447 isolate(), isolate()->global_object(), name).code(); |
| 448 CallIC(ic, TypeFeedbackId::None()); |
| 449 } |
| 450 |
| 451 |
444 void FullCodeGenerator::CallStoreIC(TypeFeedbackId id) { | 452 void FullCodeGenerator::CallStoreIC(TypeFeedbackId id) { |
445 Handle<Code> ic = CodeFactory::StoreIC(isolate(), language_mode()).code(); | 453 Handle<Code> ic = CodeFactory::StoreIC(isolate(), language_mode()).code(); |
446 CallIC(ic, id); | 454 CallIC(ic, id); |
447 } | 455 } |
448 | 456 |
449 | 457 |
450 void FullCodeGenerator::RecordJSReturnSite(Call* call) { | 458 void FullCodeGenerator::RecordJSReturnSite(Call* call) { |
451 // We record the offset of the function return so we can rebuild the frame | 459 // We record the offset of the function return so we can rebuild the frame |
452 // if the function was inlined, i.e., this is the return address in the | 460 // if the function was inlined, i.e., this is the return address in the |
453 // inlined function's frame. | 461 // inlined function's frame. |
(...skipping 1352 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1806 } | 1814 } |
1807 codegen_->PrepareForBailoutForId(exit_id_, NO_REGISTERS); | 1815 codegen_->PrepareForBailoutForId(exit_id_, NO_REGISTERS); |
1808 codegen_->scope_ = saved_scope_; | 1816 codegen_->scope_ = saved_scope_; |
1809 } | 1817 } |
1810 | 1818 |
1811 | 1819 |
1812 #undef __ | 1820 #undef __ |
1813 | 1821 |
1814 | 1822 |
1815 } } // namespace v8::internal | 1823 } } // namespace v8::internal |
OLD | NEW |