Java Bytecode for runSieve() Method
00000000: sipush 8191 // Push signed integer (8191)
00000003: newarray BOGUS TYPE // Bogus??
00000005: astore_1 // Store object reference (flags)
00000006: iconst_0
00000007: istore 6
00000009: dconst_0
0000000A: dstore 7
0000000C: iconst_0
0000000D: istore 9
0000000F: invokestatic #19
00000012: lstore 10
00000014: iconst_0
00000015: istore 5
00000017: iconst_0
00000018: istore_2
00000019: goto 35
0000001C: aload_1 // Load object reference (flags)
0000001D: iload_2 // Load integer (i)
0000001E: iconst_1 // Push integer constant (true)
0000001F: bastore // Store into byte array
00000020: iinc 2 1 // Increment variable (i) by 1
00000023: iload_2 // Load integer (i)
00000024: sipush 8190 // Push signed integer (8190)
00000027: if_icmple 28 // Branch if
00000073: lcmp
00000074: iflt 20
00000077: lload 12
00000079: l2d
0000007A: ldc2_w #41
0000007D: ddiv
0000007E: dstore 7
00000080: iload 6
00000082: i2d
00000083: dload 7
00000085: ddiv
00000086: invokestatic #29
00000089: l2i
0000008A: istore 9
0000008C: aload_0
0000008D: new #16
00000090: dup
00000091: invokenonvirtual #26
00000094: iload 6
00000096: invokevirtual #38
00000099: ldc #6
0000009B: invokevirtual #30
0000009E: dload 7
000000A0: invokevirtual #25
000000A3: ldc #5
000000A5: invokevirtual #30
000000A8: invokevirtual #33
000000AB: putfield #20
000000AE: iload 5
000000B0: sipush 1899
000000B3: if_icmpeq 189
000000B6: aload_0
000000B7: ldc #1
000000B9: putfield #35
000000BC: return
000000BD: aload_0
000000BE: new #16
000000C1: dup
000000C2: invokenonvirtual #26
000000C5: ldc #3
000000C7: invokevirtual #30
000000CA: iload 9
000000CC: invokevirtual #38
000000CF: invokevirtual #33
000000D2: putfield #35