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); |