public class org.graalvm.compiler.replacements.aarch64.AArch64FloatArithmeticSnippets extends org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates implements org.graalvm.compiler.replacements.Snippets
minor version: 0
major version: 59
flags: flags: (0x0021) ACC_PUBLIC, ACC_SUPER
this_class: org.graalvm.compiler.replacements.aarch64.AArch64FloatArithmeticSnippets
super_class: org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates
{
private final org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo drem;
descriptor: Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo frem;
descriptor: Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/graalvm/compiler/replacements/aarch64/AArch64FloatArithmeticSnippets;
invokevirtual java.lang.Class.desiredAssertionStatus:()Z
ifne 1
iconst_1
goto 2
StackMap locals:
StackMap stack:
1: iconst_0
StackMap locals:
StackMap stack: int
2: putstatic org.graalvm.compiler.replacements.aarch64.AArch64FloatArithmeticSnippets.$assertionsDisabled:Z
return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.graalvm.compiler.phases.util.Providers, org.graalvm.compiler.api.replacements.SnippetReflectionProvider, jdk.vm.ci.code.TargetDescription);
descriptor: (Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Ljdk/vm/ci/code/TargetDescription;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=5, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 0
aload 1
aload 2
aload 3
invokespecial org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates.<init>:(Lorg/graalvm/compiler/phases/util/Providers;Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;Ljdk/vm/ci/code/TargetDescription;)V
1: aload 0
aload 0
ldc Lorg/graalvm/compiler/replacements/aarch64/AArch64FloatArithmeticSnippets;
ldc "dremSnippet"
iconst_0
anewarray org.graalvm.compiler.core.common.LocationIdentity
invokevirtual org.graalvm.compiler.replacements.aarch64.AArch64FloatArithmeticSnippets.snippet:(Ljava/lang/Class;Ljava/lang/String;[Lorg/graalvm/compiler/core/common/LocationIdentity;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
putfield org.graalvm.compiler.replacements.aarch64.AArch64FloatArithmeticSnippets.drem:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
2: aload 0
aload 0
ldc Lorg/graalvm/compiler/replacements/aarch64/AArch64FloatArithmeticSnippets;
ldc "fremSnippet"
iconst_0
anewarray org.graalvm.compiler.core.common.LocationIdentity
invokevirtual org.graalvm.compiler.replacements.aarch64.AArch64FloatArithmeticSnippets.snippet:(Ljava/lang/Class;Ljava/lang/String;[Lorg/graalvm/compiler/core/common/LocationIdentity;)Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
putfield org.graalvm.compiler.replacements.aarch64.AArch64FloatArithmeticSnippets.frem:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
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/graalvm/compiler/replacements/aarch64/AArch64FloatArithmeticSnippets;
0 4 1 providers Lorg/graalvm/compiler/phases/util/Providers;
0 4 2 snippetReflection Lorg/graalvm/compiler/api/replacements/SnippetReflectionProvider;
0 4 3 target Ljdk/vm/ci/code/TargetDescription;
MethodParameters:
Name Flags
providers
snippetReflection
target
public void lower(org.graalvm.compiler.nodes.calc.RemNode, org.graalvm.compiler.nodes.spi.LoweringTool);
descriptor: (Lorg/graalvm/compiler/nodes/calc/RemNode;Lorg/graalvm/compiler/nodes/spi/LoweringTool;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=6, locals=7, args_size=3
start local 0 start local 1 start local 2 0: aload 1
invokevirtual org.graalvm.compiler.nodes.calc.RemNode.stamp:()Lorg/graalvm/compiler/core/common/type/Stamp;
invokevirtual org.graalvm.compiler.core.common.type.Stamp.getStackKind:()Ljdk/vm/ci/meta/JavaKind;
astore 3
start local 3 1: getstatic org.graalvm.compiler.replacements.aarch64.AArch64FloatArithmeticSnippets.$assertionsDisabled:Z
ifne 2
aload 3
getstatic jdk.vm.ci.meta.JavaKind.Float:Ljdk/vm/ci/meta/JavaKind;
if_acmpeq 2
aload 3
getstatic jdk.vm.ci.meta.JavaKind.Double:Ljdk/vm/ci/meta/JavaKind;
if_acmpeq 2
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
2: StackMap locals: jdk.vm.ci.meta.JavaKind
StackMap stack:
aload 1
instanceof org.graalvm.compiler.replacements.aarch64.AArch64FloatArithmeticSnippets$SafeNode
ifeq 4
3: return
4: StackMap locals:
StackMap stack:
aload 3
getstatic jdk.vm.ci.meta.JavaKind.Float:Ljdk/vm/ci/meta/JavaKind;
if_acmpne 5
aload 0
getfield org.graalvm.compiler.replacements.aarch64.AArch64FloatArithmeticSnippets.frem:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
goto 6
StackMap locals:
StackMap stack:
5: aload 0
getfield org.graalvm.compiler.replacements.aarch64.AArch64FloatArithmeticSnippets.drem:Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
StackMap locals:
StackMap stack: org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo
6: astore 4
start local 4 7: aload 1
invokevirtual org.graalvm.compiler.nodes.calc.RemNode.graph:()Lorg/graalvm/compiler/nodes/StructuredGraph;
astore 5
start local 5 8: new org.graalvm.compiler.replacements.SnippetTemplate$Arguments
dup
aload 4
aload 5
invokevirtual org.graalvm.compiler.nodes.StructuredGraph.getGuardsStage:()Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;
aload 2
invokeinterface org.graalvm.compiler.nodes.spi.LoweringTool.getLoweringStage:()Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;
invokespecial org.graalvm.compiler.replacements.SnippetTemplate$Arguments.<init>:(Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;Lorg/graalvm/compiler/nodes/StructuredGraph$GuardsStage;Lorg/graalvm/compiler/nodes/spi/LoweringTool$LoweringStage;)V
astore 6
start local 6 9: aload 6
ldc "x"
aload 1
invokevirtual org.graalvm.compiler.nodes.calc.RemNode.getX:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
pop
10: aload 6
ldc "y"
aload 1
invokevirtual org.graalvm.compiler.nodes.calc.RemNode.getY:()Lorg/graalvm/compiler/nodes/ValueNode;
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate$Arguments.add:(Ljava/lang/String;Ljava/lang/Object;)Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
pop
11: aload 0
aload 6
invokevirtual org.graalvm.compiler.replacements.aarch64.AArch64FloatArithmeticSnippets.template:(Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)Lorg/graalvm/compiler/replacements/SnippetTemplate;
aload 0
getfield org.graalvm.compiler.replacements.aarch64.AArch64FloatArithmeticSnippets.providers:Lorg/graalvm/compiler/phases/util/Providers;
invokevirtual org.graalvm.compiler.phases.util.Providers.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 1
getstatic org.graalvm.compiler.replacements.SnippetTemplate.DEFAULT_REPLACER:Lorg/graalvm/compiler/replacements/SnippetTemplate$UsageReplacer;
aload 2
aload 6
invokevirtual org.graalvm.compiler.replacements.SnippetTemplate.instantiate:(Ljdk/vm/ci/meta/MetaAccessProvider;Lorg/graalvm/compiler/nodes/calc/FloatingNode;Lorg/graalvm/compiler/replacements/SnippetTemplate$UsageReplacer;Lorg/graalvm/compiler/nodes/spi/LoweringTool;Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;)V
12: return
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 13 0 this Lorg/graalvm/compiler/replacements/aarch64/AArch64FloatArithmeticSnippets;
0 13 1 node Lorg/graalvm/compiler/nodes/calc/RemNode;
0 13 2 tool Lorg/graalvm/compiler/nodes/spi/LoweringTool;
1 13 3 kind Ljdk/vm/ci/meta/JavaKind;
7 13 4 snippet Lorg/graalvm/compiler/replacements/SnippetTemplate$SnippetInfo;
8 13 5 graph Lorg/graalvm/compiler/nodes/StructuredGraph;
9 13 6 args Lorg/graalvm/compiler/replacements/SnippetTemplate$Arguments;
MethodParameters:
Name Flags
node
tool
public static float fremSnippet(float, float);
descriptor: (FF)F
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=2, locals=3, args_size=2
start local 0 start local 1 0: fload 0
invokestatic java.lang.Float.isInfinite:(F)Z
ifne 1
fload 1
fconst_0
fcmpl
ifeq 1
fload 1
invokestatic java.lang.Float.isNaN:(F)Z
ifeq 2
1: StackMap locals:
StackMap stack:
ldc NaN
freturn
2: StackMap locals:
StackMap stack:
fload 0
fconst_0
fcmpl
ifeq 3
fload 1
invokestatic java.lang.Float.isInfinite:(F)Z
ifeq 4
3: StackMap locals:
StackMap stack:
fload 0
freturn
4: StackMap locals:
StackMap stack:
fload 0
fload 1
invokestatic org.graalvm.compiler.replacements.aarch64.AArch64FloatArithmeticSnippets.safeRem:(FF)F
fstore 2
start local 2 5: fload 2
fconst_0
fcmpl
ifne 7
fload 0
fconst_0
fcmpg
ifge 7
6: fload 2
fneg
freturn
7: StackMap locals: float
StackMap stack:
fload 2
freturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 x F
0 8 1 y F
5 8 2 result F
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Snippet()
MethodParameters:
Name Flags
x
y
public static double dremSnippet(double, double);
descriptor: (DD)D
flags: (0x0009) ACC_PUBLIC, ACC_STATIC
Code:
stack=4, locals=6, args_size=2
start local 0 start local 2 0: dload 0
invokestatic java.lang.Double.isInfinite:(D)Z
ifne 1
dload 2
dconst_0
dcmpl
ifeq 1
dload 2
invokestatic java.lang.Double.isNaN:(D)Z
ifeq 2
1: StackMap locals:
StackMap stack:
ldc NaN
dreturn
2: StackMap locals:
StackMap stack:
dload 0
dconst_0
dcmpl
ifeq 3
dload 2
invokestatic java.lang.Double.isInfinite:(D)Z
ifeq 4
3: StackMap locals:
StackMap stack:
dload 0
dreturn
4: StackMap locals:
StackMap stack:
dload 0
dload 2
invokestatic org.graalvm.compiler.replacements.aarch64.AArch64FloatArithmeticSnippets.safeRem:(DD)D
dstore 4
start local 4 5: dload 4
dconst_0
dcmpl
ifne 7
dload 0
dconst_0
dcmpg
ifge 7
6: dload 4
dneg
dreturn
7: StackMap locals: double
StackMap stack:
dload 4
dreturn
end local 4 end local 2 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 8 0 x D
0 8 2 y D
5 8 4 result D
RuntimeVisibleAnnotations:
org.graalvm.compiler.api.replacements.Snippet()
MethodParameters:
Name Flags
x
y
private static native float safeRem(float, float);
descriptor: (FF)F
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
RuntimeVisibleAnnotations:
org.graalvm.compiler.graph.Node$NodeIntrinsic(value = Lorg/graalvm/compiler/replacements/aarch64/AArch64FloatArithmeticSnippets$SafeFloatRemNode;)
MethodParameters:
Name Flags
x
y
private static native double safeRem(double, double);
descriptor: (DD)D
flags: (0x010a) ACC_PRIVATE, ACC_STATIC, ACC_NATIVE
RuntimeVisibleAnnotations:
org.graalvm.compiler.graph.Node$NodeIntrinsic(value = Lorg/graalvm/compiler/replacements/aarch64/AArch64FloatArithmeticSnippets$SafeFloatRemNode;)
MethodParameters:
Name Flags
x
y
}
SourceFile: "AArch64FloatArithmeticSnippets.java"
NestMembers:
org.graalvm.compiler.replacements.aarch64.AArch64FloatArithmeticSnippets$SafeFloatRemNode org.graalvm.compiler.replacements.aarch64.AArch64FloatArithmeticSnippets$SafeNode
InnerClasses:
public abstract NodeIntrinsic = org.graalvm.compiler.graph.Node$NodeIntrinsic of org.graalvm.compiler.graph.Node
public final GuardsStage = org.graalvm.compiler.nodes.StructuredGraph$GuardsStage of org.graalvm.compiler.nodes.StructuredGraph
public abstract LoweringStage = org.graalvm.compiler.nodes.spi.LoweringTool$LoweringStage of org.graalvm.compiler.nodes.spi.LoweringTool
public abstract AbstractTemplates = org.graalvm.compiler.replacements.SnippetTemplate$AbstractTemplates of org.graalvm.compiler.replacements.SnippetTemplate
public Arguments = org.graalvm.compiler.replacements.SnippetTemplate$Arguments of org.graalvm.compiler.replacements.SnippetTemplate
public abstract SnippetInfo = org.graalvm.compiler.replacements.SnippetTemplate$SnippetInfo of org.graalvm.compiler.replacements.SnippetTemplate
public abstract UsageReplacer = org.graalvm.compiler.replacements.SnippetTemplate$UsageReplacer of org.graalvm.compiler.replacements.SnippetTemplate
SafeFloatRemNode = org.graalvm.compiler.replacements.aarch64.AArch64FloatArithmeticSnippets$SafeFloatRemNode of org.graalvm.compiler.replacements.aarch64.AArch64FloatArithmeticSnippets
private abstract SafeNode = org.graalvm.compiler.replacements.aarch64.AArch64FloatArithmeticSnippets$SafeNode of org.graalvm.compiler.replacements.aarch64.AArch64FloatArithmeticSnippets