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