| Index: src/compiler/instruction-selector.h
|
| diff --git a/src/compiler/instruction-selector.h b/src/compiler/instruction-selector.h
|
| index 937ed4db34f2497686e1f12ed1b50f255c85c108..fcf205a8d9f8530ce918211d8e1b5a22a5e2ce08 100644
|
| --- a/src/compiler/instruction-selector.h
|
| +++ b/src/compiler/instruction-selector.h
|
| @@ -22,6 +22,7 @@ class BasicBlock;
|
| struct CallBuffer; // TODO(bmeurer): Remove this.
|
| class FlagsContinuation;
|
| class Linkage;
|
| +struct SwitchInfo;
|
|
|
| typedef ZoneVector<InstructionOperand> InstructionOperandVector;
|
|
|
| @@ -134,6 +135,10 @@ class InstructionSelector FINAL {
|
| private:
|
| friend class OperandGenerator;
|
|
|
| + void EmitTableSwitch(const SwitchInfo& sw, InstructionOperand& index_operand);
|
| + void EmitLookupSwitch(const SwitchInfo& sw,
|
| + InstructionOperand& value_operand);
|
| +
|
| // Inform the instruction selection that {node} was just defined.
|
| void MarkAsDefined(Node* node);
|
|
|
| @@ -201,9 +206,7 @@ class InstructionSelector FINAL {
|
| void VisitCall(Node* call, BasicBlock* handler);
|
| void VisitGoto(BasicBlock* target);
|
| void VisitBranch(Node* input, BasicBlock* tbranch, BasicBlock* fbranch);
|
| - void VisitSwitch(Node* node, BasicBlock* default_branch,
|
| - BasicBlock** case_branches, int32_t* case_values,
|
| - size_t case_count, int32_t min_value, int32_t max_value);
|
| + void VisitSwitch(Node* node, const SwitchInfo& sw);
|
| void VisitDeoptimize(Node* value);
|
| void VisitReturn(Node* value);
|
| void VisitThrow(Node* value);
|
|
|