1418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager// Copyright (c) 2016, the R8 project authors. Please see the AUTHORS file
2418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager// for details. All rights reserved. Use of this source code is governed by a
3418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager// BSD-style license that can be found in the LICENSE file.
4418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager
5418d1ca139ea11316113beafbb3b3dd3fd5587aMads Agerpackage com.android.tools.r8.code;
6418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager
7418d1ca139ea11316113beafbb3b3dd3fd5587aMads Agerimport com.android.tools.r8.ir.conversion.IRBuilder;
8418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager
9418d1ca139ea11316113beafbb3b3dd3fd5587aMads Agerpublic abstract class SwitchPayload extends Nop {
10418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager  SwitchPayload(int high, BytecodeStream stream) {
11418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager    super(high, stream);
12418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager  }
13418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager
14418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager  public SwitchPayload() {
15418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager  }
16418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager
17418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager  public abstract int[] keys();
18418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager  public abstract int numberOfKeys();
19418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager  public abstract int[] switchTargetOffsets();
20418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager
21418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager  @Override
22418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager  public boolean isSwitchPayload() {
23418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager    return true;
24418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager  }
25418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager
26418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager  @Override
27418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager  public void buildIR(IRBuilder builder) {
28418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager    // Switch payloads are not represented in the IR.
29418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager  }
30418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager}
31