class org.jruby.ir.IRBuilder$9 implements org.jruby.ir.IRBuilder$CodeBlock
minor version: 0
major version: 59
flags: flags: (0x0020) ACC_SUPER
this_class: org.jruby.ir.IRBuilder$9
super_class: java.lang.Object
{
final org.jruby.ir.IRBuilder this$0;
descriptor: Lorg/jruby/ir/IRBuilder;
flags: (0x1010) ACC_FINAL, ACC_SYNTHETIC
private final org.jruby.ir.IRBuilder val$builder;
descriptor: Lorg/jruby/ir/IRBuilder;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
private final org.jruby.ir.operands.Operand val$block;
descriptor: Lorg/jruby/ir/operands/Operand;
flags: (0x1012) ACC_PRIVATE, ACC_FINAL, ACC_SYNTHETIC
void <init>(org.jruby.ir.IRBuilder, org.jruby.ir.IRBuilder, org.jruby.ir.operands.Operand);
descriptor: (Lorg/jruby/ir/IRBuilder;Lorg/jruby/ir/IRBuilder;Lorg/jruby/ir/operands/Operand;)V
flags: (0x0000)
Code:
stack=2, locals=4, args_size=4
start local 0 0: aload 0
aload 1
putfield org.jruby.ir.IRBuilder$9.this$0:Lorg/jruby/ir/IRBuilder;
aload 0
aload 2
putfield org.jruby.ir.IRBuilder$9.val$builder:Lorg/jruby/ir/IRBuilder;
aload 0
aload 3
putfield org.jruby.ir.IRBuilder$9.val$block:Lorg/jruby/ir/operands/Operand;
aload 0
invokespecial java.lang.Object.<init>:()V
return
end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/jruby/ir/IRBuilder$9;
MethodParameters:
Name Flags
this$0 final
val$builder final
val$block final
public org.jruby.ir.operands.Operand run();
descriptor: ()Lorg/jruby/ir/operands/Operand;
flags: (0x0001) ACC_PUBLIC
Code:
stack=9, locals=9, args_size=1
start local 0 0: aload 0
getfield org.jruby.ir.IRBuilder$9.this$0:Lorg/jruby/ir/IRBuilder;
invokevirtual org.jruby.ir.IRBuilder.createTemporaryVariable:()Lorg/jruby/ir/operands/TemporaryVariable;
astore 1
start local 1 1: aload 0
getfield org.jruby.ir.IRBuilder$9.this$0:Lorg/jruby/ir/IRBuilder;
new org.jruby.ir.instructions.ArgScopeDepthInstr
dup
aload 1
invokespecial org.jruby.ir.instructions.ArgScopeDepthInstr.<init>:(Lorg/jruby/ir/operands/Variable;)V
invokevirtual org.jruby.ir.IRBuilder.addInstr:(Lorg/jruby/ir/instructions/Instr;)V
2: aload 0
getfield org.jruby.ir.IRBuilder$9.this$0:Lorg/jruby/ir/IRBuilder;
invokevirtual org.jruby.ir.IRBuilder.getNewLabel:()Lorg/jruby/ir/operands/Label;
astore 2
start local 2 3: iconst_0
istore 3
start local 3 4: aconst_null
astore 4
start local 4 5: aload 0
getfield org.jruby.ir.IRBuilder$9.val$builder:Lorg/jruby/ir/IRBuilder;
astore 5
start local 5 6: aload 0
getfield org.jruby.ir.IRBuilder$9.this$0:Lorg/jruby/ir/IRBuilder;
getfield org.jruby.ir.IRBuilder.scope:Lorg/jruby/ir/IRScope;
astore 6
start local 6 7: aload 0
getfield org.jruby.ir.IRBuilder$9.this$0:Lorg/jruby/ir/IRBuilder;
invokevirtual org.jruby.ir.IRBuilder.createTemporaryVariable:()Lorg/jruby/ir/operands/TemporaryVariable;
astore 7
start local 7 8: goto 20
9: StackMap locals: org.jruby.ir.IRBuilder$9 org.jruby.ir.operands.Variable org.jruby.ir.operands.Label int org.jruby.ir.operands.Label org.jruby.ir.IRBuilder org.jruby.ir.IRScope org.jruby.ir.operands.Variable
StackMap stack:
aload 4
ifnull 10
aload 0
getfield org.jruby.ir.IRBuilder$9.this$0:Lorg/jruby/ir/IRBuilder;
new org.jruby.ir.instructions.LabelInstr
dup
aload 4
invokespecial org.jruby.ir.instructions.LabelInstr.<init>:(Lorg/jruby/ir/operands/Label;)V
invokevirtual org.jruby.ir.IRBuilder.addInstr:(Lorg/jruby/ir/instructions/Instr;)V
10: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ir.IRBuilder$9.this$0:Lorg/jruby/ir/IRBuilder;
invokevirtual org.jruby.ir.IRBuilder.getNewLabel:()Lorg/jruby/ir/operands/Label;
astore 4
11: aload 0
getfield org.jruby.ir.IRBuilder$9.this$0:Lorg/jruby/ir/IRBuilder;
aload 4
aload 0
getfield org.jruby.ir.IRBuilder$9.this$0:Lorg/jruby/ir/IRBuilder;
getfield org.jruby.ir.IRBuilder.manager:Lorg/jruby/ir/IRManager;
iload 3
i2l
invokevirtual org.jruby.ir.IRManager.newFixnum:(J)Lorg/jruby/ir/operands/Fixnum;
aload 1
invokestatic org.jruby.ir.instructions.BNEInstr.create:(Lorg/jruby/ir/operands/Label;Lorg/jruby/ir/operands/Operand;Lorg/jruby/ir/operands/Operand;)Lorg/jruby/ir/instructions/BranchInstr;
invokevirtual org.jruby.ir.IRBuilder.addInstr:(Lorg/jruby/ir/instructions/Instr;)V
12: aload 0
getfield org.jruby.ir.IRBuilder$9.this$0:Lorg/jruby/ir/IRBuilder;
aload 6
aload 5
invokestatic org.jruby.ir.IRBuilder.getCallArgs:(Lorg/jruby/ir/IRScope;Lorg/jruby/ir/IRBuilder;)[Lorg/jruby/ir/operands/Operand;
iload 3
invokevirtual org.jruby.ir.IRBuilder.adjustVariableDepth:([Lorg/jruby/ir/operands/Operand;I)[Lorg/jruby/ir/operands/Operand;
astore 8
start local 8 13: aload 0
getfield org.jruby.ir.IRBuilder$9.this$0:Lorg/jruby/ir/IRBuilder;
new org.jruby.ir.instructions.ZSuperInstr
dup
aload 0
getfield org.jruby.ir.IRBuilder$9.this$0:Lorg/jruby/ir/IRBuilder;
getfield org.jruby.ir.IRBuilder.scope:Lorg/jruby/ir/IRScope;
aload 7
aload 0
getfield org.jruby.ir.IRBuilder$9.this$0:Lorg/jruby/ir/IRBuilder;
invokevirtual org.jruby.ir.IRBuilder.buildSelf:()Lorg/jruby/ir/operands/Variable;
aload 8
aload 0
getfield org.jruby.ir.IRBuilder$9.val$block:Lorg/jruby/ir/operands/Operand;
aload 0
getfield org.jruby.ir.IRBuilder$9.this$0:Lorg/jruby/ir/IRBuilder;
getfield org.jruby.ir.IRBuilder.scope:Lorg/jruby/ir/IRScope;
invokevirtual org.jruby.ir.IRScope.maybeUsingRefinements:()Z
invokespecial org.jruby.ir.instructions.ZSuperInstr.<init>:(Lorg/jruby/ir/IRScope;Lorg/jruby/ir/operands/Variable;Lorg/jruby/ir/operands/Operand;[Lorg/jruby/ir/operands/Operand;Lorg/jruby/ir/operands/Operand;Z)V
invokevirtual org.jruby.ir.IRBuilder.addInstr:(Lorg/jruby/ir/instructions/Instr;)V
14: aload 0
getfield org.jruby.ir.IRBuilder$9.this$0:Lorg/jruby/ir/IRBuilder;
new org.jruby.ir.instructions.JumpInstr
dup
aload 2
invokespecial org.jruby.ir.instructions.JumpInstr.<init>:(Lorg/jruby/ir/operands/Label;)V
invokevirtual org.jruby.ir.IRBuilder.addInstr:(Lorg/jruby/ir/instructions/Instr;)V
15: aload 5
ifnull 16
aload 5
getfield org.jruby.ir.IRBuilder.parent:Lorg/jruby/ir/IRBuilder;
ifnull 16
aload 5
getfield org.jruby.ir.IRBuilder.parent:Lorg/jruby/ir/IRBuilder;
goto 17
StackMap locals: org.jruby.ir.operands.Operand[]
StackMap stack:
16: aconst_null
StackMap locals:
StackMap stack: org.jruby.ir.IRBuilder
17: astore 5
18: aload 6
invokevirtual org.jruby.ir.IRScope.getLexicalParent:()Lorg/jruby/ir/IRScope;
astore 6
19: iinc 3 1
end local 8 20: StackMap locals:
StackMap stack:
aload 6
instanceof org.jruby.ir.IRClosure
ifne 9
21: aload 0
getfield org.jruby.ir.IRBuilder$9.this$0:Lorg/jruby/ir/IRBuilder;
new org.jruby.ir.instructions.LabelInstr
dup
aload 4
invokespecial org.jruby.ir.instructions.LabelInstr.<init>:(Lorg/jruby/ir/operands/Label;)V
invokevirtual org.jruby.ir.IRBuilder.addInstr:(Lorg/jruby/ir/instructions/Instr;)V
22: aload 6
instanceof org.jruby.ir.IRMethod
ifeq 25
23: aload 0
getfield org.jruby.ir.IRBuilder$9.this$0:Lorg/jruby/ir/IRBuilder;
aload 6
aload 5
invokestatic org.jruby.ir.IRBuilder.getCallArgs:(Lorg/jruby/ir/IRScope;Lorg/jruby/ir/IRBuilder;)[Lorg/jruby/ir/operands/Operand;
iload 3
invokevirtual org.jruby.ir.IRBuilder.adjustVariableDepth:([Lorg/jruby/ir/operands/Operand;I)[Lorg/jruby/ir/operands/Operand;
astore 8
start local 8 24: aload 0
getfield org.jruby.ir.IRBuilder$9.this$0:Lorg/jruby/ir/IRBuilder;
new org.jruby.ir.instructions.ZSuperInstr
dup
aload 0
getfield org.jruby.ir.IRBuilder$9.this$0:Lorg/jruby/ir/IRBuilder;
getfield org.jruby.ir.IRBuilder.scope:Lorg/jruby/ir/IRScope;
aload 7
aload 0
getfield org.jruby.ir.IRBuilder$9.this$0:Lorg/jruby/ir/IRBuilder;
invokevirtual org.jruby.ir.IRBuilder.buildSelf:()Lorg/jruby/ir/operands/Variable;
aload 8
aload 0
getfield org.jruby.ir.IRBuilder$9.val$block:Lorg/jruby/ir/operands/Operand;
aload 0
getfield org.jruby.ir.IRBuilder$9.this$0:Lorg/jruby/ir/IRBuilder;
getfield org.jruby.ir.IRBuilder.scope:Lorg/jruby/ir/IRScope;
invokevirtual org.jruby.ir.IRScope.maybeUsingRefinements:()Z
invokespecial org.jruby.ir.instructions.ZSuperInstr.<init>:(Lorg/jruby/ir/IRScope;Lorg/jruby/ir/operands/Variable;Lorg/jruby/ir/operands/Operand;[Lorg/jruby/ir/operands/Operand;Lorg/jruby/ir/operands/Operand;Z)V
invokevirtual org.jruby.ir.IRBuilder.addInstr:(Lorg/jruby/ir/instructions/Instr;)V
end local 8 25: StackMap locals:
StackMap stack:
aload 0
getfield org.jruby.ir.IRBuilder$9.this$0:Lorg/jruby/ir/IRBuilder;
new org.jruby.ir.instructions.LabelInstr
dup
aload 2
invokespecial org.jruby.ir.instructions.LabelInstr.<init>:(Lorg/jruby/ir/operands/Label;)V
invokevirtual org.jruby.ir.IRBuilder.addInstr:(Lorg/jruby/ir/instructions/Instr;)V
26: aload 7
areturn
end local 7 end local 6 end local 5 end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 27 0 this Lorg/jruby/ir/IRBuilder$9;
1 27 1 scopeDepth Lorg/jruby/ir/operands/Variable;
3 27 2 allDoneLabel Lorg/jruby/ir/operands/Label;
4 27 3 depthFromSuper I
5 27 4 next Lorg/jruby/ir/operands/Label;
6 27 5 superBuilder Lorg/jruby/ir/IRBuilder;
7 27 6 superScope Lorg/jruby/ir/IRScope;
8 27 7 zsuperResult Lorg/jruby/ir/operands/Variable;
13 20 8 args [Lorg/jruby/ir/operands/Operand;
24 25 8 args [Lorg/jruby/ir/operands/Operand;
}
SourceFile: "IRBuilder.java"
EnclosingMethod: org.jruby.ir.IRBuilder.buildZSuperIfNest:(Lorg/jruby/ir/operands/Operand;)Lorg/jruby/ir/operands/Operand;
NestHost: org.jruby.ir.IRBuilder
InnerClasses:
org.jruby.ir.IRBuilder$9
abstract CodeBlock = org.jruby.ir.IRBuilder$CodeBlock of org.jruby.ir.IRBuilder