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 1194 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1205 stmt->position()); | 1205 stmt->position()); |
1206 } | 1206 } |
1207 | 1207 |
1208 void BytecodeArrayBuilder::SetExpressionPosition(Expression* expr) { | 1208 void BytecodeArrayBuilder::SetExpressionPosition(Expression* expr) { |
1209 if (expr->position() == RelocInfo::kNoPosition) return; | 1209 if (expr->position() == RelocInfo::kNoPosition) return; |
1210 if (exit_seen_in_block_) return; | 1210 if (exit_seen_in_block_) return; |
1211 source_position_table_builder_.AddExpressionPosition(bytecodes_.size(), | 1211 source_position_table_builder_.AddExpressionPosition(bytecodes_.size(), |
1212 expr->position()); | 1212 expr->position()); |
1213 } | 1213 } |
1214 | 1214 |
| 1215 void BytecodeArrayBuilder::SetExpressionAsStatementPosition(Expression* expr) { |
| 1216 if (expr->position() == RelocInfo::kNoPosition) return; |
| 1217 if (exit_seen_in_block_) return; |
| 1218 source_position_table_builder_.AddStatementPosition(bytecodes_.size(), |
| 1219 expr->position()); |
| 1220 } |
| 1221 |
1215 bool BytecodeArrayBuilder::TemporaryRegisterIsLive(Register reg) const { | 1222 bool BytecodeArrayBuilder::TemporaryRegisterIsLive(Register reg) const { |
1216 return temporary_register_allocator()->RegisterIsLive(reg); | 1223 return temporary_register_allocator()->RegisterIsLive(reg); |
1217 } | 1224 } |
1218 | 1225 |
1219 bool BytecodeArrayBuilder::OperandIsValid(Bytecode bytecode, int operand_index, | 1226 bool BytecodeArrayBuilder::OperandIsValid(Bytecode bytecode, int operand_index, |
1220 uint32_t operand_value) const { | 1227 uint32_t operand_value) const { |
1221 OperandType operand_type = Bytecodes::GetOperandType(bytecode, operand_index); | 1228 OperandType operand_type = Bytecodes::GetOperandType(bytecode, operand_index); |
1222 switch (operand_type) { | 1229 switch (operand_type) { |
1223 case OperandType::kNone: | 1230 case OperandType::kNone: |
1224 return false; | 1231 return false; |
(...skipping 413 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1638 } | 1645 } |
1639 | 1646 |
1640 // static | 1647 // static |
1641 bool BytecodeArrayBuilder::FitsInReg16OperandUntranslated(Register value) { | 1648 bool BytecodeArrayBuilder::FitsInReg16OperandUntranslated(Register value) { |
1642 return value.is_short_operand(); | 1649 return value.is_short_operand(); |
1643 } | 1650 } |
1644 | 1651 |
1645 } // namespace interpreter | 1652 } // namespace interpreter |
1646 } // namespace internal | 1653 } // namespace internal |
1647 } // namespace v8 | 1654 } // namespace v8 |
OLD | NEW |