1bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8Ben Murdoch// Copyright 2016 the V8 project authors. All rights reserved. 2bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8Ben Murdoch// Use of this source code is governed by a BSD-style license that can be 3bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8Ben Murdoch// found in the LICENSE file. 4bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8Ben Murdoch 5bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8Ben Murdoch#ifndef V8_WASM_SWITCH_LOGIC_H 6bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8Ben Murdoch#define V8_WASM_SWITCH_LOGIC_H 7bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8Ben Murdoch 8c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen Murdoch#include "src/globals.h" 9f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch#include "src/zone/zone-containers.h" 10f3b273f5e6ffd2f6ba1c18a27a17db41dfb113c3Ben Murdoch#include "src/zone/zone.h" 11bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8Ben Murdoch 12bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8Ben Murdochnamespace v8 { 13bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8Ben Murdochnamespace internal { 14bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8Ben Murdochnamespace wasm { 15bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8Ben Murdoch 16bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8Ben Murdochstruct CaseNode : public ZoneObject { 17bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8Ben Murdoch const int begin; 18bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8Ben Murdoch const int end; 19bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8Ben Murdoch CaseNode* left; 20bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8Ben Murdoch CaseNode* right; 21bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8Ben Murdoch CaseNode(int begin, int end) : begin(begin), end(end) { 22bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8Ben Murdoch left = nullptr; 23bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8Ben Murdoch right = nullptr; 24bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8Ben Murdoch } 25bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8Ben Murdoch}; 26bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8Ben Murdoch 27c8c1d9e03f4babd16833b0f8ccf6aab5fa6e8c7aBen MurdochV8_EXPORT_PRIVATE CaseNode* OrderCases(ZoneVector<int>* cases, Zone* zone); 28bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8Ben Murdoch} // namespace wasm 29bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8Ben Murdoch} // namespace internal 30bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8Ben Murdoch} // namespace v8 31bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8Ben Murdoch 32bcf72ee8e3b26f1d0726869c7ddb3921c68b09a8Ben Murdoch#endif 33