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/bytecodes.h" | 5 #include "src/interpreter/bytecodes.h" |
6 | 6 |
7 #include "src/frames.h" | 7 #include "src/frames.h" |
8 #include "src/interpreter/bytecode-traits.h" | 8 #include "src/interpreter/bytecode-traits.h" |
9 | 9 |
10 namespace v8 { | 10 namespace v8 { |
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
287 os << "[" << ReadUnalignedUInt16(operand_start) << "]"; | 287 os << "[" << ReadUnalignedUInt16(operand_start) << "]"; |
288 break; | 288 break; |
289 case interpreter::OperandType::kImm8: | 289 case interpreter::OperandType::kImm8: |
290 os << "#" << static_cast<int>(static_cast<int8_t>(*operand_start)); | 290 os << "#" << static_cast<int>(static_cast<int8_t>(*operand_start)); |
291 break; | 291 break; |
292 case interpreter::OperandType::kMaybeReg8: | 292 case interpreter::OperandType::kMaybeReg8: |
293 case interpreter::OperandType::kMaybeReg16: | 293 case interpreter::OperandType::kMaybeReg16: |
294 case interpreter::OperandType::kReg8: | 294 case interpreter::OperandType::kReg8: |
295 case interpreter::OperandType::kReg16: { | 295 case interpreter::OperandType::kReg16: { |
296 Register reg = DecodeRegister(operand_start, op_type); | 296 Register reg = DecodeRegister(operand_start, op_type); |
297 if (reg.is_function_context()) { | 297 if (reg.is_current_context()) { |
298 os << "<context>"; | 298 os << "<context>"; |
299 } else if (reg.is_function_closure()) { | 299 } else if (reg.is_function_closure()) { |
300 os << "<closure>"; | 300 os << "<closure>"; |
301 } else if (reg.is_new_target()) { | 301 } else if (reg.is_new_target()) { |
302 os << "<new.target>"; | 302 os << "<new.target>"; |
303 } else if (reg.is_parameter()) { | 303 } else if (reg.is_parameter()) { |
304 int parameter_index = reg.ToParameterIndex(parameter_count); | 304 int parameter_index = reg.ToParameterIndex(parameter_count); |
305 if (parameter_index == 0) { | 305 if (parameter_index == 0) { |
306 os << "<this>"; | 306 os << "<this>"; |
307 } else { | 307 } else { |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
351 | 351 |
352 std::ostream& operator<<(std::ostream& os, const OperandSize& operand_size) { | 352 std::ostream& operator<<(std::ostream& os, const OperandSize& operand_size) { |
353 return os << Bytecodes::OperandSizeToString(operand_size); | 353 return os << Bytecodes::OperandSizeToString(operand_size); |
354 } | 354 } |
355 | 355 |
356 | 356 |
357 static const int kLastParamRegisterIndex = | 357 static const int kLastParamRegisterIndex = |
358 -InterpreterFrameConstants::kLastParamFromRegisterPointer / kPointerSize; | 358 -InterpreterFrameConstants::kLastParamFromRegisterPointer / kPointerSize; |
359 static const int kFunctionClosureRegisterIndex = | 359 static const int kFunctionClosureRegisterIndex = |
360 -InterpreterFrameConstants::kFunctionFromRegisterPointer / kPointerSize; | 360 -InterpreterFrameConstants::kFunctionFromRegisterPointer / kPointerSize; |
361 static const int kFunctionContextRegisterIndex = | 361 static const int kCurrentContextRegisterIndex = |
362 -InterpreterFrameConstants::kContextFromRegisterPointer / kPointerSize; | 362 -InterpreterFrameConstants::kContextFromRegisterPointer / kPointerSize; |
363 static const int kNewTargetRegisterIndex = | 363 static const int kNewTargetRegisterIndex = |
364 -InterpreterFrameConstants::kNewTargetFromRegisterPointer / kPointerSize; | 364 -InterpreterFrameConstants::kNewTargetFromRegisterPointer / kPointerSize; |
365 | 365 |
366 | 366 |
367 // Registers occupy range 0-127 in 8-bit value leaving 128 unused values. | 367 // Registers occupy range 0-127 in 8-bit value leaving 128 unused values. |
368 // Parameter indices are biased with the negative value kLastParamRegisterIndex | 368 // Parameter indices are biased with the negative value kLastParamRegisterIndex |
369 // for ease of access in the interpreter. | 369 // for ease of access in the interpreter. |
370 static const int kMaxParameterIndex = 128 + kLastParamRegisterIndex; | 370 static const int kMaxParameterIndex = 128 + kLastParamRegisterIndex; |
371 | 371 |
(...skipping 18 matching lines...) Expand all Loading... |
390 Register Register::function_closure() { | 390 Register Register::function_closure() { |
391 return Register(kFunctionClosureRegisterIndex); | 391 return Register(kFunctionClosureRegisterIndex); |
392 } | 392 } |
393 | 393 |
394 | 394 |
395 bool Register::is_function_closure() const { | 395 bool Register::is_function_closure() const { |
396 return index() == kFunctionClosureRegisterIndex; | 396 return index() == kFunctionClosureRegisterIndex; |
397 } | 397 } |
398 | 398 |
399 | 399 |
400 Register Register::function_context() { | 400 Register Register::current_context() { |
401 return Register(kFunctionContextRegisterIndex); | 401 return Register(kCurrentContextRegisterIndex); |
402 } | 402 } |
403 | 403 |
404 | 404 |
405 bool Register::is_function_context() const { | 405 bool Register::is_current_context() const { |
406 return index() == kFunctionContextRegisterIndex; | 406 return index() == kCurrentContextRegisterIndex; |
407 } | 407 } |
408 | 408 |
409 | 409 |
410 Register Register::new_target() { return Register(kNewTargetRegisterIndex); } | 410 Register Register::new_target() { return Register(kNewTargetRegisterIndex); } |
411 | 411 |
412 | 412 |
413 bool Register::is_new_target() const { | 413 bool Register::is_new_target() const { |
414 return index() == kNewTargetRegisterIndex; | 414 return index() == kNewTargetRegisterIndex; |
415 } | 415 } |
416 | 416 |
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
465 } | 465 } |
466 if (reg5.is_valid() && reg4.index() + 1 != reg5.index()) { | 466 if (reg5.is_valid() && reg4.index() + 1 != reg5.index()) { |
467 return false; | 467 return false; |
468 } | 468 } |
469 return true; | 469 return true; |
470 } | 470 } |
471 | 471 |
472 } // namespace interpreter | 472 } // namespace interpreter |
473 } // namespace internal | 473 } // namespace internal |
474 } // namespace v8 | 474 } // namespace v8 |
OLD | NEW |