final enum class com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator extends java.lang.Enum implements java.util.Comparator
{
public static final enum com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator INSTANCE;
static final boolean BIG_ENDIAN;
static final sun.misc.Unsafe theUnsafe;
static final int BYTE_ARRAY_BASE_OFFSET;
private static final com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator[] $VALUES;
public static com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator[] values()
{
com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator[] v;
java.lang.Object v;
v = <com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator: com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator[] $VALUES>;
v = virtualinvoke v.<java.lang.Object: java.lang.Object clone()>();
return v;
}
public static com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator valueOf(java.lang.String)
{
java.lang.String v;
java.lang.Enum v;
v := @parameter: java.lang.String;
v = staticinvoke <java.lang.Enum: java.lang.Enum valueOf(java.lang.Class,java.lang.String)>(class "Lcom/google/common/primitives/UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator;", v);
return v;
}
private void <init>(java.lang.String, int)
{
int v;
com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator v;
java.lang.String v;
v := @this: com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator;
v := @parameter: java.lang.String;
v := @parameter: int;
specialinvoke v.<java.lang.Enum: void <init>(java.lang.String,int)>(v, v);
return;
}
private static sun.misc.Unsafe getUnsafe()
{
java.lang.Throwable v;
sun.misc.Unsafe v;
java.security.PrivilegedActionException v;
com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator$1 v;
java.lang.Object v;
java.lang.SecurityException v;
java.lang.RuntimeException v;
label:
v = staticinvoke <sun.misc.Unsafe: sun.misc.Unsafe getUnsafe()>();
label:
return v;
label:
v := @caughtexception;
label:
v = new com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator$1;
specialinvoke v.<com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator$1: void <init>()>();
v = staticinvoke <java.security.AccessController: java.lang.Object doPrivileged(java.security.PrivilegedExceptionAction)>(v);
label:
return v;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
v = virtualinvoke v.<java.security.PrivilegedActionException: java.lang.Throwable getCause()>();
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String,java.lang.Throwable)>("Could not initialize intrinsics", v);
throw v;
catch java.lang.SecurityException from label to label with label;
catch java.security.PrivilegedActionException from label to label with label;
}
public int compare(byte[], byte[])
{
byte[] v, v;
byte v, v, v;
boolean v;
com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator v;
sun.misc.Unsafe v, v;
long v, v, v, v, v, v, v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
v := @this: com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator;
v := @parameter: byte[];
v := @parameter: byte[];
v = lengthof v;
v = lengthof v;
v = staticinvoke <java.lang.Math: int min(int,int)>(v, v);
v = (int) -8;
v = v & v;
v = 0;
label:
if v >= v goto label;
v = <com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator: sun.misc.Unsafe theUnsafe>;
v = <com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator: int BYTE_ARRAY_BASE_OFFSET>;
v = v + v;
v = virtualinvoke v.<sun.misc.Unsafe: long getLong(java.lang.Object,long)>(v, v);
v = <com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator: sun.misc.Unsafe theUnsafe>;
v = <com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator: int BYTE_ARRAY_BASE_OFFSET>;
v = v + v;
v = virtualinvoke v.<sun.misc.Unsafe: long getLong(java.lang.Object,long)>(v, v);
v = v cmp v;
if v == 0 goto label;
v = <com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator: boolean BIG_ENDIAN>;
if v == 0 goto label;
v = staticinvoke <com.google.common.primitives.UnsignedLongs: int compare(long,long)>(v, v);
return v;
label:
v = v ^ v;
v = staticinvoke <java.lang.Long: int numberOfTrailingZeros(long)>(v);
v = (int) -8;
v = v & v;
v = v >>> v;
v = v & 255L;
v = v >>> v;
v = v & 255L;
v = v - v;
return v;
label:
v = v + 8;
goto label;
label:
if v >= v goto label;
v = v[v];
v = v[v];
v = staticinvoke <com.google.common.primitives.UnsignedBytes: int compare(byte,byte)>(v, v);
if v == 0 goto label;
return v;
label:
v = v + 1;
goto label;
label:
v = lengthof v;
v = lengthof v;
v = v - v;
return v;
}
public java.lang.String toString()
{
com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator v;
v := @this: com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator;
return "UnsignedBytes.lexicographicalComparator() (sun.misc.Unsafe version)";
}
private static com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator[] $values()
{
com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator v;
com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator[] v;
v = newarray (com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator)[1];
v = <com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator: com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator INSTANCE>;
v[0] = v;
return v;
}
static void <clinit>()
{
sun.misc.Unsafe v, v, v;
com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator[] v;
java.lang.Error v;
int v, v, v, v;
java.lang.String v, v;
boolean v, v;
com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator v;
java.nio.ByteOrder v, v;
v = new com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator;
specialinvoke v.<com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator: void <init>(java.lang.String,int)>("INSTANCE", 0);
<com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator: com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator INSTANCE> = v;
v = staticinvoke <com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator: com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator[] $values()>();
<com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator: com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator[] $VALUES> = v;
v = staticinvoke <java.nio.ByteOrder: java.nio.ByteOrder nativeOrder()>();
v = <java.nio.ByteOrder: java.nio.ByteOrder BIG_ENDIAN>;
v = virtualinvoke v.<java.lang.Object: boolean equals(java.lang.Object)>(v);
<com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator: boolean BIG_ENDIAN> = v;
v = staticinvoke <com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator: sun.misc.Unsafe getUnsafe()>();
<com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator: sun.misc.Unsafe theUnsafe> = v;
v = <com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator: sun.misc.Unsafe theUnsafe>;
v = virtualinvoke v.<sun.misc.Unsafe: int arrayBaseOffset(java.lang.Class)>(class "[B");
<com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator: int BYTE_ARRAY_BASE_OFFSET> = v;
v = "64";
v = staticinvoke <java.lang.System: java.lang.String getProperty(java.lang.String)>("sun.arch.data.model");
v = virtualinvoke v.<java.lang.String: boolean equals(java.lang.Object)>(v);
if v == 0 goto label;
v = <com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator: int BYTE_ARRAY_BASE_OFFSET>;
v = v % 8;
if v != 0 goto label;
v = <com.google.common.primitives.UnsignedBytes$LexicographicalComparatorHolder$UnsafeComparator: sun.misc.Unsafe theUnsafe>;
v = virtualinvoke v.<sun.misc.Unsafe: int arrayIndexScale(java.lang.Class)>(class "[B");
if v == 1 goto label;
label:
v = new java.lang.Error;
specialinvoke v.<java.lang.Error: void <init>()>();
throw v;
label:
return;
}
}