| 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 |