public final class org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp extends org.graalvm.compiler.lir.amd64.AMD64LIRInstruction
minor version: 0
major version: 59
flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
this_class: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp
super_class: org.graalvm.compiler.lir.amd64.AMD64LIRInstruction
{
public static final org.graalvm.compiler.lir.LIRInstructionClass<org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp> TYPE;
descriptor: Lorg/graalvm/compiler/lir/LIRInstructionClass;
flags: (0x0019) ACC_PUBLIC, ACC_STATIC, ACC_FINAL
Signature: Lorg/graalvm/compiler/lir/LIRInstructionClass<Lorg/graalvm/compiler/lir/amd64/AMD64ArrayEqualsOp;>;
private final jdk.vm.ci.meta.JavaKind kind1;
descriptor: Ljdk/vm/ci/meta/JavaKind;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final jdk.vm.ci.meta.JavaKind kind2;
descriptor: Ljdk/vm/ci/meta/JavaKind;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int arrayBaseOffset1;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int arrayBaseOffset2;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.asm.amd64.AMD64Address$Scale arrayIndexScale1;
descriptor: Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.asm.amd64.AMD64Address$Scale arrayIndexScale2;
descriptor: Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final org.graalvm.compiler.asm.amd64.AVXKind$AVXSize vectorSize;
descriptor: Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final int constantLength;
descriptor: I
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private final boolean signExtend;
descriptor: Z
flags: (0x0012) ACC_PRIVATE, ACC_FINAL
private jdk.vm.ci.meta.Value resultValue;
descriptor: Ljdk/vm/ci/meta/Value;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.graalvm.compiler.lir.LIRInstruction$Def(value = {org.graalvm.compiler.lir.LIRInstruction$OperandFlag.REG:Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;})
private jdk.vm.ci.meta.Value array1Value;
descriptor: Ljdk/vm/ci/meta/Value;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.graalvm.compiler.lir.LIRInstruction$Alive(value = {org.graalvm.compiler.lir.LIRInstruction$OperandFlag.REG:Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;})
private jdk.vm.ci.meta.Value array2Value;
descriptor: Ljdk/vm/ci/meta/Value;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.graalvm.compiler.lir.LIRInstruction$Alive(value = {org.graalvm.compiler.lir.LIRInstruction$OperandFlag.REG:Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;})
private jdk.vm.ci.meta.Value lengthValue;
descriptor: Ljdk/vm/ci/meta/Value;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.graalvm.compiler.lir.LIRInstruction$Alive(value = {org.graalvm.compiler.lir.LIRInstruction$OperandFlag.REG:Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;})
private jdk.vm.ci.meta.Value temp1;
descriptor: Ljdk/vm/ci/meta/Value;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.graalvm.compiler.lir.LIRInstruction$Temp(value = {org.graalvm.compiler.lir.LIRInstruction$OperandFlag.REG:Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;})
private jdk.vm.ci.meta.Value temp2;
descriptor: Ljdk/vm/ci/meta/Value;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.graalvm.compiler.lir.LIRInstruction$Temp(value = {org.graalvm.compiler.lir.LIRInstruction$OperandFlag.REG:Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;})
private jdk.vm.ci.meta.Value temp3;
descriptor: Ljdk/vm/ci/meta/Value;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.graalvm.compiler.lir.LIRInstruction$Temp(value = {org.graalvm.compiler.lir.LIRInstruction$OperandFlag.REG:Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;})
private jdk.vm.ci.meta.Value temp4;
descriptor: Ljdk/vm/ci/meta/Value;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.graalvm.compiler.lir.LIRInstruction$Temp(value = {org.graalvm.compiler.lir.LIRInstruction$OperandFlag.REG:Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;})
private jdk.vm.ci.meta.Value temp5;
descriptor: Ljdk/vm/ci/meta/Value;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.graalvm.compiler.lir.LIRInstruction$Temp(value = {org.graalvm.compiler.lir.LIRInstruction$OperandFlag.REG:Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;, org.graalvm.compiler.lir.LIRInstruction$OperandFlag.ILLEGAL:Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;})
private jdk.vm.ci.meta.Value tempXMM;
descriptor: Ljdk/vm/ci/meta/Value;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.graalvm.compiler.lir.LIRInstruction$Temp(value = {org.graalvm.compiler.lir.LIRInstruction$OperandFlag.REG:Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;, org.graalvm.compiler.lir.LIRInstruction$OperandFlag.ILLEGAL:Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;})
private jdk.vm.ci.meta.Value vectorTemp1;
descriptor: Ljdk/vm/ci/meta/Value;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.graalvm.compiler.lir.LIRInstruction$Temp(value = {org.graalvm.compiler.lir.LIRInstruction$OperandFlag.REG:Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;, org.graalvm.compiler.lir.LIRInstruction$OperandFlag.ILLEGAL:Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;})
private jdk.vm.ci.meta.Value vectorTemp2;
descriptor: Ljdk/vm/ci/meta/Value;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.graalvm.compiler.lir.LIRInstruction$Temp(value = {org.graalvm.compiler.lir.LIRInstruction$OperandFlag.REG:Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;, org.graalvm.compiler.lir.LIRInstruction$OperandFlag.ILLEGAL:Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;})
private jdk.vm.ci.meta.Value vectorTemp3;
descriptor: Ljdk/vm/ci/meta/Value;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.graalvm.compiler.lir.LIRInstruction$Temp(value = {org.graalvm.compiler.lir.LIRInstruction$OperandFlag.REG:Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;, org.graalvm.compiler.lir.LIRInstruction$OperandFlag.ILLEGAL:Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;})
private jdk.vm.ci.meta.Value vectorTemp4;
descriptor: Ljdk/vm/ci/meta/Value;
flags: (0x0002) ACC_PRIVATE
RuntimeVisibleAnnotations:
org.graalvm.compiler.lir.LIRInstruction$Temp(value = {org.graalvm.compiler.lir.LIRInstruction$OperandFlag.REG:Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;, org.graalvm.compiler.lir.LIRInstruction$OperandFlag.ILLEGAL:Lorg/graalvm/compiler/lir/LIRInstruction$OperandFlag;})
private static final int VECTOR_SIZE;
descriptor: I
flags: (0x001a) ACC_PRIVATE, ACC_STATIC, ACC_FINAL
ConstantValue: 8
static final boolean $assertionsDisabled;
descriptor: Z
flags: (0x1018) ACC_STATIC, ACC_FINAL, ACC_SYNTHETIC
private static volatile int[] $SWITCH_TABLE$org$graalvm$compiler$asm$amd64$AMD64Address$Scale;
descriptor: [I
flags: (0x104a) ACC_PRIVATE, ACC_STATIC, ACC_VOLATILE, ACC_SYNTHETIC
static void <clinit>();
descriptor: ()V
flags: (0x0008) ACC_STATIC
Code:
stack=1, locals=0, args_size=0
0: ldc Lorg/graalvm/compiler/lir/amd64/AMD64ArrayEqualsOp;
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.lir.amd64.AMD64ArrayEqualsOp.$assertionsDisabled:Z
3: ldc Lorg/graalvm/compiler/lir/amd64/AMD64ArrayEqualsOp;
invokestatic org.graalvm.compiler.lir.LIRInstructionClass.create:(Ljava/lang/Class;)Lorg/graalvm/compiler/lir/LIRInstructionClass;
putstatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.TYPE:Lorg/graalvm/compiler/lir/LIRInstructionClass;
4: return
LocalVariableTable:
Start End Slot Name Signature
public void <init>(org.graalvm.compiler.lir.gen.LIRGeneratorTool, jdk.vm.ci.meta.JavaKind, jdk.vm.ci.meta.JavaKind, jdk.vm.ci.meta.Value, jdk.vm.ci.meta.Value, jdk.vm.ci.meta.Value, jdk.vm.ci.meta.Value, int, boolean, int);
descriptor: (Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;Ljdk/vm/ci/meta/JavaKind;Ljdk/vm/ci/meta/JavaKind;Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;Ljdk/vm/ci/meta/Value;IZI)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=3, locals=12, args_size=11
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 start local 9 start local 10 0: aload 0
getstatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.TYPE:Lorg/graalvm/compiler/lir/LIRInstructionClass;
invokespecial org.graalvm.compiler.lir.amd64.AMD64LIRInstruction.<init>:(Lorg/graalvm/compiler/lir/LIRInstructionClass;)V
1: aload 0
aload 2
putfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.kind1:Ljdk/vm/ci/meta/JavaKind;
2: aload 0
aload 3
putfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.kind2:Ljdk/vm/ci/meta/JavaKind;
3: aload 0
aload 2
getstatic jdk.vm.ci.meta.JavaKind.Char:Ljdk/vm/ci/meta/JavaKind;
if_acmpeq 4
aload 3
getstatic jdk.vm.ci.meta.JavaKind.Char:Ljdk/vm/ci/meta/JavaKind;
if_acmpeq 4
iconst_1
goto 5
StackMap locals: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp org.graalvm.compiler.lir.gen.LIRGeneratorTool jdk.vm.ci.meta.JavaKind jdk.vm.ci.meta.JavaKind jdk.vm.ci.meta.Value jdk.vm.ci.meta.Value jdk.vm.ci.meta.Value jdk.vm.ci.meta.Value int int int
StackMap stack: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp
4: iconst_0
StackMap locals: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp org.graalvm.compiler.lir.gen.LIRGeneratorTool jdk.vm.ci.meta.JavaKind jdk.vm.ci.meta.JavaKind jdk.vm.ci.meta.Value jdk.vm.ci.meta.Value jdk.vm.ci.meta.Value jdk.vm.ci.meta.Value int int int
StackMap stack: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp int
5: putfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.signExtend:Z
6: getstatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.$assertionsDisabled:Z
ifne 8
aload 2
invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
ifeq 7
aload 3
invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
ifne 8
StackMap locals:
StackMap stack:
7: aload 2
aload 3
if_acmpeq 8
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
8: StackMap locals:
StackMap stack:
aload 0
iload 9
ifeq 9
iconst_0
goto 10
StackMap locals:
StackMap stack: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp
9: aload 1
invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.getProviders:()Lorg/graalvm/compiler/core/common/spi/CodeGenProviders;
invokeinterface org.graalvm.compiler.core.common.spi.CodeGenProviders.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 2
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.getArrayBaseOffset:(Ljdk/vm/ci/meta/JavaKind;)I
StackMap locals: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp org.graalvm.compiler.lir.gen.LIRGeneratorTool jdk.vm.ci.meta.JavaKind jdk.vm.ci.meta.JavaKind jdk.vm.ci.meta.Value jdk.vm.ci.meta.Value jdk.vm.ci.meta.Value jdk.vm.ci.meta.Value int int int
StackMap stack: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp int
10: putfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayBaseOffset1:I
11: aload 0
iload 9
ifeq 12
iconst_0
goto 13
StackMap locals:
StackMap stack: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp
12: aload 1
invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.getProviders:()Lorg/graalvm/compiler/core/common/spi/CodeGenProviders;
invokeinterface org.graalvm.compiler.core.common.spi.CodeGenProviders.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 3
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.getArrayBaseOffset:(Ljdk/vm/ci/meta/JavaKind;)I
StackMap locals: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp org.graalvm.compiler.lir.gen.LIRGeneratorTool jdk.vm.ci.meta.JavaKind jdk.vm.ci.meta.JavaKind jdk.vm.ci.meta.Value jdk.vm.ci.meta.Value jdk.vm.ci.meta.Value jdk.vm.ci.meta.Value int int int
StackMap stack: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp int
13: putfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayBaseOffset2:I
14: aload 0
aload 1
invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.getProviders:()Lorg/graalvm/compiler/core/common/spi/CodeGenProviders;
invokeinterface org.graalvm.compiler.core.common.spi.CodeGenProviders.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 2
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.getArrayIndexScale:(Ljdk/vm/ci/meta/JavaKind;)I
invokestatic org.graalvm.compiler.asm.amd64.AMD64Address$Scale.fromInt:(I)Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.compiler.asm.amd64.AMD64Address$Scale
putfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale1:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
15: aload 0
aload 1
invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.getProviders:()Lorg/graalvm/compiler/core/common/spi/CodeGenProviders;
invokeinterface org.graalvm.compiler.core.common.spi.CodeGenProviders.getMetaAccess:()Ljdk/vm/ci/meta/MetaAccessProvider;
aload 3
invokeinterface jdk.vm.ci.meta.MetaAccessProvider.getArrayIndexScale:(Ljdk/vm/ci/meta/JavaKind;)I
invokestatic org.graalvm.compiler.asm.amd64.AMD64Address$Scale.fromInt:(I)Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
invokestatic java.util.Objects.requireNonNull:(Ljava/lang/Object;)Ljava/lang/Object;
checkcast org.graalvm.compiler.asm.amd64.AMD64Address$Scale
putfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale2:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
16: aload 0
aload 1
invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.target:()Ljdk/vm/ci/code/TargetDescription;
getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
checkcast jdk.vm.ci.amd64.AMD64
invokevirtual jdk.vm.ci.amd64.AMD64.getFeatures:()Ljava/util/EnumSet;
getstatic jdk.vm.ci.amd64.AMD64$CPUFeature.AVX2:Ljdk/vm/ci/amd64/AMD64$CPUFeature;
invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
ifeq 18
iload 10
iflt 17
iload 10
bipush 32
if_icmplt 18
StackMap locals:
StackMap stack: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp
17: getstatic org.graalvm.compiler.asm.amd64.AVXKind$AVXSize.YMM:Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;
goto 19
StackMap locals:
StackMap stack: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp
18: getstatic org.graalvm.compiler.asm.amd64.AVXKind$AVXSize.XMM:Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;
StackMap locals: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp org.graalvm.compiler.lir.gen.LIRGeneratorTool jdk.vm.ci.meta.JavaKind jdk.vm.ci.meta.JavaKind jdk.vm.ci.meta.Value jdk.vm.ci.meta.Value jdk.vm.ci.meta.Value jdk.vm.ci.meta.Value int int int
StackMap stack: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp org.graalvm.compiler.asm.amd64.AVXKind$AVXSize
19: putfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.vectorSize:Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;
20: aload 0
iload 8
putfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.constantLength:I
21: aload 0
aload 4
putfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.resultValue:Ljdk/vm/ci/meta/Value;
22: aload 0
aload 5
putfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.array1Value:Ljdk/vm/ci/meta/Value;
23: aload 0
aload 6
putfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.array2Value:Ljdk/vm/ci/meta/Value;
24: aload 0
aload 7
putfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.lengthValue:Ljdk/vm/ci/meta/Value;
25: aload 0
aload 1
aload 1
invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.target:()Ljdk/vm/ci/code/TargetDescription;
getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
invokevirtual jdk.vm.ci.code.Architecture.getWordKind:()Ljdk/vm/ci/meta/PlatformKind;
invokestatic org.graalvm.compiler.core.common.LIRKind.unknownReference:(Ljdk/vm/ci/meta/PlatformKind;)Lorg/graalvm/compiler/core/common/LIRKind;
invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.newVariable:(Ljdk/vm/ci/meta/ValueKind;)Lorg/graalvm/compiler/lir/Variable;
putfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.temp1:Ljdk/vm/ci/meta/Value;
26: aload 0
aload 1
aload 1
invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.target:()Ljdk/vm/ci/code/TargetDescription;
getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
invokevirtual jdk.vm.ci.code.Architecture.getWordKind:()Ljdk/vm/ci/meta/PlatformKind;
invokestatic org.graalvm.compiler.core.common.LIRKind.unknownReference:(Ljdk/vm/ci/meta/PlatformKind;)Lorg/graalvm/compiler/core/common/LIRKind;
invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.newVariable:(Ljdk/vm/ci/meta/ValueKind;)Lorg/graalvm/compiler/lir/Variable;
putfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.temp2:Ljdk/vm/ci/meta/Value;
27: aload 0
aload 1
aload 1
invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.target:()Ljdk/vm/ci/code/TargetDescription;
getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
invokevirtual jdk.vm.ci.code.Architecture.getWordKind:()Ljdk/vm/ci/meta/PlatformKind;
invokestatic org.graalvm.compiler.core.common.LIRKind.value:(Ljdk/vm/ci/meta/PlatformKind;)Lorg/graalvm/compiler/core/common/LIRKind;
invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.newVariable:(Ljdk/vm/ci/meta/ValueKind;)Lorg/graalvm/compiler/lir/Variable;
putfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.temp3:Ljdk/vm/ci/meta/Value;
28: aload 0
aload 1
aload 1
invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.target:()Ljdk/vm/ci/code/TargetDescription;
getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
invokevirtual jdk.vm.ci.code.Architecture.getWordKind:()Ljdk/vm/ci/meta/PlatformKind;
invokestatic org.graalvm.compiler.core.common.LIRKind.value:(Ljdk/vm/ci/meta/PlatformKind;)Lorg/graalvm/compiler/core/common/LIRKind;
invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.newVariable:(Ljdk/vm/ci/meta/ValueKind;)Lorg/graalvm/compiler/lir/Variable;
putfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.temp4:Ljdk/vm/ci/meta/Value;
29: aload 0
aload 2
invokevirtual jdk.vm.ci.meta.JavaKind.isNumericFloat:()Z
ifne 30
aload 2
aload 3
if_acmpeq 31
StackMap locals:
StackMap stack: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp
30: aload 1
aload 1
invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.target:()Ljdk/vm/ci/code/TargetDescription;
getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
invokevirtual jdk.vm.ci.code.Architecture.getWordKind:()Ljdk/vm/ci/meta/PlatformKind;
invokestatic org.graalvm.compiler.core.common.LIRKind.value:(Ljdk/vm/ci/meta/PlatformKind;)Lorg/graalvm/compiler/core/common/LIRKind;
invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.newVariable:(Ljdk/vm/ci/meta/ValueKind;)Lorg/graalvm/compiler/lir/Variable;
goto 32
StackMap locals:
StackMap stack: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp
31: getstatic jdk.vm.ci.meta.Value.ILLEGAL:Ljdk/vm/ci/meta/AllocatableValue;
StackMap locals: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp org.graalvm.compiler.lir.gen.LIRGeneratorTool jdk.vm.ci.meta.JavaKind jdk.vm.ci.meta.JavaKind jdk.vm.ci.meta.Value jdk.vm.ci.meta.Value jdk.vm.ci.meta.Value jdk.vm.ci.meta.Value int int int
StackMap stack: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp jdk.vm.ci.meta.AllocatableValue
32: putfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.temp5:Ljdk/vm/ci/meta/Value;
33: aload 2
getstatic jdk.vm.ci.meta.JavaKind.Float:Ljdk/vm/ci/meta/JavaKind;
if_acmpne 36
34: aload 0
aload 1
getstatic jdk.vm.ci.amd64.AMD64Kind.SINGLE:Ljdk/vm/ci/amd64/AMD64Kind;
invokestatic org.graalvm.compiler.core.common.LIRKind.value:(Ljdk/vm/ci/meta/PlatformKind;)Lorg/graalvm/compiler/core/common/LIRKind;
invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.newVariable:(Ljdk/vm/ci/meta/ValueKind;)Lorg/graalvm/compiler/lir/Variable;
putfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.tempXMM:Ljdk/vm/ci/meta/Value;
35: goto 40
StackMap locals:
StackMap stack:
36: aload 2
getstatic jdk.vm.ci.meta.JavaKind.Double:Ljdk/vm/ci/meta/JavaKind;
if_acmpne 39
37: aload 0
aload 1
getstatic jdk.vm.ci.amd64.AMD64Kind.DOUBLE:Ljdk/vm/ci/amd64/AMD64Kind;
invokestatic org.graalvm.compiler.core.common.LIRKind.value:(Ljdk/vm/ci/meta/PlatformKind;)Lorg/graalvm/compiler/core/common/LIRKind;
invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.newVariable:(Ljdk/vm/ci/meta/ValueKind;)Lorg/graalvm/compiler/lir/Variable;
putfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.tempXMM:Ljdk/vm/ci/meta/Value;
38: goto 40
39: StackMap locals:
StackMap stack:
aload 0
getstatic jdk.vm.ci.meta.Value.ILLEGAL:Ljdk/vm/ci/meta/AllocatableValue;
putfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.tempXMM:Ljdk/vm/ci/meta/Value;
40: StackMap locals:
StackMap stack:
aload 1
invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.target:()Ljdk/vm/ci/code/TargetDescription;
invokestatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.supportsSSE41:(Ljdk/vm/ci/code/TargetDescription;)Z
ifeq 55
41: aload 0
aload 1
invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.target:()Ljdk/vm/ci/code/TargetDescription;
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.canGenerateConstantLengthCompare:(Ljdk/vm/ci/code/TargetDescription;)Z
ifeq 50
42: aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.vectorSize:Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;
getstatic org.graalvm.compiler.asm.amd64.AVXKind$AVXSize.YMM:Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;
if_acmpne 43
getstatic jdk.vm.ci.amd64.AMD64Kind.V256_BYTE:Ljdk/vm/ci/amd64/AMD64Kind;
goto 44
StackMap locals:
StackMap stack:
43: getstatic jdk.vm.ci.amd64.AMD64Kind.V128_BYTE:Ljdk/vm/ci/amd64/AMD64Kind;
StackMap locals:
StackMap stack: jdk.vm.ci.amd64.AMD64Kind
44: invokestatic org.graalvm.compiler.core.common.LIRKind.value:(Ljdk/vm/ci/meta/PlatformKind;)Lorg/graalvm/compiler/core/common/LIRKind;
astore 11
start local 11 45: aload 0
aload 1
aload 11
invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.newVariable:(Ljdk/vm/ci/meta/ValueKind;)Lorg/graalvm/compiler/lir/Variable;
putfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.vectorTemp1:Ljdk/vm/ci/meta/Value;
46: aload 0
aload 1
aload 11
invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.newVariable:(Ljdk/vm/ci/meta/ValueKind;)Lorg/graalvm/compiler/lir/Variable;
putfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.vectorTemp2:Ljdk/vm/ci/meta/Value;
47: aload 0
aload 1
aload 11
invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.newVariable:(Ljdk/vm/ci/meta/ValueKind;)Lorg/graalvm/compiler/lir/Variable;
putfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.vectorTemp3:Ljdk/vm/ci/meta/Value;
48: aload 0
aload 1
aload 11
invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.newVariable:(Ljdk/vm/ci/meta/ValueKind;)Lorg/graalvm/compiler/lir/Variable;
putfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.vectorTemp4:Ljdk/vm/ci/meta/Value;
end local 11 49: goto 59
50: StackMap locals:
StackMap stack:
aload 0
aload 1
getstatic jdk.vm.ci.amd64.AMD64Kind.DOUBLE:Ljdk/vm/ci/amd64/AMD64Kind;
invokestatic org.graalvm.compiler.core.common.LIRKind.value:(Ljdk/vm/ci/meta/PlatformKind;)Lorg/graalvm/compiler/core/common/LIRKind;
invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.newVariable:(Ljdk/vm/ci/meta/ValueKind;)Lorg/graalvm/compiler/lir/Variable;
putfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.vectorTemp1:Ljdk/vm/ci/meta/Value;
51: aload 0
aload 1
getstatic jdk.vm.ci.amd64.AMD64Kind.DOUBLE:Ljdk/vm/ci/amd64/AMD64Kind;
invokestatic org.graalvm.compiler.core.common.LIRKind.value:(Ljdk/vm/ci/meta/PlatformKind;)Lorg/graalvm/compiler/core/common/LIRKind;
invokeinterface org.graalvm.compiler.lir.gen.LIRGeneratorTool.newVariable:(Ljdk/vm/ci/meta/ValueKind;)Lorg/graalvm/compiler/lir/Variable;
putfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.vectorTemp2:Ljdk/vm/ci/meta/Value;
52: aload 0
getstatic jdk.vm.ci.meta.Value.ILLEGAL:Ljdk/vm/ci/meta/AllocatableValue;
putfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.vectorTemp3:Ljdk/vm/ci/meta/Value;
53: aload 0
getstatic jdk.vm.ci.meta.Value.ILLEGAL:Ljdk/vm/ci/meta/AllocatableValue;
putfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.vectorTemp4:Ljdk/vm/ci/meta/Value;
54: goto 59
55: StackMap locals:
StackMap stack:
aload 0
getstatic jdk.vm.ci.meta.Value.ILLEGAL:Ljdk/vm/ci/meta/AllocatableValue;
putfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.vectorTemp1:Ljdk/vm/ci/meta/Value;
56: aload 0
getstatic jdk.vm.ci.meta.Value.ILLEGAL:Ljdk/vm/ci/meta/AllocatableValue;
putfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.vectorTemp2:Ljdk/vm/ci/meta/Value;
57: aload 0
getstatic jdk.vm.ci.meta.Value.ILLEGAL:Ljdk/vm/ci/meta/AllocatableValue;
putfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.vectorTemp3:Ljdk/vm/ci/meta/Value;
58: aload 0
getstatic jdk.vm.ci.meta.Value.ILLEGAL:Ljdk/vm/ci/meta/AllocatableValue;
putfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.vectorTemp4:Ljdk/vm/ci/meta/Value;
59: StackMap locals:
StackMap stack:
return
end local 10 end local 9 end local 8 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 60 0 this Lorg/graalvm/compiler/lir/amd64/AMD64ArrayEqualsOp;
0 60 1 tool Lorg/graalvm/compiler/lir/gen/LIRGeneratorTool;
0 60 2 kind1 Ljdk/vm/ci/meta/JavaKind;
0 60 3 kind2 Ljdk/vm/ci/meta/JavaKind;
0 60 4 result Ljdk/vm/ci/meta/Value;
0 60 5 array1 Ljdk/vm/ci/meta/Value;
0 60 6 array2 Ljdk/vm/ci/meta/Value;
0 60 7 length Ljdk/vm/ci/meta/Value;
0 60 8 constantLength I
0 60 9 directPointers Z
0 60 10 maxVectorSize I
45 49 11 lirKind Lorg/graalvm/compiler/core/common/LIRKind;
MethodParameters:
Name Flags
tool
kind1
kind2
result
array1
array2
length
constantLength
directPointers
maxVectorSize
private boolean canGenerateConstantLengthCompare(jdk.vm.ci.code.TargetDescription);
descriptor: (Ljdk/vm/ci/code/TargetDescription;)Z
flags: (0x0002) ACC_PRIVATE
Code:
stack=2, locals=2, args_size=2
start local 0 start local 1 0: aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.constantLength:I
iflt 2
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.kind1:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
ifeq 2
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.kind1:Ljdk/vm/ci/meta/JavaKind;
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.kind2:Ljdk/vm/ci/meta/JavaKind;
if_acmpeq 1
aload 0
getstatic org.graalvm.compiler.asm.amd64.AVXKind$AVXSize.XMM:Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.getElementsPerVector:(Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)I
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.constantLength:I
if_icmpgt 2
StackMap locals:
StackMap stack:
1: aload 1
invokestatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.supportsSSE41:(Ljdk/vm/ci/code/TargetDescription;)Z
ifeq 2
iconst_1
ireturn
StackMap locals:
StackMap stack:
2: iconst_0
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 this Lorg/graalvm/compiler/lir/amd64/AMD64ArrayEqualsOp;
0 3 1 target Ljdk/vm/ci/code/TargetDescription;
MethodParameters:
Name Flags
target
public void emitCode(org.graalvm.compiler.lir.asm.CompilationResultBuilder, org.graalvm.compiler.asm.amd64.AMD64MacroAssembler);
descriptor: (Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;)V
flags: (0x0001) ACC_PUBLIC
Code:
stack=11, locals=10, args_size=3
start local 0 start local 1 start local 2 0: aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.resultValue:Ljdk/vm/ci/meta/Value;
invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
astore 3
start local 3 1: aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.temp1:Ljdk/vm/ci/meta/Value;
invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
astore 4
start local 4 2: aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.temp2:Ljdk/vm/ci/meta/Value;
invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
astore 5
start local 5 3: new org.graalvm.compiler.asm.Label
dup
invokespecial org.graalvm.compiler.asm.Label.<init>:()V
astore 6
start local 6 4: new org.graalvm.compiler.asm.Label
dup
invokespecial org.graalvm.compiler.asm.Label.<init>:()V
astore 7
start local 7 5: new org.graalvm.compiler.asm.Label
dup
invokespecial org.graalvm.compiler.asm.Label.<init>:()V
astore 8
start local 8 6: aload 2
aload 4
new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.array1Value:Ljdk/vm/ci/meta/Value;
invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayBaseOffset1:I
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;I)V
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.leaq:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
7: aload 2
aload 5
new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.array2Value:Ljdk/vm/ci/meta/Value;
invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayBaseOffset2:I
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;I)V
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.leaq:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
8: aload 0
aload 1
getfield org.graalvm.compiler.lir.asm.CompilationResultBuilder.target:Ljdk/vm/ci/code/TargetDescription;
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.canGenerateConstantLengthCompare:(Ljdk/vm/ci/code/TargetDescription;)Z
ifeq 13
9: aload 0
aload 1
aload 2
aload 4
aload 5
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.temp3:Ljdk/vm/ci/meta/Value;
invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.temp4:Ljdk/vm/ci/meta/Value;
invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
10: iconst_4
anewarray jdk.vm.ci.code.Register
dup
iconst_0
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.vectorTemp1:Ljdk/vm/ci/meta/Value;
invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
aastore
dup
iconst_1
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.vectorTemp2:Ljdk/vm/ci/meta/Value;
invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
aastore
dup
iconst_2
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.vectorTemp3:Ljdk/vm/ci/meta/Value;
invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
aastore
dup
iconst_3
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.vectorTemp4:Ljdk/vm/ci/meta/Value;
invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
aastore
aload 7
11: invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitConstantLengthArrayCompareBytes:(Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;[Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/Label;)V
12: goto 17
13: StackMap locals: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp org.graalvm.compiler.lir.asm.CompilationResultBuilder org.graalvm.compiler.asm.amd64.AMD64MacroAssembler jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.temp3:Ljdk/vm/ci/meta/Value;
invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
astore 9
start local 9 14: aload 2
aload 9
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.lengthValue:Ljdk/vm/ci/meta/Value;
invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.movl:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;)V
15: aload 2
aload 3
aload 9
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.movl:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;)V
16: aload 0
aload 1
aload 2
aload 3
aload 4
aload 5
aload 9
aload 6
aload 7
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitArrayCompare:(Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/Label;Lorg/graalvm/compiler/asm/Label;)V
end local 9 17: StackMap locals:
StackMap stack:
aload 2
aload 6
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.bind:(Lorg/graalvm/compiler/asm/Label;)V
18: aload 2
aload 3
iconst_1
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.movl:(Ljdk/vm/ci/code/Register;I)V
19: aload 2
aload 8
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jmpb:(Lorg/graalvm/compiler/asm/Label;)V
20: aload 2
aload 7
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.bind:(Lorg/graalvm/compiler/asm/Label;)V
21: aload 2
aload 3
aload 3
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.xorl:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;)V
22: aload 2
aload 8
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.bind:(Lorg/graalvm/compiler/asm/Label;)V
23: return
end local 8 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 24 0 this Lorg/graalvm/compiler/lir/amd64/AMD64ArrayEqualsOp;
0 24 1 crb Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;
0 24 2 masm Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
1 24 3 result Ljdk/vm/ci/code/Register;
2 24 4 array1 Ljdk/vm/ci/code/Register;
3 24 5 array2 Ljdk/vm/ci/code/Register;
4 24 6 trueLabel Lorg/graalvm/compiler/asm/Label;
5 24 7 falseLabel Lorg/graalvm/compiler/asm/Label;
6 24 8 done Lorg/graalvm/compiler/asm/Label;
14 17 9 length Ljdk/vm/ci/code/Register;
MethodParameters:
Name Flags
crb
masm
private void emitArrayCompare(org.graalvm.compiler.lir.asm.CompilationResultBuilder, org.graalvm.compiler.asm.amd64.AMD64MacroAssembler, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register, org.graalvm.compiler.asm.Label, org.graalvm.compiler.asm.Label);
descriptor: (Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/Label;Lorg/graalvm/compiler/asm/Label;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=9, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 0: aload 1
getfield org.graalvm.compiler.lir.asm.CompilationResultBuilder.target:Ljdk/vm/ci/code/TargetDescription;
invokestatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.supportsSSE41:(Ljdk/vm/ci/code/TargetDescription;)Z
ifeq 2
1: aload 0
aload 1
aload 2
aload 3
aload 4
aload 5
aload 6
aload 7
aload 8
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitVectorCompare:(Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/Label;Lorg/graalvm/compiler/asm/Label;)V
2: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.kind1:Ljdk/vm/ci/meta/JavaKind;
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.kind2:Ljdk/vm/ci/meta/JavaKind;
if_acmpne 6
3: aload 0
aload 1
aload 2
aload 3
aload 4
aload 5
aload 6
aload 7
aload 8
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emit8ByteCompare:(Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/Label;Lorg/graalvm/compiler/asm/Label;)V
4: aload 0
aload 2
aload 3
aload 4
aload 5
aload 6
aload 7
aload 8
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitTailCompares:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/Label;Lorg/graalvm/compiler/asm/Label;)V
5: goto 7
6: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
aload 3
aload 4
aload 5
aload 6
aload 7
aload 8
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitDifferentKindsElementWiseCompare:(Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/Label;Lorg/graalvm/compiler/asm/Label;)V
7: StackMap locals:
StackMap stack:
return
end local 8 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 8 0 this Lorg/graalvm/compiler/lir/amd64/AMD64ArrayEqualsOp;
0 8 1 crb Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;
0 8 2 masm Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
0 8 3 result Ljdk/vm/ci/code/Register;
0 8 4 array1 Ljdk/vm/ci/code/Register;
0 8 5 array2 Ljdk/vm/ci/code/Register;
0 8 6 length Ljdk/vm/ci/code/Register;
0 8 7 trueLabel Lorg/graalvm/compiler/asm/Label;
0 8 8 falseLabel Lorg/graalvm/compiler/asm/Label;
MethodParameters:
Name Flags
crb
masm
result
array1
array2
length
trueLabel
falseLabel
private static boolean supportsSSE41(jdk.vm.ci.code.TargetDescription);
descriptor: (Ljdk/vm/ci/code/TargetDescription;)Z
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=2, args_size=1
start local 0 0: aload 0
getfield jdk.vm.ci.code.TargetDescription.arch:Ljdk/vm/ci/code/Architecture;
checkcast jdk.vm.ci.amd64.AMD64
astore 1
start local 1 1: aload 1
invokevirtual jdk.vm.ci.amd64.AMD64.getFeatures:()Ljava/util/EnumSet;
getstatic jdk.vm.ci.amd64.AMD64$CPUFeature.SSE4_1:Ljdk/vm/ci/amd64/AMD64$CPUFeature;
invokevirtual java.util.EnumSet.contains:(Ljava/lang/Object;)Z
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 2 0 target Ljdk/vm/ci/code/TargetDescription;
1 2 1 arch Ljdk/vm/ci/amd64/AMD64;
MethodParameters:
Name Flags
target
private void emitVectorCompare(org.graalvm.compiler.lir.asm.CompilationResultBuilder, org.graalvm.compiler.asm.amd64.AMD64MacroAssembler, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register, org.graalvm.compiler.asm.Label, org.graalvm.compiler.asm.Label);
descriptor: (Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/Label;Lorg/graalvm/compiler/asm/Label;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=18, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 0: getstatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.$assertionsDisabled:Z
ifne 1
aload 1
getfield org.graalvm.compiler.lir.asm.CompilationResultBuilder.target:Ljdk/vm/ci/code/TargetDescription;
invokestatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.supportsSSE41:(Ljdk/vm/ci/code/TargetDescription;)Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.vectorTemp1:Ljdk/vm/ci/meta/Value;
invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
astore 9
start local 9 2: aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.vectorTemp2:Ljdk/vm/ci/meta/Value;
invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
astore 10
start local 10 3: aload 0
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.vectorSize:Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.getElementsPerVector:(Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)I
istore 11
start local 11 4: new org.graalvm.compiler.asm.Label
dup
invokespecial org.graalvm.compiler.asm.Label.<init>:()V
astore 12
start local 12 5: new org.graalvm.compiler.asm.Label
dup
invokespecial org.graalvm.compiler.asm.Label.<init>:()V
astore 13
start local 13 6: aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.kind1:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.isNumericFloat:()Z
istore 14
start local 14 7: new org.graalvm.compiler.asm.Label
dup
invokespecial org.graalvm.compiler.asm.Label.<init>:()V
astore 15
start local 15 8: new org.graalvm.compiler.asm.Label
dup
invokespecial org.graalvm.compiler.asm.Label.<init>:()V
astore 16
start local 16 9: aload 2
aload 3
iload 11
iconst_1
isub
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.andl:(Ljdk/vm/ci/code/Register;I)V
10: aload 2
aload 6
iload 11
iconst_1
isub
iconst_m1
ixor
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.andl:(Ljdk/vm/ci/code/Register;I)V
11: aload 2
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag.Zero:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
aload 13
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jcc:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
12: aload 2
aload 4
new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 4
aload 6
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale1:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
iconst_0
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;I)V
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.leaq:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
13: aload 2
aload 5
new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 5
aload 6
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale2:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
iconst_0
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;I)V
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.leaq:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
14: aload 2
aload 6
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.negq:(Ljdk/vm/ci/code/Register;)V
15: aload 2
aload 1
getfield org.graalvm.compiler.lir.asm.CompilationResultBuilder.target:Ljdk/vm/ci/code/TargetDescription;
getfield jdk.vm.ci.code.TargetDescription.wordSize:I
iconst_2
imul
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.align:(I)V
16: aload 2
aload 12
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.bind:(Lorg/graalvm/compiler/asm/Label;)V
17: aload 0
aload 2
aload 9
aload 4
aload 6
iconst_0
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.vectorSize:Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitVectorLoad1:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;ILorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)V
18: aload 0
aload 2
aload 10
aload 5
aload 6
iconst_0
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.vectorSize:Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitVectorLoad2:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;ILorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)V
19: aload 2
aload 9
aload 10
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.vectorSize:Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;
invokestatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitVectorCmp:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)V
20: aload 2
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag.NotZero:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
iload 14
ifeq 21
aload 16
goto 22
StackMap locals: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp org.graalvm.compiler.lir.asm.CompilationResultBuilder org.graalvm.compiler.asm.amd64.AMD64MacroAssembler jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label jdk.vm.ci.code.Register jdk.vm.ci.code.Register int org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label int org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label
StackMap stack: org.graalvm.compiler.asm.amd64.AMD64MacroAssembler org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag
21: aload 8
StackMap locals: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp org.graalvm.compiler.lir.asm.CompilationResultBuilder org.graalvm.compiler.asm.amd64.AMD64MacroAssembler jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label jdk.vm.ci.code.Register jdk.vm.ci.code.Register int org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label int org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label
StackMap stack: org.graalvm.compiler.asm.amd64.AMD64MacroAssembler org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag org.graalvm.compiler.asm.Label
22: invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jcc:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
23: aload 2
aload 15
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.bind:(Lorg/graalvm/compiler/asm/Label;)V
24: aload 2
aload 6
iload 11
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.addq:(Ljdk/vm/ci/code/Register;I)V
25: aload 2
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag.NotZero:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
aload 12
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jcc:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
26: aload 2
aload 3
aload 3
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.testl:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;)V
27: aload 2
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag.Zero:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
aload 7
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jcc:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
28: iload 14
ifeq 35
29: new org.graalvm.compiler.asm.Label
dup
invokespecial org.graalvm.compiler.asm.Label.<init>:()V
astore 17
start local 17 30: aload 2
aload 17
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jmpb:(Lorg/graalvm/compiler/asm/Label;)V
31: aload 2
aload 16
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.bind:(Lorg/graalvm/compiler/asm/Label;)V
32: aload 0
aload 1
aload 2
aload 4
aload 5
aload 6
iconst_0
aload 8
iload 11
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitFloatCompareWithinRange:(Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;ILorg/graalvm/compiler/asm/Label;I)V
33: aload 2
aload 15
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jmpb:(Lorg/graalvm/compiler/asm/Label;)V
34: aload 2
aload 17
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.bind:(Lorg/graalvm/compiler/asm/Label;)V
end local 17 35: StackMap locals:
StackMap stack:
aload 0
aload 2
aload 9
aload 4
aload 3
aload 0
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.vectorSize:Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;
invokevirtual org.graalvm.compiler.asm.amd64.AVXKind$AVXSize.getBytes:()I
ineg
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.scaleDisplacement1:(I)I
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.vectorSize:Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitVectorLoad1:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;ILorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)V
36: aload 0
aload 2
aload 10
aload 5
aload 3
aload 0
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.vectorSize:Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;
invokevirtual org.graalvm.compiler.asm.amd64.AVXKind$AVXSize.getBytes:()I
ineg
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.scaleDisplacement2:(I)I
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.vectorSize:Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitVectorLoad2:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;ILorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)V
37: aload 2
aload 9
aload 10
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.vectorSize:Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;
invokestatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitVectorCmp:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)V
38: iload 14
ifeq 42
39: aload 2
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag.Zero:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
aload 7
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jcc:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
40: aload 0
aload 1
aload 2
aload 4
aload 5
aload 3
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.vectorSize:Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;
invokevirtual org.graalvm.compiler.asm.amd64.AVXKind$AVXSize.getBytes:()I
ineg
aload 8
iload 11
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitFloatCompareWithinRange:(Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;ILorg/graalvm/compiler/asm/Label;I)V
41: goto 43
42: StackMap locals:
StackMap stack:
aload 2
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag.NotZero:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
aload 8
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jcc:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
43: StackMap locals:
StackMap stack:
aload 2
aload 7
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jmp:(Lorg/graalvm/compiler/asm/Label;)V
44: aload 2
aload 13
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.bind:(Lorg/graalvm/compiler/asm/Label;)V
45: aload 2
aload 6
aload 3
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.movl:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;)V
46: return
end local 16 end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 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 47 0 this Lorg/graalvm/compiler/lir/amd64/AMD64ArrayEqualsOp;
0 47 1 crb Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;
0 47 2 masm Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
0 47 3 result Ljdk/vm/ci/code/Register;
0 47 4 array1 Ljdk/vm/ci/code/Register;
0 47 5 array2 Ljdk/vm/ci/code/Register;
0 47 6 length Ljdk/vm/ci/code/Register;
0 47 7 trueLabel Lorg/graalvm/compiler/asm/Label;
0 47 8 falseLabel Lorg/graalvm/compiler/asm/Label;
2 47 9 vector1 Ljdk/vm/ci/code/Register;
3 47 10 vector2 Ljdk/vm/ci/code/Register;
4 47 11 elementsPerVector I
5 47 12 loop Lorg/graalvm/compiler/asm/Label;
6 47 13 compareTail Lorg/graalvm/compiler/asm/Label;
7 47 14 requiresNaNCheck Z
8 47 15 loopCheck Lorg/graalvm/compiler/asm/Label;
9 47 16 nanCheck Lorg/graalvm/compiler/asm/Label;
30 35 17 unalignedCheck Lorg/graalvm/compiler/asm/Label;
MethodParameters:
Name Flags
crb
masm
result
array1
array2
length
trueLabel
falseLabel
private int getElementsPerVector(org.graalvm.compiler.asm.amd64.AVXKind$AVXSize);
descriptor: (Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: aload 1
invokevirtual org.graalvm.compiler.asm.amd64.AVXKind$AVXSize.getBytes:()I
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale1:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
getfield org.graalvm.compiler.asm.amd64.AMD64Address$Scale.log2:I
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale2:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
getfield org.graalvm.compiler.asm.amd64.AMD64Address$Scale.log2:I
invokestatic java.lang.Math.max:(II)I
ishr
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/amd64/AMD64ArrayEqualsOp;
0 1 1 vSize Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;
MethodParameters:
Name Flags
vSize
private void emitVectorLoad1(org.graalvm.compiler.asm.amd64.AMD64MacroAssembler, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register, int, org.graalvm.compiler.asm.amd64.AVXKind$AVXSize);
descriptor: (Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;ILorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 1
aload 2
aload 3
getstatic jdk.vm.ci.code.Register.None:Ljdk/vm/ci/code/Register;
iload 4
aload 5
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitVectorLoad1:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;ILorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)V
1: return
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 2 0 this Lorg/graalvm/compiler/lir/amd64/AMD64ArrayEqualsOp;
0 2 1 asm Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
0 2 2 dst Ljdk/vm/ci/code/Register;
0 2 3 src Ljdk/vm/ci/code/Register;
0 2 4 displacement I
0 2 5 size Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;
MethodParameters:
Name Flags
asm
dst
src
displacement
size
private void emitVectorLoad2(org.graalvm.compiler.asm.amd64.AMD64MacroAssembler, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register, int, org.graalvm.compiler.asm.amd64.AVXKind$AVXSize);
descriptor: (Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;ILorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=7, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: aload 0
aload 1
aload 2
aload 3
getstatic jdk.vm.ci.code.Register.None:Ljdk/vm/ci/code/Register;
iload 4
aload 5
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitVectorLoad2:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;ILorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)V
1: return
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 2 0 this Lorg/graalvm/compiler/lir/amd64/AMD64ArrayEqualsOp;
0 2 1 asm Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
0 2 2 dst Ljdk/vm/ci/code/Register;
0 2 3 src Ljdk/vm/ci/code/Register;
0 2 4 displacement I
0 2 5 size Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;
MethodParameters:
Name Flags
asm
dst
src
displacement
size
private void emitVectorLoad1(org.graalvm.compiler.asm.amd64.AMD64MacroAssembler, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register, int, org.graalvm.compiler.asm.amd64.AVXKind$AVXSize);
descriptor: (Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;ILorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=7, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
aload 1
aload 2
aload 3
aload 4
iload 5
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale1:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale2:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
aload 6
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitVectorLoad:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;ILorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)V
1: 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 2 0 this Lorg/graalvm/compiler/lir/amd64/AMD64ArrayEqualsOp;
0 2 1 asm Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
0 2 2 dst Ljdk/vm/ci/code/Register;
0 2 3 src Ljdk/vm/ci/code/Register;
0 2 4 index Ljdk/vm/ci/code/Register;
0 2 5 displacement I
0 2 6 size Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;
MethodParameters:
Name Flags
asm
dst
src
index
displacement
size
private void emitVectorLoad2(org.graalvm.compiler.asm.amd64.AMD64MacroAssembler, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register, int, org.graalvm.compiler.asm.amd64.AVXKind$AVXSize);
descriptor: (Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;ILorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=7, args_size=7
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 0: aload 0
aload 1
aload 2
aload 3
aload 4
iload 5
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale2:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale1:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
aload 6
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitVectorLoad:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;ILorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)V
1: 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 2 0 this Lorg/graalvm/compiler/lir/amd64/AMD64ArrayEqualsOp;
0 2 1 asm Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
0 2 2 dst Ljdk/vm/ci/code/Register;
0 2 3 src Ljdk/vm/ci/code/Register;
0 2 4 index Ljdk/vm/ci/code/Register;
0 2 5 displacement I
0 2 6 size Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;
MethodParameters:
Name Flags
asm
dst
src
index
displacement
size
private void emitVectorLoad(org.graalvm.compiler.asm.amd64.AMD64MacroAssembler, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register, int, org.graalvm.compiler.asm.amd64.AMD64Address$Scale, org.graalvm.compiler.asm.amd64.AMD64Address$Scale, org.graalvm.compiler.asm.amd64.AVXKind$AVXSize);
descriptor: (Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;ILorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=10, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 0: new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 3
aload 4
aload 6
iload 5
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;I)V
astore 9
start local 9 1: aload 6
getfield org.graalvm.compiler.asm.amd64.AMD64Address$Scale.value:I
aload 7
getfield org.graalvm.compiler.asm.amd64.AMD64Address$Scale.value:I
if_icmpge 7
2: aload 8
getstatic org.graalvm.compiler.asm.amd64.AVXKind$AVXSize.YMM:Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;
if_acmpne 5
3: aload 6
aload 7
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.signExtend:Z
invokestatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.getAVX2LoadAndExtendOp:(Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;Z)Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$VexRMOp;
aload 1
aload 8
aload 2
aload 9
invokevirtual org.graalvm.compiler.asm.amd64.AMD64Assembler$VexRMOp.emit:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler;Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
4: goto 11
5: StackMap locals: org.graalvm.compiler.asm.amd64.AMD64Address
StackMap stack:
aload 1
aload 2
aload 9
aload 6
aload 7
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.signExtend:Z
invokestatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.loadAndExtendSSE:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;Z)V
6: goto 11
7: StackMap locals:
StackMap stack:
aload 8
getstatic org.graalvm.compiler.asm.amd64.AVXKind$AVXSize.YMM:Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;
if_acmpne 10
8: aload 1
aload 2
aload 9
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.vmovdqu:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
9: goto 11
10: StackMap locals:
StackMap stack:
aload 1
aload 2
aload 9
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.movdqu:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
11: StackMap locals:
StackMap stack:
return
end local 9 end local 8 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 12 0 this Lorg/graalvm/compiler/lir/amd64/AMD64ArrayEqualsOp;
0 12 1 asm Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
0 12 2 dst Ljdk/vm/ci/code/Register;
0 12 3 src Ljdk/vm/ci/code/Register;
0 12 4 index Ljdk/vm/ci/code/Register;
0 12 5 displacement I
0 12 6 ownScale Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
0 12 7 otherScale Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
0 12 8 size Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;
1 12 9 address Lorg/graalvm/compiler/asm/amd64/AMD64Address;
MethodParameters:
Name Flags
asm
dst
src
index
displacement
ownScale
otherScale
size
private int scaleDisplacement1(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 1
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale1:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale2:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
invokestatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.scaleDisplacement:(ILorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/amd64/AMD64ArrayEqualsOp;
0 1 1 displacement I
MethodParameters:
Name Flags
displacement
private int scaleDisplacement2(int);
descriptor: (I)I
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=2, args_size=2
start local 0 start local 1 0: iload 1
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale2:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale1:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
invokestatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.scaleDisplacement:(ILorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;)I
ireturn
end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 1 0 this Lorg/graalvm/compiler/lir/amd64/AMD64ArrayEqualsOp;
0 1 1 displacement I
MethodParameters:
Name Flags
displacement
private static int scaleDisplacement(int, org.graalvm.compiler.asm.amd64.AMD64Address$Scale, org.graalvm.compiler.asm.amd64.AMD64Address$Scale);
descriptor: (ILorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;)I
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 1
getfield org.graalvm.compiler.asm.amd64.AMD64Address$Scale.value:I
aload 2
getfield org.graalvm.compiler.asm.amd64.AMD64Address$Scale.value:I
if_icmpge 2
1: iload 0
aload 2
getfield org.graalvm.compiler.asm.amd64.AMD64Address$Scale.log2:I
aload 1
getfield org.graalvm.compiler.asm.amd64.AMD64Address$Scale.log2:I
isub
ishr
ireturn
2: StackMap locals:
StackMap stack:
iload 0
ireturn
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 displacement I
0 3 1 ownScale Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
0 3 2 otherScale Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
MethodParameters:
Name Flags
displacement
ownScale
otherScale
private static org.graalvm.compiler.asm.amd64.AMD64Assembler$VexRMOp getAVX2LoadAndExtendOp(org.graalvm.compiler.asm.amd64.AMD64Address$Scale, org.graalvm.compiler.asm.amd64.AMD64Address$Scale, boolean);
descriptor: (Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;Z)Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$VexRMOp;
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=2, locals=3, args_size=3
start local 0 start local 1 start local 2 0: invokestatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.$SWITCH_TABLE$org$graalvm$compiler$asm$amd64$AMD64Address$Scale:()[I
aload 0
invokevirtual org.graalvm.compiler.asm.amd64.AMD64Address$Scale.ordinal:()I
iaload
tableswitch { // 1 - 3
1: 1
2: 12
3: 20
default: 23
}
1: StackMap locals:
StackMap stack:
invokestatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.$SWITCH_TABLE$org$graalvm$compiler$asm$amd64$AMD64Address$Scale:()[I
aload 1
invokevirtual org.graalvm.compiler.asm.amd64.AMD64Address$Scale.ordinal:()I
iaload
tableswitch { // 2 - 4
2: 2
3: 5
4: 8
default: 11
}
2: StackMap locals:
StackMap stack:
iload 2
ifeq 3
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$VexRMOp.VPMOVSXBW:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$VexRMOp;
goto 4
StackMap locals:
StackMap stack:
3: getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$VexRMOp.VPMOVZXBW:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$VexRMOp;
StackMap locals:
StackMap stack: org.graalvm.compiler.asm.amd64.AMD64Assembler$VexRMOp
4: areturn
5: StackMap locals:
StackMap stack:
iload 2
ifeq 6
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$VexRMOp.VPMOVSXBD:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$VexRMOp;
goto 7
StackMap locals:
StackMap stack:
6: getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$VexRMOp.VPMOVZXBD:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$VexRMOp;
StackMap locals:
StackMap stack: org.graalvm.compiler.asm.amd64.AMD64Assembler$VexRMOp
7: areturn
8: StackMap locals:
StackMap stack:
iload 2
ifeq 9
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$VexRMOp.VPMOVSXBQ:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$VexRMOp;
goto 10
StackMap locals:
StackMap stack:
9: getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$VexRMOp.VPMOVZXBQ:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$VexRMOp;
StackMap locals:
StackMap stack: org.graalvm.compiler.asm.amd64.AMD64Assembler$VexRMOp
10: areturn
11: StackMap locals:
StackMap stack:
invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:()Ljava/lang/RuntimeException;
athrow
12: StackMap locals:
StackMap stack:
invokestatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.$SWITCH_TABLE$org$graalvm$compiler$asm$amd64$AMD64Address$Scale:()[I
aload 1
invokevirtual org.graalvm.compiler.asm.amd64.AMD64Address$Scale.ordinal:()I
iaload
tableswitch { // 3 - 4
3: 13
4: 16
default: 19
}
13: StackMap locals:
StackMap stack:
iload 2
ifeq 14
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$VexRMOp.VPMOVSXWD:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$VexRMOp;
goto 15
StackMap locals:
StackMap stack:
14: getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$VexRMOp.VPMOVZXWD:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$VexRMOp;
StackMap locals:
StackMap stack: org.graalvm.compiler.asm.amd64.AMD64Assembler$VexRMOp
15: areturn
16: StackMap locals:
StackMap stack:
iload 2
ifeq 17
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$VexRMOp.VPMOVSXWQ:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$VexRMOp;
goto 18
StackMap locals:
StackMap stack:
17: getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$VexRMOp.VPMOVZXWQ:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$VexRMOp;
StackMap locals:
StackMap stack: org.graalvm.compiler.asm.amd64.AMD64Assembler$VexRMOp
18: areturn
19: StackMap locals:
StackMap stack:
invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:()Ljava/lang/RuntimeException;
athrow
20: StackMap locals:
StackMap stack:
iload 2
ifeq 21
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$VexRMOp.VPMOVSXDQ:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$VexRMOp;
goto 22
StackMap locals:
StackMap stack:
21: getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$VexRMOp.VPMOVZXDQ:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$VexRMOp;
StackMap locals:
StackMap stack: org.graalvm.compiler.asm.amd64.AMD64Assembler$VexRMOp
22: areturn
23: StackMap locals:
StackMap stack:
invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:()Ljava/lang/RuntimeException;
athrow
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 24 0 ownScale Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
0 24 1 otherScale Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
0 24 2 signExtend Z
MethodParameters:
Name Flags
ownScale
otherScale
signExtend
private static void loadAndExtendSSE(org.graalvm.compiler.asm.amd64.AMD64MacroAssembler, jdk.vm.ci.code.Register, org.graalvm.compiler.asm.amd64.AMD64Address, org.graalvm.compiler.asm.amd64.AMD64Address$Scale, org.graalvm.compiler.asm.amd64.AMD64Address$Scale, boolean);
descriptor: (Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;Z)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=6, args_size=6
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 0: invokestatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.$SWITCH_TABLE$org$graalvm$compiler$asm$amd64$AMD64Address$Scale:()[I
aload 3
invokevirtual org.graalvm.compiler.asm.amd64.AMD64Address$Scale.ordinal:()I
iaload
tableswitch { // 1 - 3
1: 1
2: 18
3: 30
default: 35
}
1: StackMap locals:
StackMap stack:
invokestatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.$SWITCH_TABLE$org$graalvm$compiler$asm$amd64$AMD64Address$Scale:()[I
aload 4
invokevirtual org.graalvm.compiler.asm.amd64.AMD64Address$Scale.ordinal:()I
iaload
tableswitch { // 2 - 4
2: 2
3: 7
4: 12
default: 17
}
2: StackMap locals:
StackMap stack:
iload 5
ifeq 5
3: aload 0
aload 1
aload 2
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.pmovsxbw:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
4: goto 6
5: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.pmovzxbw:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
6: StackMap locals:
StackMap stack:
return
7: StackMap locals:
StackMap stack:
iload 5
ifeq 10
8: aload 0
aload 1
aload 2
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.pmovsxbd:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
9: goto 11
10: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.pmovzxbd:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
11: StackMap locals:
StackMap stack:
return
12: StackMap locals:
StackMap stack:
iload 5
ifeq 15
13: aload 0
aload 1
aload 2
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.pmovsxbq:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
14: goto 16
15: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.pmovzxbq:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
16: StackMap locals:
StackMap stack:
return
17: StackMap locals:
StackMap stack:
invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:()Ljava/lang/RuntimeException;
athrow
18: StackMap locals:
StackMap stack:
invokestatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.$SWITCH_TABLE$org$graalvm$compiler$asm$amd64$AMD64Address$Scale:()[I
aload 4
invokevirtual org.graalvm.compiler.asm.amd64.AMD64Address$Scale.ordinal:()I
iaload
tableswitch { // 3 - 4
3: 19
4: 24
default: 29
}
19: StackMap locals:
StackMap stack:
iload 5
ifeq 22
20: aload 0
aload 1
aload 2
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.pmovsxwd:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
21: goto 23
22: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.pmovzxwd:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
23: StackMap locals:
StackMap stack:
return
24: StackMap locals:
StackMap stack:
iload 5
ifeq 27
25: aload 0
aload 1
aload 2
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.pmovsxwq:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
26: goto 28
27: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.pmovzxwq:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
28: StackMap locals:
StackMap stack:
return
29: StackMap locals:
StackMap stack:
invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:()Ljava/lang/RuntimeException;
athrow
30: StackMap locals:
StackMap stack:
iload 5
ifeq 33
31: aload 0
aload 1
aload 2
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.pmovsxdq:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
32: goto 34
33: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.pmovzxdq:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
34: StackMap locals:
StackMap stack:
return
35: StackMap locals:
StackMap stack:
invokestatic org.graalvm.compiler.debug.GraalError.shouldNotReachHere:()Ljava/lang/RuntimeException;
athrow
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 36 0 asm Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
0 36 1 dst Ljdk/vm/ci/code/Register;
0 36 2 src Lorg/graalvm/compiler/asm/amd64/AMD64Address;
0 36 3 ownScale Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
0 36 4 otherScale Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
0 36 5 signExtend Z
MethodParameters:
Name Flags
asm
dst
src
ownScale
otherScale
signExtend
private static void emitVectorCmp(org.graalvm.compiler.asm.amd64.AMD64MacroAssembler, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register, org.graalvm.compiler.asm.amd64.AVXKind$AVXSize);
descriptor: (Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, 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
invokestatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitVectorXor:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)V
1: aload 0
aload 1
aload 3
invokestatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitVectorTest:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)V
2: return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 3 0 masm Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
0 3 1 vector1 Ljdk/vm/ci/code/Register;
0 3 2 vector2 Ljdk/vm/ci/code/Register;
0 3 3 size Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;
MethodParameters:
Name Flags
masm
vector1
vector2
size
private static void emitVectorXor(org.graalvm.compiler.asm.amd64.AMD64MacroAssembler, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register, org.graalvm.compiler.asm.amd64.AVXKind$AVXSize);
descriptor: (Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=4, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: aload 3
getstatic org.graalvm.compiler.asm.amd64.AVXKind$AVXSize.YMM:Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;
if_acmpne 3
1: aload 0
aload 1
aload 1
aload 2
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.vpxor:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;)V
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.pxor:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;)V
4: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 masm Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
0 5 1 vector1 Ljdk/vm/ci/code/Register;
0 5 2 vector2 Ljdk/vm/ci/code/Register;
0 5 3 size Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;
MethodParameters:
Name Flags
masm
vector1
vector2
size
private static void emitVectorTest(org.graalvm.compiler.asm.amd64.AMD64MacroAssembler, jdk.vm.ci.code.Register, org.graalvm.compiler.asm.amd64.AVXKind$AVXSize);
descriptor: (Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=3, args_size=3
start local 0 start local 1 start local 2 0: aload 2
getstatic org.graalvm.compiler.asm.amd64.AVXKind$AVXSize.YMM:Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;
if_acmpne 3
1: aload 0
aload 1
aload 1
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.vptest:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;)V
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 1
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.ptest:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;)V
4: StackMap locals:
StackMap stack:
return
end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 masm Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
0 5 1 vector1 Ljdk/vm/ci/code/Register;
0 5 2 size Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;
MethodParameters:
Name Flags
masm
vector1
size
private void emit8ByteCompare(org.graalvm.compiler.lir.asm.CompilationResultBuilder, org.graalvm.compiler.asm.amd64.AMD64MacroAssembler, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register, org.graalvm.compiler.asm.Label, org.graalvm.compiler.asm.Label);
descriptor: (Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/Label;Lorg/graalvm/compiler/asm/Label;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=18, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 0: getstatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.$assertionsDisabled:Z
ifne 1
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.kind1:Ljdk/vm/ci/meta/JavaKind;
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.kind2:Ljdk/vm/ci/meta/JavaKind;
if_acmpeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
new org.graalvm.compiler.asm.Label
dup
invokespecial org.graalvm.compiler.asm.Label.<init>:()V
astore 9
start local 9 2: new org.graalvm.compiler.asm.Label
dup
invokespecial org.graalvm.compiler.asm.Label.<init>:()V
astore 10
start local 10 3: bipush 8
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale1:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
getfield org.graalvm.compiler.asm.amd64.AMD64Address$Scale.log2:I
ishr
istore 11
start local 11 4: aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.kind1:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.isNumericFloat:()Z
istore 12
start local 12 5: new org.graalvm.compiler.asm.Label
dup
invokespecial org.graalvm.compiler.asm.Label.<init>:()V
astore 13
start local 13 6: new org.graalvm.compiler.asm.Label
dup
invokespecial org.graalvm.compiler.asm.Label.<init>:()V
astore 14
start local 14 7: aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.temp4:Ljdk/vm/ci/meta/Value;
invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
astore 15
start local 15 8: aload 2
aload 3
iload 11
iconst_1
isub
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.andl:(Ljdk/vm/ci/code/Register;I)V
9: aload 2
aload 6
iload 11
iconst_1
isub
iconst_m1
ixor
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.andl:(Ljdk/vm/ci/code/Register;I)V
10: aload 2
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag.Zero:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
aload 10
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jcc:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
11: aload 2
aload 4
new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 4
aload 6
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale1:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
iconst_0
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;I)V
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.leaq:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
12: aload 2
aload 5
new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 5
aload 6
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale2:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
iconst_0
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;I)V
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.leaq:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
13: aload 2
aload 6
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.negq:(Ljdk/vm/ci/code/Register;)V
14: aload 2
aload 1
getfield org.graalvm.compiler.lir.asm.CompilationResultBuilder.target:Ljdk/vm/ci/code/TargetDescription;
getfield jdk.vm.ci.code.TargetDescription.wordSize:I
iconst_2
imul
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.align:(I)V
15: aload 2
aload 9
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.bind:(Lorg/graalvm/compiler/asm/Label;)V
16: aload 2
aload 15
new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 4
aload 6
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale1:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
iconst_0
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;I)V
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.movq:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
17: aload 2
aload 15
new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 5
aload 6
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale2:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
iconst_0
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;I)V
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.cmpq:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
18: aload 2
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag.NotEqual:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
iload 12
ifeq 19
aload 14
goto 20
StackMap locals: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp org.graalvm.compiler.lir.asm.CompilationResultBuilder org.graalvm.compiler.asm.amd64.AMD64MacroAssembler jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label int int org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label jdk.vm.ci.code.Register
StackMap stack: org.graalvm.compiler.asm.amd64.AMD64MacroAssembler org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag
19: aload 8
StackMap locals: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp org.graalvm.compiler.lir.asm.CompilationResultBuilder org.graalvm.compiler.asm.amd64.AMD64MacroAssembler jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label int int org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label jdk.vm.ci.code.Register
StackMap stack: org.graalvm.compiler.asm.amd64.AMD64MacroAssembler org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag org.graalvm.compiler.asm.Label
20: invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jcc:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
21: aload 2
aload 13
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.bind:(Lorg/graalvm/compiler/asm/Label;)V
22: aload 2
aload 6
iload 11
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.addq:(Ljdk/vm/ci/code/Register;I)V
23: aload 2
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag.NotZero:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
aload 9
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jccb:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
24: aload 2
aload 3
aload 3
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.testl:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;)V
25: aload 2
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag.Zero:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
aload 7
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jcc:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
26: iload 12
ifeq 39
27: new org.graalvm.compiler.asm.Label
dup
invokespecial org.graalvm.compiler.asm.Label.<init>:()V
astore 16
start local 16 28: aload 2
aload 16
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jmpb:(Lorg/graalvm/compiler/asm/Label;)V
29: aload 2
aload 14
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.bind:(Lorg/graalvm/compiler/asm/Label;)V
30: iconst_0
istore 17
start local 17 31: goto 36
32: StackMap locals: org.graalvm.compiler.asm.Label int
StackMap stack:
aload 0
aload 2
aload 4
aload 5
aload 6
iload 17
aload 8
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.kind1:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.getByteCount:()I
bipush 8
if_icmpne 33
iconst_1
goto 34
StackMap locals: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp org.graalvm.compiler.lir.asm.CompilationResultBuilder org.graalvm.compiler.asm.amd64.AMD64MacroAssembler jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label int int org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label jdk.vm.ci.code.Register org.graalvm.compiler.asm.Label int
StackMap stack: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp org.graalvm.compiler.asm.amd64.AMD64MacroAssembler jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register int org.graalvm.compiler.asm.Label
33: iconst_0
StackMap locals: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp org.graalvm.compiler.lir.asm.CompilationResultBuilder org.graalvm.compiler.asm.amd64.AMD64MacroAssembler jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label int int org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label jdk.vm.ci.code.Register org.graalvm.compiler.asm.Label int
StackMap stack: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp org.graalvm.compiler.asm.amd64.AMD64MacroAssembler jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register int org.graalvm.compiler.asm.Label int
34: invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitFloatCompare:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;ILorg/graalvm/compiler/asm/Label;Z)V
35: iload 17
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.kind1:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.getByteCount:()I
iadd
istore 17
StackMap locals:
StackMap stack:
36: iload 17
bipush 8
if_icmplt 32
end local 17 37: aload 2
aload 13
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jmpb:(Lorg/graalvm/compiler/asm/Label;)V
38: aload 2
aload 16
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.bind:(Lorg/graalvm/compiler/asm/Label;)V
end local 16 39: StackMap locals:
StackMap stack:
aload 2
aload 15
new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 4
aload 3
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale1:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
bipush -8
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;I)V
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.movq:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
40: aload 2
aload 15
new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 5
aload 3
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale2:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
bipush -8
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;I)V
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.cmpq:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
41: iload 12
ifeq 51
42: aload 2
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag.Equal:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
aload 7
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jcc:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
43: iconst_0
istore 16
start local 16 44: goto 49
45: StackMap locals: int
StackMap stack:
aload 0
aload 2
aload 4
aload 5
aload 3
bipush -8
iload 16
iadd
aload 8
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.kind1:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.getByteCount:()I
bipush 8
if_icmpne 46
iconst_1
goto 47
StackMap locals: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp org.graalvm.compiler.lir.asm.CompilationResultBuilder org.graalvm.compiler.asm.amd64.AMD64MacroAssembler jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label int int org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label jdk.vm.ci.code.Register int
StackMap stack: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp org.graalvm.compiler.asm.amd64.AMD64MacroAssembler jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register int org.graalvm.compiler.asm.Label
46: iconst_0
StackMap locals: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp org.graalvm.compiler.lir.asm.CompilationResultBuilder org.graalvm.compiler.asm.amd64.AMD64MacroAssembler jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label int int org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label jdk.vm.ci.code.Register int
StackMap stack: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp org.graalvm.compiler.asm.amd64.AMD64MacroAssembler jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register int org.graalvm.compiler.asm.Label int
47: invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitFloatCompare:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;ILorg/graalvm/compiler/asm/Label;Z)V
48: iload 16
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.kind1:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.getByteCount:()I
iadd
istore 16
StackMap locals:
StackMap stack:
49: iload 16
bipush 8
if_icmplt 45
end local 16 50: goto 52
51: StackMap locals:
StackMap stack:
aload 2
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag.NotEqual:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
aload 8
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jccb:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
52: StackMap locals:
StackMap stack:
aload 2
aload 7
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jmpb:(Lorg/graalvm/compiler/asm/Label;)V
53: aload 2
aload 10
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.bind:(Lorg/graalvm/compiler/asm/Label;)V
54: aload 2
aload 6
aload 3
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.movl:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;)V
55: return
end local 15 end local 14 end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 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 56 0 this Lorg/graalvm/compiler/lir/amd64/AMD64ArrayEqualsOp;
0 56 1 crb Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;
0 56 2 masm Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
0 56 3 result Ljdk/vm/ci/code/Register;
0 56 4 array1 Ljdk/vm/ci/code/Register;
0 56 5 array2 Ljdk/vm/ci/code/Register;
0 56 6 length Ljdk/vm/ci/code/Register;
0 56 7 trueLabel Lorg/graalvm/compiler/asm/Label;
0 56 8 falseLabel Lorg/graalvm/compiler/asm/Label;
2 56 9 loop Lorg/graalvm/compiler/asm/Label;
3 56 10 compareTail Lorg/graalvm/compiler/asm/Label;
4 56 11 elementsPerVector I
5 56 12 requiresNaNCheck Z
6 56 13 loopCheck Lorg/graalvm/compiler/asm/Label;
7 56 14 nanCheck Lorg/graalvm/compiler/asm/Label;
8 56 15 temp Ljdk/vm/ci/code/Register;
28 39 16 unalignedCheck Lorg/graalvm/compiler/asm/Label;
31 37 17 offset I
44 50 16 offset I
MethodParameters:
Name Flags
crb
masm
result
array1
array2
length
trueLabel
falseLabel
private void emitTailCompares(org.graalvm.compiler.asm.amd64.AMD64MacroAssembler, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register, org.graalvm.compiler.asm.Label, org.graalvm.compiler.asm.Label);
descriptor: (Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/Label;Lorg/graalvm/compiler/asm/Label;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=11, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: getstatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.$assertionsDisabled:Z
ifne 1
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.kind1:Ljdk/vm/ci/meta/JavaKind;
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.kind2:Ljdk/vm/ci/meta/JavaKind;
if_acmpeq 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
new org.graalvm.compiler.asm.Label
dup
invokespecial org.graalvm.compiler.asm.Label.<init>:()V
astore 8
start local 8 2: new org.graalvm.compiler.asm.Label
dup
invokespecial org.graalvm.compiler.asm.Label.<init>:()V
astore 9
start local 9 3: aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.temp4:Ljdk/vm/ci/meta/Value;
invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
astore 10
start local 10 4: aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.kind1:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.getByteCount:()I
iconst_4
if_icmpgt 43
5: aload 1
aload 2
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale1:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
getfield org.graalvm.compiler.asm.amd64.AMD64Address$Scale.log2:I
ifne 6
iconst_4
goto 7
StackMap locals: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp org.graalvm.compiler.asm.amd64.AMD64MacroAssembler jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label jdk.vm.ci.code.Register
StackMap stack: org.graalvm.compiler.asm.amd64.AMD64MacroAssembler jdk.vm.ci.code.Register
6: iconst_4
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale1:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
getfield org.graalvm.compiler.asm.amd64.AMD64Address$Scale.log2:I
ishr
StackMap locals: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp org.graalvm.compiler.asm.amd64.AMD64MacroAssembler jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label jdk.vm.ci.code.Register
StackMap stack: org.graalvm.compiler.asm.amd64.AMD64MacroAssembler jdk.vm.ci.code.Register int
7: invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.testl:(Ljdk/vm/ci/code/Register;I)V
8: aload 1
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag.Zero:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
aload 8
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jccb:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
9: aload 1
aload 10
new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 3
iconst_0
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;I)V
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.movl:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
10: aload 1
aload 10
new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 4
iconst_0
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;I)V
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.cmpl:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
11: aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.kind1:Ljdk/vm/ci/meta/JavaKind;
getstatic jdk.vm.ci.meta.JavaKind.Float:Ljdk/vm/ci/meta/JavaKind;
if_acmpne 16
12: aload 1
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag.Equal:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
aload 6
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jccb:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
13: aload 0
aload 1
aload 3
aload 4
getstatic jdk.vm.ci.code.Register.None:Ljdk/vm/ci/code/Register;
iconst_0
aload 7
iconst_1
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitFloatCompare:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;ILorg/graalvm/compiler/asm/Label;Z)V
14: aload 1
aload 6
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jmpb:(Lorg/graalvm/compiler/asm/Label;)V
15: goto 17
16: StackMap locals:
StackMap stack:
aload 1
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag.NotEqual:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
aload 7
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jccb:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
17: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.kind1:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.getByteCount:()I
iconst_2
if_icmpgt 42
18: aload 1
aload 3
new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 3
iconst_4
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;I)V
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.leaq:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
19: aload 1
aload 4
new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 4
iconst_4
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;I)V
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.leaq:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
20: aload 1
aload 8
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.bind:(Lorg/graalvm/compiler/asm/Label;)V
21: aload 1
aload 2
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale1:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
getfield org.graalvm.compiler.asm.amd64.AMD64Address$Scale.log2:I
ifne 22
iconst_2
goto 23
StackMap locals: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp org.graalvm.compiler.asm.amd64.AMD64MacroAssembler jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label jdk.vm.ci.code.Register
StackMap stack: org.graalvm.compiler.asm.amd64.AMD64MacroAssembler jdk.vm.ci.code.Register
22: iconst_2
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale1:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
getfield org.graalvm.compiler.asm.amd64.AMD64Address$Scale.log2:I
ishr
StackMap locals: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp org.graalvm.compiler.asm.amd64.AMD64MacroAssembler jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label jdk.vm.ci.code.Register
StackMap stack: org.graalvm.compiler.asm.amd64.AMD64MacroAssembler jdk.vm.ci.code.Register int
23: invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.testl:(Ljdk/vm/ci/code/Register;I)V
24: aload 1
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag.Zero:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
aload 9
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jccb:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
25: aload 1
aload 10
new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 3
iconst_0
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;I)V
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.movzwl:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
26: aload 1
aload 5
new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 4
iconst_0
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;I)V
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.movzwl:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
27: aload 1
aload 10
aload 5
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.cmpl:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;)V
28: aload 1
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag.NotEqual:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
aload 7
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jccb:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
29: aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.kind1:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.getByteCount:()I
iconst_1
if_icmpgt 40
30: aload 1
aload 3
new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 3
iconst_2
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;I)V
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.leaq:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
31: aload 1
aload 4
new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 4
iconst_2
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;I)V
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.leaq:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
32: aload 1
aload 9
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.bind:(Lorg/graalvm/compiler/asm/Label;)V
33: aload 1
aload 2
iconst_1
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.testl:(Ljdk/vm/ci/code/Register;I)V
34: aload 1
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag.Zero:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
aload 6
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jccb:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
35: aload 1
aload 10
new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 3
iconst_0
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;I)V
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.movzbl:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
36: aload 1
aload 5
new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 4
iconst_0
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;I)V
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.movzbl:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
37: aload 1
aload 10
aload 5
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.cmpl:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;)V
38: aload 1
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag.NotEqual:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
aload 7
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jccb:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
39: goto 43
40: StackMap locals:
StackMap stack:
aload 1
aload 9
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.bind:(Lorg/graalvm/compiler/asm/Label;)V
41: goto 43
42: StackMap locals:
StackMap stack:
aload 1
aload 8
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.bind:(Lorg/graalvm/compiler/asm/Label;)V
43: StackMap locals:
StackMap stack:
return
end local 10 end local 9 end local 8 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 44 0 this Lorg/graalvm/compiler/lir/amd64/AMD64ArrayEqualsOp;
0 44 1 masm Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
0 44 2 result Ljdk/vm/ci/code/Register;
0 44 3 array1 Ljdk/vm/ci/code/Register;
0 44 4 array2 Ljdk/vm/ci/code/Register;
0 44 5 length Ljdk/vm/ci/code/Register;
0 44 6 trueLabel Lorg/graalvm/compiler/asm/Label;
0 44 7 falseLabel Lorg/graalvm/compiler/asm/Label;
2 44 8 compare2Bytes Lorg/graalvm/compiler/asm/Label;
3 44 9 compare1Byte Lorg/graalvm/compiler/asm/Label;
4 44 10 temp Ljdk/vm/ci/code/Register;
MethodParameters:
Name Flags
masm
result
array1
array2
length
trueLabel
falseLabel
private void emitDifferentKindsElementWiseCompare(org.graalvm.compiler.lir.asm.CompilationResultBuilder, org.graalvm.compiler.asm.amd64.AMD64MacroAssembler, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register, org.graalvm.compiler.asm.Label, org.graalvm.compiler.asm.Label);
descriptor: (Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/Label;Lorg/graalvm/compiler/asm/Label;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=10, locals=15, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 0: getstatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.$assertionsDisabled:Z
ifne 1
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.kind1:Ljdk/vm/ci/meta/JavaKind;
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.kind2:Ljdk/vm/ci/meta/JavaKind;
if_acmpne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.$assertionsDisabled:Z
ifne 3
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.kind1:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
ifeq 2
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.kind2:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.isNumericInteger:()Z
ifne 3
StackMap locals:
StackMap stack:
2: new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
3: StackMap locals:
StackMap stack:
new org.graalvm.compiler.asm.Label
dup
invokespecial org.graalvm.compiler.asm.Label.<init>:()V
astore 9
start local 9 4: new org.graalvm.compiler.asm.Label
dup
invokespecial org.graalvm.compiler.asm.Label.<init>:()V
astore 10
start local 10 5: iconst_4
istore 11
start local 11 6: aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.temp4:Ljdk/vm/ci/meta/Value;
invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
astore 12
start local 12 7: aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.temp5:Ljdk/vm/ci/meta/Value;
invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
astore 13
start local 13 8: aload 2
aload 3
iload 11
iconst_1
isub
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.andl:(Ljdk/vm/ci/code/Register;I)V
9: aload 2
aload 6
iload 11
iconst_1
isub
iconst_m1
ixor
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.andl:(Ljdk/vm/ci/code/Register;I)V
10: aload 2
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag.Zero:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
aload 10
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jcc:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
11: aload 2
aload 4
new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 4
aload 6
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale1:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
iconst_0
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;I)V
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.leaq:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
12: aload 2
aload 5
new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 5
aload 6
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale2:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
iconst_0
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;I)V
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.leaq:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
13: aload 2
aload 6
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.negq:(Ljdk/vm/ci/code/Register;)V
14: aload 2
aload 12
aload 12
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.xorq:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;)V
15: aload 2
aload 13
aload 13
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.xorq:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;)V
16: aload 2
aload 1
getfield org.graalvm.compiler.lir.asm.CompilationResultBuilder.target:Ljdk/vm/ci/code/TargetDescription;
getfield jdk.vm.ci.code.TargetDescription.wordSize:I
iconst_2
imul
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.align:(I)V
17: aload 2
aload 9
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.bind:(Lorg/graalvm/compiler/asm/Label;)V
18: iconst_0
istore 14
start local 14 19: goto 25
20: StackMap locals: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp org.graalvm.compiler.lir.asm.CompilationResultBuilder org.graalvm.compiler.asm.amd64.AMD64MacroAssembler jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.Label int jdk.vm.ci.code.Register jdk.vm.ci.code.Register int
StackMap stack:
aload 0
aload 2
aload 12
new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 4
aload 6
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale1:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
iload 14
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale1:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
getfield org.graalvm.compiler.asm.amd64.AMD64Address$Scale.log2:I
ishl
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;I)V
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.kind1:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.getByteCount:()I
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitMovBytes:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;I)V
21: aload 0
aload 2
aload 13
new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 5
aload 6
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale2:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
iload 14
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale2:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
getfield org.graalvm.compiler.asm.amd64.AMD64Address$Scale.log2:I
ishl
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;I)V
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.kind2:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.getByteCount:()I
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitMovBytes:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;I)V
22: aload 2
aload 12
aload 13
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.cmpq:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;)V
23: aload 2
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag.NotEqual:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
aload 8
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jcc:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
24: iinc 14 1
StackMap locals:
StackMap stack:
25: iload 14
iload 11
if_icmplt 20
end local 14 26: aload 2
aload 6
iload 11
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.addq:(Ljdk/vm/ci/code/Register;I)V
27: aload 2
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag.NotZero:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
aload 9
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jccb:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
28: aload 2
aload 10
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.bind:(Lorg/graalvm/compiler/asm/Label;)V
29: aload 2
aload 3
aload 3
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.testl:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;)V
30: aload 2
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag.Zero:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
aload 7
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jcc:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
31: iconst_0
istore 14
start local 14 32: goto 44
33: StackMap locals:
StackMap stack:
aload 0
aload 2
aload 12
new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 4
aload 6
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale1:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
iconst_0
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;I)V
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.kind1:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.getByteCount:()I
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitMovBytes:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;I)V
34: aload 0
aload 2
aload 13
new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 5
aload 6
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale2:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
iconst_0
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;I)V
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.kind2:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.getByteCount:()I
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitMovBytes:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;I)V
35: aload 2
aload 12
aload 13
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.cmpq:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;)V
36: aload 2
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag.NotEqual:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
aload 8
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jcc:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
37: iload 14
iload 11
iconst_2
isub
if_icmpge 42
38: aload 2
aload 6
iconst_1
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.incrementq:(Ljdk/vm/ci/code/Register;I)V
39: aload 2
aload 3
iconst_1
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.decrementq:(Ljdk/vm/ci/code/Register;I)V
40: aload 2
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag.Zero:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
aload 7
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jcc:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
41: goto 43
42: StackMap locals:
StackMap stack:
aload 2
aload 7
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jmpb:(Lorg/graalvm/compiler/asm/Label;)V
43: StackMap locals:
StackMap stack:
iinc 14 1
StackMap locals:
StackMap stack:
44: iload 14
iload 11
iconst_1
isub
if_icmplt 33
end local 14 45: return
end local 13 end local 12 end local 11 end local 10 end local 9 end local 8 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 46 0 this Lorg/graalvm/compiler/lir/amd64/AMD64ArrayEqualsOp;
0 46 1 crb Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;
0 46 2 masm Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
0 46 3 result Ljdk/vm/ci/code/Register;
0 46 4 array1 Ljdk/vm/ci/code/Register;
0 46 5 array2 Ljdk/vm/ci/code/Register;
0 46 6 length Ljdk/vm/ci/code/Register;
0 46 7 trueLabel Lorg/graalvm/compiler/asm/Label;
0 46 8 falseLabel Lorg/graalvm/compiler/asm/Label;
4 46 9 loop Lorg/graalvm/compiler/asm/Label;
5 46 10 compareTail Lorg/graalvm/compiler/asm/Label;
6 46 11 elementsPerLoopIteration I
7 46 12 tmp1 Ljdk/vm/ci/code/Register;
8 46 13 tmp2 Ljdk/vm/ci/code/Register;
19 26 14 i I
32 45 14 i I
MethodParameters:
Name Flags
crb
masm
result
array1
array2
length
trueLabel
falseLabel
private void emitNaNCheck(org.graalvm.compiler.asm.amd64.AMD64MacroAssembler, org.graalvm.compiler.asm.amd64.AMD64Address, org.graalvm.compiler.asm.Label);
descriptor: (Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Lorg/graalvm/compiler/asm/amd64/AMD64Address;Lorg/graalvm/compiler/asm/Label;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=5, locals=5, args_size=4
start local 0 start local 1 start local 2 start local 3 0: getstatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.$assertionsDisabled:Z
ifne 1
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.kind1:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.isNumericFloat:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.tempXMM:Ljdk/vm/ci/meta/Value;
invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
astore 4
start local 4 2: aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.kind1:Ljdk/vm/ci/meta/JavaKind;
getstatic jdk.vm.ci.meta.JavaKind.Float:Ljdk/vm/ci/meta/JavaKind;
if_acmpne 5
3: aload 1
aload 4
aload 2
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.movflt:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
4: goto 6
5: StackMap locals: jdk.vm.ci.code.Register
StackMap stack:
aload 1
aload 4
aload 2
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.movdbl:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
6: StackMap locals:
StackMap stack:
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$SSEOp.UCOMIS:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$SSEOp;
aload 1
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.kind1:Ljdk/vm/ci/meta/JavaKind;
getstatic jdk.vm.ci.meta.JavaKind.Float:Ljdk/vm/ci/meta/JavaKind;
if_acmpne 7
getstatic org.graalvm.compiler.asm.amd64.AMD64BaseAssembler$OperandSize.PS:Lorg/graalvm/compiler/asm/amd64/AMD64BaseAssembler$OperandSize;
goto 8
StackMap locals: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp org.graalvm.compiler.asm.amd64.AMD64MacroAssembler org.graalvm.compiler.asm.amd64.AMD64Address org.graalvm.compiler.asm.Label jdk.vm.ci.code.Register
StackMap stack: org.graalvm.compiler.asm.amd64.AMD64Assembler$SSEOp org.graalvm.compiler.asm.amd64.AMD64MacroAssembler
7: getstatic org.graalvm.compiler.asm.amd64.AMD64BaseAssembler$OperandSize.PD:Lorg/graalvm/compiler/asm/amd64/AMD64BaseAssembler$OperandSize;
StackMap locals: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp org.graalvm.compiler.asm.amd64.AMD64MacroAssembler org.graalvm.compiler.asm.amd64.AMD64Address org.graalvm.compiler.asm.Label jdk.vm.ci.code.Register
StackMap stack: org.graalvm.compiler.asm.amd64.AMD64Assembler$SSEOp org.graalvm.compiler.asm.amd64.AMD64MacroAssembler org.graalvm.compiler.asm.amd64.AMD64BaseAssembler$OperandSize
8: aload 4
aload 4
invokevirtual org.graalvm.compiler.asm.amd64.AMD64Assembler$SSEOp.emit:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler;Lorg/graalvm/compiler/asm/amd64/AMD64BaseAssembler$OperandSize;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;)V
9: aload 1
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag.NoParity:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
aload 3
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jcc:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
10: return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 11 0 this Lorg/graalvm/compiler/lir/amd64/AMD64ArrayEqualsOp;
0 11 1 masm Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
0 11 2 src Lorg/graalvm/compiler/asm/amd64/AMD64Address;
0 11 3 branchIfNonNaN Lorg/graalvm/compiler/asm/Label;
2 11 4 tempXMMReg Ljdk/vm/ci/code/Register;
MethodParameters:
Name Flags
masm
src
branchIfNonNaN
private void emitFloatCompare(org.graalvm.compiler.asm.amd64.AMD64MacroAssembler, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register, int, org.graalvm.compiler.asm.Label, boolean);
descriptor: (Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;ILorg/graalvm/compiler/asm/Label;Z)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=6, locals=12, args_size=8
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 0: new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 2
aload 4
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale1:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
iload 5
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;I)V
astore 8
start local 8 1: new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 3
aload 4
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale2:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
iload 5
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;I)V
astore 9
start local 9 2: new org.graalvm.compiler.asm.Label
dup
invokespecial org.graalvm.compiler.asm.Label.<init>:()V
astore 10
start local 10 3: iload 7
ifne 12
4: aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.temp4:Ljdk/vm/ci/meta/Value;
invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
astore 11
start local 11 5: aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.kind1:Ljdk/vm/ci/meta/JavaKind;
getstatic jdk.vm.ci.meta.JavaKind.Float:Ljdk/vm/ci/meta/JavaKind;
if_acmpne 9
6: aload 1
aload 11
aload 8
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.movl:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
7: aload 1
aload 11
aload 9
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.cmpl:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
8: goto 11
9: StackMap locals: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp org.graalvm.compiler.asm.amd64.AMD64MacroAssembler jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register int org.graalvm.compiler.asm.Label int org.graalvm.compiler.asm.amd64.AMD64Address org.graalvm.compiler.asm.amd64.AMD64Address org.graalvm.compiler.asm.Label jdk.vm.ci.code.Register
StackMap stack:
aload 1
aload 11
aload 8
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.movq:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
10: aload 1
aload 11
aload 9
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.cmpq:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
11: StackMap locals:
StackMap stack:
aload 1
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag.Equal:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
aload 10
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jccb:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
end local 11 12: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 8
aload 6
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitNaNCheck:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Lorg/graalvm/compiler/asm/amd64/AMD64Address;Lorg/graalvm/compiler/asm/Label;)V
13: aload 0
aload 1
aload 9
aload 6
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitNaNCheck:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Lorg/graalvm/compiler/asm/amd64/AMD64Address;Lorg/graalvm/compiler/asm/Label;)V
14: aload 1
aload 10
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.bind:(Lorg/graalvm/compiler/asm/Label;)V
15: return
end local 10 end local 9 end local 8 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 16 0 this Lorg/graalvm/compiler/lir/amd64/AMD64ArrayEqualsOp;
0 16 1 masm Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
0 16 2 base1 Ljdk/vm/ci/code/Register;
0 16 3 base2 Ljdk/vm/ci/code/Register;
0 16 4 index Ljdk/vm/ci/code/Register;
0 16 5 offset I
0 16 6 falseLabel Lorg/graalvm/compiler/asm/Label;
0 16 7 skipBitwiseCompare Z
1 16 8 address1 Lorg/graalvm/compiler/asm/amd64/AMD64Address;
2 16 9 address2 Lorg/graalvm/compiler/asm/amd64/AMD64Address;
3 16 10 bitwiseEqual Lorg/graalvm/compiler/asm/Label;
5 12 11 temp Ljdk/vm/ci/code/Register;
MethodParameters:
Name Flags
masm
base1
base2
index
offset
falseLabel
skipBitwiseCompare
private void emitFloatCompareWithinRange(org.graalvm.compiler.lir.asm.CompilationResultBuilder, org.graalvm.compiler.asm.amd64.AMD64MacroAssembler, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register, int, org.graalvm.compiler.asm.Label, int);
descriptor: (Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;ILorg/graalvm/compiler/asm/Label;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=9, locals=11, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 0: getstatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.$assertionsDisabled:Z
ifne 1
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.kind1:Ljdk/vm/ci/meta/JavaKind;
invokevirtual jdk.vm.ci.meta.JavaKind.isNumericFloat:()Z
ifne 1
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
1: StackMap locals:
StackMap stack:
new org.graalvm.compiler.asm.Label
dup
invokespecial org.graalvm.compiler.asm.Label.<init>:()V
astore 9
start local 9 2: aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.temp5:Ljdk/vm/ci/meta/Value;
invokestatic jdk.vm.ci.code.ValueUtil.asRegister:(Ljdk/vm/ci/meta/Value;)Ljdk/vm/ci/code/Register;
astore 10
start local 10 3: aload 2
aload 10
iload 8
i2l
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.movq:(Ljdk/vm/ci/code/Register;J)V
4: aload 2
aload 10
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.negq:(Ljdk/vm/ci/code/Register;)V
5: aload 2
aload 1
getfield org.graalvm.compiler.lir.asm.CompilationResultBuilder.target:Ljdk/vm/ci/code/TargetDescription;
getfield jdk.vm.ci.code.TargetDescription.wordSize:I
iconst_2
imul
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.align:(I)V
6: aload 2
aload 9
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.bind:(Lorg/graalvm/compiler/asm/Label;)V
7: aload 0
aload 2
aload 3
aload 4
aload 5
iload 6
aload 7
iload 8
iconst_1
if_icmpne 8
iconst_1
goto 9
StackMap locals: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp org.graalvm.compiler.lir.asm.CompilationResultBuilder org.graalvm.compiler.asm.amd64.AMD64MacroAssembler jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register int org.graalvm.compiler.asm.Label int org.graalvm.compiler.asm.Label jdk.vm.ci.code.Register
StackMap stack: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp org.graalvm.compiler.asm.amd64.AMD64MacroAssembler jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register int org.graalvm.compiler.asm.Label
8: iconst_0
StackMap locals: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp org.graalvm.compiler.lir.asm.CompilationResultBuilder org.graalvm.compiler.asm.amd64.AMD64MacroAssembler jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register int org.graalvm.compiler.asm.Label int org.graalvm.compiler.asm.Label jdk.vm.ci.code.Register
StackMap stack: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp org.graalvm.compiler.asm.amd64.AMD64MacroAssembler jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register int org.graalvm.compiler.asm.Label int
9: invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitFloatCompare:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;ILorg/graalvm/compiler/asm/Label;Z)V
10: aload 2
aload 5
iconst_1
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.incrementq:(Ljdk/vm/ci/code/Register;I)V
11: aload 2
aload 10
iconst_1
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.incrementq:(Ljdk/vm/ci/code/Register;I)V
12: aload 2
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag.NotZero:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
aload 9
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jccb:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
13: aload 2
aload 5
iload 8
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.subq:(Ljdk/vm/ci/code/Register;I)V
14: return
end local 10 end local 9 end local 8 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 15 0 this Lorg/graalvm/compiler/lir/amd64/AMD64ArrayEqualsOp;
0 15 1 crb Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;
0 15 2 masm Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
0 15 3 base1 Ljdk/vm/ci/code/Register;
0 15 4 base2 Ljdk/vm/ci/code/Register;
0 15 5 index Ljdk/vm/ci/code/Register;
0 15 6 offset I
0 15 7 falseLabel Lorg/graalvm/compiler/asm/Label;
0 15 8 range I
2 15 9 loop Lorg/graalvm/compiler/asm/Label;
3 15 10 i Ljdk/vm/ci/code/Register;
MethodParameters:
Name Flags
crb
masm
base1
base2
index
offset
falseLabel
range
private void emitConstantLengthArrayCompareBytes(org.graalvm.compiler.lir.asm.CompilationResultBuilder, org.graalvm.compiler.asm.amd64.AMD64MacroAssembler, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register[], org.graalvm.compiler.asm.Label);
descriptor: (Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;[Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/Label;)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=8, locals=16, args_size=9
start local 0 start local 1 start local 2 start local 3 start local 4 start local 5 start local 6 start local 7 start local 8 0: aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.constantLength:I
ifne 2
1: return
2: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.vectorSize:Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;
astore 9
start local 9 3: aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.constantLength:I
aload 0
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.vectorSize:Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.getElementsPerVector:(Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)I
if_icmpge 5
4: getstatic org.graalvm.compiler.asm.amd64.AVXKind$AVXSize.XMM:Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;
astore 9
5: StackMap locals: org.graalvm.compiler.asm.amd64.AVXKind$AVXSize
StackMap stack:
aload 0
aload 9
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.getElementsPerVector:(Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)I
istore 10
start local 10 6: iload 10
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.constantLength:I
if_icmple 24
7: getstatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.$assertionsDisabled:Z
ifne 8
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.kind1:Ljdk/vm/ci/meta/JavaKind;
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.kind2:Ljdk/vm/ci/meta/JavaKind;
if_acmpeq 8
new java.lang.AssertionError
dup
invokespecial java.lang.AssertionError.<init>:()V
athrow
8: StackMap locals: int
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.constantLength:I
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale1:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
getfield org.graalvm.compiler.asm.amd64.AMD64Address$Scale.log2:I
ishl
istore 11
start local 11 9: iload 11
iconst_2
if_icmpge 10
iconst_1
goto 13
StackMap locals: int
StackMap stack:
10: iload 11
iconst_4
if_icmpge 11
iconst_2
goto 13
StackMap locals:
StackMap stack:
11: iload 11
bipush 8
if_icmpge 12
iconst_4
goto 13
StackMap locals:
StackMap stack:
12: bipush 8
StackMap locals:
StackMap stack: int
13: istore 12
start local 12 14: aload 0
aload 2
aload 5
new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 3
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;)V
iload 12
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitMovBytes:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;I)V
15: aload 0
aload 2
aload 6
new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 4
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;)V
iload 12
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitMovBytes:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;I)V
16: aload 2
aload 5
aload 6
iload 12
invokestatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitCmpBytes:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;I)V
17: aload 2
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag.NotEqual:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
aload 8
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jcc:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
18: iload 11
iload 12
if_icmple 59
19: aload 0
aload 2
aload 5
new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 3
iload 11
iload 12
isub
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;I)V
iload 12
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitMovBytes:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;I)V
20: aload 0
aload 2
aload 6
new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 4
iload 11
iload 12
isub
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;I)V
iload 12
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitMovBytes:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;I)V
21: aload 2
aload 5
aload 6
iload 12
invokestatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitCmpBytes:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;I)V
22: aload 2
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag.NotEqual:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
aload 8
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jcc:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
end local 12 end local 11 23: goto 59
24: StackMap locals:
StackMap stack:
iconst_2
iload 10
imul
istore 11
start local 11 25: aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.constantLength:I
iload 11
iconst_1
isub
iand
istore 12
start local 12 26: aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.constantLength:I
iload 11
iconst_1
isub
iconst_m1
ixor
iand
istore 13
start local 13 27: aload 9
invokevirtual org.graalvm.compiler.asm.amd64.AVXKind$AVXSize.getBytes:()I
istore 14
start local 14 28: iload 13
ifle 47
29: new org.graalvm.compiler.asm.Label
dup
invokespecial org.graalvm.compiler.asm.Label.<init>:()V
astore 15
start local 15 30: aload 2
aload 3
new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 3
iload 13
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale1:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
getfield org.graalvm.compiler.asm.amd64.AMD64Address$Scale.log2:I
ishl
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;I)V
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.leaq:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
31: aload 2
aload 4
new org.graalvm.compiler.asm.amd64.AMD64Address
dup
aload 4
iload 13
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale2:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
getfield org.graalvm.compiler.asm.amd64.AMD64Address$Scale.log2:I
ishl
invokespecial org.graalvm.compiler.asm.amd64.AMD64Address.<init>:(Ljdk/vm/ci/code/Register;I)V
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.leaq:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
32: aload 2
aload 5
iload 13
ineg
i2l
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.movq:(Ljdk/vm/ci/code/Register;J)V
33: aload 2
aload 1
getfield org.graalvm.compiler.lir.asm.CompilationResultBuilder.target:Ljdk/vm/ci/code/TargetDescription;
getfield jdk.vm.ci.code.TargetDescription.wordSize:I
iconst_2
imul
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.align:(I)V
34: aload 2
aload 15
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.bind:(Lorg/graalvm/compiler/asm/Label;)V
35: aload 0
aload 2
aload 7
iconst_0
aaload
aload 3
aload 5
iconst_0
aload 9
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitVectorLoad1:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;ILorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)V
36: aload 0
aload 2
aload 7
iconst_1
aaload
aload 4
aload 5
iconst_0
aload 9
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitVectorLoad2:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;ILorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)V
37: aload 0
aload 2
aload 7
iconst_2
aaload
aload 3
aload 5
aload 0
iload 14
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.scaleDisplacement1:(I)I
aload 9
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitVectorLoad1:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;ILorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)V
38: aload 0
aload 2
aload 7
iconst_3
aaload
aload 4
aload 5
aload 0
iload 14
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.scaleDisplacement2:(I)I
aload 9
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitVectorLoad2:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;ILorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)V
39: aload 2
aload 7
iconst_0
aaload
aload 7
iconst_1
aaload
aload 9
invokestatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitVectorXor:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)V
40: aload 2
aload 7
iconst_2
aaload
aload 7
iconst_3
aaload
aload 9
invokestatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitVectorXor:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)V
41: aload 2
aload 7
iconst_0
aaload
aload 9
invokestatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitVectorTest:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)V
42: aload 2
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag.NotZero:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
aload 8
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jcc:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
43: aload 2
aload 7
iconst_2
aaload
aload 9
invokestatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitVectorTest:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)V
44: aload 2
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag.NotZero:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
aload 8
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jcc:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
45: aload 2
aload 5
iload 11
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.addq:(Ljdk/vm/ci/code/Register;I)V
46: aload 2
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag.NotZero:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
aload 15
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jcc:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
end local 15 47: StackMap locals: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp org.graalvm.compiler.lir.asm.CompilationResultBuilder org.graalvm.compiler.asm.amd64.AMD64MacroAssembler jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register[] org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.amd64.AVXKind$AVXSize int int int int int
StackMap stack:
iload 12
ifle 59
48: aload 0
aload 2
aload 7
iconst_0
aaload
aload 3
iload 12
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale1:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
getfield org.graalvm.compiler.asm.amd64.AMD64Address$Scale.log2:I
ishl
aload 0
iload 14
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.scaleDisplacement1:(I)I
isub
aload 9
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitVectorLoad1:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;ILorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)V
49: aload 0
aload 2
aload 7
iconst_1
aaload
aload 4
iload 12
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.arrayIndexScale2:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
getfield org.graalvm.compiler.asm.amd64.AMD64Address$Scale.log2:I
ishl
aload 0
iload 14
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.scaleDisplacement2:(I)I
isub
aload 9
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitVectorLoad2:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;ILorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)V
50: aload 2
aload 7
iconst_0
aaload
aload 7
iconst_1
aaload
aload 9
invokestatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitVectorXor:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)V
51: iload 12
iload 10
if_icmple 57
52: aload 0
aload 2
aload 7
iconst_2
aaload
aload 3
iconst_0
aload 9
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitVectorLoad1:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;ILorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)V
53: aload 0
aload 2
aload 7
iconst_3
aaload
aload 4
iconst_0
aload 9
invokevirtual org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitVectorLoad2:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;ILorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)V
54: aload 2
aload 7
iconst_2
aaload
aload 7
iconst_3
aaload
aload 9
invokestatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitVectorXor:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)V
55: aload 2
aload 7
iconst_2
aaload
aload 9
invokestatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitVectorTest:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)V
56: aload 2
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag.NotZero:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
aload 8
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jcc:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
57: StackMap locals:
StackMap stack:
aload 2
aload 7
iconst_0
aaload
aload 9
invokestatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.emitVectorTest:(Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;)V
58: aload 2
getstatic org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag.NotZero:Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;
aload 8
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.jcc:(Lorg/graalvm/compiler/asm/amd64/AMD64Assembler$ConditionFlag;Lorg/graalvm/compiler/asm/Label;)V
end local 14 end local 13 end local 12 end local 11 59: StackMap locals: org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp org.graalvm.compiler.lir.asm.CompilationResultBuilder org.graalvm.compiler.asm.amd64.AMD64MacroAssembler jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register jdk.vm.ci.code.Register[] org.graalvm.compiler.asm.Label org.graalvm.compiler.asm.amd64.AVXKind$AVXSize int
StackMap stack:
return
end local 10 end local 9 end local 8 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 60 0 this Lorg/graalvm/compiler/lir/amd64/AMD64ArrayEqualsOp;
0 60 1 crb Lorg/graalvm/compiler/lir/asm/CompilationResultBuilder;
0 60 2 asm Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
0 60 3 arrayPtr1 Ljdk/vm/ci/code/Register;
0 60 4 arrayPtr2 Ljdk/vm/ci/code/Register;
0 60 5 tmp1 Ljdk/vm/ci/code/Register;
0 60 6 tmp2 Ljdk/vm/ci/code/Register;
0 60 7 tmpVectors [Ljdk/vm/ci/code/Register;
0 60 8 noMatch Lorg/graalvm/compiler/asm/Label;
3 60 9 vSize Lorg/graalvm/compiler/asm/amd64/AVXKind$AVXSize;
6 60 10 elementsPerVector I
9 23 11 byteLength I
14 23 12 movSize I
25 59 11 elementsPerVectorLoop I
26 59 12 tailCount I
27 59 13 vectorCount I
28 59 14 bytesPerVector I
30 47 15 loopBegin Lorg/graalvm/compiler/asm/Label;
MethodParameters:
Name Flags
crb
asm
arrayPtr1
arrayPtr2
tmp1
tmp2
tmpVectors
noMatch
private void emitMovBytes(org.graalvm.compiler.asm.amd64.AMD64MacroAssembler, jdk.vm.ci.code.Register, org.graalvm.compiler.asm.amd64.AMD64Address, int);
descriptor: (Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;I)V
flags: (0x0002) ACC_PRIVATE
Code:
stack=3, locals=5, args_size=5
start local 0 start local 1 start local 2 start local 3 start local 4 0: iload 4
tableswitch { // 1 - 8
1: 1
2: 6
3: 18
4: 11
5: 18
6: 18
7: 18
8: 16
default: 18
}
1: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.signExtend:Z
ifeq 4
2: aload 1
aload 2
aload 3
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.movsbq:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
3: goto 19
4: StackMap locals:
StackMap stack:
aload 1
aload 2
aload 3
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.movzbq:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
5: goto 19
6: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.signExtend:Z
ifeq 9
7: aload 1
aload 2
aload 3
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.movswq:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
8: goto 19
9: StackMap locals:
StackMap stack:
aload 1
aload 2
aload 3
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.movzwq:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
10: goto 19
11: StackMap locals:
StackMap stack:
aload 0
getfield org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.signExtend:Z
ifeq 14
12: aload 1
aload 2
aload 3
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.movslq:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
13: goto 19
14: StackMap locals:
StackMap stack:
aload 1
aload 2
aload 3
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.movl:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
15: goto 19
16: StackMap locals:
StackMap stack:
aload 1
aload 2
aload 3
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.movq:(Ljdk/vm/ci/code/Register;Lorg/graalvm/compiler/asm/amd64/AMD64Address;)V
17: goto 19
18: StackMap locals:
StackMap stack:
new java.lang.IllegalStateException
dup
invokespecial java.lang.IllegalStateException.<init>:()V
athrow
19: StackMap locals:
StackMap stack:
return
end local 4 end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 20 0 this Lorg/graalvm/compiler/lir/amd64/AMD64ArrayEqualsOp;
0 20 1 asm Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
0 20 2 dst Ljdk/vm/ci/code/Register;
0 20 3 src Lorg/graalvm/compiler/asm/amd64/AMD64Address;
0 20 4 size I
MethodParameters:
Name Flags
asm
dst
src
size
private static void emitCmpBytes(org.graalvm.compiler.asm.amd64.AMD64MacroAssembler, jdk.vm.ci.code.Register, jdk.vm.ci.code.Register, int);
descriptor: (Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;I)V
flags: (0x000a) ACC_PRIVATE, ACC_STATIC
Code:
stack=3, locals=4, args_size=4
start local 0 start local 1 start local 2 start local 3 0: iload 3
bipush 8
if_icmpge 3
1: aload 0
aload 1
aload 2
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.cmpl:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;)V
2: goto 4
3: StackMap locals:
StackMap stack:
aload 0
aload 1
aload 2
invokevirtual org.graalvm.compiler.asm.amd64.AMD64MacroAssembler.cmpq:(Ljdk/vm/ci/code/Register;Ljdk/vm/ci/code/Register;)V
4: StackMap locals:
StackMap stack:
return
end local 3 end local 2 end local 1 end local 0 LocalVariableTable:
Start End Slot Name Signature
0 5 0 asm Lorg/graalvm/compiler/asm/amd64/AMD64MacroAssembler;
0 5 1 dst Ljdk/vm/ci/code/Register;
0 5 2 src Ljdk/vm/ci/code/Register;
0 5 3 size I
MethodParameters:
Name Flags
asm
dst
src
size
static int[] $SWITCH_TABLE$org$graalvm$compiler$asm$amd64$AMD64Address$Scale();
descriptor: ()[I
flags: (0x1008) ACC_STATIC, ACC_SYNTHETIC
Code:
stack=3, locals=1, args_size=0
0: getstatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.$SWITCH_TABLE$org$graalvm$compiler$asm$amd64$AMD64Address$Scale:[I
dup
ifnull 1
areturn
StackMap locals:
StackMap stack: int[]
1: pop
invokestatic org.graalvm.compiler.asm.amd64.AMD64Address$Scale.values:()[Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
arraylength
newarray 10
astore 0
2: aload 0
getstatic org.graalvm.compiler.asm.amd64.AMD64Address$Scale.Times1:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
invokevirtual org.graalvm.compiler.asm.amd64.AMD64Address$Scale.ordinal:()I
iconst_1
iastore
3: goto 5
StackMap locals: int[]
StackMap stack: java.lang.NoSuchFieldError
4: pop
StackMap locals:
StackMap stack:
5: aload 0
getstatic org.graalvm.compiler.asm.amd64.AMD64Address$Scale.Times2:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
invokevirtual org.graalvm.compiler.asm.amd64.AMD64Address$Scale.ordinal:()I
iconst_2
iastore
6: goto 8
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
7: pop
StackMap locals:
StackMap stack:
8: aload 0
getstatic org.graalvm.compiler.asm.amd64.AMD64Address$Scale.Times4:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
invokevirtual org.graalvm.compiler.asm.amd64.AMD64Address$Scale.ordinal:()I
iconst_3
iastore
9: goto 11
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
10: pop
StackMap locals:
StackMap stack:
11: aload 0
getstatic org.graalvm.compiler.asm.amd64.AMD64Address$Scale.Times8:Lorg/graalvm/compiler/asm/amd64/AMD64Address$Scale;
invokevirtual org.graalvm.compiler.asm.amd64.AMD64Address$Scale.ordinal:()I
iconst_4
iastore
12: goto 14
StackMap locals:
StackMap stack: java.lang.NoSuchFieldError
13: pop
StackMap locals:
StackMap stack:
14: aload 0
dup
putstatic org.graalvm.compiler.lir.amd64.AMD64ArrayEqualsOp.$SWITCH_TABLE$org$graalvm$compiler$asm$amd64$AMD64Address$Scale:[I
areturn
LocalVariableTable:
Start End Slot Name Signature
Exception table:
from to target type
2 3 4 Class java.lang.NoSuchFieldError
5 6 7 Class java.lang.NoSuchFieldError
8 9 10 Class java.lang.NoSuchFieldError
11 12 13 Class java.lang.NoSuchFieldError
}
SourceFile: "AMD64ArrayEqualsOp.java"
InnerClasses:
public final CPUFeature = jdk.vm.ci.amd64.AMD64$CPUFeature of jdk.vm.ci.amd64.AMD64
public final Scale = org.graalvm.compiler.asm.amd64.AMD64Address$Scale of org.graalvm.compiler.asm.amd64.AMD64Address
public final ConditionFlag = org.graalvm.compiler.asm.amd64.AMD64Assembler$ConditionFlag of org.graalvm.compiler.asm.amd64.AMD64Assembler
public SSEOp = org.graalvm.compiler.asm.amd64.AMD64Assembler$SSEOp of org.graalvm.compiler.asm.amd64.AMD64Assembler
public VexRMOp = org.graalvm.compiler.asm.amd64.AMD64Assembler$VexRMOp of org.graalvm.compiler.asm.amd64.AMD64Assembler
public OperandSize = org.graalvm.compiler.asm.amd64.AMD64BaseAssembler$OperandSize of org.graalvm.compiler.asm.amd64.AMD64BaseAssembler
public final AVXSize = org.graalvm.compiler.asm.amd64.AVXKind$AVXSize of org.graalvm.compiler.asm.amd64.AVXKind
public abstract Alive = org.graalvm.compiler.lir.LIRInstruction$Alive of org.graalvm.compiler.lir.LIRInstruction
public abstract Def = org.graalvm.compiler.lir.LIRInstruction$Def of org.graalvm.compiler.lir.LIRInstruction
public final OperandFlag = org.graalvm.compiler.lir.LIRInstruction$OperandFlag of org.graalvm.compiler.lir.LIRInstruction
public abstract Temp = org.graalvm.compiler.lir.LIRInstruction$Temp of org.graalvm.compiler.lir.LIRInstruction
RuntimeVisibleAnnotations:
org.graalvm.compiler.lir.Opcode(value = "ARRAY_EQUALS")