OLD | NEW |
1 // Copyright 2015 the V8 project authors. All rights reserved. | 1 // Copyright 2015 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/interpreter/bytecode-array-builder.h" | 5 #include "src/interpreter/bytecode-array-builder.h" |
6 #include "src/compiler.h" | 6 #include "src/compiler.h" |
7 | 7 |
8 namespace v8 { | 8 namespace v8 { |
9 namespace internal { | 9 namespace internal { |
10 namespace interpreter { | 10 namespace interpreter { |
(...skipping 636 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
647 } | 647 } |
648 PreviousBytecodeHelper previous_bytecode(*this); | 648 PreviousBytecodeHelper previous_bytecode(*this); |
649 switch (previous_bytecode.GetBytecode()) { | 649 switch (previous_bytecode.GetBytecode()) { |
650 // If the previous bytecode puts a boolean in the accumulator return true. | 650 // If the previous bytecode puts a boolean in the accumulator return true. |
651 case Bytecode::kLdaTrue: | 651 case Bytecode::kLdaTrue: |
652 case Bytecode::kLdaFalse: | 652 case Bytecode::kLdaFalse: |
653 case Bytecode::kLogicalNot: | 653 case Bytecode::kLogicalNot: |
654 case Bytecode::kTestEqual: | 654 case Bytecode::kTestEqual: |
655 case Bytecode::kTestNotEqual: | 655 case Bytecode::kTestNotEqual: |
656 case Bytecode::kTestEqualStrict: | 656 case Bytecode::kTestEqualStrict: |
657 case Bytecode::kTestNotEqualStrict: | |
658 case Bytecode::kTestLessThan: | 657 case Bytecode::kTestLessThan: |
659 case Bytecode::kTestLessThanOrEqual: | 658 case Bytecode::kTestLessThanOrEqual: |
660 case Bytecode::kTestGreaterThan: | 659 case Bytecode::kTestGreaterThan: |
661 case Bytecode::kTestGreaterThanOrEqual: | 660 case Bytecode::kTestGreaterThanOrEqual: |
662 case Bytecode::kTestInstanceOf: | 661 case Bytecode::kTestInstanceOf: |
663 case Bytecode::kTestIn: | 662 case Bytecode::kTestIn: |
664 case Bytecode::kForInDone: | 663 case Bytecode::kForInDone: |
665 return false; | 664 return false; |
666 default: | 665 default: |
667 return true; | 666 return true; |
(...skipping 745 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1413 | 1412 |
1414 // static | 1413 // static |
1415 Bytecode BytecodeArrayBuilder::BytecodeForCompareOperation(Token::Value op) { | 1414 Bytecode BytecodeArrayBuilder::BytecodeForCompareOperation(Token::Value op) { |
1416 switch (op) { | 1415 switch (op) { |
1417 case Token::Value::EQ: | 1416 case Token::Value::EQ: |
1418 return Bytecode::kTestEqual; | 1417 return Bytecode::kTestEqual; |
1419 case Token::Value::NE: | 1418 case Token::Value::NE: |
1420 return Bytecode::kTestNotEqual; | 1419 return Bytecode::kTestNotEqual; |
1421 case Token::Value::EQ_STRICT: | 1420 case Token::Value::EQ_STRICT: |
1422 return Bytecode::kTestEqualStrict; | 1421 return Bytecode::kTestEqualStrict; |
1423 case Token::Value::NE_STRICT: | |
1424 return Bytecode::kTestNotEqualStrict; | |
1425 case Token::Value::LT: | 1422 case Token::Value::LT: |
1426 return Bytecode::kTestLessThan; | 1423 return Bytecode::kTestLessThan; |
1427 case Token::Value::GT: | 1424 case Token::Value::GT: |
1428 return Bytecode::kTestGreaterThan; | 1425 return Bytecode::kTestGreaterThan; |
1429 case Token::Value::LTE: | 1426 case Token::Value::LTE: |
1430 return Bytecode::kTestLessThanOrEqual; | 1427 return Bytecode::kTestLessThanOrEqual; |
1431 case Token::Value::GTE: | 1428 case Token::Value::GTE: |
1432 return Bytecode::kTestGreaterThanOrEqual; | 1429 return Bytecode::kTestGreaterThanOrEqual; |
1433 case Token::Value::INSTANCEOF: | 1430 case Token::Value::INSTANCEOF: |
1434 return Bytecode::kTestInstanceOf; | 1431 return Bytecode::kTestInstanceOf; |
(...skipping 210 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1645 } | 1642 } |
1646 | 1643 |
1647 // static | 1644 // static |
1648 bool BytecodeArrayBuilder::FitsInReg16OperandUntranslated(Register value) { | 1645 bool BytecodeArrayBuilder::FitsInReg16OperandUntranslated(Register value) { |
1649 return value.is_short_operand(); | 1646 return value.is_short_operand(); |
1650 } | 1647 } |
1651 | 1648 |
1652 } // namespace interpreter | 1649 } // namespace interpreter |
1653 } // namespace internal | 1650 } // namespace internal |
1654 } // namespace v8 | 1651 } // namespace v8 |
OLD | NEW |