Chromium Code Reviews| Index: src/interpreter/bytecodes.cc |
| diff --git a/src/interpreter/bytecodes.cc b/src/interpreter/bytecodes.cc |
| index 825014e465613ecb0073f5511ae333931e481ec2..61417e98351b54187501082bf8a7d9e7cbaf8395 100644 |
| --- a/src/interpreter/bytecodes.cc |
| +++ b/src/interpreter/bytecodes.cc |
| @@ -569,6 +569,42 @@ bool Bytecodes::IsRegisterOutputOperandType(OperandType operand_type) { |
| } |
| // static |
| +bool Bytecodes::IsStarLookahead(Bytecode bytecode, OperandScale operand_scale) { |
| + if (operand_scale == OperandScale::kSingle) { |
| + switch (bytecode) { |
| + case Bytecode::kLdaZero: |
| + case Bytecode::kLdaSmi: |
| + case Bytecode::kLdaNull: |
| + case Bytecode::kLdaTheHole: |
| + case Bytecode::kLdaConstant: |
| + case Bytecode::kAdd: |
| + case Bytecode::kSub: |
| + case Bytecode::kMul: |
| + case Bytecode::kAddSmi: |
| + case Bytecode::kSubSmi: |
| + case Bytecode::kInc: |
| + case Bytecode::kDec: |
| + case Bytecode::kTypeOf: |
| + case Bytecode::kCall: |
| + case Bytecode::kNew: |
| + case Bytecode::kToNumber: |
| + case Bytecode::kCreateRegExpLiteral: |
| + case Bytecode::kCreateArrayLiteral: |
| + case Bytecode::kCreateObjectLiteral: |
| + case Bytecode::kCreateMappedArguments: |
| + case Bytecode::kCreateUnmappedArguments: |
| + case Bytecode::kForInPrepare: |
|
klaasb
2016/07/18 19:45:46
This one doesn't write the accumulator, but in all
rmcilroy
2016/07/19 10:03:55
As discussed offline, let's remove the ones which
|
| + case Bytecode::kForInStep: |
| + case Bytecode::kResumeGenerator: |
| + return true; |
| + default: |
| + return false; |
| + } |
| + } |
| + return false; |
| +} |
| + |
| +// static |
| int Bytecodes::GetNumberOfRegistersRepresentedBy(OperandType operand_type) { |
| switch (operand_type) { |
| case OperandType::kMaybeReg: |