public abstract class org.graalvm.compiler.lir.aarch64.AArch64MathIntrinsicBinaryOp extends org.graalvm.compiler.lir.aarch64.AArch64LIRInstruction
  minor version: 0
  major version: 59
  flags: flags: (0x0421) ACC_PUBLIC, ACC_SUPER, ACC_ABSTRACT
  this_class: org.graalvm.compiler.lir.aarch64.AArch64MathIntrinsicBinaryOp
  super_class: org.graalvm.compiler.lir.aarch64.AArch64LIRInstruction
{
  protected jdk.vm.ci.meta.Value output;
    descriptor: Ljdk/vm/ci/meta/Value;
    flags: (0x0004) ACC_PROTECTED
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.lir.LIRInstruction$Def()

  protected jdk.vm.ci.meta.Value input0;
    descriptor: Ljdk/vm/ci/meta/Value;
    flags: (0x0004) ACC_PROTECTED
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.lir.LIRInstruction$Use()

  protected jdk.vm.ci.meta.Value input1;
    descriptor: Ljdk/vm/ci/meta/Value;
    flags: (0x0004) ACC_PROTECTED
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.lir.LIRInstruction$Use()

  protected jdk.vm.ci.meta.Value[] temps;
    descriptor: [Ljdk/vm/ci/meta/Value;
    flags: (0x0004) ACC_PROTECTED
    RuntimeVisibleAnnotations: 
      org.graalvm.compiler.lir.LIRInstruction$Temp()

  public void <init>(org.graalvm.compiler.lir.LIRInstructionClass<? extends org.graalvm.compiler.lir.aarch64.AArch64LIRInstruction>, jdk.vm.ci.code.Register[]);
    descriptor: (Lorg/graalvm/compiler/lir/LIRInstructionClass;[Ljdk/vm/ci/code/Register;)V
    flags: (0x0081) ACC_PUBLIC, ACC_VARARGS
    Code:
      stack=3, locals=3, args_size=3
        start local 0 // org.graalvm.compiler.lir.aarch64.AArch64MathIntrinsicBinaryOp this
        start local 1 // org.graalvm.compiler.lir.LIRInstructionClass type
        start local 2 // jdk.vm.ci.code.Register[] registers
         0: .line 50
            aload 0 /* this */
            aload 1 /* type */
            invokespecial org.graalvm.compiler.lir.aarch64.AArch64LIRInstruction.<init>:(Lorg/graalvm/compiler/lir/LIRInstructionClass;)V
         1: .line 51
            aload 0 /* this */
            getstatic jdk.vm.ci.aarch64.AArch64.v0:Ljdk/vm/ci/code/Register;
            getstatic jdk.vm.ci.aarch64.AArch64Kind.V64_WORD:Ljdk/vm/ci/aarch64/AArch64Kind;
            invokestatic org.graalvm.compiler.core.common.LIRKind.value:(Ljdk/vm/ci/meta/PlatformKind;)Lorg/graalvm/compiler/core/common/LIRKind;
            invokevirtual jdk.vm.ci.code.Register.asValue:(Ljdk/vm/ci/meta/ValueKind;)Ljdk/vm/ci/code/RegisterValue;
            putfield org.graalvm.compiler.lir.aarch64.AArch64MathIntrinsicBinaryOp.input0:Ljdk/vm/ci/meta/Value;
         2: .line 52
            aload 0 /* this */
            getstatic jdk.vm.ci.aarch64.AArch64.v0:Ljdk/vm/ci/code/Register;
            getstatic jdk.vm.ci.aarch64.AArch64Kind.V64_WORD:Ljdk/vm/ci/aarch64/AArch64Kind;
            invokestatic org.graalvm.compiler.core.common.LIRKind.value:(Ljdk/vm/ci/meta/PlatformKind;)Lorg/graalvm/compiler/core/common/LIRKind;
            invokevirtual jdk.vm.ci.code.Register.asValue:(Ljdk/vm/ci/meta/ValueKind;)Ljdk/vm/ci/code/RegisterValue;
            putfield org.graalvm.compiler.lir.aarch64.AArch64MathIntrinsicBinaryOp.input1:Ljdk/vm/ci/meta/Value;
         3: .line 53
            aload 0 /* this */
            getstatic jdk.vm.ci.aarch64.AArch64.v0:Ljdk/vm/ci/code/Register;
            getstatic jdk.vm.ci.aarch64.AArch64Kind.V64_WORD:Ljdk/vm/ci/aarch64/AArch64Kind;
            invokestatic org.graalvm.compiler.core.common.LIRKind.value:(Ljdk/vm/ci/meta/PlatformKind;)Lorg/graalvm/compiler/core/common/LIRKind;
            invokevirtual jdk.vm.ci.code.Register.asValue:(Ljdk/vm/ci/meta/ValueKind;)Ljdk/vm/ci/code/RegisterValue;
            putfield org.graalvm.compiler.lir.aarch64.AArch64MathIntrinsicBinaryOp.output:Ljdk/vm/ci/meta/Value;
         4: .line 55
            aload 0 /* this */
            aload 2 /* registers */
            invokestatic org.graalvm.compiler.lir.aarch64.AArch64MathIntrinsicBinaryOp.registersToValues:([Ljdk/vm/ci/code/Register;)[Ljdk/vm/ci/meta/Value;
            putfield org.graalvm.compiler.lir.aarch64.AArch64MathIntrinsicBinaryOp.temps:[Ljdk/vm/ci/meta/Value;
         5: .line 56
            return
        end local 2 // jdk.vm.ci.code.Register[] registers
        end local 1 // org.graalvm.compiler.lir.LIRInstructionClass type
        end local 0 // org.graalvm.compiler.lir.aarch64.AArch64MathIntrinsicBinaryOp this
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0    6     0       this  Lorg/graalvm/compiler/lir/aarch64/AArch64MathIntrinsicBinaryOp;
            0    6     1       type  Lorg/graalvm/compiler/lir/LIRInstructionClass<+Lorg/graalvm/compiler/lir/aarch64/AArch64LIRInstruction;>;
            0    6     2  registers  [Ljdk/vm/ci/code/Register;
    Signature: (Lorg/graalvm/compiler/lir/LIRInstructionClass<+Lorg/graalvm/compiler/lir/aarch64/AArch64LIRInstruction;>;[Ljdk/vm/ci/code/Register;)V
    MethodParameters:
           Name  Flags
      type       
      registers  

  protected static jdk.vm.ci.meta.Value[] registersToValues(jdk.vm.ci.code.Register[]);
    descriptor: ([Ljdk/vm/ci/code/Register;)[Ljdk/vm/ci/meta/Value;
    flags: (0x000c) ACC_PROTECTED, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // jdk.vm.ci.code.Register[] registers
         0: .line 59
            aload 0 /* registers */
            arraylength
            anewarray jdk.vm.ci.meta.Value
            astore 1 /* temps */
        start local 1 // jdk.vm.ci.meta.Value[] temps
         1: .line 60
            iconst_0
            istore 2 /* i */
        start local 2 // int i
         2: goto 12
         3: .line 61
      StackMap locals: jdk.vm.ci.meta.Value[] int
      StackMap stack:
            aload 0 /* registers */
            iload 2 /* i */
            aaload
            astore 3 /* register */
        start local 3 // jdk.vm.ci.code.Register register
         4: .line 62
            getstatic jdk.vm.ci.aarch64.AArch64.CPU:Ljdk/vm/ci/code/Register$RegisterCategory;
            aload 3 /* register */
            invokevirtual jdk.vm.ci.code.Register.getRegisterCategory:()Ljdk/vm/ci/code/Register$RegisterCategory;
            invokevirtual jdk.vm.ci.code.Register$RegisterCategory.equals:(Ljava/lang/Object;)Z
            ifeq 7
         5: .line 63
            aload 1 /* temps */
            iload 2 /* i */
            aload 3 /* register */
            getstatic jdk.vm.ci.aarch64.AArch64Kind.V64_WORD:Ljdk/vm/ci/aarch64/AArch64Kind;
            invokestatic org.graalvm.compiler.core.common.LIRKind.value:(Ljdk/vm/ci/meta/PlatformKind;)Lorg/graalvm/compiler/core/common/LIRKind;
            invokevirtual jdk.vm.ci.code.Register.asValue:(Ljdk/vm/ci/meta/ValueKind;)Ljdk/vm/ci/code/RegisterValue;
            aastore
         6: .line 64
            goto 11
      StackMap locals: jdk.vm.ci.code.Register
      StackMap stack:
         7: getstatic jdk.vm.ci.aarch64.AArch64.SIMD:Ljdk/vm/ci/code/Register$RegisterCategory;
            aload 3 /* register */
            invokevirtual jdk.vm.ci.code.Register.getRegisterCategory:()Ljdk/vm/ci/code/Register$RegisterCategory;
            invokevirtual jdk.vm.ci.code.Register$RegisterCategory.equals:(Ljava/lang/Object;)Z
            ifeq 10
         8: .line 65
            aload 1 /* temps */
            iload 2 /* i */
            aload 3 /* register */
            getstatic jdk.vm.ci.aarch64.AArch64Kind.V64_WORD:Ljdk/vm/ci/aarch64/AArch64Kind;
            invokestatic org.graalvm.compiler.core.common.LIRKind.value:(Ljdk/vm/ci/meta/PlatformKind;)Lorg/graalvm/compiler/core/common/LIRKind;
            invokevirtual jdk.vm.ci.code.Register.asValue:(Ljdk/vm/ci/meta/ValueKind;)Ljdk/vm/ci/code/RegisterValue;
            aastore
         9: .line 66
            goto 11
        10: .line 67
      StackMap locals:
      StackMap stack:
            ldc "Unsupported register type in math stubs."
            invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:(Ljava/lang/String;)Ljava/lang/RuntimeException;
            athrow
        end local 3 // jdk.vm.ci.code.Register register
        11: .line 60
      StackMap locals:
      StackMap stack:
            iinc 2 /* i */ 1
      StackMap locals:
      StackMap stack:
        12: iload 2 /* i */
            aload 0 /* registers */
            arraylength
            if_icmplt 3
        end local 2 // int i
        13: .line 70
            aload 1 /* temps */
            areturn
        end local 1 // jdk.vm.ci.meta.Value[] temps
        end local 0 // jdk.vm.ci.code.Register[] registers
      LocalVariableTable:
        Start  End  Slot       Name  Signature
            0   14     0  registers  [Ljdk/vm/ci/code/Register;
            1   14     1      temps  [Ljdk/vm/ci/meta/Value;
            2   13     2          i  I
            4   11     3   register  Ljdk/vm/ci/code/Register;
    MethodParameters:
           Name  Flags
      registers  

  public final org.graalvm.compiler.lir.Variable emitLIRWrapper(org.graalvm.compiler.lir.gen.LIRGenerator, jdk.vm.ci.meta.Value, jdk.vm.ci.meta.Value);
    descriptor: (Lorg/graalvm/compiler/lir/gen/LIRGenerator;Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/lir/Variable;
    flags: (0x0011) ACC_PUBLIC, ACC_FINAL
    Code:
      stack=4, locals=8, args_size=4
        start local 0 // org.graalvm.compiler.lir.aarch64.AArch64MathIntrinsicBinaryOp this
        start local 1 // org.graalvm.compiler.lir.gen.LIRGenerator gen
        start local 2 // jdk.vm.ci.meta.Value x
        start local 3 // jdk.vm.ci.meta.Value y
         0: .line 74
            iconst_2
            anewarray jdk.vm.ci.meta.Value
            dup
            iconst_0
            aload 2 /* x */
            aastore
            dup
            iconst_1
            aload 3 /* y */
            aastore
            invokestatic org.graalvm.compiler.core.common.LIRKind.combine:([Ljdk/vm/ci/meta/Value;)Lorg/graalvm/compiler/core/common/LIRKind;
            astore 4 /* kind */
        start local 4 // org.graalvm.compiler.core.common.LIRKind kind
         1: .line 75
            getstatic jdk.vm.ci.aarch64.AArch64.v0:Ljdk/vm/ci/code/Register;
            aload 4 /* kind */
            invokevirtual jdk.vm.ci.code.Register.asValue:(Ljdk/vm/ci/meta/ValueKind;)Ljdk/vm/ci/code/RegisterValue;
            astore 5 /* v0value */
        start local 5 // jdk.vm.ci.code.RegisterValue v0value
         2: .line 76
            aload 1 /* gen */
            aload 5 /* v0value */
            aload 2 /* x */
            invokevirtual org.graalvm.compiler.lir.gen.LIRGenerator.emitMove:(Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/Value;)V
         3: .line 77
            getstatic jdk.vm.ci.aarch64.AArch64.v1:Ljdk/vm/ci/code/Register;
            aload 4 /* kind */
            invokevirtual jdk.vm.ci.code.Register.asValue:(Ljdk/vm/ci/meta/ValueKind;)Ljdk/vm/ci/code/RegisterValue;
            astore 6 /* v1value */
        start local 6 // jdk.vm.ci.code.RegisterValue v1value
         4: .line 78
            aload 1 /* gen */
            aload 6 /* v1value */
            aload 3 /* y */
            invokevirtual org.graalvm.compiler.lir.gen.LIRGenerator.emitMove:(Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/Value;)V
         5: .line 79
            aload 1 /* gen */
            aload 0 /* this */
            invokevirtual org.graalvm.compiler.lir.gen.LIRGenerator.append:(Lorg/graalvm/compiler/lir/LIRInstruction;)Lorg/graalvm/compiler/lir/LIRInstruction;
            pop
         6: .line 80
            aload 1 /* gen */
            aload 4 /* kind */
            invokevirtual org.graalvm.compiler.lir.gen.LIRGenerator.newVariable:(Ljdk/vm/ci/meta/ValueKind;)Lorg/graalvm/compiler/lir/Variable;
            astore 7 /* result */
        start local 7 // org.graalvm.compiler.lir.Variable result
         7: .line 81
            aload 1 /* gen */
            aload 7 /* result */
            aload 5 /* v0value */
            invokevirtual org.graalvm.compiler.lir.gen.LIRGenerator.emitMove:(Ljdk/vm/ci/meta/AllocatableValue;Ljdk/vm/ci/meta/Value;)V
         8: .line 82
            aload 7 /* result */
            areturn
        end local 7 // org.graalvm.compiler.lir.Variable result
        end local 6 // jdk.vm.ci.code.RegisterValue v1value
        end local 5 // jdk.vm.ci.code.RegisterValue v0value
        end local 4 // org.graalvm.compiler.core.common.LIRKind kind
        end local 3 // jdk.vm.ci.meta.Value y
        end local 2 // jdk.vm.ci.meta.Value x
        end local 1 // org.graalvm.compiler.lir.gen.LIRGenerator gen
        end local 0 // org.graalvm.compiler.lir.aarch64.AArch64MathIntrinsicBinaryOp this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0    9     0     this  Lorg/graalvm/compiler/lir/aarch64/AArch64MathIntrinsicBinaryOp;
            0    9     1      gen  Lorg/graalvm/compiler/lir/gen/LIRGenerator;
            0    9     2        x  Ljdk/vm/ci/meta/Value;
            0    9     3        y  Ljdk/vm/ci/meta/Value;
            1    9     4     kind  Lorg/graalvm/compiler/core/common/LIRKind;
            2    9     5  v0value  Ljdk/vm/ci/code/RegisterValue;
            4    9     6  v1value  Ljdk/vm/ci/code/RegisterValue;
            7    9     7   result  Lorg/graalvm/compiler/lir/Variable;
    MethodParameters:
      Name  Flags
      gen   
      x     
      y     
}
SourceFile: "AArch64MathIntrinsicBinaryOp.java"
InnerClasses:
  public RegisterCategory = jdk.vm.ci.code.Register$RegisterCategory of jdk.vm.ci.code.Register
  public abstract Def = org.graalvm.compiler.lir.LIRInstruction$Def of org.graalvm.compiler.lir.LIRInstruction
  public abstract Temp = org.graalvm.compiler.lir.LIRInstruction$Temp of org.graalvm.compiler.lir.LIRInstruction
  public abstract Use = org.graalvm.compiler.lir.LIRInstruction$Use of org.graalvm.compiler.lir.LIRInstruction