public final class com.oracle.truffle.api.ExactMath
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: com.oracle.truffle.api.ExactMath
  super_class: java.lang.Object
{
  private void <init>();
    descriptor: ()V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=1, locals=1, args_size=1
        start local 0 // com.oracle.truffle.api.ExactMath this
         0: .line 51
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 52
            return
        end local 0 // com.oracle.truffle.api.ExactMath this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0  this  Lcom/oracle/truffle/api/ExactMath;

  public static int multiplyHigh(int, int);
    descriptor: (II)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=2
        start local 0 // int x
        start local 1 // int y
         0: .line 56
            iload 0 /* x */
            i2l
            iload 1 /* y */
            i2l
            lmul
            lstore 2 /* r */
        start local 2 // long r
         1: .line 57
            lload 2 /* r */
            bipush 32
            lshr
            l2i
            ireturn
        end local 2 // long r
        end local 1 // int y
        end local 0 // int x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    2     0     x  I
            0    2     1     y  I
            1    2     2     r  J
    MethodParameters:
      Name  Flags
      x     
      y     

  public static int multiplyHighUnsigned(int, int);
    descriptor: (II)I
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=4, locals=8, args_size=2
        start local 0 // int x
        start local 1 // int y
         0: .line 62
            iload 0 /* x */
            i2l
            ldc 4294967295
            land
            lstore 2 /* xl */
        start local 2 // long xl
         1: .line 63
            iload 1 /* y */
            i2l
            ldc 4294967295
            land
            lstore 4 /* yl */
        start local 4 // long yl
         2: .line 64
            lload 2 /* xl */
            lload 4 /* yl */
            lmul
            lstore 6 /* r */
        start local 6 // long r
         3: .line 65
            lload 6 /* r */
            bipush 32
            lshr
            l2i
            ireturn
        end local 6 // long r
        end local 4 // long yl
        end local 2 // long xl
        end local 1 // int y
        end local 0 // int x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0     x  I
            0    4     1     y  I
            1    4     2    xl  J
            2    4     4    yl  J
            3    4     6     r  J
    MethodParameters:
      Name  Flags
      x     
      y     

  public static long multiplyHigh(long, long);
    descriptor: (JJ)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=20, args_size=2
        start local 0 // long x
        start local 2 // long y
         0: .line 75
            lload 0 /* x */
            ldc 4294967295
            land
            lstore 4 /* x0 */
        start local 4 // long x0
         1: .line 76
            lload 0 /* x */
            bipush 32
            lshr
            lstore 10 /* x1 */
        start local 10 // long x1
         2: .line 78
            lload 2 /* y */
            ldc 4294967295
            land
            lstore 6 /* y0 */
        start local 6 // long y0
         3: .line 79
            lload 2 /* y */
            bipush 32
            lshr
            lstore 12 /* y1 */
        start local 12 // long y1
         4: .line 81
            lload 4 /* x0 */
            lload 6 /* y0 */
            lmul
            lstore 8 /* z0 */
        start local 8 // long z0
         5: .line 82
            lload 10 /* x1 */
            lload 6 /* y0 */
            lmul
            lload 8 /* z0 */
            bipush 32
            lushr
            ladd
            lstore 18 /* t */
        start local 18 // long t
         6: .line 83
            lload 18 /* t */
            ldc 4294967295
            land
            lstore 14 /* z1 */
        start local 14 // long z1
         7: .line 84
            lload 18 /* t */
            bipush 32
            lshr
            lstore 16 /* z2 */
        start local 16 // long z2
         8: .line 85
            lload 14 /* z1 */
            lload 4 /* x0 */
            lload 12 /* y1 */
            lmul
            ladd
            lstore 14 /* z1 */
         9: .line 87
            lload 10 /* x1 */
            lload 12 /* y1 */
            lmul
            lload 16 /* z2 */
            ladd
            lload 14 /* z1 */
            bipush 32
            lshr
            ladd
            lreturn
        end local 18 // long t
        end local 16 // long z2
        end local 14 // long z1
        end local 12 // long y1
        end local 10 // long x1
        end local 8 // long z0
        end local 6 // long y0
        end local 4 // long x0
        end local 2 // long y
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0     x  J
            0   10     2     y  J
            1   10     4    x0  J
            3   10     6    y0  J
            5   10     8    z0  J
            2   10    10    x1  J
            4   10    12    y1  J
            7   10    14    z1  J
            8   10    16    z2  J
            6   10    18     t  J
    MethodParameters:
      Name  Flags
      x     
      y     

  public static long multiplyHighUnsigned(long, long);
    descriptor: (JJ)J
    flags: (0x0009) ACC_PUBLIC, ACC_STATIC
    Code:
      stack=6, locals=20, args_size=2
        start local 0 // long x
        start local 2 // long y
         0: .line 97
            lload 0 /* x */
            ldc 4294967295
            land
            lstore 4 /* x0 */
        start local 4 // long x0
         1: .line 98
            lload 0 /* x */
            bipush 32
            lushr
            lstore 10 /* x1 */
        start local 10 // long x1
         2: .line 100
            lload 2 /* y */
            ldc 4294967295
            land
            lstore 6 /* y0 */
        start local 6 // long y0
         3: .line 101
            lload 2 /* y */
            bipush 32
            lushr
            lstore 12 /* y1 */
        start local 12 // long y1
         4: .line 103
            lload 4 /* x0 */
            lload 6 /* y0 */
            lmul
            lstore 8 /* z0 */
        start local 8 // long z0
         5: .line 104
            lload 10 /* x1 */
            lload 6 /* y0 */
            lmul
            lload 8 /* z0 */
            bipush 32
            lushr
            ladd
            lstore 18 /* t */
        start local 18 // long t
         6: .line 105
            lload 18 /* t */
            ldc 4294967295
            land
            lstore 14 /* z1 */
        start local 14 // long z1
         7: .line 106
            lload 18 /* t */
            bipush 32
            lushr
            lstore 16 /* z2 */
        start local 16 // long z2
         8: .line 107
            lload 14 /* z1 */
            lload 4 /* x0 */
            lload 12 /* y1 */
            lmul
            ladd
            lstore 14 /* z1 */
         9: .line 109
            lload 10 /* x1 */
            lload 12 /* y1 */
            lmul
            lload 16 /* z2 */
            ladd
            lload 14 /* z1 */
            bipush 32
            lushr
            ladd
            lreturn
        end local 18 // long t
        end local 16 // long z2
        end local 14 // long z1
        end local 12 // long y1
        end local 10 // long x1
        end local 8 // long z0
        end local 6 // long y0
        end local 4 // long x0
        end local 2 // long y
        end local 0 // long x
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0   10     0     x  J
            0   10     2     y  J
            1   10     4    x0  J
            3   10     6    y0  J
            5   10     8    z0  J
            2   10    10    x1  J
            4   10    12    y1  J
            7   10    14    z1  J
            8   10    16    z2  J
            6   10    18     t  J
    MethodParameters:
      Name  Flags
      x     
      y     
}
SourceFile: "ExactMath.java"