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 478 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
489 uint8_t depth = Min(loop_depth(), Code::kMaxLoopNestingMarker); | 489 uint8_t depth = Min(loop_depth(), Code::kMaxLoopNestingMarker); |
490 BackEdgeEntry entry = | 490 BackEdgeEntry entry = |
491 { ast_id, static_cast<unsigned>(masm_->pc_offset()), depth }; | 491 { ast_id, static_cast<unsigned>(masm_->pc_offset()), depth }; |
492 back_edges_.Add(entry, zone()); | 492 back_edges_.Add(entry, zone()); |
493 } | 493 } |
494 | 494 |
495 | 495 |
496 bool FullCodeGenerator::ShouldInlineSmiCase(Token::Value op) { | 496 bool FullCodeGenerator::ShouldInlineSmiCase(Token::Value op) { |
497 // Inline smi case inside loops, but not division and modulo which | 497 // Inline smi case inside loops, but not division and modulo which |
498 // are too complicated and take up too much space. | 498 // are too complicated and take up too much space. |
499 if (op == Token::DIV ||op == Token::MOD) return false; | 499 if (op == Token::DIV ||op == Token::MOD || op == Token::EXP) return false; |
500 if (FLAG_always_inline_smi_code) return true; | 500 if (FLAG_always_inline_smi_code) return true; |
501 return loop_depth_ > 0; | 501 return loop_depth_ > 0; |
502 } | 502 } |
503 | 503 |
504 | 504 |
505 void FullCodeGenerator::EffectContext::Plug(Register reg) const { | 505 void FullCodeGenerator::EffectContext::Plug(Register reg) const { |
506 } | 506 } |
507 | 507 |
508 | 508 |
509 void FullCodeGenerator::AccumulatorValueContext::Plug(Register reg) const { | 509 void FullCodeGenerator::AccumulatorValueContext::Plug(Register reg) const { |
(...skipping 1313 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1823 } | 1823 } |
1824 codegen_->PrepareForBailoutForId(exit_id_, NO_REGISTERS); | 1824 codegen_->PrepareForBailoutForId(exit_id_, NO_REGISTERS); |
1825 codegen_->scope_ = saved_scope_; | 1825 codegen_->scope_ = saved_scope_; |
1826 } | 1826 } |
1827 | 1827 |
1828 | 1828 |
1829 #undef __ | 1829 #undef __ |
1830 | 1830 |
1831 | 1831 |
1832 } } // namespace v8::internal | 1832 } } // namespace v8::internal |
OLD | NEW |