final class io.netty.buffer.SizeClasses extends java.lang.Object implements io.netty.buffer.SizeClassesMetric
{
static final int LOG2_QUANTUM;
private static final int LOG2_SIZE_CLASS_GROUP;
private static final int LOG2_MAX_LOOKUP_SIZE;
private static final int LOG2GROUP_IDX;
private static final int LOG2DELTA_IDX;
private static final int NDELTA_IDX;
private static final int PAGESIZE_IDX;
private static final int SUBPAGE_IDX;
private static final int LOG2_DELTA_LOOKUP_IDX;
private static final byte no;
private static final byte yes;
final int pageSize;
final int pageShifts;
final int chunkSize;
final int directMemoryCacheAlignment;
final int nSizes;
final int nSubpages;
final int nPSizes;
final int lookupMaxSize;
final int smallMaxSizeIdx;
private final int[] pageIdx2sizeTab;
private final int[] sizeIdx2sizeTab;
private final int[] size2idxTab;
static final boolean $assertionsDisabled;
void <init>(int, int, int, int)
{
short[][] v;
int[] v, v, v;
boolean v;
short[] v, v, v;
java.lang.AssertionError v;
short v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
io.netty.buffer.SizeClasses v;
v := @this: io.netty.buffer.SizeClasses;
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
specialinvoke v.<java.lang.Object: void <init>()>();
v = staticinvoke <io.netty.buffer.PoolThreadCache: int log2(int)>(v);
v = v - 4;
v = v - 2;
v = v + 1;
v = v << 2;
v = newmultiarray (short)[v][7];
v = (int) -1;
v = v;
v = 0;
v = 0;
v = 4;
v = 0;
label:
if v >= 4 goto label;
v = staticinvoke <io.netty.buffer.SizeClasses: short[] newSizeClass(int,int,int,int,int)>(v, 4, 4, v, v);
v[v] = v;
v = staticinvoke <io.netty.buffer.SizeClasses: int sizeOf(short[],int)>(v, v);
v = v + 1;
v = v + 1;
goto label;
label:
v = 6;
label:
if v >= v goto label;
v = 1;
label:
if v > 4 goto label;
if v >= v goto label;
v = staticinvoke <io.netty.buffer.SizeClasses: short[] newSizeClass(int,int,int,int,int)>(v, v, v, v, v);
v[v] = v;
v = staticinvoke <io.netty.buffer.SizeClasses: int sizeOf(short[],int)>(v, v);
v = v;
v = v;
v = v + 1;
v = v + 1;
goto label;
label:
v = v + 1;
v = v + 1;
goto label;
label:
v = <io.netty.buffer.SizeClasses: boolean $assertionsDisabled>;
if v != 0 goto label;
if v == v goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
v = 0;
v = 0;
v = 0;
v = 0;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = v[4];
if v != 1 goto label;
v = v + 1;
label:
v = v[5];
if v != 1 goto label;
v = v + 1;
v = v;
label:
v = v[6];
if v == 0 goto label;
v = staticinvoke <io.netty.buffer.SizeClasses: int sizeOf(short[],int)>(v, v);
label:
v = v + 1;
goto label;
label:
v.<io.netty.buffer.SizeClasses: int smallMaxSizeIdx> = v;
v.<io.netty.buffer.SizeClasses: int lookupMaxSize> = v;
v.<io.netty.buffer.SizeClasses: int nPSizes> = v;
v.<io.netty.buffer.SizeClasses: int nSubpages> = v;
v.<io.netty.buffer.SizeClasses: int nSizes> = v;
v.<io.netty.buffer.SizeClasses: int pageSize> = v;
v.<io.netty.buffer.SizeClasses: int pageShifts> = v;
v.<io.netty.buffer.SizeClasses: int chunkSize> = v;
v.<io.netty.buffer.SizeClasses: int directMemoryCacheAlignment> = v;
v = staticinvoke <io.netty.buffer.SizeClasses: int[] newIdx2SizeTab(short[][],int,int)>(v, v, v);
v.<io.netty.buffer.SizeClasses: int[] sizeIdx2sizeTab> = v;
v = staticinvoke <io.netty.buffer.SizeClasses: int[] newPageIdx2sizeTab(short[][],int,int,int)>(v, v, v, v);
v.<io.netty.buffer.SizeClasses: int[] pageIdx2sizeTab> = v;
v = staticinvoke <io.netty.buffer.SizeClasses: int[] newSize2idxTab(int,short[][])>(v, v);
v.<io.netty.buffer.SizeClasses: int[] size2idxTab> = v;
return;
}
private static short[] newSizeClass(int, int, int, int, int)
{
byte v, v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
boolean v, v;
short[] v;
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
if v < v goto label;
v = 1;
goto label;
label:
v = 1 << v;
v = staticinvoke <io.netty.buffer.SizeClasses: int calculateSize(int,int,int)>(v, v, v);
v = v / v;
v = v * v;
if v != v goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
label:
if v != 0 goto label;
v = 0;
goto label;
label:
v = staticinvoke <io.netty.buffer.PoolThreadCache: int log2(int)>(v);
label:
v = v;
v = 1 << v;
if v >= v goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
v = v + v;
if v != v goto label;
v = v + 1;
goto label;
label:
v = v;
label:
v = v;
if v != v goto label;
v = 1;
label:
v = v + 2;
if v >= v goto label;
v = 1;
goto label;
label:
v = 0;
label:
v = v;
if v < 12 goto label;
if v != 12 goto label;
if v != 0 goto label;
label:
v = v;
goto label;
label:
v = 0;
label:
v = newarray (short)[7];
v[0] = v;
v[1] = v;
v[2] = v;
v[3] = v;
v[4] = v;
v[5] = v;
v[6] = v;
return v;
}
private static int[] newIdx2SizeTab(short[][], int, int)
{
int[] v;
int v, v, v, v;
short[][] v;
short[] v;
v := @parameter: short[][];
v := @parameter: int;
v := @parameter: int;
v = newarray (int)[v];
v = 0;
label:
if v >= v goto label;
v = v[v];
v = staticinvoke <io.netty.buffer.SizeClasses: int sizeOf(short[],int)>(v, v);
v[v] = v;
v = v + 1;
goto label;
label:
return v;
}
private static int calculateSize(int, int, int)
{
int v, v, v, v, v, v;
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
v = 1 << v;
v = v << v;
v = v + v;
return v;
}
private static int sizeOf(short[], int)
{
short v, v, v;
int v, v, v;
short[] v;
v := @parameter: short[];
v := @parameter: int;
v = v[1];
v = v[2];
v = v[3];
v = staticinvoke <io.netty.buffer.SizeClasses: int calculateSize(int,int,int)>(v, v, v);
v = staticinvoke <io.netty.buffer.SizeClasses: int alignSizeIfNeeded(int,int)>(v, v);
return v;
}
private static int[] newPageIdx2sizeTab(short[][], int, int, int)
{
short[][] v;
short v;
int[] v;
int v, v, v, v, v, v, v;
short[] v;
v := @parameter: short[][];
v := @parameter: int;
v := @parameter: int;
v := @parameter: int;
v = newarray (int)[v];
v = 0;
v = 0;
label:
if v >= v goto label;
v = v[v];
v = v[4];
if v != 1 goto label;
v = v;
v = v + 1;
v = staticinvoke <io.netty.buffer.SizeClasses: int sizeOf(short[],int)>(v, v);
v[v] = v;
label:
v = v + 1;
goto label;
label:
return v;
}
private static int[] newSize2idxTab(int, short[][])
{
short[][] v;
short v;
int[] v;
int v, v, v, v, v, v, v, v, v, v;
short[] v;
v := @parameter: int;
v := @parameter: short[][];
v = v >> 4;
v = newarray (int)[v];
v = 0;
v = 0;
v = 0;
label:
if v > v goto label;
v = v[v];
v = v[2];
v = v - 4;
v = 1 << v;
label:
if v > v goto label;
v = v;
v = v - 1;
if v <= 0 goto label;
v = v;
v = v + 1;
v[v] = v;
v = v + 1;
v = v << 4;
goto label;
label:
v = v + 1;
goto label;
label:
return v;
}
public int sizeIdx2size(int)
{
int[] v;
int v, v;
io.netty.buffer.SizeClasses v;
v := @this: io.netty.buffer.SizeClasses;
v := @parameter: int;
v = v.<io.netty.buffer.SizeClasses: int[] sizeIdx2sizeTab>;
v = v[v];
return v;
}
public int sizeIdx2sizeCompute(int)
{
io.netty.buffer.SizeClasses v;
int v, v, v, v, v, v, v, v, v, v, v;
v := @this: io.netty.buffer.SizeClasses;
v := @parameter: int;
v = v >> 2;
v = v & 3;
if v != 0 goto label;
v = 0;
goto label;
label:
v = 32 << v;
label:
v = v;
if v != 0 goto label;
v = 1;
goto label;
label:
v = v;
label:
v = v + 4;
v = v - 1;
v = v + 1;
v = v << v;
v = v + v;
return v;
}
public long pageIdx2size(int)
{
int[] v;
int v, v;
io.netty.buffer.SizeClasses v;
v := @this: io.netty.buffer.SizeClasses;
v := @parameter: int;
v = v.<io.netty.buffer.SizeClasses: int[] pageIdx2sizeTab>;
v = v[v];
return v;
}
public long pageIdx2sizeCompute(int)
{
long v, v, v, v;
int v, v, v, v, v, v, v, v, v, v, v, v;
io.netty.buffer.SizeClasses v;
v := @this: io.netty.buffer.SizeClasses;
v := @parameter: int;
v = v >> 2;
v = v & 3;
if v != 0 goto label;
v = 0L;
goto label;
label:
v = v.<io.netty.buffer.SizeClasses: int pageShifts>;
v = v + 2;
v = v - 1;
v = 1L << v;
v = v << v;
label:
v = v;
if v != 0 goto label;
v = 1;
goto label;
label:
v = v;
label:
v = v.<io.netty.buffer.SizeClasses: int pageShifts>;
v = v + v;
v = v - 1;
v = v + 1;
v = v << v;
v = v + v;
return v;
}
public int size2SizeIdx(int)
{
int[] v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
io.netty.buffer.SizeClasses v;
v := @this: io.netty.buffer.SizeClasses;
v := @parameter: int;
if v != 0 goto label;
return 0;
label:
v = v.<io.netty.buffer.SizeClasses: int chunkSize>;
if v <= v goto label;
v = v.<io.netty.buffer.SizeClasses: int nSizes>;
return v;
label:
v = v.<io.netty.buffer.SizeClasses: int directMemoryCacheAlignment>;
v = staticinvoke <io.netty.buffer.SizeClasses: int alignSizeIfNeeded(int,int)>(v, v);
v = v.<io.netty.buffer.SizeClasses: int lookupMaxSize>;
if v > v goto label;
v = v.<io.netty.buffer.SizeClasses: int[] size2idxTab>;
v = v - 1;
v = v >> 4;
v = v[v];
return v;
label:
v = v << 1;
v = v - 1;
v = staticinvoke <io.netty.buffer.PoolThreadCache: int log2(int)>(v);
if v >= 7 goto label;
v = 0;
goto label;
label:
v = v - 6;
label:
v = v << 2;
if v >= 7 goto label;
v = 4;
goto label;
label:
v = v - 2;
v = v - 1;
label:
v = v - 1;
v = v >> v;
v = v & 3;
v = v + v;
return v;
}
public int pages2pageIdx(int)
{
int v, v;
io.netty.buffer.SizeClasses v;
v := @this: io.netty.buffer.SizeClasses;
v := @parameter: int;
v = specialinvoke v.<io.netty.buffer.SizeClasses: int pages2pageIdxCompute(int,boolean)>(v, 0);
return v;
}
public int pages2pageIdxFloor(int)
{
int v, v;
io.netty.buffer.SizeClasses v;
v := @this: io.netty.buffer.SizeClasses;
v := @parameter: int;
v = specialinvoke v.<io.netty.buffer.SizeClasses: int pages2pageIdxCompute(int,boolean)>(v, 1);
return v;
}
private int pages2pageIdxCompute(int, boolean)
{
int[] v;
int v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
boolean v;
io.netty.buffer.SizeClasses v;
v := @this: io.netty.buffer.SizeClasses;
v := @parameter: int;
v := @parameter: boolean;
v = v.<io.netty.buffer.SizeClasses: int pageShifts>;
v = v << v;
v = v.<io.netty.buffer.SizeClasses: int chunkSize>;
if v <= v goto label;
v = v.<io.netty.buffer.SizeClasses: int nPSizes>;
return v;
label:
v = v << 1;
v = v - 1;
v = staticinvoke <io.netty.buffer.PoolThreadCache: int log2(int)>(v);
v = v.<io.netty.buffer.SizeClasses: int pageShifts>;
v = 2 + v;
if v >= v goto label;
v = 0;
goto label;
label:
v = v.<io.netty.buffer.SizeClasses: int pageShifts>;
v = 2 + v;
v = v - v;
label:
v = v << 2;
v = v.<io.netty.buffer.SizeClasses: int pageShifts>;
v = 2 + v;
v = v + 1;
if v >= v goto label;
v = v.<io.netty.buffer.SizeClasses: int pageShifts>;
goto label;
label:
v = v - 2;
v = v - 1;
label:
v = v - 1;
v = v >> v;
v = v & 3;
v = v + v;
if v == 0 goto label;
v = v.<io.netty.buffer.SizeClasses: int[] pageIdx2sizeTab>;
v = v[v];
v = v.<io.netty.buffer.SizeClasses: int pageShifts>;
v = v << v;
if v <= v goto label;
v = v - 1;
label:
return v;
}
private static int alignSizeIfNeeded(int, int)
{
int v, v, v, v, v, v;
v := @parameter: int;
v := @parameter: int;
if v > 0 goto label;
return v;
label:
v = v - 1;
v = v & v;
if v != 0 goto label;
v = v;
goto label;
label:
v = v + v;
v = v - v;
label:
return v;
}
public int normalizeSize(int)
{
java.lang.AssertionError v;
int[] v, v, v;
int v, v, v, v, v, v, v, v, v, v, v;
boolean v;
io.netty.buffer.SizeClasses v;
v := @this: io.netty.buffer.SizeClasses;
v := @parameter: int;
if v != 0 goto label;
v = v.<io.netty.buffer.SizeClasses: int[] sizeIdx2sizeTab>;
v = v[0];
return v;
label:
v = v.<io.netty.buffer.SizeClasses: int directMemoryCacheAlignment>;
v = staticinvoke <io.netty.buffer.SizeClasses: int alignSizeIfNeeded(int,int)>(v, v);
v = v.<io.netty.buffer.SizeClasses: int lookupMaxSize>;
if v > v goto label;
v = v.<io.netty.buffer.SizeClasses: int[] sizeIdx2sizeTab>;
v = v.<io.netty.buffer.SizeClasses: int[] size2idxTab>;
v = v - 1;
v = v >> 4;
v = v[v];
v = v[v];
v = <io.netty.buffer.SizeClasses: boolean $assertionsDisabled>;
if v != 0 goto label;
v = staticinvoke <io.netty.buffer.SizeClasses: int normalizeSizeCompute(int)>(v);
if v == v goto label;
v = new java.lang.AssertionError;
specialinvoke v.<java.lang.AssertionError: void <init>()>();
throw v;
label:
return v;
label:
v = staticinvoke <io.netty.buffer.SizeClasses: int normalizeSizeCompute(int)>(v);
return v;
}
private static int normalizeSizeCompute(int)
{
int v, v, v, v, v, v, v, v, v, v, v, v;
v := @parameter: int;
v = v << 1;
v = v - 1;
v = staticinvoke <io.netty.buffer.PoolThreadCache: int log2(int)>(v);
if v >= 7 goto label;
v = 4;
goto label;
label:
v = v - 2;
v = v - 1;
label:
v = 1 << v;
v = v - 1;
v = v + v;
v = (int) -1;
v = v ^ v;
v = v & v;
return v;
}
static void <clinit>()
{
java.lang.Class v;
boolean v, v;
v = class "Lio/netty/buffer/SizeClasses;";
v = virtualinvoke v.<java.lang.Class: boolean desiredAssertionStatus()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
<io.netty.buffer.SizeClasses: boolean $assertionsDisabled> = v;
return;
}
}