public final class sun.java2d.marlin.MarlinCache implements sun.java2d.marlin.MarlinConst
  minor version: 0
  major version: 59
  flags: flags: (0x0031) ACC_PUBLIC, ACC_FINAL, ACC_SUPER
  this_class: sun.java2d.marlin.MarlinCache
  super_class: java.lang.Object
{
  static final boolean FORCE_RLE;
    descriptor: Z
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final boolean FORCE_NO_RLE;
    descriptor: Z
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final int RLE_MIN_WIDTH;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final int RLE_MAX_WIDTH;
    descriptor: I
    flags: (0x0018) ACC_STATIC, ACC_FINAL
    ConstantValue: 8388608

  static final long INITIAL_CHUNK_ARRAY;
    descriptor: J
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final byte[] ALPHA_MAP;
    descriptor: [B
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  static final sun.java2d.marlin.OffHeapArray ALPHA_MAP_UNSAFE;
    descriptor: Lsun/java2d/marlin/OffHeapArray;
    flags: (0x0018) ACC_STATIC, ACC_FINAL

  int bboxX0;
    descriptor: I
    flags: (0x0000) 

  int bboxY0;
    descriptor: I
    flags: (0x0000) 

  int bboxX1;
    descriptor: I
    flags: (0x0000) 

  int bboxY1;
    descriptor: I
    flags: (0x0000) 

  final long[] rowAAChunkIndex;
    descriptor: [J
    flags: (0x0010) ACC_FINAL

  final int[] rowAAx0;
    descriptor: [I
    flags: (0x0010) ACC_FINAL

  final int[] rowAAx1;
    descriptor: [I
    flags: (0x0010) ACC_FINAL

  final int[] rowAAEnc;
    descriptor: [I
    flags: (0x0010) ACC_FINAL

  final long[] rowAALen;
    descriptor: [J
    flags: (0x0010) ACC_FINAL

  final long[] rowAAPos;
    descriptor: [J
    flags: (0x0010) ACC_FINAL

  final sun.java2d.marlin.OffHeapArray rowAAChunk;
    descriptor: Lsun/java2d/marlin/OffHeapArray;
    flags: (0x0010) ACC_FINAL

  long rowAAChunkPos;
    descriptor: J
    flags: (0x0000) 

  int[] touchedTile;
    descriptor: [I
    flags: (0x0000) 

  final sun.java2d.marlin.RendererStats rdrStats;
    descriptor: Lsun/java2d/marlin/RendererStats;
    flags: (0x0010) ACC_FINAL

  private final sun.java2d.marlin.IntArrayCache$Reference touchedTile_ref;
    descriptor: Lsun/java2d/marlin/IntArrayCache$Reference;
    flags: (0x0012) ACC_PRIVATE, ACC_FINAL

  int tileMin;
    descriptor: I
    flags: (0x0000) 

  int tileMax;
    descriptor: I
    flags: (0x0000) 

  boolean useRLE;
    descriptor: Z
    flags: (0x0000) 

  static void <clinit>();
    descriptor: ()V
    flags: (0x0008) ACC_STATIC
    Code:
      stack=5, locals=5, args_size=0
         0: .line 37
            invokestatic sun.java2d.marlin.MarlinProperties.isForceRLE:()Z
            putstatic sun.java2d.marlin.MarlinCache.FORCE_RLE:Z
         1: .line 38
            invokestatic sun.java2d.marlin.MarlinProperties.isForceNoRLE:()Z
            putstatic sun.java2d.marlin.MarlinCache.FORCE_NO_RLE:Z
         2: .line 41
            getstatic sun.java2d.marlin.MarlinCache.BLOCK_SIZE:I
            invokestatic sun.java2d.marlin.MarlinProperties.getRLEMinWidth:()I
            invokestatic java.lang.Math.max:(II)I
         3: .line 40
            putstatic sun.java2d.marlin.MarlinCache.RLE_MIN_WIDTH:I
         4: .line 48
            getstatic sun.java2d.marlin.MarlinCache.TILE_H:I
            getstatic sun.java2d.marlin.MarlinCache.INITIAL_PIXEL_DIM:I
            imul
            i2l
            putstatic sun.java2d.marlin.MarlinCache.INITIAL_CHUNK_ARRAY:J
         5: .line 58
            getstatic sun.java2d.marlin.MarlinCache.MAX_AA_ALPHA:I
            invokestatic sun.java2d.marlin.MarlinCache.buildAlphaMap:(I)[B
            astore 0 /* _ALPHA_MAP */
        start local 0 // byte[] _ALPHA_MAP
         6: .line 60
            new sun.java2d.marlin.OffHeapArray
            dup
            aload 0 /* _ALPHA_MAP */
            aload 0 /* _ALPHA_MAP */
            arraylength
            i2l
            invokespecial sun.java2d.marlin.OffHeapArray.<init>:(Ljava/lang/Object;J)V
            putstatic sun.java2d.marlin.MarlinCache.ALPHA_MAP_UNSAFE:Lsun/java2d/marlin/OffHeapArray;
         7: .line 61
            aload 0 /* _ALPHA_MAP */
            putstatic sun.java2d.marlin.MarlinCache.ALPHA_MAP:[B
         8: .line 63
            getstatic sun.java2d.marlin.OffHeapArray.UNSAFE:Ljdk/internal/misc/Unsafe;
            astore 1 /* _unsafe */
        start local 1 // jdk.internal.misc.Unsafe _unsafe
         9: .line 64
            getstatic sun.java2d.marlin.MarlinCache.ALPHA_MAP_UNSAFE:Lsun/java2d/marlin/OffHeapArray;
            getfield sun.java2d.marlin.OffHeapArray.address:J
            lstore 2 /* addr */
        start local 2 // long addr
        10: .line 66
            iconst_0
            istore 4 /* i */
        start local 4 // int i
        11: goto 14
        12: .line 67
      StackMap locals: byte[] jdk.internal.misc.Unsafe long int
      StackMap stack:
            aload 1 /* _unsafe */
            lload 2 /* addr */
            iload 4 /* i */
            i2l
            ladd
            aload 0 /* _ALPHA_MAP */
            iload 4 /* i */
            baload
            invokevirtual jdk.internal.misc.Unsafe.putByte:(JB)V
        13: .line 66
            iinc 4 /* i */ 1
      StackMap locals:
      StackMap stack:
        14: iload 4 /* i */
            aload 0 /* _ALPHA_MAP */
            arraylength
            if_icmplt 12
        end local 4 // int i
        end local 2 // long addr
        end local 1 // jdk.internal.misc.Unsafe _unsafe
        end local 0 // byte[] _ALPHA_MAP
        15: .line 69
            return
      LocalVariableTable:
        Start  End  Slot        Name  Signature
            6   15     0  _ALPHA_MAP  [B
            9   15     1     _unsafe  Ljdk/internal/misc/Unsafe;
           10   15     2        addr  J
           11   15     4           i  I

  void <init>(sun.java2d.marlin.IRendererContext);
    descriptor: (Lsun/java2d/marlin/IRendererContext;)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.java2d.marlin.MarlinCache this
        start local 1 // sun.java2d.marlin.IRendererContext rdrCtx
         0: .line 110
            aload 0 /* this */
            invokespecial java.lang.Object.<init>:()V
         1: .line 75
            aload 0 /* this */
            getstatic sun.java2d.marlin.MarlinCache.TILE_H:I
            newarray 11
            putfield sun.java2d.marlin.MarlinCache.rowAAChunkIndex:[J
         2: .line 77
            aload 0 /* this */
            getstatic sun.java2d.marlin.MarlinCache.TILE_H:I
            newarray 10
            putfield sun.java2d.marlin.MarlinCache.rowAAx0:[I
         3: .line 79
            aload 0 /* this */
            getstatic sun.java2d.marlin.MarlinCache.TILE_H:I
            newarray 10
            putfield sun.java2d.marlin.MarlinCache.rowAAx1:[I
         4: .line 81
            aload 0 /* this */
            getstatic sun.java2d.marlin.MarlinCache.TILE_H:I
            newarray 10
            putfield sun.java2d.marlin.MarlinCache.rowAAEnc:[I
         5: .line 83
            aload 0 /* this */
            getstatic sun.java2d.marlin.MarlinCache.TILE_H:I
            newarray 11
            putfield sun.java2d.marlin.MarlinCache.rowAALen:[J
         6: .line 85
            aload 0 /* this */
            getstatic sun.java2d.marlin.MarlinCache.TILE_H:I
            newarray 11
            putfield sun.java2d.marlin.MarlinCache.rowAAPos:[J
         7: .line 108
            aload 0 /* this */
            iconst_0
            putfield sun.java2d.marlin.MarlinCache.useRLE:Z
         8: .line 111
            aload 0 /* this */
            aload 1 /* rdrCtx */
            invokeinterface sun.java2d.marlin.IRendererContext.stats:()Lsun/java2d/marlin/RendererStats;
            putfield sun.java2d.marlin.MarlinCache.rdrStats:Lsun/java2d/marlin/RendererStats;
         9: .line 113
            aload 0 /* this */
            aload 1 /* rdrCtx */
            getstatic sun.java2d.marlin.MarlinCache.INITIAL_CHUNK_ARRAY:J
            invokeinterface sun.java2d.marlin.IRendererContext.newOffHeapArray:(J)Lsun/java2d/marlin/OffHeapArray;
            putfield sun.java2d.marlin.MarlinCache.rowAAChunk:Lsun/java2d/marlin/OffHeapArray;
        10: .line 115
            aload 0 /* this */
            aload 1 /* rdrCtx */
            sipush 256
            invokeinterface sun.java2d.marlin.IRendererContext.newCleanIntArrayRef:(I)Lsun/java2d/marlin/IntArrayCache$Reference;
            putfield sun.java2d.marlin.MarlinCache.touchedTile_ref:Lsun/java2d/marlin/IntArrayCache$Reference;
        11: .line 116
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.touchedTile_ref:Lsun/java2d/marlin/IntArrayCache$Reference;
            getfield sun.java2d.marlin.IntArrayCache$Reference.initial:[I
            putfield sun.java2d.marlin.MarlinCache.touchedTile:[I
        12: .line 119
            aload 0 /* this */
            ldc 2147483647
            putfield sun.java2d.marlin.MarlinCache.tileMin:I
        13: .line 120
            aload 0 /* this */
            ldc -2147483648
            putfield sun.java2d.marlin.MarlinCache.tileMax:I
        14: .line 121
            return
        end local 1 // sun.java2d.marlin.IRendererContext rdrCtx
        end local 0 // sun.java2d.marlin.MarlinCache this
      LocalVariableTable:
        Start  End  Slot    Name  Signature
            0   15     0    this  Lsun/java2d/marlin/MarlinCache;
            0   15     1  rdrCtx  Lsun/java2d/marlin/IRendererContext;
    MethodParameters:
        Name  Flags
      rdrCtx  final

  void init(int, int, int, int);
    descriptor: (IIII)V
    flags: (0x0000) 
    Code:
      stack=3, locals=7, args_size=5
        start local 0 // sun.java2d.marlin.MarlinCache this
        start local 1 // int minx
        start local 2 // int miny
        start local 3 // int maxx
        start local 4 // int maxy
         0: .line 126
            aload 0 /* this */
            iload 1 /* minx */
            putfield sun.java2d.marlin.MarlinCache.bboxX0:I
         1: .line 127
            aload 0 /* this */
            iload 2 /* miny */
            putfield sun.java2d.marlin.MarlinCache.bboxY0:I
         2: .line 128
            aload 0 /* this */
            iload 3 /* maxx */
            putfield sun.java2d.marlin.MarlinCache.bboxX1:I
         3: .line 129
            aload 0 /* this */
            iload 4 /* maxy */
            putfield sun.java2d.marlin.MarlinCache.bboxY1:I
         4: .line 131
            iload 3 /* maxx */
            iload 1 /* minx */
            isub
            istore 5 /* width */
        start local 5 // int width
         5: .line 133
            getstatic sun.java2d.marlin.MarlinCache.FORCE_NO_RLE:Z
            ifeq 8
         6: .line 134
            aload 0 /* this */
            iconst_0
            putfield sun.java2d.marlin.MarlinCache.useRLE:Z
         7: .line 135
            goto 14
      StackMap locals: int
      StackMap stack:
         8: getstatic sun.java2d.marlin.MarlinCache.FORCE_RLE:Z
            ifeq 11
         9: .line 136
            aload 0 /* this */
            iconst_1
            putfield sun.java2d.marlin.MarlinCache.useRLE:Z
        10: .line 137
            goto 14
        11: .line 142
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 5 /* width */
            getstatic sun.java2d.marlin.MarlinCache.RLE_MIN_WIDTH:I
            if_icmple 12
            iload 5 /* width */
            ldc 8388608
            if_icmpge 12
            iconst_1
            goto 13
      StackMap locals:
      StackMap stack: sun.java2d.marlin.MarlinCache
        12: iconst_0
      StackMap locals: sun.java2d.marlin.MarlinCache int int int int int
      StackMap stack: sun.java2d.marlin.MarlinCache int
        13: putfield sun.java2d.marlin.MarlinCache.useRLE:Z
        14: .line 146
      StackMap locals:
      StackMap stack:
            iload 5 /* width */
            getstatic sun.java2d.marlin.MarlinCache.TILE_W:I
            iadd
            getstatic sun.java2d.marlin.MarlinCache.TILE_W_LG:I
            ishr
            istore 6 /* nxTiles */
        start local 6 // int nxTiles
        15: .line 148
            iload 6 /* nxTiles */
            sipush 256
            if_icmple 19
        16: .line 149
            getstatic sun.java2d.marlin.MarlinCache.DO_STATS:Z
            ifeq 18
        17: .line 150
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.rdrStats:Lsun/java2d/marlin/RendererStats;
            getfield sun.java2d.marlin.RendererStats.stat_array_marlincache_touchedTile:Lsun/java2d/marlin/stats/StatLong;
            iload 6 /* nxTiles */
            invokevirtual sun.java2d.marlin.stats.StatLong.add:(I)V
        18: .line 152
      StackMap locals: int
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.touchedTile_ref:Lsun/java2d/marlin/IntArrayCache$Reference;
            iload 6 /* nxTiles */
            invokevirtual sun.java2d.marlin.IntArrayCache$Reference.getArray:(I)[I
            putfield sun.java2d.marlin.MarlinCache.touchedTile:[I
        19: .line 154
      StackMap locals:
      StackMap stack:
            return
        end local 6 // int nxTiles
        end local 5 // int width
        end local 4 // int maxy
        end local 3 // int maxx
        end local 2 // int miny
        end local 1 // int minx
        end local 0 // sun.java2d.marlin.MarlinCache this
      LocalVariableTable:
        Start  End  Slot     Name  Signature
            0   20     0     this  Lsun/java2d/marlin/MarlinCache;
            0   20     1     minx  I
            0   20     2     miny  I
            0   20     3     maxx  I
            0   20     4     maxy  I
            5   20     5    width  I
           15   20     6  nxTiles  I
    MethodParameters:
      Name  Flags
      minx  
      miny  
      maxx  
      maxy  

  void dispose();
    descriptor: ()V
    flags: (0x0000) 
    Code:
      stack=5, locals=1, args_size=1
        start local 0 // sun.java2d.marlin.MarlinCache this
         0: .line 162
            aload 0 /* this */
            iconst_0
            invokevirtual sun.java2d.marlin.MarlinCache.resetTileLine:(I)V
         1: .line 164
            getstatic sun.java2d.marlin.MarlinCache.DO_STATS:Z
            ifeq 3
         2: .line 165
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.rdrStats:Lsun/java2d/marlin/RendererStats;
            dup
            getfield sun.java2d.marlin.RendererStats.totalOffHeap:J
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.rowAAChunk:Lsun/java2d/marlin/OffHeapArray;
            getfield sun.java2d.marlin.OffHeapArray.length:J
            ladd
            putfield sun.java2d.marlin.RendererStats.totalOffHeap:J
         3: .line 169
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.touchedTile_ref:Lsun/java2d/marlin/IntArrayCache$Reference;
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.touchedTile:[I
            iconst_0
            iconst_0
            invokevirtual sun.java2d.marlin.IntArrayCache$Reference.putArray:([III)[I
            putfield sun.java2d.marlin.MarlinCache.touchedTile:[I
         4: .line 172
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.rowAAChunk:Lsun/java2d/marlin/OffHeapArray;
            getfield sun.java2d.marlin.OffHeapArray.length:J
            getstatic sun.java2d.marlin.MarlinCache.INITIAL_CHUNK_ARRAY:J
            lcmp
            ifeq 6
         5: .line 174
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.rowAAChunk:Lsun/java2d/marlin/OffHeapArray;
            getstatic sun.java2d.marlin.MarlinCache.INITIAL_CHUNK_ARRAY:J
            invokevirtual sun.java2d.marlin.OffHeapArray.resize:(J)V
         6: .line 180
      StackMap locals:
      StackMap stack:
            return
        end local 0 // sun.java2d.marlin.MarlinCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    7     0  this  Lsun/java2d/marlin/MarlinCache;

  void resetTileLine(int);
    descriptor: (I)V
    flags: (0x0000) 
    Code:
      stack=4, locals=2, args_size=2
        start local 0 // sun.java2d.marlin.MarlinCache this
        start local 1 // int pminY
         0: .line 184
            aload 0 /* this */
            iload 1 /* pminY */
            putfield sun.java2d.marlin.MarlinCache.bboxY0:I
         1: .line 187
            getstatic sun.java2d.marlin.MarlinCache.DO_STATS:Z
            ifeq 3
         2: .line 188
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.rdrStats:Lsun/java2d/marlin/RendererStats;
            getfield sun.java2d.marlin.RendererStats.stat_cache_rowAAChunk:Lsun/java2d/marlin/stats/StatLong;
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.rowAAChunkPos:J
            invokevirtual sun.java2d.marlin.stats.StatLong.add:(J)V
         3: .line 190
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            lconst_0
            putfield sun.java2d.marlin.MarlinCache.rowAAChunkPos:J
         4: .line 193
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.tileMin:I
            ldc 2147483647
            if_icmpeq 13
         5: .line 194
            getstatic sun.java2d.marlin.MarlinCache.DO_STATS:Z
            ifeq 7
         6: .line 195
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.rdrStats:Lsun/java2d/marlin/RendererStats;
            getfield sun.java2d.marlin.RendererStats.stat_cache_tiles:Lsun/java2d/marlin/stats/StatLong;
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.tileMax:I
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.tileMin:I
            isub
            invokevirtual sun.java2d.marlin.stats.StatLong.add:(I)V
         7: .line 198
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.tileMax:I
            iconst_1
            if_icmpne 10
         8: .line 199
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.touchedTile:[I
            iconst_0
            iconst_0
            iastore
         9: .line 200
            goto 11
        10: .line 201
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.touchedTile:[I
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.tileMin:I
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.tileMax:I
            iconst_0
            invokestatic sun.java2d.marlin.IntArrayCache.fill:([IIII)V
        11: .line 204
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            ldc 2147483647
            putfield sun.java2d.marlin.MarlinCache.tileMin:I
        12: .line 205
            aload 0 /* this */
            ldc -2147483648
            putfield sun.java2d.marlin.MarlinCache.tileMax:I
        13: .line 212
      StackMap locals:
      StackMap stack:
            return
        end local 1 // int pminY
        end local 0 // sun.java2d.marlin.MarlinCache this
      LocalVariableTable:
        Start  End  Slot   Name  Signature
            0   14     0   this  Lsun/java2d/marlin/MarlinCache;
            0   14     1  pminY  I
    MethodParameters:
       Name  Flags
      pminY  final

  void clearAARow(int);
    descriptor: (I)V
    flags: (0x0000) 
    Code:
      stack=3, locals=3, args_size=2
        start local 0 // sun.java2d.marlin.MarlinCache this
        start local 1 // int y
         0: .line 216
            iload 1 /* y */
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.bboxY0:I
            isub
            istore 2 /* row */
        start local 2 // int row
         1: .line 219
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.rowAAx0:[I
            iload 2 /* row */
            iconst_0
            iastore
         2: .line 220
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.rowAAx1:[I
            iload 2 /* row */
            iconst_0
            iastore
         3: .line 221
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.rowAAEnc:[I
            iload 2 /* row */
            iconst_0
            iastore
         4: .line 225
            return
        end local 2 // int row
        end local 1 // int y
        end local 0 // sun.java2d.marlin.MarlinCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/java2d/marlin/MarlinCache;
            0    5     1     y  I
            1    5     2   row  I
    MethodParameters:
      Name  Flags
      y     final

  void copyAARowNoRLE(int[], int, int, int);
    descriptor: ([IIII)V
    flags: (0x0000) 
    Code:
      stack=8, locals=23, args_size=5
        start local 0 // sun.java2d.marlin.MarlinCache this
        start local 1 // int[] alphaRow
        start local 2 // int y
        start local 3 // int px0
        start local 4 // int px1
         0: .line 238
            iload 4 /* px1 */
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.bboxX1:I
            invokestatic sun.java2d.marlin.FloatMath.min:(II)I
            istore 5 /* px_bbox1 */
        start local 5 // int px_bbox1
         1: .line 240
            getstatic sun.java2d.marlin.MarlinCache.DO_LOG_BOUNDS:Z
            ifeq 5
         2: .line 241
            new java.lang.StringBuilder
            dup
            ldc "row = ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 3 /* px0 */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " ... "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 5 /* px_bbox1 */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         3: .line 242
            ldc " ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 4 /* px1 */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ") [ for y="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 2 /* y */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         4: .line 241
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic sun.java2d.marlin.MarlinUtils.logInfo:(Ljava/lang/String;)V
         5: .line 245
      StackMap locals: int
      StackMap stack:
            iload 2 /* y */
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.bboxY0:I
            isub
            istore 6 /* row */
        start local 6 // int row
         6: .line 248
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.rowAAx0:[I
            iload 6 /* row */
            iload 3 /* px0 */
            iastore
         7: .line 249
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.rowAAx1:[I
            iload 6 /* row */
            iload 5 /* px_bbox1 */
            iastore
         8: .line 250
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.rowAAEnc:[I
            iload 6 /* row */
            iconst_0
            iastore
         9: .line 253
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.rowAAChunkPos:J
            lstore 7 /* pos */
        start local 7 // long pos
        10: .line 255
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.rowAAChunkIndex:[J
            iload 6 /* row */
            lload 7 /* pos */
            lastore
        11: .line 260
            lload 7 /* pos */
            iload 5 /* px_bbox1 */
            iload 3 /* px0 */
            isub
            iconst_3
            iadd
            bipush -4
            iand
            i2l
            ladd
            lstore 9 /* needSize */
        start local 9 // long needSize
        12: .line 263
            aload 0 /* this */
            lload 9 /* needSize */
            putfield sun.java2d.marlin.MarlinCache.rowAAChunkPos:J
        13: .line 266
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.rowAAChunk:Lsun/java2d/marlin/OffHeapArray;
            astore 11 /* _rowAAChunk */
        start local 11 // sun.java2d.marlin.OffHeapArray _rowAAChunk
        14: .line 268
            aload 11 /* _rowAAChunk */
            getfield sun.java2d.marlin.OffHeapArray.length:J
            lload 9 /* needSize */
            lcmp
            ifge 16
        15: .line 269
            aload 0 /* this */
            lload 9 /* needSize */
            invokevirtual sun.java2d.marlin.MarlinCache.expandRowAAChunk:(J)V
        16: .line 271
      StackMap locals: sun.java2d.marlin.MarlinCache int[] int int int int int long long sun.java2d.marlin.OffHeapArray
      StackMap stack:
            getstatic sun.java2d.marlin.MarlinCache.DO_STATS:Z
            ifeq 18
        17: .line 272
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.rdrStats:Lsun/java2d/marlin/RendererStats;
            getfield sun.java2d.marlin.RendererStats.stat_cache_rowAA:Lsun/java2d/marlin/stats/StatLong;
            iload 5 /* px_bbox1 */
            iload 3 /* px0 */
            isub
            invokevirtual sun.java2d.marlin.stats.StatLong.add:(I)V
        18: .line 276
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.touchedTile:[I
            astore 12 /* _touchedTile */
        start local 12 // int[] _touchedTile
        19: .line 277
            getstatic sun.java2d.marlin.MarlinCache.TILE_W_LG:I
            istore 13 /* _TILE_SIZE_LG */
        start local 13 // int _TILE_SIZE_LG
        20: .line 279
            iload 3 /* px0 */
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.bboxX0:I
            isub
            istore 14 /* from */
        start local 14 // int from
        21: .line 280
            iload 5 /* px_bbox1 */
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.bboxX0:I
            isub
            istore 15 /* to */
        start local 15 // int to
        22: .line 282
            getstatic sun.java2d.marlin.OffHeapArray.UNSAFE:Ljdk/internal/misc/Unsafe;
            astore 16 /* _unsafe */
        start local 16 // jdk.internal.misc.Unsafe _unsafe
        23: .line 284
            getstatic sun.java2d.marlin.MarlinCache.ALPHA_MAP_UNSAFE:Lsun/java2d/marlin/OffHeapArray;
            getfield sun.java2d.marlin.OffHeapArray.address:J
            lstore 17 /* addr_alpha */
        start local 17 // long addr_alpha
        24: .line 285
            aload 11 /* _rowAAChunk */
            getfield sun.java2d.marlin.OffHeapArray.address:J
            lload 7 /* pos */
            ladd
            lstore 19 /* addr_off */
        start local 19 // long addr_off
        25: .line 288
            iload 14 /* from */
            istore 21 /* x */
        start local 21 // int x
        26: iconst_0
            istore 22 /* val */
        start local 22 // int val
        27: goto 36
        28: .line 290
      StackMap locals: sun.java2d.marlin.MarlinCache int[] int int int int int long long sun.java2d.marlin.OffHeapArray int[] int int int jdk.internal.misc.Unsafe long long int int
      StackMap stack:
            iload 22 /* val */
            aload 1 /* alphaRow */
            iload 21 /* x */
            iaload
            iadd
            istore 22 /* val */
        29: .line 305
            iload 22 /* val */
            ifne 32
        30: .line 306
            aload 16 /* _unsafe */
            lload 19 /* addr_off */
            iconst_0
            invokevirtual jdk.internal.misc.Unsafe.putByte:(JB)V
        31: .line 307
            goto 34
        32: .line 308
      StackMap locals:
      StackMap stack:
            aload 16 /* _unsafe */
            lload 19 /* addr_off */
            aload 16 /* _unsafe */
            lload 17 /* addr_alpha */
            iload 22 /* val */
            i2l
            ladd
            invokevirtual jdk.internal.misc.Unsafe.getByte:(J)B
            invokevirtual jdk.internal.misc.Unsafe.putByte:(JB)V
        33: .line 311
            aload 12 /* _touchedTile */
            iload 21 /* x */
            iload 13 /* _TILE_SIZE_LG */
            ishr
            dup2
            iaload
            iload 22 /* val */
            iadd
            iastore
        34: .line 313
      StackMap locals:
      StackMap stack:
            lload 19 /* addr_off */
            lconst_1
            ladd
            lstore 19 /* addr_off */
        35: .line 288
            iinc 21 /* x */ 1
      StackMap locals:
      StackMap stack:
        36: iload 21 /* x */
            iload 15 /* to */
            if_icmplt 28
        end local 22 // int val
        end local 21 // int x
        37: .line 317
            iload 14 /* from */
            iload 13 /* _TILE_SIZE_LG */
            ishr
            istore 21 /* tx */
        start local 21 // int tx
        38: .line 318
            iload 21 /* tx */
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.tileMin:I
            if_icmpge 40
        39: .line 319
            aload 0 /* this */
            iload 21 /* tx */
            putfield sun.java2d.marlin.MarlinCache.tileMin:I
        40: .line 322
      StackMap locals:
      StackMap stack:
            iload 15 /* to */
            iconst_1
            isub
            iload 13 /* _TILE_SIZE_LG */
            ishr
            iconst_1
            iadd
            istore 21 /* tx */
        41: .line 323
            iload 21 /* tx */
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.tileMax:I
            if_icmple 43
        42: .line 324
            aload 0 /* this */
            iload 21 /* tx */
            putfield sun.java2d.marlin.MarlinCache.tileMax:I
        43: .line 327
      StackMap locals:
      StackMap stack:
            getstatic sun.java2d.marlin.MarlinCache.DO_LOG_BOUNDS:Z
            ifeq 45
        44: .line 328
            new java.lang.StringBuilder
            dup
            ldc "clear = ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 14 /* from */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " ... "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 15 /* to */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "["
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic sun.java2d.marlin.MarlinUtils.logInfo:(Ljava/lang/String;)V
        45: .line 332
      StackMap locals:
      StackMap stack:
            aload 1 /* alphaRow */
            iload 14 /* from */
            iload 4 /* px1 */
            iconst_1
            iadd
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.bboxX0:I
            isub
            iconst_0
            invokestatic sun.java2d.marlin.IntArrayCache.fill:([IIII)V
        46: .line 333
            return
        end local 21 // int tx
        end local 19 // long addr_off
        end local 17 // long addr_alpha
        end local 16 // jdk.internal.misc.Unsafe _unsafe
        end local 15 // int to
        end local 14 // int from
        end local 13 // int _TILE_SIZE_LG
        end local 12 // int[] _touchedTile
        end local 11 // sun.java2d.marlin.OffHeapArray _rowAAChunk
        end local 9 // long needSize
        end local 7 // long pos
        end local 6 // int row
        end local 5 // int px_bbox1
        end local 4 // int px1
        end local 3 // int px0
        end local 2 // int y
        end local 1 // int[] alphaRow
        end local 0 // sun.java2d.marlin.MarlinCache this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0   47     0           this  Lsun/java2d/marlin/MarlinCache;
            0   47     1       alphaRow  [I
            0   47     2              y  I
            0   47     3            px0  I
            0   47     4            px1  I
            1   47     5       px_bbox1  I
            6   47     6            row  I
           10   47     7            pos  J
           12   47     9       needSize  J
           14   47    11    _rowAAChunk  Lsun/java2d/marlin/OffHeapArray;
           19   47    12   _touchedTile  [I
           20   47    13  _TILE_SIZE_LG  I
           21   47    14           from  I
           22   47    15             to  I
           23   47    16        _unsafe  Ljdk/internal/misc/Unsafe;
           24   47    17     addr_alpha  J
           25   47    19       addr_off  J
           26   37    21              x  I
           27   37    22            val  I
           38   47    21             tx  I
    MethodParameters:
          Name  Flags
      alphaRow  final
      y         final
      px0       final
      px1       final

  void copyAARowRLE_WithBlockFlags(int[], int[], int, int, int);
    descriptor: ([I[IIII)V
    flags: (0x0000) 
    Code:
      stack=9, locals=36, args_size=6
        start local 0 // sun.java2d.marlin.MarlinCache this
        start local 1 // int[] blkFlags
        start local 2 // int[] alphaRow
        start local 3 // int y
        start local 4 // int px0
        start local 5 // int px1
         0: .line 339
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.bboxX0:I
            istore 6 /* _bboxX0 */
        start local 6 // int _bboxX0
         1: .line 342
            iload 3 /* y */
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.bboxY0:I
            isub
            istore 7 /* row */
        start local 7 // int row
         2: .line 343
            iload 4 /* px0 */
            iload 6 /* _bboxX0 */
            isub
            istore 8 /* from */
        start local 8 // int from
         3: .line 346
            iload 5 /* px1 */
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.bboxX1:I
            invokestatic sun.java2d.marlin.FloatMath.min:(II)I
            istore 9 /* px_bbox1 */
        start local 9 // int px_bbox1
         4: .line 347
            iload 9 /* px_bbox1 */
            iload 6 /* _bboxX0 */
            isub
            istore 10 /* to */
        start local 10 // int to
         5: .line 349
            getstatic sun.java2d.marlin.MarlinCache.DO_LOG_BOUNDS:Z
            ifeq 9
         6: .line 350
            new java.lang.StringBuilder
            dup
            ldc "row = ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
            iload 4 /* px0 */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " ... "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 9 /* px_bbox1 */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         7: .line 351
            ldc " ("
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 5 /* px1 */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ") [ for y="
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            iload 3 /* y */
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
         8: .line 350
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            invokestatic sun.java2d.marlin.MarlinUtils.logInfo:(Ljava/lang/String;)V
         9: .line 355
      StackMap locals: sun.java2d.marlin.MarlinCache int[] int[] int int int int int int int int
      StackMap stack:
            aload 0 /* this */
            iload 7 /* row */
            iload 4 /* px0 */
            iload 9 /* px_bbox1 */
            invokevirtual sun.java2d.marlin.MarlinCache.startRLERow:(III)J
            lstore 11 /* initialPos */
        start local 11 // long initialPos
        10: .line 359
            lload 11 /* initialPos */
            iload 10 /* to */
            iload 8 /* from */
            isub
            iconst_2
            ishl
            i2l
            ladd
            lstore 13 /* needSize */
        start local 13 // long needSize
        11: .line 362
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.rowAAChunk:Lsun/java2d/marlin/OffHeapArray;
            astore 15 /* _rowAAChunk */
        start local 15 // sun.java2d.marlin.OffHeapArray _rowAAChunk
        12: .line 364
            aload 15 /* _rowAAChunk */
            getfield sun.java2d.marlin.OffHeapArray.length:J
            lload 13 /* needSize */
            lcmp
            ifge 14
        13: .line 365
            aload 0 /* this */
            lload 13 /* needSize */
            invokevirtual sun.java2d.marlin.MarlinCache.expandRowAAChunk:(J)V
        14: .line 368
      StackMap locals: long long sun.java2d.marlin.OffHeapArray
      StackMap stack:
            getstatic sun.java2d.marlin.OffHeapArray.UNSAFE:Ljdk/internal/misc/Unsafe;
            astore 16 /* _unsafe */
        start local 16 // jdk.internal.misc.Unsafe _unsafe
        15: .line 370
            getstatic sun.java2d.marlin.MarlinCache.ALPHA_MAP_UNSAFE:Lsun/java2d/marlin/OffHeapArray;
            getfield sun.java2d.marlin.OffHeapArray.address:J
            lstore 17 /* addr_alpha */
        start local 17 // long addr_alpha
        16: .line 371
            aload 15 /* _rowAAChunk */
            getfield sun.java2d.marlin.OffHeapArray.address:J
            lload 11 /* initialPos */
            ladd
            lstore 19 /* addr_off */
        start local 19 // long addr_off
        17: .line 373
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.touchedTile:[I
            astore 21 /* _touchedTile */
        start local 21 // int[] _touchedTile
        18: .line 374
            getstatic sun.java2d.marlin.MarlinCache.TILE_W_LG:I
            istore 22 /* _TILE_SIZE_LG */
        start local 22 // int _TILE_SIZE_LG
        19: .line 375
            getstatic sun.java2d.marlin.MarlinCache.BLOCK_SIZE_LG:I
            istore 23 /* _BLK_SIZE_LG */
        start local 23 // int _BLK_SIZE_LG
        20: .line 378
            iload 8 /* from */
            iload 23 /* _BLK_SIZE_LG */
            ishr
            istore 24 /* blkW */
        start local 24 // int blkW
        21: .line 379
            iload 10 /* to */
            iload 23 /* _BLK_SIZE_LG */
            ishr
            iconst_1
            iadd
            istore 25 /* blkE */
        start local 25 // int blkE
        22: .line 381
            aload 1 /* blkFlags */
            iload 25 /* blkE */
            iconst_0
            iastore
        23: .line 384
            iconst_0
            istore 26 /* val */
        start local 26 // int val
        24: .line 385
            iload 8 /* from */
            istore 27 /* cx0 */
        start local 27 // int cx0
        25: .line 389
            ldc 2147483647
            istore 29 /* last_t0 */
        start local 29 // int last_t0
        26: .line 391
            iconst_0
            istore 30 /* skip */
        start local 30 // int skip
        27: .line 393
            iload 24 /* blkW */
            istore 31 /* t */
        start local 31 // int t
        28: goto 71
        29: .line 394
      StackMap locals: sun.java2d.marlin.MarlinCache int[] int[] int int int int int int int int long long sun.java2d.marlin.OffHeapArray jdk.internal.misc.Unsafe long long int[] int int int int int int top int int int
      StackMap stack:
            aload 1 /* blkFlags */
            iload 31 /* t */
            iaload
            ifeq 34
        30: .line 395
            aload 1 /* blkFlags */
            iload 31 /* t */
            iconst_0
            iastore
        31: .line 397
            iload 29 /* last_t0 */
            ldc 2147483647
            if_icmpne 70
        32: .line 398
            iload 31 /* t */
            istore 29 /* last_t0 */
        33: .line 400
            goto 70
        34: .line 402
      StackMap locals:
      StackMap stack:
            iload 29 /* last_t0 */
            ldc 2147483647
            if_icmpeq 68
        35: .line 404
            iload 29 /* last_t0 */
            iload 23 /* _BLK_SIZE_LG */
            ishl
            iload 8 /* from */
            invokestatic sun.java2d.marlin.FloatMath.max:(II)I
            istore 32 /* blk_x0 */
        start local 32 // int blk_x0
        36: .line 405
            ldc 2147483647
            istore 29 /* last_t0 */
        37: .line 408
            iload 31 /* t */
            iload 23 /* _BLK_SIZE_LG */
            ishl
            iconst_1
            iadd
            iload 10 /* to */
            invokestatic sun.java2d.marlin.FloatMath.min:(II)I
            istore 33 /* blk_x1 */
        start local 33 // int blk_x1
        38: .line 410
            iload 32 /* blk_x0 */
            istore 34 /* cx */
        start local 34 // int cx
        39: goto 66
        40: .line 411
      StackMap locals: int int int
      StackMap stack:
            aload 2 /* alphaRow */
            iload 34 /* cx */
            iaload
            dup
            istore 35 /* delta */
        start local 35 // int delta
        41: ifeq 65
        42: .line 412
            aload 2 /* alphaRow */
            iload 34 /* cx */
            iconst_0
            iastore
        43: .line 415
            iload 34 /* cx */
            iload 27 /* cx0 */
            if_icmpeq 64
        44: .line 416
            iload 34 /* cx */
            iload 27 /* cx0 */
            isub
            istore 28 /* runLen */
        start local 28 // int runLen
        45: .line 432
            iload 26 /* val */
            ifne 50
        46: .line 433
            aload 16 /* _unsafe */
            lload 19 /* addr_off */
        47: .line 434
            iload 6 /* _bboxX0 */
            iload 34 /* cx */
            iadd
            bipush 8
            ishl
        48: .line 433
            invokevirtual jdk.internal.misc.Unsafe.putInt:(JI)V
        49: .line 436
            goto 59
        50: .line 437
      StackMap locals: sun.java2d.marlin.MarlinCache int[] int[] int int int int int int int int long long sun.java2d.marlin.OffHeapArray jdk.internal.misc.Unsafe long long int[] int int int int int int int int int int int int int int
      StackMap stack:
            aload 16 /* _unsafe */
            lload 19 /* addr_off */
        51: .line 438
            iload 6 /* _bboxX0 */
            iload 34 /* cx */
            iadd
            bipush 8
            ishl
        52: .line 439
            aload 16 /* _unsafe */
            lload 17 /* addr_alpha */
            iload 26 /* val */
            i2l
            ladd
            invokevirtual jdk.internal.misc.Unsafe.getByte:(J)B
            sipush 255
            iand
        53: .line 438
            ior
        54: .line 437
            invokevirtual jdk.internal.misc.Unsafe.putInt:(JI)V
        55: .line 442
            iload 28 /* runLen */
            iconst_1
            if_icmpne 58
        56: .line 443
            aload 21 /* _touchedTile */
            iload 27 /* cx0 */
            iload 22 /* _TILE_SIZE_LG */
            ishr
            dup2
            iaload
            iload 26 /* val */
            iadd
            iastore
        57: .line 444
            goto 59
        58: .line 445
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 27 /* cx0 */
            iload 26 /* val */
            iload 34 /* cx */
            iload 28 /* runLen */
            aload 21 /* _touchedTile */
            invokevirtual sun.java2d.marlin.MarlinCache.touchTile:(IIII[I)V
        59: .line 448
      StackMap locals:
      StackMap stack:
            lload 19 /* addr_off */
            ldc 4
            ladd
            lstore 19 /* addr_off */
        60: .line 450
            getstatic sun.java2d.marlin.MarlinCache.DO_STATS:Z
            ifeq 63
        61: .line 451
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.rdrStats:Lsun/java2d/marlin/RendererStats;
            getfield sun.java2d.marlin.RendererStats.hist_tile_generator_encoding_runLen:Lsun/java2d/marlin/stats/Histogram;
        62: .line 452
            iload 28 /* runLen */
            invokevirtual sun.java2d.marlin.stats.Histogram.add:(I)V
        63: .line 454
      StackMap locals:
      StackMap stack:
            iload 34 /* cx */
            istore 27 /* cx0 */
        end local 28 // int runLen
        64: .line 458
      StackMap locals: sun.java2d.marlin.MarlinCache int[] int[] int int int int int int int int long long sun.java2d.marlin.OffHeapArray jdk.internal.misc.Unsafe long long int[] int int int int int int top int int int int int int int
      StackMap stack:
            iload 26 /* val */
            iload 35 /* delta */
            iadd
            istore 26 /* val */
        65: .line 410
      StackMap locals:
      StackMap stack:
            iinc 34 /* cx */ 1
        end local 35 // int delta
      StackMap locals:
      StackMap stack:
        66: iload 34 /* cx */
            iload 33 /* blk_x1 */
            if_icmplt 40
        67: .line 473
            goto 70
        end local 34 // int cx
        end local 33 // int blk_x1
        end local 32 // int blk_x0
      StackMap locals:
      StackMap stack:
        68: getstatic sun.java2d.marlin.MarlinCache.DO_STATS:Z
            ifeq 70
        69: .line 474
            iinc 30 /* skip */ 1
        70: .line 393
      StackMap locals:
      StackMap stack:
            iinc 31 /* t */ 1
      StackMap locals:
      StackMap stack:
        71: iload 31 /* t */
            iload 25 /* blkE */
            if_icmple 29
        end local 31 // int t
        72: .line 479
            iload 10 /* to */
            iload 27 /* cx0 */
            isub
            istore 28 /* runLen */
        start local 28 // int runLen
        73: .line 495
            iload 26 /* val */
            ifne 78
        74: .line 496
            aload 16 /* _unsafe */
            lload 19 /* addr_off */
        75: .line 497
            iload 6 /* _bboxX0 */
            iload 10 /* to */
            iadd
            bipush 8
            ishl
        76: .line 496
            invokevirtual jdk.internal.misc.Unsafe.putInt:(JI)V
        77: .line 499
            goto 87
        78: .line 500
      StackMap locals: sun.java2d.marlin.MarlinCache int[] int[] int int int int int int int int long long sun.java2d.marlin.OffHeapArray jdk.internal.misc.Unsafe long long int[] int int int int int int int int int
      StackMap stack:
            aload 16 /* _unsafe */
            lload 19 /* addr_off */
        79: .line 501
            iload 6 /* _bboxX0 */
            iload 10 /* to */
            iadd
            bipush 8
            ishl
        80: .line 502
            aload 16 /* _unsafe */
            lload 17 /* addr_alpha */
            iload 26 /* val */
            i2l
            ladd
            invokevirtual jdk.internal.misc.Unsafe.getByte:(J)B
            sipush 255
            iand
        81: .line 501
            ior
        82: .line 500
            invokevirtual jdk.internal.misc.Unsafe.putInt:(JI)V
        83: .line 505
            iload 28 /* runLen */
            iconst_1
            if_icmpne 86
        84: .line 506
            aload 21 /* _touchedTile */
            iload 27 /* cx0 */
            iload 22 /* _TILE_SIZE_LG */
            ishr
            dup2
            iaload
            iload 26 /* val */
            iadd
            iastore
        85: .line 507
            goto 87
        86: .line 508
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            iload 27 /* cx0 */
            iload 26 /* val */
            iload 10 /* to */
            iload 28 /* runLen */
            aload 21 /* _touchedTile */
            invokevirtual sun.java2d.marlin.MarlinCache.touchTile:(IIII[I)V
        87: .line 511
      StackMap locals:
      StackMap stack:
            lload 19 /* addr_off */
            ldc 4
            ladd
            lstore 19 /* addr_off */
        88: .line 513
            getstatic sun.java2d.marlin.MarlinCache.DO_STATS:Z
            ifeq 90
        89: .line 514
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.rdrStats:Lsun/java2d/marlin/RendererStats;
            getfield sun.java2d.marlin.RendererStats.hist_tile_generator_encoding_runLen:Lsun/java2d/marlin/stats/Histogram;
            iload 28 /* runLen */
            invokevirtual sun.java2d.marlin.stats.Histogram.add:(I)V
        90: .line 517
      StackMap locals:
      StackMap stack:
            lload 19 /* addr_off */
            aload 15 /* _rowAAChunk */
            getfield sun.java2d.marlin.OffHeapArray.address:J
            lsub
            lstore 31 /* len */
        start local 31 // long len
        91: .line 520
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.rowAALen:[J
            iload 7 /* row */
            lload 31 /* len */
            lload 11 /* initialPos */
            lsub
            lastore
        92: .line 523
            aload 0 /* this */
            lload 31 /* len */
            putfield sun.java2d.marlin.MarlinCache.rowAAChunkPos:J
        93: .line 525
            getstatic sun.java2d.marlin.MarlinCache.DO_STATS:Z
            ifeq 98
        94: .line 526
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.rdrStats:Lsun/java2d/marlin/RendererStats;
            getfield sun.java2d.marlin.RendererStats.stat_cache_rowAA:Lsun/java2d/marlin/stats/StatLong;
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.rowAALen:[J
            iload 7 /* row */
            laload
            invokevirtual sun.java2d.marlin.stats.StatLong.add:(J)V
        95: .line 527
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.rdrStats:Lsun/java2d/marlin/RendererStats;
            getfield sun.java2d.marlin.RendererStats.hist_tile_generator_encoding_ratio:Lsun/java2d/marlin/stats/Histogram;
        96: .line 528
            bipush 100
            iload 30 /* skip */
            imul
            iload 25 /* blkE */
            iload 24 /* blkW */
            isub
            idiv
        97: .line 527
            invokevirtual sun.java2d.marlin.stats.Histogram.add:(I)V
        98: .line 533
      StackMap locals: long
      StackMap stack:
            iload 8 /* from */
            iload 22 /* _TILE_SIZE_LG */
            ishr
            istore 33 /* tx */
        start local 33 // int tx
        99: .line 534
            iload 33 /* tx */
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.tileMin:I
            if_icmpge 101
       100: .line 535
            aload 0 /* this */
            iload 33 /* tx */
            putfield sun.java2d.marlin.MarlinCache.tileMin:I
       101: .line 538
      StackMap locals: int
      StackMap stack:
            iload 10 /* to */
            iconst_1
            isub
            iload 22 /* _TILE_SIZE_LG */
            ishr
            iconst_1
            iadd
            istore 33 /* tx */
       102: .line 539
            iload 33 /* tx */
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.tileMax:I
            if_icmple 104
       103: .line 540
            aload 0 /* this */
            iload 33 /* tx */
            putfield sun.java2d.marlin.MarlinCache.tileMax:I
       104: .line 544
      StackMap locals:
      StackMap stack:
            aload 2 /* alphaRow */
            iload 10 /* to */
            iconst_0
            iastore
       105: .line 545
            getstatic sun.java2d.marlin.MarlinCache.DO_CHECKS:Z
            ifeq 108
       106: .line 546
            aload 1 /* blkFlags */
            iload 24 /* blkW */
            iload 25 /* blkE */
            iconst_0
            invokestatic sun.java2d.marlin.IntArrayCache.check:([IIII)V
       107: .line 547
            aload 2 /* alphaRow */
            iload 8 /* from */
            iload 5 /* px1 */
            iconst_1
            iadd
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.bboxX0:I
            isub
            iconst_0
            invokestatic sun.java2d.marlin.IntArrayCache.check:([IIII)V
       108: .line 549
      StackMap locals:
      StackMap stack:
            return
        end local 33 // int tx
        end local 31 // long len
        end local 30 // int skip
        end local 29 // int last_t0
        end local 28 // int runLen
        end local 27 // int cx0
        end local 26 // int val
        end local 25 // int blkE
        end local 24 // int blkW
        end local 23 // int _BLK_SIZE_LG
        end local 22 // int _TILE_SIZE_LG
        end local 21 // int[] _touchedTile
        end local 19 // long addr_off
        end local 17 // long addr_alpha
        end local 16 // jdk.internal.misc.Unsafe _unsafe
        end local 15 // sun.java2d.marlin.OffHeapArray _rowAAChunk
        end local 13 // long needSize
        end local 11 // long initialPos
        end local 10 // int to
        end local 9 // int px_bbox1
        end local 8 // int from
        end local 7 // int row
        end local 6 // int _bboxX0
        end local 5 // int px1
        end local 4 // int px0
        end local 3 // int y
        end local 2 // int[] alphaRow
        end local 1 // int[] blkFlags
        end local 0 // sun.java2d.marlin.MarlinCache this
      LocalVariableTable:
        Start  End  Slot           Name  Signature
            0  109     0           this  Lsun/java2d/marlin/MarlinCache;
            0  109     1       blkFlags  [I
            0  109     2       alphaRow  [I
            0  109     3              y  I
            0  109     4            px0  I
            0  109     5            px1  I
            1  109     6        _bboxX0  I
            2  109     7            row  I
            3  109     8           from  I
            4  109     9       px_bbox1  I
            5  109    10             to  I
           10  109    11     initialPos  J
           11  109    13       needSize  J
           12  109    15    _rowAAChunk  Lsun/java2d/marlin/OffHeapArray;
           15  109    16        _unsafe  Ljdk/internal/misc/Unsafe;
           16  109    17     addr_alpha  J
           17  109    19       addr_off  J
           18  109    21   _touchedTile  [I
           19  109    22  _TILE_SIZE_LG  I
           20  109    23   _BLK_SIZE_LG  I
           21  109    24           blkW  I
           22  109    25           blkE  I
           24  109    26            val  I
           25  109    27            cx0  I
           45   64    28         runLen  I
           73  109    28         runLen  I
           26  109    29        last_t0  I
           27  109    30           skip  I
           28   72    31              t  I
           36   68    32         blk_x0  I
           38   68    33         blk_x1  I
           39   68    34             cx  I
           41   66    35          delta  I
           91  109    31            len  J
           99  109    33             tx  I
    MethodParameters:
          Name  Flags
      blkFlags  final
      alphaRow  final
      y         final
      px0       final
      px1       final

  long startRLERow(int, int, int);
    descriptor: (III)J
    flags: (0x0000) 
    Code:
      stack=6, locals=4, args_size=4
        start local 0 // sun.java2d.marlin.MarlinCache this
        start local 1 // int row
        start local 2 // int x0
        start local 3 // int x1
         0: .line 553
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.rowAAx0:[I
            iload 1 /* row */
            iload 2 /* x0 */
            iastore
         1: .line 554
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.rowAAx1:[I
            iload 1 /* row */
            iload 3 /* x1 */
            iastore
         2: .line 555
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.rowAAEnc:[I
            iload 1 /* row */
            iconst_1
            iastore
         3: .line 556
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.rowAAPos:[J
            iload 1 /* row */
            lconst_0
            lastore
         4: .line 559
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.rowAAChunkIndex:[J
            iload 1 /* row */
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.rowAAChunkPos:J
            dup2_x2
            lastore
            lreturn
        end local 3 // int x1
        end local 2 // int x0
        end local 1 // int row
        end local 0 // sun.java2d.marlin.MarlinCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    5     0  this  Lsun/java2d/marlin/MarlinCache;
            0    5     1   row  I
            0    5     2    x0  I
            0    5     3    x1  I
    MethodParameters:
      Name  Flags
      row   final
      x0    final
      x1    final

  private void expandRowAAChunk(long);
    descriptor: (J)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=4, locals=5, args_size=2
        start local 0 // sun.java2d.marlin.MarlinCache this
        start local 1 // long needSize
         0: .line 563
            getstatic sun.java2d.marlin.MarlinCache.DO_STATS:Z
            ifeq 2
         1: .line 564
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.rdrStats:Lsun/java2d/marlin/RendererStats;
            getfield sun.java2d.marlin.RendererStats.stat_array_marlincache_rowAAChunk:Lsun/java2d/marlin/stats/StatLong;
            lload 1 /* needSize */
            invokevirtual sun.java2d.marlin.stats.StatLong.add:(J)V
         2: .line 568
      StackMap locals:
      StackMap stack:
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.rowAAChunk:Lsun/java2d/marlin/OffHeapArray;
            getfield sun.java2d.marlin.OffHeapArray.length:J
         3: .line 569
            lload 1 /* needSize */
         4: .line 568
            invokestatic sun.java2d.marlin.ArrayCacheConst.getNewLargeSize:(JJ)J
            lstore 3 /* newSize */
        start local 3 // long newSize
         5: .line 571
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.rowAAChunk:Lsun/java2d/marlin/OffHeapArray;
            lload 3 /* newSize */
            invokevirtual sun.java2d.marlin.OffHeapArray.resize:(J)V
         6: .line 572
            return
        end local 3 // long newSize
        end local 1 // long needSize
        end local 0 // sun.java2d.marlin.MarlinCache this
      LocalVariableTable:
        Start  End  Slot      Name  Signature
            0    7     0      this  Lsun/java2d/marlin/MarlinCache;
            0    7     1  needSize  J
            5    7     3   newSize  J
    MethodParameters:
          Name  Flags
      needSize  final

  private void touchTile(int, int, int, int, int[]);
    descriptor: (IIII[I)V
    flags: (0x0002) ACC_PRIVATE
    Code:
      stack=6, locals=12, args_size=6
        start local 0 // sun.java2d.marlin.MarlinCache this
        start local 1 // int x0
        start local 2 // int val
        start local 3 // int x1
        start local 4 // int runLen
        start local 5 // int[] _touchedTile
         0: .line 580
            getstatic sun.java2d.marlin.MarlinCache.TILE_W_LG:I
            istore 6 /* _TILE_SIZE_LG */
        start local 6 // int _TILE_SIZE_LG
         1: .line 583
            iload 1 /* x0 */
            iload 6 /* _TILE_SIZE_LG */
            ishr
            istore 7 /* tx */
        start local 7 // int tx
         2: .line 586
            iload 7 /* tx */
            iload 3 /* x1 */
            iload 6 /* _TILE_SIZE_LG */
            ishr
            if_icmpne 5
         3: .line 588
            aload 5 /* _touchedTile */
            iload 7 /* tx */
            dup2
            iaload
            iload 2 /* val */
            iload 4 /* runLen */
            imul
            iadd
            iastore
         4: .line 589
            return
         5: .line 592
      StackMap locals: int int
      StackMap stack:
            iload 3 /* x1 */
            iconst_1
            isub
            iload 6 /* _TILE_SIZE_LG */
            ishr
            istore 8 /* tx1 */
        start local 8 // int tx1
         6: .line 594
            iload 7 /* tx */
            iload 8 /* tx1 */
            if_icmpgt 9
         7: .line 595
            iload 7 /* tx */
            iconst_1
            iadd
            iload 6 /* _TILE_SIZE_LG */
            ishl
            istore 9 /* nextTileXCoord */
        start local 9 // int nextTileXCoord
         8: .line 596
            aload 5 /* _touchedTile */
            iload 7 /* tx */
            iinc 7 /* tx */ 1
            dup2
            iaload
            iload 2 /* val */
            iload 9 /* nextTileXCoord */
            iload 1 /* x0 */
            isub
            imul
            iadd
            iastore
        end local 9 // int nextTileXCoord
         9: .line 598
      StackMap locals: int
      StackMap stack:
            iload 7 /* tx */
            iload 8 /* tx1 */
            if_icmpge 15
        10: .line 601
            iload 2 /* val */
            iload 6 /* _TILE_SIZE_LG */
            ishl
            istore 9 /* tileVal */
        start local 9 // int tileVal
        11: .line 602
            goto 14
        12: .line 603
      StackMap locals: int
      StackMap stack:
            aload 5 /* _touchedTile */
            iload 7 /* tx */
            dup2
            iaload
            iload 9 /* tileVal */
            iadd
            iastore
        13: .line 602
            iinc 7 /* tx */ 1
      StackMap locals:
      StackMap stack:
        14: iload 7 /* tx */
            iload 8 /* tx1 */
            if_icmplt 12
        end local 9 // int tileVal
        15: .line 607
      StackMap locals:
      StackMap stack:
            iload 7 /* tx */
            iload 8 /* tx1 */
            if_icmpne 22
        16: .line 608
            iload 7 /* tx */
            iload 6 /* _TILE_SIZE_LG */
            ishl
            istore 9 /* txXCoord */
        start local 9 // int txXCoord
        17: .line 609
            iload 7 /* tx */
            iconst_1
            iadd
            iload 6 /* _TILE_SIZE_LG */
            ishl
            istore 10 /* nextTileXCoord */
        start local 10 // int nextTileXCoord
        18: .line 611
            iload 10 /* nextTileXCoord */
            iload 3 /* x1 */
            if_icmpgt 19
            iload 10 /* nextTileXCoord */
            goto 20
      StackMap locals: int int
      StackMap stack:
        19: iload 3 /* x1 */
      StackMap locals:
      StackMap stack: int
        20: istore 11 /* lastXCoord */
        start local 11 // int lastXCoord
        21: .line 612
            aload 5 /* _touchedTile */
            iload 7 /* tx */
            dup2
            iaload
            iload 2 /* val */
            iload 11 /* lastXCoord */
            iload 9 /* txXCoord */
            isub
            imul
            iadd
            iastore
        end local 11 // int lastXCoord
        end local 10 // int nextTileXCoord
        end local 9 // int txXCoord
        22: .line 614
      StackMap locals:
      StackMap stack:
            return
        end local 8 // int tx1
        end local 7 // int tx
        end local 6 // int _TILE_SIZE_LG
        end local 5 // int[] _touchedTile
        end local 4 // int runLen
        end local 3 // int x1
        end local 2 // int val
        end local 1 // int x0
        end local 0 // sun.java2d.marlin.MarlinCache this
      LocalVariableTable:
        Start  End  Slot            Name  Signature
            0   23     0            this  Lsun/java2d/marlin/MarlinCache;
            0   23     1              x0  I
            0   23     2             val  I
            0   23     3              x1  I
            0   23     4          runLen  I
            0   23     5    _touchedTile  [I
            1   23     6   _TILE_SIZE_LG  I
            2   23     7              tx  I
            6   23     8             tx1  I
            8    9     9  nextTileXCoord  I
           11   15     9         tileVal  I
           17   22     9        txXCoord  I
           18   22    10  nextTileXCoord  I
           21   22    11      lastXCoord  I
    MethodParameters:
              Name  Flags
      x0            final
      val           final
      x1            final
      runLen        final
      _touchedTile  final

  int alphaSumInTile(int);
    descriptor: (I)I
    flags: (0x0000) 
    Code:
      stack=3, locals=2, args_size=2
        start local 0 // sun.java2d.marlin.MarlinCache this
        start local 1 // int x
         0: .line 617
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.touchedTile:[I
            iload 1 /* x */
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.bboxX0:I
            isub
            getstatic sun.java2d.marlin.MarlinCache.TILE_W_LG:I
            ishr
            iaload
            ireturn
        end local 1 // int x
        end local 0 // sun.java2d.marlin.MarlinCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    1     0  this  Lsun/java2d/marlin/MarlinCache;
            0    1     1     x  I
    MethodParameters:
      Name  Flags
      x     final

  public java.lang.String toString();
    descriptor: ()Ljava/lang/String;
    flags: (0x0001) ACC_PUBLIC
    Code:
      stack=3, locals=1, args_size=1
        start local 0 // sun.java2d.marlin.MarlinCache this
         0: .line 622
            new java.lang.StringBuilder
            dup
            ldc "bbox = ["
            invokespecial java.lang.StringBuilder.<init>:(Ljava/lang/String;)V
         1: .line 623
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.bboxX0:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.bboxY0:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc " => "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         2: .line 624
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.bboxX1:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc ", "
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
            aload 0 /* this */
            getfield sun.java2d.marlin.MarlinCache.bboxY1:I
            invokevirtual java.lang.StringBuilder.append:(I)Ljava/lang/StringBuilder;
            ldc "]\n"
            invokevirtual java.lang.StringBuilder.append:(Ljava/lang/String;)Ljava/lang/StringBuilder;
         3: .line 622
            invokevirtual java.lang.StringBuilder.toString:()Ljava/lang/String;
            areturn
        end local 0 // sun.java2d.marlin.MarlinCache this
      LocalVariableTable:
        Start  End  Slot  Name  Signature
            0    4     0  this  Lsun/java2d/marlin/MarlinCache;

  private static byte[] buildAlphaMap(int);
    descriptor: (I)[B
    flags: (0x000a) ACC_PRIVATE, ACC_STATIC
    Code:
      stack=4, locals=4, args_size=1
        start local 0 // int maxalpha
         0: .line 629
            iload 0 /* maxalpha */
            iconst_1
            ishl
            newarray 8
            astore 1 /* alMap */
        start local 1 // byte[] alMap
         1: .line 630
            iload 0 /* maxalpha */
            iconst_2
            ishr
            istore 2 /* halfmaxalpha */
        start local 2 // int halfmaxalpha
         2: .line 631
            iconst_0
            istore 3 /* i */
        start local 3 // int i
         3: goto 6
         4: .line 632
      StackMap locals: byte[] int int
      StackMap stack:
            aload 1 /* alMap */
            iload 3 /* i */
            iload 3 /* i */
            sipush 255
            imul
            iload 2 /* halfmaxalpha */
            iadd
            iload 0 /* maxalpha */
            idiv
            i2b
            bastore
         5: .line 631
            iinc 3 /* i */ 1
      StackMap locals:
      StackMap stack:
         6: iload 3 /* i */
            iload 0 /* maxalpha */
            if_icmple 4
        end local 3 // int i
         7: .line 636
            aload 1 /* alMap */
            areturn
        end local 2 // int halfmaxalpha
        end local 1 // byte[] alMap
        end local 0 // int maxalpha
      LocalVariableTable:
        Start  End  Slot          Name  Signature
            0    8     0      maxalpha  I
            1    8     1         alMap  [B
            2    8     2  halfmaxalpha  I
            3    7     3             i  I
    MethodParameters:
          Name  Flags
      maxalpha  final
}
SourceFile: "MarlinCache.java"
InnerClasses:
  final Reference = sun.java2d.marlin.IntArrayCache$Reference of sun.java2d.marlin.IntArrayCache