final class org.jruby.ir.dataflow.analyses.ArithOp extends org.jruby.ir.dataflow.analyses.UnboxableOp
minor version: 0
major version: 59
flags: flags: (0x0030) ACC_FINAL, ACC_SUPER
this_class: org.jruby.ir.dataflow.analyses.ArithOp
super_class: org.jruby.ir.dataflow.analyses.UnboxableOp
{
private final org.jruby.ir.Operation fixnumOp;
descriptor: Lorg/jruby/ir/Operation;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.jruby.ir.Operation floatOp;
descriptor: Lorg/jruby/ir/Operation;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
public void <init>(java.lang.String, org.jruby.ir.Operation, org.jruby.ir.Operation);
descriptor: (Ljava/lang/String;Lorg/jruby/ir/Operation;Lorg/jruby/ir/Operation;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
invokespecial org.jruby.ir.dataflow.analyses.UnboxableOp.<init>:(Ljava/lang/String;)V
1: aload 0
aload 2
putfield org.jruby.ir.dataflow.analyses.ArithOp.fixnumOp:Lorg/jruby/ir/Operation;
2: aload 0
aload 3
putfield org.jruby.ir.dataflow.analyses.ArithOp.floatOp:Lorg/jruby/ir/Operation;
3: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/ir/dataflow/analyses/ArithOp;
0 4 1 name Ljava/lang/String;
0 4 2 fixnumOp Lorg/jruby/ir/Operation;
0 4 3 floatOp Lorg/jruby/ir/Operation;
MethodParameters:
Name Flags
name
fixnumOp
floatOp
public boolean acceptsArgTypes(java.lang.Class, java.lang.Class);
descriptor: (Ljava/lang/Class;Ljava/lang/Class;)Z
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ldc Lorg/jruby/ir/operands/Float;
if_acmpeq 3
1: aload 1
ldc Lorg/jruby/ir/operands/Fixnum;
if_acmpne 2
aload 2
ldc Lorg/jruby/ir/operands/Float;
if_acmpeq 3
aload 2
ldc Lorg/jruby/ir/operands/Fixnum;
if_acmpeq 3
2: StackMap locals:
StackMap stack:
iconst_0
ireturn
StackMap locals:
StackMap stack:
3: iconst_1
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/ir/dataflow/analyses/ArithOp;
0 4 1 receiverType Ljava/lang/Class;
0 4 2 argType Ljava/lang/Class;
MethodParameters:
Name Flags
receiverType
argType
public java.lang.Class getUnboxedType(java.lang.Class, java.lang.Class);
descriptor: (Ljava/lang/Class;Ljava/lang/Class;)Ljava/lang/Class;
flags: (0x0001) ACC_PUBLIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
ldc Lorg/jruby/ir/operands/Float;
if_acmpeq 1
aload 2
ldc Lorg/jruby/ir/operands/Float;
if_acmpne 2
StackMap locals:
StackMap stack:
1: ldc Lorg/jruby/ir/operands/Float;
goto 3
StackMap locals:
StackMap stack:
2: ldc Lorg/jruby/ir/operands/Fixnum;
StackMap locals:
StackMap stack: java.lang.Class
3: areturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/ir/dataflow/analyses/ArithOp;
0 4 1 receiverType Ljava/lang/Class;
0 4 2 argType Ljava/lang/Class;
MethodParameters:
Name Flags
receiverType
argType
public final java.lang.Class getUnboxedResultType(java.lang.Class);
descriptor: (Ljava/lang/Class;)Ljava/lang/Class;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc Lorg/jruby/ir/operands/Float;
if_acmpeq 1
aload 1
ldc Lorg/jruby/ir/operands/Fixnum;
if_acmpne 2
StackMap locals:
StackMap stack:
1: aload 1
goto 3
StackMap locals:
StackMap stack:
2: aconst_null
StackMap locals:
StackMap stack: java.lang.Class
3: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/ir/dataflow/analyses/ArithOp;
0 4 1 operandType Ljava/lang/Class;
MethodParameters:
Name Flags
operandType
public final org.jruby.ir.Operation getUnboxedOp(java.lang.Class);
descriptor: (Ljava/lang/Class;)Lorg/jruby/ir/Operation;
flags: (0x0011) ACC_PUBLIC, ACC_FINAL
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 1
ldc Lorg/jruby/ir/operands/Fixnum;
if_acmpne 1
aload 0
getfield org.jruby.ir.dataflow.analyses.ArithOp.fixnumOp:Lorg/jruby/ir/Operation;
goto 3
StackMap locals:
StackMap stack:
1: aload 1
ldc Lorg/jruby/ir/operands/Float;
if_acmpne 2
aload 0
getfield org.jruby.ir.dataflow.analyses.ArithOp.floatOp:Lorg/jruby/ir/Operation;
goto 3
StackMap locals:
StackMap stack:
2: aconst_null
StackMap locals:
StackMap stack: org.jruby.ir.Operation
3: areturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 4 0 this Lorg/jruby/ir/dataflow/analyses/ArithOp;
0 4 1 operandType Ljava/lang/Class;
MethodParameters:
Name Flags
operandType
}
SourceFile: "UnboxableOpsAnalysisProblem.java"