public class com.oracle.graal.python.benchmarks.interop.PyNbody extends com.oracle.graal.python.benchmarks.interop.BenchRunner
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: com.oracle.graal.python.benchmarks.interop.PyNbody
super_class: com.oracle.graal.python.benchmarks.interop.BenchRunner
{
public int arg1;
descriptor: I
flags: (0x0001) ACC_PUBLIC
RuntimeVisibleAnnotations:
org.openjdk.jmh.annotations.Param(value = {"5000000"})
private org.graalvm.polyglot.Value combinations;
descriptor: Lorg/graalvm/polyglot/Value;
flags: (0x0002) ACC_PRIVATE
private org.graalvm.polyglot.Value dictValues;
descriptor: Lorg/graalvm/polyglot/Value;
flags: (0x0002) ACC_PRIVATE
private org.graalvm.polyglot.Value dictGetValue;
descriptor: Lorg/graalvm/polyglot/Value;
flags: (0x0002) ACC_PRIVATE
private org.graalvm.polyglot.Value create;
descriptor: Lorg/graalvm/polyglot/Value;
flags: (0x0002) ACC_PRIVATE
private org.graalvm.polyglot.Value BODIES;
descriptor: Lorg/graalvm/polyglot/Value;
flags: (0x0002) ACC_PRIVATE
private org.graalvm.polyglot.Value BODIES_ref;
descriptor: Lorg/graalvm/polyglot/Value;
flags: (0x0002) ACC_PRIVATE
private org.graalvm.polyglot.Value SYSTEM;
descriptor: Lorg/graalvm/polyglot/Value;
flags: (0x0002) ACC_PRIVATE
private org.graalvm.polyglot.Value PAIRS;
descriptor: Lorg/graalvm/polyglot/Value;
flags: (0x0002) ACC_PRIVATE
public void <init>();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=1, locals=1, args_size=1
start local 0 0: aload 0
invokespecial com.oracle.graal.python.benchmarks.interop.BenchRunner.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lcom/oracle/graal/python/benchmarks/interop/PyNbody;
public void setup();
descriptor: ()V
flags: (0x0001) ACC_PUBLIC
Code:
stack=7, locals=1, args_size=1
start local 0 0: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "### setup ..."
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
1: aload 0
aload 0
getfield com.oracle.graal.python.benchmarks.interop.PyNbody.context:Lorg/graalvm/polyglot/Context;
ldc "python"
2: ldc "def combinations(l):\n result = []\n for x in range(len(l) - 1):\n ls = l[x+1:]\n for y in ls:\n result.append((l[x],y))\n return result\ncombinations"
3: invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
putfield com.oracle.graal.python.benchmarks.interop.PyNbody.combinations:Lorg/graalvm/polyglot/Value;
4: aload 0
aload 0
getfield com.oracle.graal.python.benchmarks.interop.PyNbody.context:Lorg/graalvm/polyglot/Context;
ldc "python"
5: ldc "def dict_values(d): return list(d.values())\ndict_values"
6: invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
putfield com.oracle.graal.python.benchmarks.interop.PyNbody.dictValues:Lorg/graalvm/polyglot/Value;
7: aload 0
aload 0
getfield com.oracle.graal.python.benchmarks.interop.PyNbody.context:Lorg/graalvm/polyglot/Context;
ldc "python"
8: ldc "def dict_get(d, s): return d[s]\ndict_get"
9: invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
putfield com.oracle.graal.python.benchmarks.interop.PyNbody.dictGetValue:Lorg/graalvm/polyglot/Value;
10: aload 0
aload 0
getfield com.oracle.graal.python.benchmarks.interop.PyNbody.context:Lorg/graalvm/polyglot/Context;
ldc "python"
11: ldc "PI = 3.14159265358979323\nSOLAR_MASS = 4 * PI * PI\nDAYS_PER_YEAR = 365.24\n\nBODIES = {\n 'sun': ([0.0, 0.0, 0.0], [0.0, 0.0, 0.0], SOLAR_MASS),\n\n 'jupiter': ([4.84143144246472090e+00,\n -1.16032004402742839e+00,\n -1.03622044471123109e-01],\n [1.66007664274403694e-03 * DAYS_PER_YEAR,\n 7.69901118419740425e-03 * DAYS_PER_YEAR,\n -6.90460016972063023e-05 * DAYS_PER_YEAR],\n 9.54791938424326609e-04 * SOLAR_MASS),\n\n 'saturn': ([8.34336671824457987e+00,\n 4.12479856412430479e+00,\n -4.03523417114321381e-01],\n [-2.76742510726862411e-03 * DAYS_PER_YEAR,\n 4.99852801234917238e-03 * DAYS_PER_YEAR,\n 2.30417297573763929e-05 * DAYS_PER_YEAR],\n 2.85885980666130812e-04 * SOLAR_MASS),\n\n 'uranus': ([1.28943695621391310e+01,\n -1.51111514016986312e+01,\n -2.23307578892655734e-01],\n [2.96460137564761618e-03 * DAYS_PER_YEAR,\n 2.37847173959480950e-03 * DAYS_PER_YEAR,\n -2.96589568540237556e-05 * DAYS_PER_YEAR],\n 4.36624404335156298e-05 * SOLAR_MASS),\n\n 'neptune': ([1.53796971148509165e+01,\n -2.59193146099879641e+01,\n 1.79258772950371181e-01],\n [2.68067772490389322e-03 * DAYS_PER_YEAR,\n 1.62824170038242295e-03 * DAYS_PER_YEAR,\n -9.51592254519715870e-05 * DAYS_PER_YEAR],\n 5.15138902046611451e-05 * SOLAR_MASS) }\ndef create(): return BODIES\ncreate"
12: invokevirtual org.graalvm.polyglot.Context.eval:(Ljava/lang/String;Ljava/lang/CharSequence;)Lorg/graalvm/polyglot/Value;
putfield com.oracle.graal.python.benchmarks.interop.PyNbody.create:Lorg/graalvm/polyglot/Value;
13: aload 0
aload 0
getfield com.oracle.graal.python.benchmarks.interop.PyNbody.create:Lorg/graalvm/polyglot/Value;
iconst_0
anewarray java.lang.Object
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
putfield com.oracle.graal.python.benchmarks.interop.PyNbody.BODIES:Lorg/graalvm/polyglot/Value;
14: aload 0
aload 0
getfield com.oracle.graal.python.benchmarks.interop.PyNbody.dictGetValue:Lorg/graalvm/polyglot/Value;
iconst_2
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield com.oracle.graal.python.benchmarks.interop.PyNbody.BODIES:Lorg/graalvm/polyglot/Value;
aastore
dup
iconst_1
aload 0
getfield com.oracle.graal.python.benchmarks.interop.PyNbody.context:Lorg/graalvm/polyglot/Context;
ldc "sun"
invokevirtual org.graalvm.polyglot.Context.asValue:(Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
putfield com.oracle.graal.python.benchmarks.interop.PyNbody.BODIES_ref:Lorg/graalvm/polyglot/Value;
15: aload 0
aload 0
getfield com.oracle.graal.python.benchmarks.interop.PyNbody.dictValues:Lorg/graalvm/polyglot/Value;
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield com.oracle.graal.python.benchmarks.interop.PyNbody.BODIES:Lorg/graalvm/polyglot/Value;
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
putfield com.oracle.graal.python.benchmarks.interop.PyNbody.SYSTEM:Lorg/graalvm/polyglot/Value;
16: aload 0
aload 0
getfield com.oracle.graal.python.benchmarks.interop.PyNbody.combinations:Lorg/graalvm/polyglot/Value;
iconst_1
anewarray java.lang.Object
dup
iconst_0
aload 0
getfield com.oracle.graal.python.benchmarks.interop.PyNbody.SYSTEM:Lorg/graalvm/polyglot/Value;
aastore
invokevirtual org.graalvm.polyglot.Value.execute:([Ljava/lang/Object;)Lorg/graalvm/polyglot/Value;
putfield com.oracle.graal.python.benchmarks.interop.PyNbody.PAIRS:Lorg/graalvm/polyglot/Value;
17: return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 18 0 this Lcom/oracle/graal/python/benchmarks/interop/PyNbody;
RuntimeVisibleAnnotations:
org.openjdk.jmh.annotations.Setup()
public void nbody3(org.openjdk.jmh.infra.Blackhole);
descriptor: (Lorg/openjdk/jmh/infra/Blackhole;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
aload 0
getfield com.oracle.graal.python.benchmarks.interop.PyNbody.arg1:I
invokevirtual com.oracle.graal.python.benchmarks.interop.PyNbody.nbody:(I)V
1: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 this Lcom/oracle/graal/python/benchmarks/interop/PyNbody;
0 2 1 bh Lorg/openjdk/jmh/infra/Blackhole;
RuntimeVisibleAnnotations:
org.openjdk.jmh.annotations.Benchmark()
MethodParameters:
Name Flags
bh
private void nbody(int);
descriptor: (I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield com.oracle.graal.python.benchmarks.interop.PyNbody.BODIES_ref:Lorg/graalvm/polyglot/Value;
aload 0
getfield com.oracle.graal.python.benchmarks.interop.PyNbody.SYSTEM:Lorg/graalvm/polyglot/Value;
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.offset_momentum:(Lorg/graalvm/polyglot/Value;Lorg/graalvm/polyglot/Value;)V
1: aload 0
getfield com.oracle.graal.python.benchmarks.interop.PyNbody.SYSTEM:Lorg/graalvm/polyglot/Value;
aload 0
getfield com.oracle.graal.python.benchmarks.interop.PyNbody.PAIRS:Lorg/graalvm/polyglot/Value;
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.report_energy:(Lorg/graalvm/polyglot/Value;Lorg/graalvm/polyglot/Value;)V
2: ldc 0.01
iload 1
aload 0
getfield com.oracle.graal.python.benchmarks.interop.PyNbody.SYSTEM:Lorg/graalvm/polyglot/Value;
aload 0
getfield com.oracle.graal.python.benchmarks.interop.PyNbody.PAIRS:Lorg/graalvm/polyglot/Value;
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.advance:(DILorg/graalvm/polyglot/Value;Lorg/graalvm/polyglot/Value;)V
3: aload 0
getfield com.oracle.graal.python.benchmarks.interop.PyNbody.SYSTEM:Lorg/graalvm/polyglot/Value;
aload 0
getfield com.oracle.graal.python.benchmarks.interop.PyNbody.PAIRS:Lorg/graalvm/polyglot/Value;
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.report_energy:(Lorg/graalvm/polyglot/Value;Lorg/graalvm/polyglot/Value;)V
4: return
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 this Lcom/oracle/graal/python/benchmarks/interop/PyNbody;
0 5 1 n I
MethodParameters:
Name Flags
n
private static void report_energy(org.graalvm.polyglot.Value, org.graalvm.polyglot.Value);
descriptor: (Lorg/graalvm/polyglot/Value;Lorg/graalvm/polyglot/Value;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=10, locals=31, args_size=2
start local 0 start local 1 0: dconst_0
dstore 2
start local 2 1: iconst_0
istore 10
start local 10 2: goto 20
3: StackMap locals: org.graalvm.polyglot.Value org.graalvm.polyglot.Value double top top top top top top int
StackMap stack:
aload 1
iload 10
i2l
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
lconst_0
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
astore 11
start local 11 4: aload 11
lconst_0
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
astore 12
start local 12 5: aload 12
iconst_0
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
dstore 13
start local 13 6: aload 12
iconst_1
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
dstore 15
start local 15 7: aload 12
iconst_2
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
dstore 17
start local 17 8: aload 11
iconst_2
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
dstore 19
start local 19 9: aload 1
iload 10
i2l
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
lconst_1
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
astore 21
start local 21 10: aload 21
lconst_0
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
astore 22
start local 22 11: aload 22
iconst_0
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
dstore 23
start local 23 12: aload 22
iconst_1
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
dstore 25
start local 25 13: aload 22
iconst_2
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
dstore 27
start local 27 14: aload 21
iconst_2
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
dstore 29
start local 29 15: dload 13
dload 23
dsub
dstore 4
start local 4 16: dload 15
dload 25
dsub
dstore 6
start local 6 17: dload 17
dload 27
dsub
dstore 8
start local 8 18: dload 2
dload 19
dload 29
dmul
dload 4
dload 4
dmul
dload 6
dload 6
dmul
dadd
dload 8
dload 8
dmul
dadd
ldc 0.5
invokestatic java.lang.Math.pow:(DD)D
ddiv
dsub
dstore 2
end local 29 end local 27 end local 25 end local 23 end local 22 end local 21 end local 19 end local 17 end local 15 end local 13 end local 12 end local 11 19: iinc 10 1
end local 8 end local 6 end local 4 StackMap locals:
StackMap stack:
20: iload 10
i2l
aload 1
invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
lcmp
iflt 3
end local 10 21: iconst_0
istore 10
start local 10 22: goto 31
23: StackMap locals:
StackMap stack:
aload 0
iload 10
i2l
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
astore 11
start local 11 24: aload 11
lconst_1
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
astore 12
start local 12 25: aload 12
iconst_0
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
dstore 13
start local 13 26: aload 12
iconst_1
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
dstore 15
start local 15 27: aload 12
iconst_2
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
dstore 17
start local 17 28: aload 11
iconst_2
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
dstore 19
start local 19 29: dload 2
dload 19
dload 13
dload 13
dmul
dload 15
dload 15
dmul
dadd
dload 17
dload 17
dmul
dadd
dmul
ldc 2.0
ddiv
dadd
dstore 2
end local 19 end local 17 end local 15 end local 13 end local 12 end local 11 30: iinc 10 1
StackMap locals:
StackMap stack:
31: iload 10
i2l
aload 0
invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
lcmp
iflt 23
end local 10 32: getstatic java.lang.System.out:Ljava/io/PrintStream;
ldc "%.9f"
iconst_1
anewarray java.lang.Object
dup
iconst_0
dload 2
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
aastore
invokestatic java.lang.String.format:(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;
invokevirtual java.io.PrintStream.println:(Ljava/lang/String;)V
33: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 34 0 bodies Lorg/graalvm/polyglot/Value;
0 34 1 pairs Lorg/graalvm/polyglot/Value;
1 34 2 e D
16 20 4 dx D
17 20 6 dy D
18 20 8 dz D
2 21 10 i I
4 19 11 pair1 Lorg/graalvm/polyglot/Value;
5 19 12 xyz1 Lorg/graalvm/polyglot/Value;
6 19 13 x1 D
7 19 15 y1 D
8 19 17 z1 D
9 19 19 m1 D
10 19 21 pair2 Lorg/graalvm/polyglot/Value;
11 19 22 xyz2 Lorg/graalvm/polyglot/Value;
12 19 23 x2 D
13 19 25 y2 D
14 19 27 z2 D
15 19 29 m2 D
22 32 10 i I
24 30 11 body Lorg/graalvm/polyglot/Value;
25 30 12 v Lorg/graalvm/polyglot/Value;
26 30 13 vx D
27 30 15 vy D
28 30 17 vz D
29 30 19 m D
MethodParameters:
Name Flags
bodies
pairs
private static void setAdd(org.graalvm.polyglot.Value, int, double);
descriptor: (Lorg/graalvm/polyglot/Value;ID)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
i2l
aload 0
iload 1
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
dload 2
dadd
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
invokevirtual org.graalvm.polyglot.Value.setArrayElement:(JLjava/lang/Object;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 a Lorg/graalvm/polyglot/Value;
0 2 1 i I
0 2 2 v D
MethodParameters:
Name Flags
a
i
v
private static void setSubtract(org.graalvm.polyglot.Value, int, double);
descriptor: (Lorg/graalvm/polyglot/Value;ID)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=7, locals=4, args_size=3
start local 0 start local 1 start local 2 0: aload 0
iload 1
i2l
aload 0
iload 1
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
dload 2
dsub
invokestatic java.lang.Double.valueOf:(D)Ljava/lang/Double;
invokevirtual org.graalvm.polyglot.Value.setArrayElement:(JLjava/lang/Object;)V
1: return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 a Lorg/graalvm/polyglot/Value;
0 2 1 i I
0 2 2 v D
MethodParameters:
Name Flags
a
i
v
private static void advance(double, int, org.graalvm.polyglot.Value, org.graalvm.polyglot.Value);
descriptor: (DILorg/graalvm/polyglot/Value;Lorg/graalvm/polyglot/Value;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=8, locals=41, args_size=4
start local 0 start local 2 start local 3 start local 4 0: iconst_0
istore 17
start local 17 1: goto 46
2: StackMap locals: double int org.graalvm.polyglot.Value org.graalvm.polyglot.Value top top top top top top top top top top top top int
StackMap stack:
iconst_0
istore 18
start local 18 3: goto 31
4: StackMap locals: int
StackMap stack:
aload 4
iload 18
i2l
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
lconst_0
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
astore 19
start local 19 5: aload 19
lconst_0
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
astore 20
start local 20 6: aload 20
iconst_0
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
dstore 21
start local 21 7: aload 20
iconst_1
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
dstore 23
start local 23 8: aload 20
iconst_2
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
dstore 25
start local 25 9: aload 19
lconst_1
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
astore 27
start local 27 10: aload 19
iconst_2
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
dstore 28
start local 28 11: aload 4
iload 18
i2l
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
lconst_1
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
astore 30
start local 30 12: aload 30
lconst_0
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
astore 31
start local 31 13: aload 31
iconst_0
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
dstore 32
start local 32 14: aload 31
iconst_1
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
dstore 34
start local 34 15: aload 31
iconst_2
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
dstore 36
start local 36 16: aload 30
lconst_1
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
astore 38
start local 38 17: aload 30
iconst_2
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
dstore 39
start local 39 18: dload 21
dload 32
dsub
dstore 5
start local 5 19: dload 23
dload 34
dsub
dstore 7
start local 7 20: dload 25
dload 36
dsub
dstore 9
start local 9 21: dload 0
dload 5
dload 5
dmul
dload 7
dload 7
dmul
dadd
dload 9
dload 9
dmul
dadd
ldc -1.5
invokestatic java.lang.Math.pow:(DD)D
dmul
dstore 11
start local 11 22: dload 28
dload 11
dmul
dstore 13
start local 13 23: dload 39
dload 11
dmul
dstore 15
start local 15 24: aload 27
iconst_0
dload 5
dload 15
dmul
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.setSubtract:(Lorg/graalvm/polyglot/Value;ID)V
25: aload 27
iconst_1
dload 7
dload 15
dmul
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.setSubtract:(Lorg/graalvm/polyglot/Value;ID)V
26: aload 27
iconst_2
dload 9
dload 15
dmul
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.setSubtract:(Lorg/graalvm/polyglot/Value;ID)V
27: aload 38
iconst_0
dload 5
dload 13
dmul
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.setAdd:(Lorg/graalvm/polyglot/Value;ID)V
28: aload 38
iconst_1
dload 7
dload 13
dmul
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.setAdd:(Lorg/graalvm/polyglot/Value;ID)V
29: aload 38
iconst_2
dload 9
dload 13
dmul
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.setAdd:(Lorg/graalvm/polyglot/Value;ID)V
end local 39 end local 38 end local 36 end local 34 end local 32 end local 31 end local 30 end local 28 end local 27 end local 25 end local 23 end local 21 end local 20 end local 19 30: iinc 18 1
end local 15 end local 13 end local 11 end local 9 end local 7 end local 5 StackMap locals:
StackMap stack:
31: iload 18
i2l
aload 4
invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
lcmp
iflt 4
end local 18 32: iconst_0
istore 18
start local 18 33: goto 44
34: StackMap locals:
StackMap stack:
aload 3
iload 18
i2l
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
astore 19
start local 19 35: aload 19
lconst_0
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
astore 20
start local 20 36: aload 19
lconst_1
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
astore 21
start local 21 37: aload 21
iconst_0
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
dstore 22
start local 22 38: aload 21
iconst_1
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
dstore 24
start local 24 39: aload 21
iconst_2
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
dstore 26
start local 26 40: aload 20
iconst_0
dload 0
dload 22
dmul
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.setAdd:(Lorg/graalvm/polyglot/Value;ID)V
41: aload 20
iconst_1
dload 0
dload 24
dmul
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.setAdd:(Lorg/graalvm/polyglot/Value;ID)V
42: aload 20
iconst_2
dload 0
dload 26
dmul
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.setAdd:(Lorg/graalvm/polyglot/Value;ID)V
end local 26 end local 24 end local 22 end local 21 end local 20 end local 19 43: iinc 18 1
StackMap locals:
StackMap stack:
44: iload 18
i2l
aload 3
invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
lcmp
iflt 34
end local 18 45: iinc 17 1
StackMap locals:
StackMap stack:
46: iload 17
iload 2
if_icmplt 2
end local 17 47: return
end local 4 end local 3 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 48 0 dt D
0 48 2 n I
0 48 3 bodies Lorg/graalvm/polyglot/Value;
0 48 4 pairs Lorg/graalvm/polyglot/Value;
19 31 5 dx D
20 31 7 dy D
21 31 9 dz D
22 31 11 mag D
23 31 13 b1m D
24 31 15 b2m D
1 47 17 i I
3 32 18 j I
5 30 19 pair1 Lorg/graalvm/polyglot/Value;
6 30 20 xyz1 Lorg/graalvm/polyglot/Value;
7 30 21 x1 D
8 30 23 y1 D
9 30 25 z1 D
10 30 27 v1 Lorg/graalvm/polyglot/Value;
11 30 28 m1 D
12 30 30 pair2 Lorg/graalvm/polyglot/Value;
13 30 31 xyz2 Lorg/graalvm/polyglot/Value;
14 30 32 x2 D
15 30 34 y2 D
16 30 36 z2 D
17 30 38 v2 Lorg/graalvm/polyglot/Value;
18 30 39 m2 D
33 45 18 j I
35 43 19 body Lorg/graalvm/polyglot/Value;
36 43 20 r Lorg/graalvm/polyglot/Value;
37 43 21 v Lorg/graalvm/polyglot/Value;
38 43 22 vx D
39 43 24 vy D
40 43 26 vz D
MethodParameters:
Name Flags
dt
n
bodies
pairs
private static void offset_momentum(org.graalvm.polyglot.Value, org.graalvm.polyglot.Value);
descriptor: (Lorg/graalvm/polyglot/Value;Lorg/graalvm/polyglot/Value;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=6, locals=19, args_size=2
start local 0 start local 1 0: dconst_0
dstore 2
start local 2 1: dconst_0
dstore 4
start local 4 2: dconst_0
dstore 6
start local 6 3: iconst_0
istore 8
start local 8 4: goto 15
5: StackMap locals: org.graalvm.polyglot.Value org.graalvm.polyglot.Value double double double int
StackMap stack:
aload 1
iload 8
i2l
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
astore 9
start local 9 6: aload 9
lconst_1
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
astore 10
start local 10 7: aload 10
iconst_0
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
dstore 11
start local 11 8: aload 10
iconst_1
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
dstore 13
start local 13 9: aload 10
iconst_2
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
dstore 15
start local 15 10: aload 9
iconst_2
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
dstore 17
start local 17 11: dload 2
dload 11
dload 17
dmul
dsub
dstore 2
12: dload 4
dload 13
dload 17
dmul
dsub
dstore 4
13: dload 6
dload 15
dload 17
dmul
dsub
dstore 6
end local 17 end local 15 end local 13 end local 11 end local 10 end local 9 14: iinc 8 1
StackMap locals:
StackMap stack:
15: iload 8
i2l
aload 1
invokevirtual org.graalvm.polyglot.Value.getArraySize:()J
lcmp
iflt 5
end local 8 16: aload 0
lconst_1
invokevirtual org.graalvm.polyglot.Value.getArrayElement:(J)Lorg/graalvm/polyglot/Value;
astore 8
start local 8 17: aload 0
iconst_2
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.getd:(Lorg/graalvm/polyglot/Value;I)D
dstore 9
start local 9 18: aload 8
iconst_0
dload 2
dload 9
ddiv
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.setd:(Lorg/graalvm/polyglot/Value;ID)V
19: aload 8
iconst_1
dload 4
dload 9
ddiv
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.setd:(Lorg/graalvm/polyglot/Value;ID)V
20: aload 8
iconst_2
dload 6
dload 9
ddiv
invokestatic com.oracle.graal.python.benchmarks.interop.PyNbody.setd:(Lorg/graalvm/polyglot/Value;ID)V
21: return
end local 9 end local 8 end local 6 end local 4 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 22 0 ref Lorg/graalvm/polyglot/Value;
0 22 1 bodies Lorg/graalvm/polyglot/Value;
1 22 2 px D
2 22 4 py D
3 22 6 pz D
4 16 8 j I
6 14 9 body Lorg/graalvm/polyglot/Value;
7 14 10 v Lorg/graalvm/polyglot/Value;
8 14 11 vx D
9 14 13 vy D
10 14 15 vz D
11 14 17 m D
17 22 8 v Lorg/graalvm/polyglot/Value;
18 22 9 m D
MethodParameters:
Name Flags
ref
bodies
}
SourceFile: "PyNbody.java"