Closed crowlogic closed 8 months ago
theres nothing on the stack for the Real.div invocation to consume in the output generated with compute_frames at byte code index 197
public arb.Real evaluate(arb.Integer, int, int, arb.Real);
descriptor: (Ljava/lang/Object;IILjava/lang/Object;)Ljava/lang/Object;
flags: (0x0001) ACC_PUBLIC
Code:
stack=10, locals=10, args_size=5
0: aload_0
1: getfield #14 // Field isInitialized:Z
4: ifne 11
7: aload_0
8: invokevirtual #18 // Method initialize:()V
11: aload_0
12: getfield #22 // Field factorℝ1:Lfactorℝ1;
15: aload_1
16: checkcast #24 // class arb/Integer
19: putfield #29 // Field factorℝ1.n:Larb/Integer;
22: aload_0
23: getfield #33 // Field productℝ1:Larb/Real;
26: invokevirtual #39 // Method arb/Real.multiplicativeIdentity:()Larb/Real;
29: pop
30: aload_0
31: getfield #42 // Field k:Larb/Integer;
34: aload_0
35: getfield #45 // Field c1:Larb/Integer;
38: invokevirtual #49 // Method arb/Integer.set:(Larb/Integer;)Larb/Integer;
41: pop
42: aload_0
43: getfield #52 // Field endIndexℤ1:Larb/Integer;
46: aload_0
47: getfield #55 // Field p:Larb/Integer;
50: invokevirtual #49 // Method arb/Integer.set:(Larb/Integer;)Larb/Integer;
53: pop
54: aload_0
55: getfield #33 // Field productℝ1:Larb/Real;
58: aload_0
59: getfield #22 // Field factorℝ1:Lfactorℝ1;
62: aload_0
63: getfield #42 // Field k:Larb/Integer;
66: iload_3
67: aload_0
68: getfield #58 // Field valueℝ1:Larb/Real;
71: invokeinterface #61, 4 // InterfaceMethod arb/functions/Function.evaluate:(Ljava/lang/Object;ILjava/lang/Object;)Ljava/lang/Object;
76: checkcast #35 // class arb/Real
79: iload_3
80: invokevirtual #65 // Method arb/Real.mul:(Larb/Real;I)Larb/Real;
83: pop
84: aload_0
85: getfield #42 // Field k:Larb/Integer;
88: invokevirtual #69 // Method arb/Integer.increment:()Larb/Integer;
91: aload_0
92: getfield #52 // Field endIndexℤ1:Larb/Integer;
95: invokevirtual #73 // Method arb/Integer.compareTo:(Larb/Integer;)I
98: ifle 54
101: aload_0
102: getfield #77 // Field factorℝ2:Lfactorℝ2;
105: aload_1
106: checkcast #24 // class arb/Integer
109: putfield #79 // Field factorℝ2.n:Larb/Integer;
112: aload_0
113: getfield #82 // Field productℝ2:Larb/Real;
116: invokevirtual #39 // Method arb/Real.multiplicativeIdentity:()Larb/Real;
119: pop
120: aload_0
121: getfield #42 // Field k:Larb/Integer;
124: aload_0
125: getfield #45 // Field c1:Larb/Integer;
128: invokevirtual #49 // Method arb/Integer.set:(Larb/Integer;)Larb/Integer;
131: pop
132: aload_0
133: getfield #85 // Field endIndexℤ2:Larb/Integer;
136: aload_0
137: getfield #88 // Field q:Larb/Integer;
140: invokevirtual #49 // Method arb/Integer.set:(Larb/Integer;)Larb/Integer;
143: pop
144: aload_0
145: getfield #82 // Field productℝ2:Larb/Real;
148: aload_0
149: getfield #77 // Field factorℝ2:Lfactorℝ2;
152: aload_0
153: getfield #42 // Field k:Larb/Integer;
156: iload_3
157: aload_0
158: getfield #91 // Field valueℝ2:Larb/Real;
161: invokeinterface #61, 4 // InterfaceMethod arb/functions/Function.evaluate:(Ljava/lang/Object;ILjava/lang/Object;)Ljava/lang/Object;
166: checkcast #35 // class arb/Real
169: iload_3
170: invokevirtual #65 // Method arb/Real.mul:(Larb/Real;I)Larb/Real;
173: pop
174: aload_0
175: getfield #42 // Field k:Larb/Integer;
178: invokevirtual #69 // Method arb/Integer.increment:()Larb/Integer;
181: aload_0
182: getfield #85 // Field endIndexℤ2:Larb/Integer;
185: invokevirtual #73 // Method arb/Integer.compareTo:(Larb/Integer;)I
188: ifle 144
191: iload_3
192: aload 4
194: checkcast #35 // class arb/Real
197: invokevirtual #95 // Method arb/Real.div:(Larb/Real;ILarb/Real;)Larb/Real;
200: areturn
StackMapTable: number_of_entries = 3
frame_type = 11 /* same */
frame_type = 42 /* same */
frame_type = 251 /* same_frame_extended */
offset_delta = 89
LocalVariableTable:
Start Length Slot Name Signature
0 201 0 this LF;
0 201 1 in Larb/Integer;
0 201 2 order I
0 201 3 bits I
0 201 4 result Larb/Real;
Signature: #10 // (Larb/Integer;IILarb/Real;)Larb/Real;
without compute_frames
WITH COMPUTE_FRAMES