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 Agerpackage com.android.tools.r8.code;
5418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager
6418d1ca139ea11316113beafbb3b3dd3fd5587aMads Agerimport com.android.tools.r8.ir.code.NumericType;
7418d1ca139ea11316113beafbb3b3dd3fd5587aMads Agerimport com.android.tools.r8.ir.conversion.IRBuilder;
8418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager
9418d1ca139ea11316113beafbb3b3dd3fd5587aMads Agerpublic class MulDouble2Addr extends Format12x {
10418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager
11418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager  public static final int OPCODE = 0xcd;
12418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager  public static final String NAME = "MulDouble2Addr";
13418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager  public static final String SMALI_NAME = "mul-double/2addr";
14418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager
15418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager  MulDouble2Addr(int high, BytecodeStream stream) {
16418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager    super(high, stream);
17418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager  }
18418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager
19418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager  public MulDouble2Addr(int left, int right) {
20418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager    super(left, right);
21418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager  }
22418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager
23418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager  public String getName() {
24418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager    return NAME;
25418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager  }
26418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager
27418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager  public String getSmaliName() {
28418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager    return SMALI_NAME;
29418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager  }
30418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager
31418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager  public int getOpcode() {
32418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager    return OPCODE;
33418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager  }
34418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager
35418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager  @Override
36418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager  public void buildIR(IRBuilder builder) {
37418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager    builder.addMul(NumericType.DOUBLE, A, A, B);
38418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager  }
39418d1ca139ea11316113beafbb3b3dd3fd5587aMads Ager}
40