如何获得即时编译器(JIT)的汇编代码(linux环境下)

1)给定java源代码

// 单例模式(分析volatile关键字是如何禁止指令重排序优化的)
public class Singleton {
	private volatile static Singleton instance;

	public static Singleton getInstance() {
		if(instance == null) {
			synchronized (Singleton.class) { // 同步块
				if(instance == null) {
					instance = new Singleton();
				}
			}
		}
		return instance;
	}

	public static void main(String[] args) {
		Singleton.getInstance();
	}
}

2)对字节码文件反汇编

Attention)

A1)这里的反汇编与javap的作用不同,javap是获取该文件的字节码指令集(针对java虚拟机),而汇编是获取寄存器指令集(本地CPU支持的指令集);

A2)我的jdk是 1.8 version,貌似 1.7 不行一样;

2.1)通过java -XX:+PrintAssembly com.jvm.chapter12.Singleton 试图获取汇编代码

2.2)通过 java -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly com.jvm.chapter12.Singleton 试图获取汇编代码

2.3)很明显,我们这里差一个 动态库文件:hsdis-i386.so: download site:  http://kenai.com/projects/base-hsdis/downloads

Attention)

A1)重命名文件:根据自己的os ,找到对应的 Distribution 下载,下载后,还要重命名 为 hsdis-i386.so(访问权限755)

A2)放置位置:将该文件放置到 jdk/jre/lib/i386/ 目录下即可;

2.4)再次获取 汇编代码(bingo)

补充)以下是获取的汇编代码实例

Loaded disassembler from /usr/java/jdk1.8/jre/lib/i386/hsdis-i386.so
Decoding compiled method 0xa85a29c8:
Code:
[Disassembling for mach='i386']
[Entry Point]
[Constants]
  # {method} {0x8890e238} 'hashCode' '()I' in 'java/lang/String'
  #           [sp+0x30]  (sp of caller)
  0xa85a2ae0: nop
  0xa85a2ae1: nop
  0xa85a2ae2: nop
  0xa85a2ae3: nop
  0xa85a2ae4: nop
  0xa85a2ae5: nop
  0xa85a2ae6: nop
  0xa85a2ae7: nop
  0xa85a2ae8: nop
  0xa85a2ae9: nop
  0xa85a2aea: nop
  0xa85a2aeb: nop
  0xa85a2aec: nop
  0xa85a2aed: nop
  0xa85a2aee: nop
  0xa85a2aef: nop
  0xa85a2af0: nop
  0xa85a2af1: nop
  0xa85a2af2: nop
  0xa85a2af3: nop
  0xa85a2af4: nop
  0xa85a2af5: nop
  0xa85a2af6: nop
  0xa85a2af7: cmp    0x4(%ecx),%eax
  0xa85a2afa: jne    0xa853b520         ;   {runtime_call}
[Verified Entry Point]
  0xa85a2b00: mov    %eax,-0x4000(%esp)
  0xa85a2b07: push   %ebp
  0xa85a2b08: sub    $0x28,%esp
  0xa85a2b0b: mov    $0x88a6db18,%eax   ;   {metadata(method data for {method} {0x8890e238} 'hashCode' '()I' in 'java/lang/String')}
  0xa85a2b10: mov    0xa4(%eax),%esi
  0xa85a2b16: add    $0x8,%esi
  0xa85a2b19: mov    %esi,0xa4(%eax)
  0xa85a2b1f: mov    $0x8890e238,%eax   ;   {metadata({method} {0x8890e238} 'hashCode' '()I' in 'java/lang/String')}
  0xa85a2b24: and    $0x1ff8,%esi
  0xa85a2b2a: cmp    $0x0,%esi
  0xa85a2b2d: je     0xa85a2c1c         ;*aload_0
                                        ; - java.lang.String::[email protected] (line 1466)

  0xa85a2b33: mov    0xc(%ecx),%eax     ;*getfield hash
                                        ; - java.lang.String::[email protected] (line 1466)

  0xa85a2b36: cmp    $0x0,%eax
  0xa85a2b39: mov    $0x88a6db18,%esi   ;   {metadata(method data for {method} {0x8890e238} 'hashCode' '()I' in 'java/lang/String')}
  0xa85a2b3e: mov    $0xcc,%edi
  0xa85a2b43: jne    0xa85a2b4e
  0xa85a2b49: mov    $0xd4,%edi
  0xa85a2b4e: mov    (%esi,%edi,1),%ebx
  0xa85a2b51: lea    0x1(%ebx),%ebx
  0xa85a2b54: mov    %ebx,(%esi,%edi,1)
  0xa85a2b57: jne    0xa85a2c11         ;*ifne
                                        ; - java.lang.String::[email protected] (line 1467)

  0xa85a2b5d: mov    0x8(%ecx),%esi     ;*getfield value
                                        ; - java.lang.String::[email protected] (line 1467)

  0xa85a2b60: mov    0x8(%esi),%edi     ;*arraylength
                                        ; - java.lang.String::[email protected] (line 1467)
                                        ; implicit exception: dispatches to 0xa85a2c31
  0xa85a2b63: mov    %edi,0x14(%esp)
  0xa85a2b67: cmp    $0x0,%edi
  0xa85a2b6a: mov    $0x88a6db18,%ebx   ;   {metadata(method data for {method} {0x8890e238} 'hashCode' '()I' in 'java/lang/String')}
  0xa85a2b6f: mov    $0xdc,%edx
  0xa85a2b74: jle    0xa85a2b7f
  0xa85a2b7a: mov    $0xe4,%edx
  0xa85a2b7f: mov    %ecx,0x10(%esp)
  0xa85a2b83: mov    (%ebx,%edx,1),%ecx
  0xa85a2b86: lea    0x1(%ecx),%ecx
  0xa85a2b89: mov    %ecx,(%ebx,%edx,1)
  0xa85a2b8c: jle    0xa85a2c11         ;*ifle
                                        ; - java.lang.String::[email protected] (line 1467)

  0xa85a2b92: mov    $0x0,%ebx
  0xa85a2b97: jmp    0xa85a2be8         ;*iload_3
                                        ; - java.lang.String::[email protected] (line 1470)

  0xa85a2b9c: movzwl 0xc(%esi,%ebx,2),%edi  ;*caload
                                        ; - java.lang.String::[email protected] (line 1471)

  0xa85a2ba1: mov    %eax,%edx
  0xa85a2ba3: shl    $0x5,%eax
  0xa85a2ba6: sub    %edx,%eax
  0xa85a2ba8: add    %edi,%eax
  0xa85a2baa: inc    %ebx
  0xa85a2bab: mov    $0x88a6db18,%edi   ;   {metadata(method data for {method} {0x8890e238} 'hashCode' '()I' in 'java/lang/String')}
  0xa85a2bb0: mov    0xa8(%edi),%edx
  0xa85a2bb6: add    $0x8,%edx
  0xa85a2bb9: mov    %edx,0xa8(%edi)
  0xa85a2bbf: mov    $0x8890e238,%edi   ;   {metadata({method} {0x8890e238} 'hashCode' '()I' in 'java/lang/String')}
  0xa85a2bc4: and    $0xfff8,%edx
  0xa85a2bca: cmp    $0x0,%edx
  0xa85a2bcd: je     0xa85a2c36         ; OopMap{[16]=Oop esi=Oop off=243}
                                        ;*goto
                                        ; - java.lang.String::[email protected] (line 1470)

  0xa85a2bd3: test   %eax,0xb7712100    ;   {poll}
  0xa85a2bd9: mov    $0x88a6db18,%edi   ;   {metadata(method data for {method} {0x8890e238} 'hashCode' '()I' in 'java/lang/String')}
  0xa85a2bde: incl   0xfc(%edi)         ;*goto
                                        ; - java.lang.String::[email protected] (line 1470)

  0xa85a2be4: mov    0x14(%esp),%edi
  0xa85a2be8: cmp    %edi,%ebx
  0xa85a2bea: mov    $0x88a6db18,%edx   ;   {metadata(method data for {method} {0x8890e238} 'hashCode' '()I' in 'java/lang/String')}
  0xa85a2bef: mov    $0xec,%ecx
  0xa85a2bf4: jge    0xa85a2bff
  0xa85a2bfa: mov    $0xf4,%ecx
  0xa85a2bff: mov    (%edx,%ecx,1),%edi
  0xa85a2c02: lea    0x1(%edi),%edi
  0xa85a2c05: mov    %edi,(%edx,%ecx,1)
  0xa85a2c08: jl     0xa85a2b9c         ;*if_icmpge
                                        ; - java.lang.String::[email protected] (line 1470)

  0xa85a2c0a: mov    0x10(%esp),%ecx
  0xa85a2c0e: mov    %eax,0xc(%ecx)     ;*putfield hash
                                        ; - java.lang.String::[email protected] (line 1473)

  0xa85a2c11: add    $0x28,%esp
  0xa85a2c14: pop    %ebp
  0xa85a2c15: test   %eax,0xb7712100    ;   {poll_return}
  0xa85a2c1b: ret
  0xa85a2c1c: mov    %eax,0x4(%esp)
  0xa85a2c20: movl   $0xffffffff,(%esp)
  0xa85a2c27: call   0xa859fe20         ; OopMap{ecx=Oop off=332}
                                        ;*synchronization entry
                                        ; - java.lang.String::[email protected] (line 1466)
                                        ;   {runtime_call}
  0xa85a2c2c: jmp    0xa85a2b33
  0xa85a2c31: call   0xa859d460         ; OopMap{ecx=Oop esi=Oop off=342}
                                        ;*arraylength
                                        ; - java.lang.String::[email protected] (line 1467)
                                        ;   {runtime_call}
  0xa85a2c36: mov    %edi,0x4(%esp)
  0xa85a2c3a: movl   $0x2d,(%esp)
  0xa85a2c41: call   0xa859fe20         ; OopMap{[16]=Oop esi=Oop off=358}
                                        ;*goto
                                        ; - java.lang.String::[email protected] (line 1470)
                                        ;   {runtime_call}
  0xa85a2c46: jmp    0xa85a2bd3
  0xa85a2c48: nop
  0xa85a2c49: nop
  0xa85a2c4a: mov    %esp,%esi
  0xa85a2c4c: shr    $0xc,%esi
  0xa85a2c4f: mov    0x188a440(,%esi,4),%esi  ;   {external_word}
  0xa85a2c56: mov    0x19c(%esi),%eax
  0xa85a2c5c: movl   $0x0,0x19c(%esi)
  0xa85a2c66: movl   $0x0,0x1a0(%esi)
  0xa85a2c70: add    $0x28,%esp
  0xa85a2c73: pop    %ebp
  0xa85a2c74: jmp    0xa8556820         ;   {runtime_call}
  0xa85a2c79: hlt
  0xa85a2c7a: hlt
  0xa85a2c7b: hlt
  0xa85a2c7c: hlt
  0xa85a2c7d: hlt
  0xa85a2c7e: hlt
  0xa85a2c7f: hlt
[Exception Handler]
[Stub Code]
  0xa85a2c80: call   0xa859e860         ;   {no_reloc}
  0xa85a2c85: push   $0x1790172         ;   {external_word}
  0xa85a2c8a: call   0xa85a2c8f
  0xa85a2c8f: pusha
  0xa85a2c90: call   0x0150c230         ;   {runtime_call}
  0xa85a2c95: hlt
[Deopt Handler Code]
  0xa85a2c96: push   $0xa85a2c96        ;   {section_word}
  0xa85a2c9b: jmp    0xa853c520         ;   {runtime_call}
Decoding compiled method 0xa85a2188:
Code:
[Entry Point]
[Constants]
  # {method} {0x8890da98} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String'
  # this:     ecx       = 'java/lang/String'
  # parm0:    edx       = 'java/lang/Object'
  #           [sp+0x20]  (sp of caller)
  0xa85a22c0: nop
  0xa85a22c1: nop
  0xa85a22c2: nop
  0xa85a22c3: nop
  0xa85a22c4: nop
  0xa85a22c5: nop
  0xa85a22c6: nop
  0xa85a22c7: nop
  0xa85a22c8: nop
  0xa85a22c9: nop
  0xa85a22ca: nop
  0xa85a22cb: nop
  0xa85a22cc: nop
  0xa85a22cd: nop
  0xa85a22ce: nop
  0xa85a22cf: nop
  0xa85a22d0: nop
  0xa85a22d1: nop
  0xa85a22d2: nop
  0xa85a22d3: nop
  0xa85a22d4: nop
  0xa85a22d5: nop
  0xa85a22d6: nop
  0xa85a22d7: cmp    0x4(%ecx),%eax
  0xa85a22da: jne    0xa853b520         ;   {runtime_call}
[Verified Entry Point]
  0xa85a22e0: mov    %eax,-0x4000(%esp)
  0xa85a22e7: push   %ebp
  0xa85a22e8: sub    $0x18,%esp
  0xa85a22eb: mov    $0x88a732a8,%eax   ;   {metadata(method data for {method} {0x8890da98} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}
  0xa85a22f0: mov    0xa4(%eax),%esi
  0xa85a22f6: add    $0x8,%esi
  0xa85a22f9: mov    %esi,0xa4(%eax)
  0xa85a22ff: mov    $0x8890da98,%eax   ;   {metadata({method} {0x8890da98} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}
  0xa85a2304: and    $0x1ff8,%esi
  0xa85a230a: cmp    $0x0,%esi
  0xa85a230d: je     0xa85a2605         ;*aload_0
                                        ; - java.lang.String::[email protected] (line 977)

  0xa85a2313: cmp    %edx,%ecx
  0xa85a2315: mov    $0x88a732a8,%eax   ;   {metadata(method data for {method} {0x8890da98} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}
  0xa85a231a: mov    $0xcc,%esi
  0xa85a231f: jne    0xa85a232a
  0xa85a2325: mov    $0xd4,%esi
  0xa85a232a: mov    (%eax,%esi,1),%edi
  0xa85a232d: lea    0x1(%edi),%edi
  0xa85a2330: mov    %edi,(%eax,%esi,1)
  0xa85a2333: je     0xa85a25f5         ;*if_acmpne
                                        ; - java.lang.String::[email protected] (line 977)

  0xa85a2339: cmp    $0x0,%edx
  0xa85a233c: jne    0xa85a2352
  0xa85a233e: mov    $0x88a732a8,%esi   ;   {metadata(method data for {method} {0x8890da98} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}
  0xa85a2343: orl    $0x100,0xd8(%esi)
  0xa85a234d: jmp    0xa85a23ec
  0xa85a2352: cmpl   $0x88910190,0x4(%edx)  ;   {metadata('java/lang/String')}
  0xa85a2359: jne    0xa85a23d6
  0xa85a235f: mov    $0x88a732a8,%esi   ;   {metadata(method data for {method} {0x8890da98} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}
  0xa85a2364: mov    0x4(%edx),%edi
  0xa85a2367: cmp    0xe0(%esi),%edi
  0xa85a236d: jne    0xa85a237b
  0xa85a236f: addl   $0x1,0xe4(%esi)
  0xa85a2376: jmp    0xa85a23f0
  0xa85a237b: cmp    0xe8(%esi),%edi
  0xa85a2381: jne    0xa85a238f
  0xa85a2383: addl   $0x1,0xec(%esi)
  0xa85a238a: jmp    0xa85a23f0
  0xa85a238f: cmpl   $0x0,0xe0(%esi)
  0xa85a2399: jne    0xa85a23b0
  0xa85a239b: mov    %edi,0xe0(%esi)
  0xa85a23a1: movl   $0x1,0xe4(%esi)
  0xa85a23ab: jmp    0xa85a23f0
  0xa85a23b0: cmpl   $0x0,0xe8(%esi)
  0xa85a23ba: jne    0xa85a23d1
  0xa85a23bc: mov    %edi,0xe8(%esi)
  0xa85a23c2: movl   $0x1,0xec(%esi)
  0xa85a23cc: jmp    0xa85a23f0
  0xa85a23d1: jmp    0xa85a23f0
  0xa85a23d6: mov    $0x88a732a8,%esi   ;   {metadata(method data for {method} {0x8890da98} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}
  0xa85a23db: subl   $0x1,0xdc(%esi)
  0xa85a23e2: jmp    0xa85a23ec
  0xa85a23e7: jmp    0xa85a23f0
  0xa85a23ec: xor    %eax,%eax
  0xa85a23ee: jmp    0xa85a23f5
  0xa85a23f0: mov    $0x1,%eax          ;*instanceof
                                        ; - java.lang.String::[email protected] (line 980)

  0xa85a23f5: cmp    $0x0,%eax
  0xa85a23f8: mov    $0x88a732a8,%eax   ;   {metadata(method data for {method} {0x8890da98} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}
  0xa85a23fd: mov    $0xf4,%esi
  0xa85a2402: je     0xa85a240d
  0xa85a2408: mov    $0xfc,%esi
  0xa85a240d: mov    (%eax,%esi,1),%edi
  0xa85a2410: lea    0x1(%edi),%edi
  0xa85a2413: mov    %edi,(%eax,%esi,1)
  0xa85a2416: je     0xa85a25e5         ;*ifeq
                                        ; - java.lang.String::[email protected] (line 980)

  0xa85a241c: cmp    $0x0,%edx
  0xa85a241f: jne    0xa85a2435
  0xa85a2421: mov    $0x88a732a8,%esi   ;   {metadata(method data for {method} {0x8890da98} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}
  0xa85a2426: orl    $0x100,0x100(%esi)
  0xa85a2430: jmp    0xa85a24cf
  0xa85a2435: cmpl   $0x88910190,0x4(%edx)  ;   {metadata('java/lang/String')}
  0xa85a243c: jne    0xa85a24b9
  0xa85a2442: mov    $0x88a732a8,%esi   ;   {metadata(method data for {method} {0x8890da98} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}
  0xa85a2447: mov    0x4(%edx),%edi
  0xa85a244a: cmp    0x108(%esi),%edi
  0xa85a2450: jne    0xa85a245e
  0xa85a2452: addl   $0x1,0x10c(%esi)
  0xa85a2459: jmp    0xa85a24cf
  0xa85a245e: cmp    0x110(%esi),%edi
  0xa85a2464: jne    0xa85a2472
  0xa85a2466: addl   $0x1,0x114(%esi)
  0xa85a246d: jmp    0xa85a24cf
  0xa85a2472: cmpl   $0x0,0x108(%esi)
  0xa85a247c: jne    0xa85a2493
  0xa85a247e: mov    %edi,0x108(%esi)
  0xa85a2484: movl   $0x1,0x10c(%esi)
  0xa85a248e: jmp    0xa85a24cf
  0xa85a2493: cmpl   $0x0,0x110(%esi)
  0xa85a249d: jne    0xa85a24b4
  0xa85a249f: mov    %edi,0x110(%esi)
  0xa85a24a5: movl   $0x1,0x114(%esi)
  0xa85a24af: jmp    0xa85a24cf
  0xa85a24b4: jmp    0xa85a24cf
  0xa85a24b9: mov    $0x88a732a8,%esi   ;   {metadata(method data for {method} {0x8890da98} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}
  0xa85a24be: subl   $0x1,0x104(%esi)
  0xa85a24c5: jmp    0xa85a261a
  0xa85a24ca: jmp    0xa85a24cf
  0xa85a24cf: mov    %edx,%eax          ;*checkcast
                                        ; - java.lang.String::[email protected] (line 981)

  0xa85a24d1: mov    0x8(%ecx),%esi     ;*getfield value
                                        ; - java.lang.String::[email protected] (line 982)

  0xa85a24d4: mov    0x8(%esi),%edi     ;*arraylength
                                        ; - java.lang.String::[email protected] (line 982)
                                        ; implicit exception: dispatches to 0xa85a2622
  0xa85a24d7: mov    0x8(%eax),%eax     ;*getfield value
                                        ; - java.lang.String::[email protected] (line 983)
                                        ; implicit exception: dispatches to 0xa85a2627
  0xa85a24da: mov    0x8(%eax),%ebx     ;*arraylength
                                        ; - java.lang.String::[email protected] (line 983)
                                        ; implicit exception: dispatches to 0xa85a262c
  0xa85a24dd: cmp    %ebx,%edi
  0xa85a24df: mov    $0x88a732a8,%ebx   ;   {metadata(method data for {method} {0x8890da98} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}
  0xa85a24e4: mov    $0x11c,%edx
  0xa85a24e9: jne    0xa85a24f4
  0xa85a24ef: mov    $0x124,%edx
  0xa85a24f4: mov    (%ebx,%edx,1),%ecx
  0xa85a24f7: lea    0x1(%ecx),%ecx
  0xa85a24fa: mov    %ecx,(%ebx,%edx,1)
  0xa85a24fd: jne    0xa85a25e5         ;*if_icmpne
                                        ; - java.lang.String::[email protected] (line 983)

  0xa85a2503: mov    $0x0,%ebx
  0xa85a2508: jmp    0xa85a2592         ;*iload_3
                                        ; - java.lang.String::[email protected] (line 987)

  0xa85a250d: xchg   %ax,%ax
  0xa85a2510: cmp    0x8(%esi),%ebx
  0xa85a2513: jae    0xa85a2631
  0xa85a2519: movzwl 0xc(%esi,%ebx,2),%edi  ;*caload
                                        ; - java.lang.String::[email protected] (line 988)

  0xa85a251e: cmp    0x8(%eax),%ebx
  0xa85a2521: jae    0xa85a2639
  0xa85a2527: movzwl 0xc(%eax,%ebx,2),%edx  ;*caload
                                        ; - java.lang.String::[email protected] (line 988)

  0xa85a252c: cmp    %edx,%edi
  0xa85a252e: mov    $0x88a732a8,%edi   ;   {metadata(method data for {method} {0x8890da98} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}
  0xa85a2533: mov    $0x13c,%edx
  0xa85a2538: je     0xa85a2543
  0xa85a253e: mov    $0x144,%edx
  0xa85a2543: mov    (%edi,%edx,1),%ecx
  0xa85a2546: lea    0x1(%ecx),%ecx
  0xa85a2549: mov    %ecx,(%edi,%edx,1)
  0xa85a254c: jne    0xa85a25c5         ;*if_icmpeq
                                        ; - java.lang.String::[email protected] (line 988)

  0xa85a2552: mov    0x10(%esp),%edx
  0xa85a2556: inc    %ebx
  0xa85a2557: mov    $0x88a732a8,%edi   ;   {metadata(method data for {method} {0x8890da98} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}
  0xa85a255c: mov    0xa8(%edi),%ecx
  0xa85a2562: add    $0x8,%ecx
  0xa85a2565: mov    %ecx,0xa8(%edi)
  0xa85a256b: mov    $0x8890da98,%edi   ;   {metadata({method} {0x8890da98} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}
  0xa85a2570: and    $0xfff8,%ecx
  0xa85a2576: cmp    $0x0,%ecx
  0xa85a2579: je     0xa85a2641         ; OopMap{eax=Oop esi=Oop off=703}
                                        ;*goto
                                        ; - java.lang.String::[email protected] (line 990)

  0xa85a257f: test   %eax,0xb7712100    ;   {poll}
  0xa85a2585: mov    $0x88a732a8,%edi   ;   {metadata(method data for {method} {0x8890da98} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}
  0xa85a258a: incl   0x14c(%edi)
  0xa85a2590: mov    %edx,%edi          ;*goto
                                        ; - java.lang.String::[email protected] (line 990)

  0xa85a2592: mov    %edi,%edx
  0xa85a2594: dec    %edx
  0xa85a2595: cmp    $0x0,%edi
  0xa85a2598: mov    $0x88a732a8,%edi   ;   {metadata(method data for {method} {0x8890da98} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}
  0xa85a259d: mov    $0x12c,%ecx
  0xa85a25a2: je     0xa85a25ad
  0xa85a25a8: mov    $0x134,%ecx
  0xa85a25ad: mov    %edx,0x10(%esp)
  0xa85a25b1: mov    (%edi,%ecx,1),%edx
  0xa85a25b4: lea    0x1(%edx),%edx
  0xa85a25b7: mov    %edx,(%edi,%ecx,1)
  0xa85a25ba: je     0xa85a25d5
  0xa85a25c0: jmp    0xa85a2510         ;*ifeq
                                        ; - java.lang.String::[email protected] (line 987)

  0xa85a25c5: mov    $0x0,%eax
  0xa85a25ca: add    $0x18,%esp
  0xa85a25cd: pop    %ebp
  0xa85a25ce: test   %eax,0xb7712100    ;   {poll_return}
  0xa85a25d4: ret                       ;*ireturn
                                        ; - java.lang.String::[email protected] (line 989)

  0xa85a25d5: mov    $0x1,%eax
  0xa85a25da: add    $0x18,%esp
  0xa85a25dd: pop    %ebp
  0xa85a25de: test   %eax,0xb7712100    ;   {poll_return}
  0xa85a25e4: ret                       ;*ireturn
                                        ; - java.lang.String::[email protected] (line 992)

  0xa85a25e5: mov    $0x0,%eax
  0xa85a25ea: add    $0x18,%esp
  0xa85a25ed: pop    %ebp
  0xa85a25ee: test   %eax,0xb7712100    ;   {poll_return}
  0xa85a25f4: ret                       ;*ireturn
                                        ; - java.lang.String::[email protected] (line 995)

  0xa85a25f5: mov    $0x1,%eax
  0xa85a25fa: add    $0x18,%esp
  0xa85a25fd: pop    %ebp
  0xa85a25fe: test   %eax,0xb7712100    ;   {poll_return}
  0xa85a2604: ret
  0xa85a2605: mov    %eax,0x4(%esp)
  0xa85a2609: movl   $0xffffffff,(%esp)
  0xa85a2610: call   0xa859fe20         ; OopMap{ecx=Oop edx=Oop off=853}
                                        ;*synchronization entry
                                        ; - java.lang.String::[email protected] (line 977)
                                        ;   {runtime_call}
  0xa85a2615: jmp    0xa85a2313
  0xa85a261a: mov    %edx,(%esp)
  0xa85a261d: call   0xa859ea60         ; OopMap{ecx=Oop off=866}
                                        ;*checkcast
                                        ; - java.lang.String::[email protected] (line 981)
                                        ;   {runtime_call}
  0xa85a2622: call   0xa859d460         ; OopMap{eax=Oop esi=Oop off=871}
                                        ;*arraylength
                                        ; - java.lang.String::[email protected] (line 982)
                                        ;   {runtime_call}
  0xa85a2627: call   0xa859d460         ; OopMap{esi=Oop off=876}
                                        ;*getfield value
                                        ; - java.lang.String::[email protected] (line 983)
                                        ;   {runtime_call}
  0xa85a262c: call   0xa859d460         ; OopMap{esi=Oop eax=Oop off=881}
                                        ;*arraylength
                                        ; - java.lang.String::[email protected] (line 983)
                                        ;   {runtime_call}
  0xa85a2631: mov    %ebx,(%esp)
  0xa85a2634: call   0xa859d160         ; OopMap{eax=Oop esi=Oop off=889}
                                        ;*caload
                                        ; - java.lang.String::[email protected] (line 988)
                                        ;   {runtime_call}
  0xa85a2639: mov    %ebx,(%esp)
  0xa85a263c: call   0xa859d160         ; OopMap{eax=Oop esi=Oop off=897}
                                        ;*caload
                                        ; - java.lang.String::[email protected] (line 988)
                                        ;   {runtime_call}
  0xa85a2641: mov    %edi,0x4(%esp)
  0xa85a2645: movl   $0x4a,(%esp)
  0xa85a264c: call   0xa859fe20         ; OopMap{eax=Oop esi=Oop off=913}
                                        ;*goto
                                        ; - java.lang.String::[email protected] (line 990)
                                        ;   {runtime_call}
  0xa85a2651: jmp    0xa85a257f
  0xa85a2656: nop
  0xa85a2657: nop
  0xa85a2658: mov    %esp,%esi
  0xa85a265a: shr    $0xc,%esi
  0xa85a265d: mov    0x188a440(,%esi,4),%esi  ;   {external_word}
  0xa85a2664: mov    0x19c(%esi),%eax
  0xa85a266a: movl   $0x0,0x19c(%esi)
  0xa85a2674: movl   $0x0,0x1a0(%esi)
  0xa85a267e: add    $0x18,%esp
  0xa85a2681: pop    %ebp
  0xa85a2682: jmp    0xa8556820         ;   {runtime_call}
  0xa85a2687: hlt
  0xa85a2688: hlt
  0xa85a2689: hlt
  0xa85a268a: hlt
  0xa85a268b: hlt
  0xa85a268c: hlt
  0xa85a268d: hlt
  0xa85a268e: hlt
  0xa85a268f: hlt
  0xa85a2690: hlt
  0xa85a2691: hlt
  0xa85a2692: hlt
  0xa85a2693: hlt
  0xa85a2694: hlt
  0xa85a2695: hlt
  0xa85a2696: hlt
  0xa85a2697: hlt
  0xa85a2698: hlt
  0xa85a2699: hlt
  0xa85a269a: hlt
  0xa85a269b: hlt
  0xa85a269c: hlt
  0xa85a269d: hlt
  0xa85a269e: hlt
  0xa85a269f: hlt
[Exception Handler]
[Stub Code]
  0xa85a26a0: call   0xa859e860         ;   {no_reloc}
  0xa85a26a5: push   $0x1790172         ;   {external_word}
  0xa85a26aa: call   0xa85a26af
  0xa85a26af: pusha
  0xa85a26b0: call   0x0150c230         ;   {runtime_call}
  0xa85a26b5: hlt
[Deopt Handler Code]
  0xa85a26b6: push   $0xa85a26b6        ;   {section_word}
  0xa85a26bb: jmp    0xa853c520         ;   {runtime_call}
Decoding compiled method 0xa85a1d48:
Code:
[Entry Point]
[Constants]
  # {method} {0x8890d450} 'charAt' '(I)C' in 'java/lang/String'
  # this:     ecx       = 'java/lang/String'
  # parm0:    edx       = int
  #           [sp+0x20]  (sp of caller)
  0xa85a1e60: nop
  0xa85a1e61: nop
  0xa85a1e62: nop
  0xa85a1e63: nop
  0xa85a1e64: nop
  0xa85a1e65: nop
  0xa85a1e66: nop
  0xa85a1e67: nop
  0xa85a1e68: nop
  0xa85a1e69: nop
  0xa85a1e6a: nop
  0xa85a1e6b: nop
  0xa85a1e6c: nop
  0xa85a1e6d: nop
  0xa85a1e6e: nop
  0xa85a1e6f: nop
  0xa85a1e70: nop
  0xa85a1e71: nop
  0xa85a1e72: nop
  0xa85a1e73: nop
  0xa85a1e74: nop
  0xa85a1e75: nop
  0xa85a1e76: nop
  0xa85a1e77: cmp    0x4(%ecx),%eax
  0xa85a1e7a: jne    0xa853b520         ;   {runtime_call}
[Verified Entry Point]
  0xa85a1e80: mov    %eax,-0x4000(%esp)
  0xa85a1e87: push   %ebp
  0xa85a1e88: sub    $0x18,%esp
  0xa85a1e8b: mov    %edx,%esi
  0xa85a1e8d: mov    $0x88a34c40,%eax   ;   {metadata(method data for {method} {0x8890d450} 'charAt' '(I)C' in 'java/lang/String')}
  0xa85a1e92: mov    0xa4(%eax),%edx
  0xa85a1e98: add    $0x8,%edx
  0xa85a1e9b: mov    %edx,0xa4(%eax)
  0xa85a1ea1: mov    $0x8890d450,%eax   ;   {metadata({method} {0x8890d450} 'charAt' '(I)C' in 'java/lang/String')}
  0xa85a1ea6: and    $0x1ff8,%edx
  0xa85a1eac: cmp    $0x0,%edx
  0xa85a1eaf: je     0xa85a1f49         ;*iload_1
                                        ; - java.lang.String::[email protected] (line 657)

  0xa85a1eb5: cmp    $0x0,%esi
  0xa85a1eb8: mov    $0x88a34c40,%eax   ;   {metadata(method data for {method} {0x8890d450} 'charAt' '(I)C' in 'java/lang/String')}
  0xa85a1ebd: mov    $0xcc,%edx
  0xa85a1ec2: jl     0xa85a1ecd
  0xa85a1ec8: mov    $0xd4,%edx
  0xa85a1ecd: mov    (%eax,%edx,1),%edi
  0xa85a1ed0: lea    0x1(%edi),%edi
  0xa85a1ed3: mov    %edi,(%eax,%edx,1)
  0xa85a1ed6: jl     0xa85a1f18         ;*iflt
                                        ; - java.lang.String::[email protected] (line 657)

  0xa85a1edc: mov    0x8(%ecx),%eax     ;*getfield value
                                        ; - java.lang.String::[email protected] (line 657)

  0xa85a1edf: mov    0x8(%eax),%edx     ;*arraylength
                                        ; - java.lang.String::[email protected] (line 657)
                                        ; implicit exception: dispatches to 0xa85a1f5e
  0xa85a1ee2: cmp    %edx,%esi
  0xa85a1ee4: mov    $0x88a34c40,%edx   ;   {metadata(method data for {method} {0x8890d450} 'charAt' '(I)C' in 'java/lang/String')}
  0xa85a1ee9: mov    $0xdc,%ecx
  0xa85a1eee: jl     0xa85a1ef9
  0xa85a1ef4: mov    $0xe4,%ecx
  0xa85a1ef9: mov    (%edx,%ecx,1),%edi
  0xa85a1efc: lea    0x1(%edi),%edi
  0xa85a1eff: mov    %edi,(%edx,%ecx,1)
  0xa85a1f02: jge    0xa85a1f18         ;*if_icmplt
                                        ; - java.lang.String::[email protected] (line 657)

  0xa85a1f08: movzwl 0xc(%eax,%esi,2),%eax  ;*caload
                                        ; - java.lang.String::[email protected] (line 660)

  0xa85a1f0d: add    $0x18,%esp
  0xa85a1f10: pop    %ebp
  0xa85a1f11: test   %eax,0xb7712100    ;   {poll_return}
  0xa85a1f17: ret                       ;*ireturn
                                        ; - java.lang.String::[email protected] (line 660)

  0xa85a1f18: jmp    0xa85a1f6d         ;   {no_reloc}
  0xa85a1f1d: jmp    0xa85a1f77         ;*new  ; - java.lang.String::[email protected] (line 658)

  0xa85a1f22: mov    %eax,%edx
  0xa85a1f24: mov    $0x88a34c40,%ecx   ;   {metadata(method data for {method} {0x8890d450} 'charAt' '(I)C' in 'java/lang/String')}
  0xa85a1f29: addl   $0x1,0xec(%ecx)
  0xa85a1f30: mov    %esi,%edx
  0xa85a1f32: mov    %eax,%ecx          ;*invokespecial <init>
                                        ; - java.lang.String::[email protected] (line 658)

  0xa85a1f34: mov    %eax,0x10(%esp)
  0xa85a1f38: nop
  0xa85a1f39: nop
  0xa85a1f3a: nop
  0xa85a1f3b: call   0xa853b760         ; OopMap{[16]=Oop off=224}
                                        ;*invokespecial <init>
                                        ; - java.lang.String::[email protected] (line 658)
                                        ;   {optimized virtual_call}
  0xa85a1f40: mov    0x10(%esp),%eax
  0xa85a1f44: jmp    0xa85a1fa8
  0xa85a1f49: mov    %eax,0x4(%esp)
  0xa85a1f4d: movl   $0xffffffff,(%esp)
  0xa85a1f54: call   0xa859fe20         ; OopMap{ecx=Oop off=249}
                                        ;*synchronization entry
                                        ; - java.lang.String::[email protected] (line 657)
                                        ;   {runtime_call}
  0xa85a1f59: jmp    0xa85a1eb5
  0xa85a1f5e: call   0xa859d460         ; OopMap{eax=Oop off=259}
                                        ;*arraylength
                                        ; - java.lang.String::[email protected] (line 657)
                                        ;   {runtime_call}
  0xa85a1f63: mov    $0x0,%edx          ;   {metadata(NULL)}
  0xa85a1f68: mov    $0x5050a00,%eax
  0xa85a1f6d: call   0xa859f520         ; OopMap{off=274}
                                        ;*new  ; - java.lang.String::[email protected] (line 658)
                                        ;   {runtime_call}
  0xa85a1f72: jmp    0xa85a1f18
  0xa85a1f74: nop
  0xa85a1f75: nop
  0xa85a1f76: nop
  0xa85a1f77: mov    %edx,%edx
  0xa85a1f79: call   0xa859d6a0         ; OopMap{off=286}
                                        ;*new  ; - java.lang.String::[email protected] (line 658)
                                        ;   {runtime_call}
  0xa85a1f7e: jmp    0xa85a1f22
  0xa85a1f80: nop
  0xa85a1f81: nop
  0xa85a1f82: mov    %esp,%esi
  0xa85a1f84: shr    $0xc,%esi
  0xa85a1f87: mov    0x188a440(,%esi,4),%esi  ;   {external_word}
  0xa85a1f8e: mov    0x19c(%esi),%eax
  0xa85a1f94: movl   $0x0,0x19c(%esi)
  0xa85a1f9e: movl   $0x0,0x1a0(%esi)
  0xa85a1fa8: add    $0x18,%esp
  0xa85a1fab: pop    %ebp
  0xa85a1fac: jmp    0xa8556820         ;   {runtime_call}
  0xa85a1fb1: hlt
  0xa85a1fb2: hlt
  0xa85a1fb3: hlt
  0xa85a1fb4: hlt
  0xa85a1fb5: hlt
  0xa85a1fb6: hlt
  0xa85a1fb7: hlt
  0xa85a1fb8: hlt
  0xa85a1fb9: hlt
  0xa85a1fba: hlt
  0xa85a1fbb: hlt
  0xa85a1fbc: hlt
  0xa85a1fbd: hlt
  0xa85a1fbe: hlt
  0xa85a1fbf: hlt
[Stub Code]
  0xa85a1fc0: nop                       ;   {no_reloc}
  0xa85a1fc1: nop
  0xa85a1fc2: mov    $0x0,%ebx          ;   {static_stub}
  0xa85a1fc7: jmp    0xa85a1fc7         ;   {runtime_call}
[Exception Handler]
  0xa85a1fcc: call   0xa859e860         ;   {runtime_call}
  0xa85a1fd1: push   $0x1790172         ;   {external_word}
  0xa85a1fd6: call   0xa85a1fdb
  0xa85a1fdb: pusha
  0xa85a1fdc: call   0x0150c230         ;   {runtime_call}
  0xa85a1fe1: hlt
[Deopt Handler Code]
  0xa85a1fe2: push   $0xa85a1fe2        ;   {section_word}
  0xa85a1fe7: jmp    0xa853c520         ;   {runtime_call}
Decoding compiled method 0xa85a1a88:
Code:
[Entry Point]
[Constants]
  # {method} {0x8890d360} 'length' '()I' in 'java/lang/String'
  #           [sp+0x20]  (sp of caller)
  0xa85a1ba0: nop
  0xa85a1ba1: nop
  0xa85a1ba2: nop
  0xa85a1ba3: nop
  0xa85a1ba4: nop
  0xa85a1ba5: nop
  0xa85a1ba6: nop
  0xa85a1ba7: nop
  0xa85a1ba8: nop
  0xa85a1ba9: nop
  0xa85a1baa: nop
  0xa85a1bab: nop
  0xa85a1bac: nop
  0xa85a1bad: nop
  0xa85a1bae: nop
  0xa85a1baf: nop
  0xa85a1bb0: nop
  0xa85a1bb1: nop
  0xa85a1bb2: nop
  0xa85a1bb3: nop
  0xa85a1bb4: nop
  0xa85a1bb5: nop
  0xa85a1bb6: nop
  0xa85a1bb7: cmp    0x4(%ecx),%eax
  0xa85a1bba: jne    0xa853b520         ;   {runtime_call}
[Verified Entry Point]
  0xa85a1bc0: mov    %eax,-0x4000(%esp)
  0xa85a1bc7: push   %ebp
  0xa85a1bc8: sub    $0x18,%esp
  0xa85a1bcb: mov    $0x88a73a70,%eax   ;   {metadata(method data for {method} {0x8890d360} 'length' '()I' in 'java/lang/String')}
  0xa85a1bd0: mov    0xa4(%eax),%esi
  0xa85a1bd6: add    $0x8,%esi
  0xa85a1bd9: mov    %esi,0xa4(%eax)
  0xa85a1bdf: mov    $0x8890d360,%eax   ;   {metadata({method} {0x8890d360} 'length' '()I' in 'java/lang/String')}
  0xa85a1be4: and    $0x1ff8,%esi
  0xa85a1bea: cmp    $0x0,%esi
  0xa85a1bed: je     0xa85a1c04         ;*aload_0
                                        ; - java.lang.String::[email protected] (line 623)

  0xa85a1bf3: mov    0x8(%ecx),%eax     ;*getfield value
                                        ; - java.lang.String::[email protected] (line 623)

  0xa85a1bf6: mov    0x8(%eax),%eax     ;*arraylength
                                        ; - java.lang.String::[email protected] (line 623)
                                        ; implicit exception: dispatches to 0xa85a1c16
  0xa85a1bf9: add    $0x18,%esp
  0xa85a1bfc: pop    %ebp
  0xa85a1bfd: test   %eax,0xb7712100    ;   {poll_return}
  0xa85a1c03: ret
  0xa85a1c04: mov    %eax,0x4(%esp)
  0xa85a1c08: movl   $0xffffffff,(%esp)
  0xa85a1c0f: call   0xa859fe20         ; OopMap{ecx=Oop off=116}
                                        ;*synchronization entry
                                        ; - java.lang.String::[email protected] (line 623)
                                        ;   {runtime_call}
  0xa85a1c14: jmp    0xa85a1bf3
  0xa85a1c16: call   0xa859d460         ; OopMap{off=123}
                                        ;*arraylength
                                        ; - java.lang.String::[email protected] (line 623)
                                        ;   {runtime_call}
  0xa85a1c1b: nop
  0xa85a1c1c: nop
  0xa85a1c1d: mov    %esp,%esi
  0xa85a1c1f: shr    $0xc,%esi
  0xa85a1c22: mov    0x188a440(,%esi,4),%esi  ;   {external_word}
  0xa85a1c29: mov    0x19c(%esi),%eax
  0xa85a1c2f: movl   $0x0,0x19c(%esi)
  0xa85a1c39: movl   $0x0,0x1a0(%esi)
  0xa85a1c43: add    $0x18,%esp
  0xa85a1c46: pop    %ebp
  0xa85a1c47: jmp    0xa8556820         ;   {runtime_call}
  0xa85a1c4c: hlt
  0xa85a1c4d: hlt
  0xa85a1c4e: hlt
  0xa85a1c4f: hlt
  0xa85a1c50: hlt
  0xa85a1c51: hlt
  0xa85a1c52: hlt
  0xa85a1c53: hlt
  0xa85a1c54: hlt
  0xa85a1c55: hlt
  0xa85a1c56: hlt
  0xa85a1c57: hlt
  0xa85a1c58: hlt
  0xa85a1c59: hlt
  0xa85a1c5a: hlt
  0xa85a1c5b: hlt
  0xa85a1c5c: hlt
  0xa85a1c5d: hlt
  0xa85a1c5e: hlt
  0xa85a1c5f: hlt
[Exception Handler]
[Stub Code]
  0xa85a1c60: call   0xa859e860         ;   {no_reloc}
  0xa85a1c65: push   $0x1790172         ;   {external_word}
  0xa85a1c6a: call   0xa85a1c6f
  0xa85a1c6f: pusha
  0xa85a1c70: call   0x0150c230         ;   {runtime_call}
  0xa85a1c75: hlt
[Deopt Handler Code]
  0xa85a1c76: push   $0xa85a1c76        ;   {section_word}
  0xa85a1c7b: jmp    0xa853c520         ;   {runtime_call}
Decoding compiled method 0xa85a1588:
Code:
[Entry Point]
[Constants]
  # {method} {0x88928b90} 'get' '()Ljava/lang/Object;' in 'java/lang/ref/Reference'
  #           [sp+0x20]  (sp of caller)
  0xa85a1680: nop
  0xa85a1681: nop
  0xa85a1682: nop
  0xa85a1683: nop
  0xa85a1684: nop
  0xa85a1685: nop
  0xa85a1686: nop
  0xa85a1687: nop
  0xa85a1688: nop
  0xa85a1689: nop
  0xa85a168a: nop
  0xa85a168b: nop
  0xa85a168c: nop
  0xa85a168d: nop
  0xa85a168e: nop
  0xa85a168f: nop
  0xa85a1690: nop
  0xa85a1691: nop
  0xa85a1692: nop
  0xa85a1693: nop
  0xa85a1694: nop
  0xa85a1695: nop
  0xa85a1696: nop
  0xa85a1697: cmp    0x4(%ecx),%eax
  0xa85a169a: jne    0xa853b520         ;   {runtime_call}
[Verified Entry Point]
  0xa85a16a0: mov    %eax,-0x4000(%esp)
  0xa85a16a7: push   %ebp
  0xa85a16a8: sub    $0x18,%esp
  0xa85a16ab: mov    0x8(%ecx),%eax     ;*aload_0
                                        ; - java.lang.ref.Reference::[email protected] (line 254)

  0xa85a16ae: add    $0x18,%esp
  0xa85a16b1: pop    %ebp
  0xa85a16b2: test   %eax,0xb7712100    ;   {poll_return}
  0xa85a16b8: ret
  0xa85a16b9: nop
  0xa85a16ba: nop
  0xa85a16bb: mov    %esp,%esi
  0xa85a16bd: shr    $0xc,%esi
  0xa85a16c0: mov    0x188a440(,%esi,4),%esi  ;   {external_word}
  0xa85a16c7: mov    0x19c(%esi),%eax
  0xa85a16cd: movl   $0x0,0x19c(%esi)
  0xa85a16d7: movl   $0x0,0x1a0(%esi)
  0xa85a16e1: add    $0x18,%esp
  0xa85a16e4: pop    %ebp
  0xa85a16e5: jmp    0xa8556820         ;   {runtime_call}
  0xa85a16ea: hlt
  0xa85a16eb: hlt
  0xa85a16ec: hlt
  0xa85a16ed: hlt
  0xa85a16ee: hlt
  0xa85a16ef: hlt
  0xa85a16f0: hlt
  0xa85a16f1: hlt
  0xa85a16f2: hlt
  0xa85a16f3: hlt
  0xa85a16f4: hlt
  0xa85a16f5: hlt
  0xa85a16f6: hlt
  0xa85a16f7: hlt
  0xa85a16f8: hlt
  0xa85a16f9: hlt
  0xa85a16fa: hlt
  0xa85a16fb: hlt
  0xa85a16fc: hlt
  0xa85a16fd: hlt
  0xa85a16fe: hlt
  0xa85a16ff: hlt
[Exception Handler]
[Stub Code]
  0xa85a1700: call   0xa859e860         ;   {no_reloc}
  0xa85a1705: push   $0x1790172         ;   {external_word}
  0xa85a170a: call   0xa85a170f
  0xa85a170f: pusha
  0xa85a1710: call   0x0150c230         ;   {runtime_call}
  0xa85a1715: hlt
[Deopt Handler Code]
  0xa85a1716: push   $0xa85a1716        ;   {section_word}
  0xa85a171b: jmp    0xa853c520         ;   {runtime_call}
Decoding compiled method 0xa85a1188:
Code:
[Entry Point]
[Constants]
  # {method} {0x8890ab68} '<init>' '()V' in 'java/lang/Object'
  #           [sp+0x20]  (sp of caller)
  0xa85a12a0: nop
  0xa85a12a1: nop
  0xa85a12a2: nop
  0xa85a12a3: nop
  0xa85a12a4: nop
  0xa85a12a5: nop
  0xa85a12a6: nop
  0xa85a12a7: nop
  0xa85a12a8: nop
  0xa85a12a9: nop
  0xa85a12aa: nop
  0xa85a12ab: nop
  0xa85a12ac: nop
  0xa85a12ad: nop
  0xa85a12ae: nop
  0xa85a12af: nop
  0xa85a12b0: nop
  0xa85a12b1: nop
  0xa85a12b2: nop
  0xa85a12b3: nop
  0xa85a12b4: nop
  0xa85a12b5: nop
  0xa85a12b6: nop
  0xa85a12b7: cmp    0x4(%ecx),%eax
  0xa85a12ba: jne    0xa853b520         ;   {runtime_call}
[Verified Entry Point]
  0xa85a12c0: mov    %eax,-0x4000(%esp)
  0xa85a12c7: push   %ebp
  0xa85a12c8: sub    $0x18,%esp
  0xa85a12cb: mov    $0x88a1c7c0,%esi   ;   {metadata(method data for {method} {0x8890ab68} '<init>' '()V' in 'java/lang/Object')}
  0xa85a12d0: mov    0xa4(%esi),%edi
  0xa85a12d6: add    $0x8,%edi
  0xa85a12d9: mov    %edi,0xa4(%esi)
  0xa85a12df: mov    $0x8890ab68,%esi   ;   {metadata({method} {0x8890ab68} '<init>' '()V' in 'java/lang/Object')}
  0xa85a12e4: and    $0x1ff8,%edi
  0xa85a12ea: cmp    $0x0,%edi
  0xa85a12ed: je     0xa85a130a
  0xa85a12f3: mov    %ecx,(%esp)        ;*return
                                        ; - java.lang.Object::<init>@0 (line 37)

  0xa85a12f6: mov    %ecx,0x10(%esp)
  0xa85a12fa: call   0xa859d560         ; OopMap{[16]=Oop off=95}
                                        ;*return
                                        ; - java.lang.Object::<init>@0 (line 37)
                                        ;   {runtime_call}
  0xa85a12ff: add    $0x18,%esp
  0xa85a1302: pop    %ebp
  0xa85a1303: test   %eax,0xb7712100    ;   {poll_return}
  0xa85a1309: ret
  0xa85a130a: mov    %esi,0x4(%esp)
  0xa85a130e: movl   $0xffffffff,(%esp)
  0xa85a1315: call   0xa859fe20         ; OopMap{ecx=Oop off=122}
                                        ;*synchronization entry
                                        ; - java.lang.Object::<init>@-1 (line 37)
                                        ;   {runtime_call}
  0xa85a131a: jmp    0xa85a12f3
  0xa85a131c: nop
  0xa85a131d: nop
  0xa85a131e: mov    %esp,%esi
  0xa85a1320: shr    $0xc,%esi
  0xa85a1323: mov    0x188a440(,%esi,4),%esi  ;   {external_word}
  0xa85a132a: mov    0x19c(%esi),%eax
  0xa85a1330: movl   $0x0,0x19c(%esi)
  0xa85a133a: movl   $0x0,0x1a0(%esi)
  0xa85a1344: add    $0x18,%esp
  0xa85a1347: pop    %ebp
  0xa85a1348: jmp    0xa8556820         ;   {runtime_call}
  0xa85a134d: hlt
  0xa85a134e: hlt
  0xa85a134f: hlt
  0xa85a1350: hlt
  0xa85a1351: hlt
  0xa85a1352: hlt
  0xa85a1353: hlt
  0xa85a1354: hlt
  0xa85a1355: hlt
  0xa85a1356: hlt
  0xa85a1357: hlt
  0xa85a1358: hlt
  0xa85a1359: hlt
  0xa85a135a: hlt
  0xa85a135b: hlt
  0xa85a135c: hlt
  0xa85a135d: hlt
  0xa85a135e: hlt
  0xa85a135f: hlt
[Exception Handler]
[Stub Code]
  0xa85a1360: call   0xa859e860         ;   {no_reloc}
  0xa85a1365: push   $0x1790172         ;   {external_word}
  0xa85a136a: call   0xa85a136f
  0xa85a136f: pusha
  0xa85a1370: call   0x0150c230         ;   {runtime_call}
  0xa85a1375: hlt
[Deopt Handler Code]
  0xa85a1376: push   $0xa85a1376        ;   {section_word}
  0xa85a137b: jmp    0xa853c520         ;   {runtime_call}
Decoding compiled method 0xa85a0ec8:
Code:
[Entry Point]
  # {method} {0x8891cd90} 'arraycopy' '(Ljava/lang/Object;ILjava/lang/Object;II)V' in 'java/lang/System'
  # parm0:    ecx       = 'java/lang/Object'
  # parm1:    edx       = int
  # parm2:    [sp+0x40]   = 'java/lang/Object'  (sp of caller)
  # parm3:    [sp+0x44]   = int
  # parm4:    [sp+0x48]   = int
  0xa85a0fe0: cmp    0x4(%ecx),%eax
  0xa85a0fe3: je     0xa85a0ff0
  0xa85a0fe9: jmp    0xa853b520         ;   {runtime_call}
  0xa85a0fee: xchg   %ax,%ax
[Verified Entry Point]
  0xa85a0ff0: mov    %eax,-0x4000(%esp)
  0xa85a0ff7: push   %ebp
  0xa85a0ff8: mov    %esp,%ebp
  0xa85a0ffa: sub    $0x38,%esp
  0xa85a0ffd: mov    %esp,%edi
  0xa85a0fff: shr    $0xc,%edi
  0xa85a1002: mov    0x188a440(,%edi,4),%edi  ;   {external_word}
  0xa85a1009: mov    %ecx,0x1c(%esp)
  0xa85a100d: xor    %eax,%eax
  0xa85a100f: cmp    $0x0,%ecx
  0xa85a1012: je     0xa85a101c
  0xa85a1018: lea    0x1c(%esp),%eax
  0xa85a101c: mov    %eax,0x8(%esp)
  0xa85a1020: mov    %edx,0xc(%esp)
  0xa85a1024: xor    %eax,%eax
  0xa85a1026: cmpl   $0x0,0x8(%ebp)
  0xa85a102d: je     0xa85a1036
  0xa85a1033: lea    0x8(%ebp),%eax
  0xa85a1036: mov    %eax,0x10(%esp)
  0xa85a103a: mov    0xc(%ebp),%eax
  0xa85a103d: mov    %eax,0x14(%esp)
  0xa85a1041: mov    0x10(%ebp),%eax
  0xa85a1044: mov    %eax,0x18(%esp)
  0xa85a1048: mov    $0x9e200ab8,%esi   ;   {oop(a 'java/lang/Class' = 'java/lang/System')}
  0xa85a104d: mov    %esi,0x24(%esp)
  0xa85a1051: lea    0x24(%esp),%esi
  0xa85a1055: mov    %esi,0x4(%esp)     ; OopMap{[28]=Oop [64]=Oop [36]=Oop off=121}
  0xa85a1059: movl   $0xa85a1059,0x12c(%edi)  ;   {section_word}
  0xa85a1063: mov    %esp,0x128(%edi)
  0xa85a1069: cmpb   $0x0,0x18757c2     ;   {external_word}
  0xa85a1070: je     0xa85a1085
  0xa85a1076: mov    $0x8891cd90,%eax   ;   {metadata({method} {0x8891cd90} 'arraycopy' '(Ljava/lang/Object;ILjava/lang/Object;II)V' in 'java/lang/System')}
  0xa85a107b: push   %eax
  0xa85a107c: push   %edi
  0xa85a107d: call   0x0165f200         ;   {runtime_call}
  0xa85a1082: add    $0x8,%esp
  0xa85a1085: lea    0x138(%edi),%edx
  0xa85a108b: mov    %edx,(%esp)
  0xa85a108e: movl   $0x4,0x174(%edi)
  0xa85a1098: call   0x0140b220         ;   {runtime_call}
  0xa85a109d: vzeroupper
  0xa85a10a0: movl   $0x5,0x174(%edi)
  0xa85a10aa: mov    %edi,%ecx
  0xa85a10ac: shr    $0x3,%ecx
  0xa85a10af: and    $0xffc,%ecx
  0xa85a10b5: mov    %ecx,-0x488ef000(,%ecx,1)
                                        ;   {external_word}
  0xa85a10bc: cmpl   $0x0,0x187fc60     ;   {external_word}
  0xa85a10c6: jne    0xa85a10d9
  0xa85a10cc: cmpl   $0x0,0x18(%edi)
  0xa85a10d3: je     0xa85a10e2
  0xa85a10d9: push   %edi
  0xa85a10da: call   0x016fad00         ;   {runtime_call}
  0xa85a10df: add    $0x4,%esp
  0xa85a10e2: movl   $0x8,0x174(%edi)
  0xa85a10ec: cmpl   $0x1,0x194(%edi)
  0xa85a10f6: je     0xa85a114a
  0xa85a10fc: cmpb   $0x0,0x18757c2     ;   {external_word}
  0xa85a1103: je     0xa85a1118
  0xa85a1109: mov    $0x8891cd90,%eax   ;   {metadata({method} {0x8891cd90} 'arraycopy' '(Ljava/lang/Object;ILjava/lang/Object;II)V' in 'java/lang/System')}
  0xa85a110e: push   %eax
  0xa85a110f: push   %edi
  0xa85a1110: call   0x0165f1d0         ;   {runtime_call}
  0xa85a1115: add    $0x8,%esp
  0xa85a1118: movl   $0x0,0x128(%edi)
  0xa85a1122: movl   $0x0,0x12c(%edi)
  0xa85a112c: mov    0x20(%edi),%ecx
  0xa85a112f: movl   $0x0,0x80(%ecx)
  0xa85a1139: cmpl   $0x0,0x4(%edi)
  0xa85a1140: jne    0xa85a1151
  0xa85a1146: mov    %ebp,%esp
  0xa85a1148: pop    %ebp
  0xa85a1149: ret
  0xa85a114a: call   0x0165f1a0         ;   {runtime_call}
  0xa85a114f: jmp    0xa85a10fc
  0xa85a1151: emms
  0xa85a1153: mov    %ebp,%esp
  0xa85a1155: pop    %ebp
  0xa85a1156: jmp    Stub::forward exception  ;   {runtime_call}
  0xa85a115b: hlt
Decoding compiled method 0xa85a0c08:
Code:
[Entry Point]
[Verified Entry Point]
[Constants]
  # {method} {0x889bd9a8} 'min' '(II)I' in 'java/lang/Math'
  # parm0:    ecx       = int
  # parm1:    edx       = int
  #           [sp+0x20]  (sp of caller)
  0xa85a0d20: mov    %eax,-0x4000(%esp)
  0xa85a0d27: push   %ebp
  0xa85a0d28: sub    $0x18,%esp
  0xa85a0d2b: mov    $0x88a60090,%eax   ;   {metadata(method data for {method} {0x889bd9a8} 'min' '(II)I' in 'java/lang/Math')}
  0xa85a0d30: mov    0xa4(%eax),%esi
  0xa85a0d36: add    $0x8,%esi
  0xa85a0d39: mov    %esi,0xa4(%eax)
  0xa85a0d3f: mov    $0x889bd9a8,%eax   ;   {metadata({method} {0x889bd9a8} 'min' '(II)I' in 'java/lang/Math')}
  0xa85a0d44: and    $0x1ff8,%esi
  0xa85a0d4a: cmp    $0x0,%esi
  0xa85a0d4d: je     0xa85a0d98         ;*iload_0
                                        ; - java.lang.Math::[email protected] (line 1336)

  0xa85a0d53: cmp    %edx,%ecx
  0xa85a0d55: mov    $0x88a60090,%eax   ;   {metadata(method data for {method} {0x889bd9a8} 'min' '(II)I' in 'java/lang/Math')}
  0xa85a0d5a: mov    $0xcc,%esi
  0xa85a0d5f: jg     0xa85a0d6a
  0xa85a0d65: mov    $0xd4,%esi
  0xa85a0d6a: mov    (%eax,%esi,1),%edi
  0xa85a0d6d: lea    0x1(%edi),%edi
  0xa85a0d70: mov    %edi,(%eax,%esi,1)
  0xa85a0d73: jg     0xa85a0d89         ;*if_icmpgt
                                        ; - java.lang.Math::[email protected] (line 1336)

  0xa85a0d79: mov    $0x88a60090,%eax   ;   {metadata(method data for {method} {0x889bd9a8} 'min' '(II)I' in 'java/lang/Math')}
  0xa85a0d7e: incl   0xdc(%eax)
  0xa85a0d84: jmp    0xa85a0d8b         ;*goto
                                        ; - java.lang.Math::[email protected] (line 1336)

  0xa85a0d89: mov    %edx,%ecx          ;*ireturn
                                        ; - java.lang.Math::[email protected] (line 1336)

  0xa85a0d8b: mov    %ecx,%eax
  0xa85a0d8d: add    $0x18,%esp
  0xa85a0d90: pop    %ebp
  0xa85a0d91: test   %eax,0xb7712100    ;   {poll_return}
  0xa85a0d97: ret
  0xa85a0d98: mov    %eax,0x4(%esp)
  0xa85a0d9c: movl   $0xffffffff,(%esp)
  0xa85a0da3: call   0xa859fe20         ; OopMap{off=136}
                                        ;*synchronization entry
                                        ; - java.lang.Math::[email protected] (line 1336)
                                        ;   {runtime_call}
  0xa85a0da8: jmp    0xa85a0d53
  0xa85a0daa: nop
  0xa85a0dab: nop
  0xa85a0dac: mov    %esp,%esi
  0xa85a0dae: shr    $0xc,%esi
  0xa85a0db1: mov    0x188a440(,%esi,4),%esi  ;   {external_word}
  0xa85a0db8: mov    0x19c(%esi),%eax
  0xa85a0dbe: movl   $0x0,0x19c(%esi)
  0xa85a0dc8: movl   $0x0,0x1a0(%esi)
  0xa85a0dd2: add    $0x18,%esp
  0xa85a0dd5: pop    %ebp
  0xa85a0dd6: jmp    0xa8556820         ;   {runtime_call}
  0xa85a0ddb: hlt
  0xa85a0ddc: hlt
  0xa85a0ddd: hlt
  0xa85a0dde: hlt
  0xa85a0ddf: hlt
[Exception Handler]
[Stub Code]
  0xa85a0de0: call   0xa859e860         ;   {no_reloc}
  0xa85a0de5: push   $0x1790172         ;   {external_word}
  0xa85a0dea: call   0xa85a0def
  0xa85a0def: pusha
  0xa85a0df0: call   0x0150c230         ;   {runtime_call}
  0xa85a0df5: hlt
[Deopt Handler Code]
  0xa85a0df6: push   $0xa85a0df6        ;   {section_word}
  0xa85a0dfb: jmp    0xa853c520         ;   {runtime_call}
Decoding compiled method 0xa85a0848:
Code:
[Entry Point]
[Constants]
  # {method} {0x88961028} 'ensureCapacityInternal' '(I)V' in 'java/lang/AbstractStringBuilder'
  # this:     ecx       = 'java/lang/AbstractStringBuilder'
  # parm0:    edx       = int
  #           [sp+0x20]  (sp of caller)
  0xa85a0960: nop
  0xa85a0961: nop
  0xa85a0962: nop
  0xa85a0963: nop
  0xa85a0964: nop
  0xa85a0965: nop
  0xa85a0966: nop
  0xa85a0967: nop
  0xa85a0968: nop
  0xa85a0969: nop
  0xa85a096a: nop
  0xa85a096b: nop
  0xa85a096c: nop
  0xa85a096d: nop
  0xa85a096e: nop
  0xa85a096f: nop
  0xa85a0970: nop
  0xa85a0971: nop
  0xa85a0972: nop
  0xa85a0973: nop
  0xa85a0974: nop
  0xa85a0975: nop
  0xa85a0976: nop
  0xa85a0977: cmp    0x4(%ecx),%eax
  0xa85a097a: jne    0xa853b520         ;   {runtime_call}
[Verified Entry Point]
  0xa85a0980: mov    %eax,-0x4000(%esp)
  0xa85a0987: push   %ebp
  0xa85a0988: sub    $0x18,%esp
  0xa85a098b: mov    $0x88a803f0,%esi   ;   {metadata(method data for {method} {0x88961028} 'ensureCapacityInternal' '(I)V' in 'java/lang/AbstractStringBuilder')}
  0xa85a0990: mov    0xa4(%esi),%edi
  0xa85a0996: add    $0x8,%edi
  0xa85a0999: mov    %edi,0xa4(%esi)
  0xa85a099f: mov    $0x88961028,%esi   ;   {metadata({method} {0x88961028} 'ensureCapacityInternal' '(I)V' in 'java/lang/AbstractStringBuilder')}
  0xa85a09a4: and    $0x1ff8,%edi
  0xa85a09aa: cmp    $0x0,%edi
  0xa85a09ad: je     0xa85a0a6f         ;*iload_1
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 120)

  0xa85a09b3: mov    0xc(%ecx),%esi     ;*getfield value
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 120)

  0xa85a09b6: mov    0x8(%esi),%esi     ;*arraylength
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 120)
                                        ; implicit exception: dispatches to 0xa85a0a84
  0xa85a09b9: mov    %edx,%edi
  0xa85a09bb: sub    %esi,%edi
  0xa85a09bd: cmp    $0x0,%edi
  0xa85a09c0: mov    $0x88a803f0,%esi   ;   {metadata(method data for {method} {0x88961028} 'ensureCapacityInternal' '(I)V' in 'java/lang/AbstractStringBuilder')}
  0xa85a09c5: mov    $0xcc,%edi
  0xa85a09ca: jle    0xa85a09d5
  0xa85a09d0: mov    $0xd4,%edi
  0xa85a09d5: mov    (%esi,%edi,1),%ebx
  0xa85a09d8: lea    0x1(%ebx),%ebx
  0xa85a09db: mov    %ebx,(%esi,%edi,1)
  0xa85a09de: jle    0xa85a0a64         ;*ifle
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 120)

  0xa85a09e4: mov    %ecx,%esi
  0xa85a09e6: mov    $0x88a803f0,%edi   ;   {metadata(method data for {method} {0x88961028} 'ensureCapacityInternal' '(I)V' in 'java/lang/AbstractStringBuilder')}
  0xa85a09eb: mov    0x4(%esi),%esi
  0xa85a09ee: cmp    0xe0(%edi),%esi
  0xa85a09f4: jne    0xa85a0a02
  0xa85a09f6: addl   $0x1,0xe4(%edi)
  0xa85a09fd: jmp    0xa85a0a5f
  0xa85a0a02: cmp    0xe8(%edi),%esi
  0xa85a0a08: jne    0xa85a0a16
  0xa85a0a0a: addl   $0x1,0xec(%edi)
  0xa85a0a11: jmp    0xa85a0a5f
  0xa85a0a16: cmpl   $0x0,0xe0(%edi)
  0xa85a0a20: jne    0xa85a0a37
  0xa85a0a22: mov    %esi,0xe0(%edi)
  0xa85a0a28: movl   $0x1,0xe4(%edi)
  0xa85a0a32: jmp    0xa85a0a5f
  0xa85a0a37: cmpl   $0x0,0xe8(%edi)
  0xa85a0a41: jne    0xa85a0a58
  0xa85a0a43: mov    %esi,0xe8(%edi)
  0xa85a0a49: movl   $0x1,0xec(%edi)
  0xa85a0a53: jmp    0xa85a0a5f
  0xa85a0a58: addl   $0x1,0xdc(%edi)
  0xa85a0a5f: call   0xa853b760         ; OopMap{off=260}
                                        ;*invokevirtual expandCapacity
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 121)
                                        ;   {optimized virtual_call}
  0xa85a0a64: add    $0x18,%esp
  0xa85a0a67: pop    %ebp
  0xa85a0a68: test   %eax,0xb7712100    ;   {poll_return}
  0xa85a0a6e: ret
  0xa85a0a6f: mov    %esi,0x4(%esp)
  0xa85a0a73: movl   $0xffffffff,(%esp)
  0xa85a0a7a: call   0xa859fe20         ; OopMap{ecx=Oop off=287}
                                        ;*synchronization entry
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 120)
                                        ;   {runtime_call}
  0xa85a0a7f: jmp    0xa85a09b3
  0xa85a0a84: call   0xa859d460         ; OopMap{ecx=Oop off=297}
                                        ;*arraylength
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 120)
                                        ;   {runtime_call}
  0xa85a0a89: nop
  0xa85a0a8a: nop
  0xa85a0a8b: mov    %esp,%esi
  0xa85a0a8d: shr    $0xc,%esi
  0xa85a0a90: mov    0x188a440(,%esi,4),%esi  ;   {external_word}
  0xa85a0a97: mov    0x19c(%esi),%eax
  0xa85a0a9d: movl   $0x0,0x19c(%esi)
  0xa85a0aa7: movl   $0x0,0x1a0(%esi)
  0xa85a0ab1: add    $0x18,%esp
  0xa85a0ab4: pop    %ebp
  0xa85a0ab5: jmp    0xa8556820         ;   {runtime_call}
  0xa85a0aba: hlt
  0xa85a0abb: hlt
  0xa85a0abc: hlt
  0xa85a0abd: hlt
  0xa85a0abe: hlt
  0xa85a0abf: hlt
[Stub Code]
  0xa85a0ac0: nop                       ;   {no_reloc}
  0xa85a0ac1: nop
  0xa85a0ac2: mov    $0x0,%ebx          ;   {static_stub}
  0xa85a0ac7: jmp    0xa85a0ac7         ;   {runtime_call}
[Exception Handler]
  0xa85a0acc: call   0xa859e860         ;   {runtime_call}
  0xa85a0ad1: push   $0x1790172         ;   {external_word}
  0xa85a0ad6: call   0xa85a0adb
  0xa85a0adb: pusha
  0xa85a0adc: call   0x0150c230         ;   {runtime_call}
  0xa85a0ae1: hlt
[Deopt Handler Code]
  0xa85a0ae2: push   $0xa85a0ae2        ;   {section_word}
  0xa85a0ae7: jmp    0xa853c520         ;   {runtime_call}
Decoding compiled method 0xa85a7b08:
Code:
[Entry Point]
[Constants]
  # {method} {0x8890cb58} '<init>' '([CII)V' in 'java/lang/String'
  # this:     ecx       = 'java/lang/String'
  # parm0:    edx       = '[C'
  # parm1:    [sp+0x40]   = int  (sp of caller)
  # parm2:    [sp+0x44]   = int
  0xa85a7c80: nop
  0xa85a7c81: nop
  0xa85a7c82: nop
  0xa85a7c83: nop
  0xa85a7c84: nop
  0xa85a7c85: nop
  0xa85a7c86: nop
  0xa85a7c87: nop
  0xa85a7c88: nop
  0xa85a7c89: nop
  0xa85a7c8a: nop
  0xa85a7c8b: nop
  0xa85a7c8c: nop
  0xa85a7c8d: nop
  0xa85a7c8e: nop
  0xa85a7c8f: nop
  0xa85a7c90: nop
  0xa85a7c91: nop
  0xa85a7c92: nop
  0xa85a7c93: nop
  0xa85a7c94: nop
  0xa85a7c95: nop
  0xa85a7c96: nop
  0xa85a7c97: cmp    0x4(%ecx),%eax
  0xa85a7c9a: jne    0xa853b520         ;   {runtime_call}
[Verified Entry Point]
  0xa85a7ca0: mov    %eax,-0x4000(%esp)
  0xa85a7ca7: push   %ebp
  0xa85a7ca8: sub    $0x38,%esp
  0xa85a7cab: mov    %ecx,0x20(%esp)
  0xa85a7caf: mov    $0x88a817d8,%esi   ;   {metadata(method data for {method} {0x8890cb58} '<init>' '([CII)V' in 'java/lang/String')}
  0xa85a7cb4: mov    0xa4(%esi),%edi
  0xa85a7cba: add    $0x8,%edi
  0xa85a7cbd: mov    %edi,0xa4(%esi)
  0xa85a7cc3: mov    $0x8890cb58,%esi   ;   {metadata({method} {0x8890cb58} '<init>' '([CII)V' in 'java/lang/String')}
  0xa85a7cc8: and    $0x1ff8,%edi
  0xa85a7cce: cmp    $0x0,%edi
  0xa85a7cd1: je     0xa85a7ed9         ;*aload_0
                                        ; - java.lang.String::<init>@0 (line 190)

  0xa85a7cd7: mov    0x40(%esp),%esi
  0xa85a7cdb: mov    %ecx,%edi
  0xa85a7cdd: mov    $0x88a817d8,%ebx   ;   {metadata(method data for {method} {0x8890cb58} '<init>' '([CII)V' in 'java/lang/String')}
  0xa85a7ce2: addl   $0x1,0xcc(%ebx)
  0xa85a7ce9: mov    $0x88a1c7c0,%edi   ;   {metadata(method data for {method} {0x8890ab68} '<init>' '()V' in 'java/lang/Object')}
  0xa85a7cee: mov    0xa4(%edi),%ebx
  0xa85a7cf4: add    $0x8,%ebx
  0xa85a7cf7: mov    %ebx,0xa4(%edi)
  0xa85a7cfd: mov    $0x8890ab68,%edi   ;   {metadata({method} {0x8890ab68} '<init>' '()V' in 'java/lang/Object')}
  0xa85a7d02: and    $0x7ffff8,%ebx
  0xa85a7d08: cmp    $0x0,%ebx
  0xa85a7d0b: je     0xa85a7eee
  0xa85a7d11: cmp    $0x0,%esi
  0xa85a7d14: mov    $0x88a817d8,%edi   ;   {metadata(method data for {method} {0x8890cb58} '<init>' '([CII)V' in 'java/lang/String')}
  0xa85a7d19: mov    $0xd4,%ebx
  0xa85a7d1e: jge    0xa85a7d29
  0xa85a7d24: mov    $0xdc,%ebx
  0xa85a7d29: mov    (%edi,%ebx,1),%eax
  0xa85a7d2c: lea    0x1(%eax),%eax
  0xa85a7d2f: mov    %eax,(%edi,%ebx,1)
  0xa85a7d32: jl     0xa85a7ea1         ;*ifge
                                        ; - java.lang.String::<init>@5 (line 191)

  0xa85a7d38: mov    0x44(%esp),%edi
  0xa85a7d3c: cmp    $0x0,%edi
  0xa85a7d3f: mov    $0x88a817d8,%ebx   ;   {metadata(method data for {method} {0x8890cb58} '<init>' '([CII)V' in 'java/lang/String')}
  0xa85a7d44: mov    $0xec,%eax
  0xa85a7d49: jg     0xa85a7d54
  0xa85a7d4f: mov    $0xf4,%eax
  0xa85a7d54: mov    (%ebx,%eax,1),%ecx
  0xa85a7d57: lea    0x1(%ecx),%ecx
  0xa85a7d5a: mov    %ecx,(%ebx,%eax,1)
  0xa85a7d5d: jg     0xa85a7db3         ;*ifgt
                                        ; - java.lang.String::<init>@18 (line 194)

  0xa85a7d63: cmp    $0x0,%edi
  0xa85a7d66: mov    $0x88a817d8,%ecx   ;   {metadata(method data for {method} {0x8890cb58} '<init>' '([CII)V' in 'java/lang/String')}
  0xa85a7d6b: mov    $0xfc,%ebx
  0xa85a7d70: jge    0xa85a7d7b
  0xa85a7d76: mov    $0x104,%ebx
  0xa85a7d7b: mov    (%ecx,%ebx,1),%eax
  0xa85a7d7e: lea    0x1(%eax),%eax
  0xa85a7d81: mov    %eax,(%ecx,%ebx,1)
  0xa85a7d84: jl     0xa85a7e69         ;*ifge
                                        ; - java.lang.String::<init>@22 (line 195)

  0xa85a7d8a: mov    0x8(%edx),%ecx     ;*arraylength
                                        ; - java.lang.String::<init>@36 (line 198)
                                        ; implicit exception: dispatches to 0xa85a7f03
  0xa85a7d8d: cmp    %ecx,%esi
  0xa85a7d8f: mov    $0x88a817d8,%ecx   ;   {metadata(method data for {method} {0x8890cb58} '<init>' '([CII)V' in 'java/lang/String')}
  0xa85a7d94: mov    $0x114,%ebx
  0xa85a7d99: jg     0xa85a7da4
  0xa85a7d9f: mov    $0x11c,%ebx
  0xa85a7da4: mov    (%ecx,%ebx,1),%eax
  0xa85a7da7: lea    0x1(%eax),%eax
  0xa85a7daa: mov    %eax,(%ecx,%ebx,1)
  0xa85a7dad: jle    0xa85a7e14         ;*if_icmpgt
                                        ; - java.lang.String::<init>@37 (line 198)

  0xa85a7db3: mov    0x8(%edx),%ecx     ;*arraylength
                                        ; - java.lang.String::<init>@52 (line 204)
                                        ; implicit exception: dispatches to 0xa85a7f08
  0xa85a7db6: sub    %edi,%ecx
  0xa85a7db8: cmp    %ecx,%esi
  0xa85a7dba: mov    $0x88a817d8,%ecx   ;   {metadata(method data for {method} {0x8890cb58} '<init>' '([CII)V' in 'java/lang/String')}
  0xa85a7dbf: mov    $0x124,%ebx
  0xa85a7dc4: jle    0xa85a7dcf
  0xa85a7dca: mov    $0x12c,%ebx
  0xa85a7dcf: mov    (%ecx,%ebx,1),%eax
  0xa85a7dd2: lea    0x1(%eax),%eax
  0xa85a7dd5: mov    %eax,(%ecx,%ebx,1)
  0xa85a7dd8: jg     0xa85a7e38         ;*if_icmple
                                        ; - java.lang.String::<init>@55 (line 204)

  0xa85a7dde: mov    $0x88a817d8,%ebx   ;   {metadata(method data for {method} {0x8890cb58} '<init>' '([CII)V' in 'java/lang/String')}
  0xa85a7de3: addl   $0x1,0x13c(%ebx)
  0xa85a7dea: add    %esi,%edi
  0xa85a7dec: mov    %edx,%ecx
  0xa85a7dee: mov    %esi,%edx
  0xa85a7df0: mov    %edi,(%esp)        ;*invokestatic copyOfRange
                                        ; - java.lang.String::<init>@75 (line 207)

  0xa85a7df3: call   0xa853bbe0         ; OopMap{[32]=Oop off=376}
                                        ;*invokestatic copyOfRange
                                        ; - java.lang.String::<init>@75 (line 207)
                                        ;   {static_call}
  0xa85a7df8: mov    0x20(%esp),%ecx
  0xa85a7dfc: mov    %eax,0x8(%ecx)
  0xa85a7dff: shr    $0x9,%ecx
  0xa85a7e02: movb   $0x0,-0x58401000(%ecx)  ;*putfield value
                                        ; - java.lang.String::<init>@78 (line 207)

  0xa85a7e09: add    $0x38,%esp
  0xa85a7e0c: pop    %ebp
  0xa85a7e0d: test   %eax,0xb7712100    ;   {poll_return}
  0xa85a7e13: ret                       ;*return
                                        ; - java.lang.String::<init>@81 (line 208)

  0xa85a7e14: mov    0x20(%esp),%ecx
  0xa85a7e18: mov    $0x9e209228,%edx   ;   {oop("")}
  0xa85a7e1d: mov    0x8(%edx),%edx     ;*getfield value
                                        ; - java.lang.String::<init>@43 (line 199)
                                        ; implicit exception: dispatches to 0xa85a7f0d
  0xa85a7e20: mov    %edx,0x8(%ecx)
  0xa85a7e23: shr    $0x9,%ecx
  0xa85a7e26: movb   $0x0,-0x58401000(%ecx)  ;*putfield value
                                        ; - java.lang.String::<init>@46 (line 199)

  0xa85a7e2d: add    $0x38,%esp
  0xa85a7e30: pop    %ebp
  0xa85a7e31: test   %eax,0xb7712100    ;   {poll_return}
  0xa85a7e37: ret                       ;*return
                                        ; - java.lang.String::<init>@49 (line 200)

  0xa85a7e38: jmp    0xa85a7f1c         ;   {no_reloc}
  0xa85a7e3d: jmp    0xa85a7f26         ;*new  ; - java.lang.String::<init>@58 (line 205)

  0xa85a7e42: mov    %eax,%edx
  0xa85a7e44: mov    $0x88a817d8,%ecx   ;   {metadata(method data for {method} {0x8890cb58} '<init>' '([CII)V' in 'java/lang/String')}
  0xa85a7e49: addl   $0x1,0x134(%ecx)
  0xa85a7e50: add    %esi,%edi
  0xa85a7e52: mov    %edi,%edx
  0xa85a7e54: mov    %eax,%ecx          ;*invokespecial <init>
                                        ; - java.lang.String::<init>@65 (line 205)

  0xa85a7e56: mov    %eax,0x24(%esp)
  0xa85a7e5a: nop
  0xa85a7e5b: call   0xa853b760         ; OopMap{[36]=Oop off=480}
                                        ;*invokespecial <init>
                                        ; - java.lang.String::<init>@65 (line 205)
                                        ;   {optimized virtual_call}
  0xa85a7e60: mov    0x24(%esp),%eax
  0xa85a7e64: jmp    0xa85a7f9a         ;*athrow
                                        ; - java.lang.String::<init>@68 (line 205)

  0xa85a7e69: nopl   0x0(%eax)
  0xa85a7e70: jmp    0xa85a7f3c         ;   {no_reloc}
  0xa85a7e75: jmp    0xa85a7f46         ;*new  ; - java.lang.String::<init>@25 (line 196)

  0xa85a7e7a: mov    %eax,%edx
  0xa85a7e7c: mov    $0x88a817d8,%ecx   ;   {metadata(method data for {method} {0x8890cb58} '<init>' '([CII)V' in 'java/lang/String')}
  0xa85a7e81: addl   $0x1,0x10c(%ecx)
  0xa85a7e88: mov    %edi,%edx
  0xa85a7e8a: mov    %eax,%ecx          ;*invokespecial <init>
                                        ; - java.lang.String::<init>@30 (line 196)

  0xa85a7e8c: mov    %eax,0x28(%esp)
  0xa85a7e90: nop
  0xa85a7e91: nop
  0xa85a7e92: nop
  0xa85a7e93: call   0xa853b760         ; OopMap{[40]=Oop off=536}
                                        ;*invokespecial <init>
                                        ; - java.lang.String::<init>@30 (line 196)
                                        ;   {optimized virtual_call}
  0xa85a7e98: mov    0x28(%esp),%eax
  0xa85a7e9c: jmp    0xa85a7f9a         ;*athrow
                                        ; - java.lang.String::<init>@33 (line 196)

  0xa85a7ea1: nopl   0x0(%eax)
  0xa85a7ea8: jmp    0xa85a7f5c         ;   {no_reloc}
  0xa85a7ead: jmp    0xa85a7f66         ;*new  ; - java.lang.String::<init>@8 (line 192)

  0xa85a7eb2: mov    %eax,%edx
  0xa85a7eb4: mov    $0x88a817d8,%ecx   ;   {metadata(method data for {method} {0x8890cb58} '<init>' '([CII)V' in 'java/lang/String')}
  0xa85a7eb9: addl   $0x1,0xe4(%ecx)
  0xa85a7ec0: mov    %esi,%edx
  0xa85a7ec2: mov    %eax,%ecx          ;*invokespecial <init>
                                        ; - java.lang.String::<init>@13 (line 192)

  0xa85a7ec4: mov    %eax,0x2c(%esp)
  0xa85a7ec8: nop
  0xa85a7ec9: nop
  0xa85a7eca: nop
  0xa85a7ecb: call   0xa853b760         ; OopMap{[44]=Oop off=592}
                                        ;*invokespecial <init>
                                        ; - java.lang.String::<init>@13 (line 192)
                                        ;   {optimized virtual_call}
  0xa85a7ed0: mov    0x2c(%esp),%eax
  0xa85a7ed4: jmp    0xa85a7f9a
  0xa85a7ed9: mov    %esi,0x4(%esp)
  0xa85a7edd: movl   $0xffffffff,(%esp)
  0xa85a7ee4: call   0xa859fe20         ; OopMap{ecx=Oop [32]=Oop edx=Oop off=617}
                                        ;*synchronization entry
                                        ; - java.lang.String::<init>@-1 (line 190)
                                        ;   {runtime_call}
  0xa85a7ee9: jmp    0xa85a7cd7
  0xa85a7eee: mov    %edi,0x4(%esp)
  0xa85a7ef2: movl   $0xffffffff,(%esp)
  0xa85a7ef9: call   0xa859fe20         ; OopMap{ecx=Oop [32]=Oop edx=Oop off=638}
                                        ;*synchronization entry
                                        ; - java.lang.Object::<init>@-1 (line 37)
                                        ; - java.lang.String::<init>@1 (line 190)
                                        ;   {runtime_call}
  0xa85a7efe: jmp    0xa85a7d11
  0xa85a7f03: call   0xa859d460         ; OopMap{edx=Oop [32]=Oop off=648}
                                        ;*arraylength
                                        ; - java.lang.String::<init>@36 (line 198)
                                        ;   {runtime_call}
  0xa85a7f08: call   0xa859d460         ; OopMap{edx=Oop [32]=Oop off=653}
                                        ;*arraylength
                                        ; - java.lang.String::<init>@52 (line 204)
                                        ;   {runtime_call}
  0xa85a7f0d: call   0xa859d460         ; OopMap{ecx=Oop [32]=Oop off=658}
                                        ;*getfield value
                                        ; - java.lang.String::<init>@43 (line 199)
                                        ;   {runtime_call}
  0xa85a7f12: mov    $0x0,%edx          ;   {metadata(NULL)}
  0xa85a7f17: mov    $0x5050a00,%eax
  0xa85a7f1c: call   0xa859f520         ; OopMap{off=673}
                                        ;*new  ; - java.lang.String::<init>@58 (line 205)
                                        ;   {runtime_call}
  0xa85a7f21: jmp    0xa85a7e38
  0xa85a7f26: mov    %edx,%edx
  0xa85a7f28: call   0xa859d6a0         ; OopMap{off=685}
                                        ;*new  ; - java.lang.String::<init>@58 (line 205)
                                        ;   {runtime_call}
  0xa85a7f2d: jmp    0xa85a7e42
  0xa85a7f32: mov    $0x0,%edx          ;   {metadata(NULL)}
  0xa85a7f37: mov    $0x5050a00,%eax
  0xa85a7f3c: call   0xa859f520         ; OopMap{off=705}
                                        ;*new  ; - java.lang.String::<init>@25 (line 196)
                                        ;   {runtime_call}
  0xa85a7f41: jmp    0xa85a7e70
  0xa85a7f46: mov    %edx,%edx
  0xa85a7f48: call   0xa859d6a0         ; OopMap{off=717}
                                        ;*new  ; - java.lang.String::<init>@25 (line 196)
                                        ;   {runtime_call}
  0xa85a7f4d: jmp    0xa85a7e7a
  0xa85a7f52: mov    $0x0,%edx          ;   {metadata(NULL)}
  0xa85a7f57: mov    $0x5050a00,%eax
  0xa85a7f5c: call   0xa859f520         ; OopMap{off=737}
                                        ;*new  ; - java.lang.String::<init>@8 (line 192)
                                        ;   {runtime_call}
  0xa85a7f61: jmp    0xa85a7ea8
  0xa85a7f66: mov    %edx,%edx
  0xa85a7f68: call   0xa859d6a0         ; OopMap{off=749}
                                        ;*new  ; - java.lang.String::<init>@8 (line 192)
                                        ;   {runtime_call}
  0xa85a7f6d: jmp    0xa85a7eb2
  0xa85a7f72: nop
  0xa85a7f73: nop
  0xa85a7f74: mov    %esp,%esi
  0xa85a7f76: shr    $0xc,%esi
  0xa85a7f79: mov    0x188a440(,%esi,4),%esi  ;   {external_word}
  0xa85a7f80: mov    0x19c(%esi),%eax
  0xa85a7f86: movl   $0x0,0x19c(%esi)
  0xa85a7f90: movl   $0x0,0x1a0(%esi)
  0xa85a7f9a: add    $0x38,%esp
  0xa85a7f9d: pop    %ebp
  0xa85a7f9e: jmp    0xa8556820         ;   {runtime_call}
  0xa85a7fa3: hlt
  0xa85a7fa4: hlt
  0xa85a7fa5: hlt
  0xa85a7fa6: hlt
  0xa85a7fa7: hlt
  0xa85a7fa8: hlt
  0xa85a7fa9: hlt
  0xa85a7faa: hlt
  0xa85a7fab: hlt
  0xa85a7fac: hlt
  0xa85a7fad: hlt
  0xa85a7fae: hlt
  0xa85a7faf: hlt
  0xa85a7fb0: hlt
  0xa85a7fb1: hlt
  0xa85a7fb2: hlt
  0xa85a7fb3: hlt
  0xa85a7fb4: hlt
  0xa85a7fb5: hlt
  0xa85a7fb6: hlt
  0xa85a7fb7: hlt
  0xa85a7fb8: hlt
  0xa85a7fb9: hlt
  0xa85a7fba: hlt
  0xa85a7fbb: hlt
  0xa85a7fbc: hlt
  0xa85a7fbd: hlt
  0xa85a7fbe: hlt
  0xa85a7fbf: hlt
[Stub Code]
  0xa85a7fc0: nop                       ;   {no_reloc}
  0xa85a7fc1: nop
  0xa85a7fc2: mov    $0x0,%ebx          ;   {static_stub}
  0xa85a7fc7: jmp    0xa85a7fc7         ;   {runtime_call}
  0xa85a7fcc: nop
  0xa85a7fcd: nop
  0xa85a7fce: mov    $0x0,%ebx          ;   {static_stub}
  0xa85a7fd3: jmp    0xa85a7fd3         ;   {runtime_call}
  0xa85a7fd8: nop
  0xa85a7fd9: nop
  0xa85a7fda: mov    $0x0,%ebx          ;   {static_stub}
  0xa85a7fdf: jmp    0xa85a7fdf         ;   {runtime_call}
  0xa85a7fe4: nop
  0xa85a7fe5: nop
  0xa85a7fe6: mov    $0x0,%ebx          ;   {static_stub}
  0xa85a7feb: jmp    0xa85a7feb         ;   {runtime_call}
[Exception Handler]
  0xa85a7ff0: call   0xa859e860         ;   {runtime_call}
  0xa85a7ff5: push   $0x1790172         ;   {external_word}
  0xa85a7ffa: call   0xa85a7fff
  0xa85a7fff: pusha
  0xa85a8000: call   0x0150c230         ;   {runtime_call}
  0xa85a8005: hlt
[Deopt Handler Code]
  0xa85a8006: push   $0xa85a8006        ;   {section_word}
  0xa85a800b: jmp    0xa853c520         ;   {runtime_call}
Decoding compiled method 0xa85a0648:
Code:
[Entry Point]
[Verified Entry Point]
[Constants]
  # {method} {0x889c8d40} 'access$400' '(Ljava/lang/ThreadLocal;)I' in 'java/lang/ThreadLocal'
  # parm0:    ecx       = 'java/lang/ThreadLocal'
  #           [sp+0x20]  (sp of caller)
  0xa85a0740: mov    %eax,-0x4000(%esp)
  0xa85a0747: push   %ebp
  0xa85a0748: sub    $0x18,%esp         ;*aload_0
                                        ; - java.lang.ThreadLocal::[email protected] (line 74)

  0xa85a074b: mov    0x8(%ecx),%eax     ;*getfield threadLocalHashCode
                                        ; - java.lang.ThreadLocal::[email protected] (line 74)
                                        ; implicit exception: dispatches to 0xa85a0759
  0xa85a074e: add    $0x18,%esp
  0xa85a0751: pop    %ebp
  0xa85a0752: test   %eax,0xb7712100    ;   {poll_return}
  0xa85a0758: ret
  0xa85a0759: call   0xa859d460         ; OopMap{off=30}
                                        ;*getfield threadLocalHashCode
                                        ; - java.lang.ThreadLocal::[email protected] (line 74)
                                        ;   {runtime_call}
  0xa85a075e: nop
  0xa85a075f: nop
  0xa85a0760: mov    %esp,%esi
  0xa85a0762: shr    $0xc,%esi
  0xa85a0765: mov    0x188a440(,%esi,4),%esi  ;   {external_word}
  0xa85a076c: mov    0x19c(%esi),%eax
  0xa85a0772: movl   $0x0,0x19c(%esi)
  0xa85a077c: movl   $0x0,0x1a0(%esi)
  0xa85a0786: add    $0x18,%esp
  0xa85a0789: pop    %ebp
  0xa85a078a: jmp    0xa8556820         ;   {runtime_call}
  0xa85a078f: hlt
  0xa85a0790: hlt
  0xa85a0791: hlt
  0xa85a0792: hlt
  0xa85a0793: hlt
  0xa85a0794: hlt
  0xa85a0795: hlt
  0xa85a0796: hlt
  0xa85a0797: hlt
  0xa85a0798: hlt
  0xa85a0799: hlt
  0xa85a079a: hlt
  0xa85a079b: hlt
  0xa85a079c: hlt
  0xa85a079d: hlt
  0xa85a079e: hlt
  0xa85a079f: hlt
[Exception Handler]
[Stub Code]
  0xa85a07a0: call   0xa859e860         ;   {no_reloc}
  0xa85a07a5: push   $0x1790172         ;   {external_word}
  0xa85a07aa: call   0xa85a07af
  0xa85a07af: pusha
  0xa85a07b0: call   0x0150c230         ;   {runtime_call}
  0xa85a07b5: hlt
[Deopt Handler Code]
  0xa85a07b6: push   $0xa85a07b6        ;   {section_word}
  0xa85a07bb: jmp    0xa853c520         ;   {runtime_call}
Decoding compiled method 0xa85a8408:
Code:
[Entry Point]
[Constants]
  # {method} {0x88961698} 'append' '(Ljava/lang/String;)Ljava/lang/AbstractStringBuilder;' in 'java/lang/AbstractStringBuilder'
  # this:     ecx       = 'java/lang/AbstractStringBuilder'
  # parm0:    edx       = 'java/lang/String'
  #           [sp+0x40]  (sp of caller)
  0xa85a8560: nop
  0xa85a8561: nop
  0xa85a8562: nop
  0xa85a8563: nop
  0xa85a8564: nop
  0xa85a8565: nop
  0xa85a8566: nop
  0xa85a8567: nop
  0xa85a8568: nop
  0xa85a8569: nop
  0xa85a856a: nop
  0xa85a856b: nop
  0xa85a856c: nop
  0xa85a856d: nop
  0xa85a856e: nop
  0xa85a856f: nop
  0xa85a8570: nop
  0xa85a8571: nop
  0xa85a8572: nop
  0xa85a8573: nop
  0xa85a8574: nop
  0xa85a8575: nop
  0xa85a8576: nop
  0xa85a8577: cmp    0x4(%ecx),%eax
  0xa85a857a: jne    0xa853b520         ;   {runtime_call}
[Verified Entry Point]
  0xa85a8580: mov    %eax,-0x4000(%esp)
  0xa85a8587: push   %ebp
  0xa85a8588: sub    $0x38,%esp
  0xa85a858b: mov    %ecx,0x2c(%esp)
  0xa85a858f: mov    %edx,0x30(%esp)
  0xa85a8593: mov    $0x88a8ffa8,%esi   ;   {metadata(method data for {method} {0x88961698} 'append' '(Ljava/lang/String;)Ljava/lang/AbstractStringBuilder;' in 'java/lang/AbstractStringBuilder')}
  0xa85a8598: mov    0xa4(%esi),%edi
  0xa85a859e: add    $0x8,%edi
  0xa85a85a1: mov    %edi,0xa4(%esi)
  0xa85a85a7: mov    $0x88961698,%esi   ;   {metadata({method} {0x88961698} 'append' '(Ljava/lang/String;)Ljava/lang/AbstractStringBuilder;' in 'java/lang/AbstractStringBuilder')}
  0xa85a85ac: and    $0x1ff8,%edi
  0xa85a85b2: cmp    $0x0,%edi
  0xa85a85b5: je     0xa85a8867         ;*aload_1
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 418)

  0xa85a85bb: cmp    $0x0,%edx
  0xa85a85be: mov    $0x88a8ffa8,%esi   ;   {metadata(method data for {method} {0x88961698} 'append' '(Ljava/lang/String;)Ljava/lang/AbstractStringBuilder;' in 'java/lang/AbstractStringBuilder')}
  0xa85a85c3: mov    $0xcc,%edi
  0xa85a85c8: jne    0xa85a85d3
  0xa85a85ce: mov    $0xd4,%edi
  0xa85a85d3: mov    (%esi,%edi,1),%ebx
  0xa85a85d6: lea    0x1(%ebx),%ebx
  0xa85a85d9: mov    %ebx,(%esi,%edi,1)
  0xa85a85dc: je     0xa85a8847         ;*ifnonnull
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 418)

  0xa85a85e2: cmp    (%edx),%eax        ;*invokevirtual length
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 420)
                                        ; implicit exception: dispatches to 0xa85a887c
  0xa85a85e4: mov    %edx,%esi
  0xa85a85e6: mov    $0x88a8ffa8,%edi   ;   {metadata(method data for {method} {0x88961698} 'append' '(Ljava/lang/String;)Ljava/lang/AbstractStringBuilder;' in 'java/lang/AbstractStringBuilder')}
  0xa85a85eb: mov    0x4(%esi),%esi
  0xa85a85ee: cmp    0xe8(%edi),%esi
  0xa85a85f4: jne    0xa85a8602
  0xa85a85f6: addl   $0x1,0xec(%edi)
  0xa85a85fd: jmp    0xa85a865f
  0xa85a8602: cmp    0xf0(%edi),%esi
  0xa85a8608: jne    0xa85a8616
  0xa85a860a: addl   $0x1,0xf4(%edi)
  0xa85a8611: jmp    0xa85a865f
  0xa85a8616: cmpl   $0x0,0xe8(%edi)
  0xa85a8620: jne    0xa85a8637
  0xa85a8622: mov    %esi,0xe8(%edi)
  0xa85a8628: movl   $0x1,0xec(%edi)
  0xa85a8632: jmp    0xa85a865f
  0xa85a8637: cmpl   $0x0,0xf0(%edi)
  0xa85a8641: jne    0xa85a8658
  0xa85a8643: mov    %esi,0xf0(%edi)
  0xa85a8649: movl   $0x1,0xf4(%edi)
  0xa85a8653: jmp    0xa85a865f
  0xa85a8658: addl   $0x1,0xe4(%edi)
  0xa85a865f: mov    $0x88a73a70,%esi   ;   {metadata(method data for {method} {0x8890d360} 'length' '()I' in 'java/lang/String')}
  0xa85a8664: mov    0xa4(%esi),%edi
  0xa85a866a: add    $0x8,%edi
  0xa85a866d: mov    %edi,0xa4(%esi)
  0xa85a8673: mov    $0x8890d360,%esi   ;   {metadata({method} {0x8890d360} 'length' '()I' in 'java/lang/String')}
  0xa85a8678: and    $0x7ffff8,%edi
  0xa85a867e: cmp    $0x0,%edi
  0xa85a8681: je     0xa85a8881
  0xa85a8687: mov    0x8(%edx),%esi     ;*getfield value
                                        ; - java.lang.String::[email protected] (line 623)
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 420)

  0xa85a868a: mov    0x8(%esi),%esi     ;*arraylength
                                        ; - java.lang.String::[email protected] (line 623)
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 420)
                                        ; implicit exception: dispatches to 0xa85a8896
  0xa85a868d: mov    %esi,0x28(%esp)
  0xa85a8691: mov    0x8(%ecx),%edi     ;*getfield count
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 421)

  0xa85a8694: add    %esi,%edi
  0xa85a8696: mov    %ecx,%ebx
  0xa85a8698: mov    $0x88a8ffa8,%eax   ;   {metadata(method data for {method} {0x88961698} 'append' '(Ljava/lang/String;)Ljava/lang/AbstractStringBuilder;' in 'java/lang/AbstractStringBuilder')}
  0xa85a869d: addl   $0x1,0xfc(%eax)
  0xa85a86a4: mov    $0x88a803f0,%esi   ;   {metadata(method data for {method} {0x88961028} 'ensureCapacityInternal' '(I)V' in 'java/lang/AbstractStringBuilder')}
  0xa85a86a9: mov    0xa4(%esi),%ebx
  0xa85a86af: add    $0x8,%ebx
  0xa85a86b2: mov    %ebx,0xa4(%esi)
  0xa85a86b8: mov    $0x88961028,%esi   ;   {metadata({method} {0x88961028} 'ensureCapacityInternal' '(I)V' in 'java/lang/AbstractStringBuilder')}
  0xa85a86bd: and    $0x7ffff8,%ebx
  0xa85a86c3: cmp    $0x0,%ebx
  0xa85a86c6: je     0xa85a889b
  0xa85a86cc: mov    0xc(%ecx),%esi     ;*getfield value
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 120)
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 421)

  0xa85a86cf: mov    0x8(%esi),%esi     ;*arraylength
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 120)
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 421)
                                        ; implicit exception: dispatches to 0xa85a88b0
  0xa85a86d2: mov    %edi,%ebx
  0xa85a86d4: sub    %esi,%ebx
  0xa85a86d6: cmp    $0x0,%ebx
  0xa85a86d9: mov    $0x88a803f0,%esi   ;   {metadata(method data for {method} {0x88961028} 'ensureCapacityInternal' '(I)V' in 'java/lang/AbstractStringBuilder')}
  0xa85a86de: mov    $0xcc,%ebx
  0xa85a86e3: jle    0xa85a86ee
  0xa85a86e9: mov    $0xd4,%ebx
  0xa85a86ee: mov    (%esi,%ebx,1),%eax
  0xa85a86f1: lea    0x1(%eax),%eax
  0xa85a86f4: mov    %eax,(%esi,%ebx,1)
  0xa85a86f7: jle    0xa85a8784         ;*ifle
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 120)
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 421)

  0xa85a86fd: mov    %ecx,%ebx
  0xa85a86ff: mov    $0x88a803f0,%eax   ;   {metadata(method data for {method} {0x88961028} 'ensureCapacityInternal' '(I)V' in 'java/lang/AbstractStringBuilder')}
  0xa85a8704: mov    0x4(%ebx),%ebx
  0xa85a8707: cmp    0xe0(%eax),%ebx
  0xa85a870d: jne    0xa85a871b
  0xa85a870f: addl   $0x1,0xe4(%eax)
  0xa85a8716: jmp    0xa85a8778
  0xa85a871b: cmp    0xe8(%eax),%ebx
  0xa85a8721: jne    0xa85a872f
  0xa85a8723: addl   $0x1,0xec(%eax)
  0xa85a872a: jmp    0xa85a8778
  0xa85a872f: cmpl   $0x0,0xe0(%eax)
  0xa85a8739: jne    0xa85a8750
  0xa85a873b: mov    %ebx,0xe0(%eax)
  0xa85a8741: movl   $0x1,0xe4(%eax)
  0xa85a874b: jmp    0xa85a8778
  0xa85a8750: cmpl   $0x0,0xe8(%eax)
  0xa85a875a: jne    0xa85a8771
  0xa85a875c: mov    %ebx,0xe8(%eax)
  0xa85a8762: movl   $0x1,0xec(%eax)
  0xa85a876c: jmp    0xa85a8778
  0xa85a8771: addl   $0x1,0xdc(%eax)
  0xa85a8778: mov    %edi,%edx
  0xa85a877a: mov    %ecx,%edi
  0xa85a877c: mov    %edi,%ecx          ;*invokevirtual expandCapacity
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 121)
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 421)

  0xa85a877e: nop
  0xa85a877f: call   0xa853b760         ; OopMap{[44]=Oop [48]=Oop off=548}
                                        ;*invokevirtual expandCapacity
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 121)
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 421)
                                        ;   {optimized virtual_call}
  0xa85a8784: mov    0x28(%esp),%edi
  0xa85a8788: mov    0x30(%esp),%esi
  0xa85a878c: mov    0x2c(%esp),%ecx
  0xa85a8790: mov    0xc(%ecx),%ebx     ;*getfield value
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 422)

  0xa85a8793: mov    0x8(%ecx),%eax     ;*getfield count
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 422)

  0xa85a8796: mov    %esi,%edx
  0xa85a8798: mov    $0x88a8ffa8,%esi   ;   {metadata(method data for {method} {0x88961698} 'append' '(Ljava/lang/String;)Ljava/lang/AbstractStringBuilder;' in 'java/lang/AbstractStringBuilder')}
  0xa85a879d: mov    0x4(%edx),%edx
  0xa85a87a0: cmp    0x108(%esi),%edx
  0xa85a87a6: jne    0xa85a87b4
  0xa85a87a8: addl   $0x1,0x10c(%esi)
  0xa85a87af: jmp    0xa85a8811
  0xa85a87b4: cmp    0x110(%esi),%edx
  0xa85a87ba: jne    0xa85a87c8
  0xa85a87bc: addl   $0x1,0x114(%esi)
  0xa85a87c3: jmp    0xa85a8811
  0xa85a87c8: cmpl   $0x0,0x108(%esi)
  0xa85a87d2: jne    0xa85a87e9
  0xa85a87d4: mov    %edx,0x108(%esi)
  0xa85a87da: movl   $0x1,0x10c(%esi)
  0xa85a87e4: jmp    0xa85a8811
  0xa85a87e9: cmpl   $0x0,0x110(%esi)
  0xa85a87f3: jne    0xa85a880a
  0xa85a87f5: mov    %edx,0x110(%esi)
  0xa85a87fb: movl   $0x1,0x114(%esi)
  0xa85a8805: jmp    0xa85a8811
  0xa85a880a: addl   $0x1,0x104(%esi)
  0xa85a8811: mov    $0x0,%edx
  0xa85a8816: mov    %edi,(%esp)
  0xa85a8819: mov    %ebx,0x4(%esp)
  0xa85a881d: mov    %eax,0x8(%esp)
  0xa85a8821: mov    0x30(%esp),%ecx    ;*invokevirtual getChars
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 422)

  0xa85a8825: nop
  0xa85a8826: nop
  0xa85a8827: call   0xa853b760         ; OopMap{[44]=Oop off=716}
                                        ;*invokevirtual getChars
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 422)
                                        ;   {optimized virtual_call}
  0xa85a882c: mov    0x2c(%esp),%ecx
  0xa85a8830: mov    0x8(%ecx),%eax     ;*getfield count
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 423)

  0xa85a8833: add    0x28(%esp),%eax
  0xa85a8837: mov    %eax,0x8(%ecx)     ;*putfield count
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 423)

  0xa85a883a: mov    %ecx,%eax
  0xa85a883c: add    $0x38,%esp
  0xa85a883f: pop    %ebp
  0xa85a8840: test   %eax,0xb7712100    ;   {poll_return}
  0xa85a8846: ret                       ;*areturn
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 424)

  0xa85a8847: mov    %ecx,%esi
  0xa85a8849: mov    $0x88a8ffa8,%edi   ;   {metadata(method data for {method} {0x88961698} 'append' '(Ljava/lang/String;)Ljava/lang/AbstractStringBuilder;' in 'java/lang/AbstractStringBuilder')}
  0xa85a884e: addl   $0x1,0xdc(%edi)
  0xa85a8855: nop
  0xa85a8856: nop
  0xa85a8857: call   0xa853b760         ; OopMap{off=764}
                                        ;*invokespecial appendNull
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 419)
                                        ;   {optimized virtual_call}
  0xa85a885c: add    $0x38,%esp
  0xa85a885f: pop    %ebp
  0xa85a8860: test   %eax,0xb7712100    ;   {poll_return}
  0xa85a8866: ret
  0xa85a8867: mov    %esi,0x4(%esp)
  0xa85a886b: movl   $0xffffffff,(%esp)
  0xa85a8872: call   0xa859fe20         ; OopMap{ecx=Oop [44]=Oop edx=Oop [48]=Oop off=791}
                                        ;*synchronization entry
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 418)
                                        ;   {runtime_call}
  0xa85a8877: jmp    0xa85a85bb
  0xa85a887c: call   0xa859d460         ; OopMap{ecx=Oop [44]=Oop edx=Oop [48]=Oop off=801}
                                        ;*invokevirtual length
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 420)
                                        ;   {runtime_call}
  0xa85a8881: mov    %esi,0x4(%esp)
  0xa85a8885: movl   $0xffffffff,(%esp)
  0xa85a888c: call   0xa859fe20         ; OopMap{ecx=Oop [44]=Oop edx=Oop [48]=Oop off=817}
                                        ;*synchronization entry
                                        ; - java.lang.String::[email protected] (line 623)
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 420)
                                        ;   {runtime_call}
  0xa85a8891: jmp    0xa85a8687
  0xa85a8896: call   0xa859d460         ; OopMap{ecx=Oop [44]=Oop edx=Oop [48]=Oop off=827}
                                        ;*arraylength
                                        ; - java.lang.String::[email protected] (line 623)
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 420)
                                        ;   {runtime_call}
  0xa85a889b: mov    %esi,0x4(%esp)
  0xa85a889f: movl   $0xffffffff,(%esp)
  0xa85a88a6: call   0xa859fe20         ; OopMap{ecx=Oop [44]=Oop edx=Oop [48]=Oop off=843}
                                        ;*synchronization entry
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 120)
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 421)
                                        ;   {runtime_call}
  0xa85a88ab: jmp    0xa85a86cc
  0xa85a88b0: call   0xa859d460         ; OopMap{ecx=Oop [44]=Oop edx=Oop [48]=Oop off=853}
                                        ;*arraylength
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 120)
                                        ; - java.lang.AbstractStringBuilder::[email protected] (line 421)
                                        ;   {runtime_call}
  0xa85a88b5: nop
  0xa85a88b6: nop
  0xa85a88b7: mov    %esp,%esi
  0xa85a88b9: shr    $0xc,%esi
  0xa85a88bc: mov    0x188a440(,%esi,4),%esi  ;   {external_word}
  0xa85a88c3: mov    0x19c(%esi),%eax
  0xa85a88c9: movl   $0x0,0x19c(%esi)
  0xa85a88d3: movl   $0x0,0x1a0(%esi)
  0xa85a88dd: add    $0x38,%esp
  0xa85a88e0: pop    %ebp
  0xa85a88e1: jmp    0xa8556820         ;   {runtime_call}
  0xa85a88e6: hlt
  0xa85a88e7: hlt
  0xa85a88e8: hlt
  0xa85a88e9: hlt
  0xa85a88ea: hlt
  0xa85a88eb: hlt
  0xa85a88ec: hlt
  0xa85a88ed: hlt
  0xa85a88ee: hlt
  0xa85a88ef: hlt
  0xa85a88f0: hlt
  0xa85a88f1: hlt
  0xa85a88f2: hlt
  0xa85a88f3: hlt
  0xa85a88f4: hlt
  0xa85a88f5: hlt
  0xa85a88f6: hlt
  0xa85a88f7: hlt
  0xa85a88f8: hlt
  0xa85a88f9: hlt
  0xa85a88fa: hlt
  0xa85a88fb: hlt
  0xa85a88fc: hlt
  0xa85a88fd: hlt
  0xa85a88fe: hlt
  0xa85a88ff: hlt
[Stub Code]
  0xa85a8900: nop                       ;   {no_reloc}
  0xa85a8901: nop
  0xa85a8902: mov    $0x0,%ebx          ;   {static_stub}
  0xa85a8907: jmp    0xa85a8907         ;   {runtime_call}
  0xa85a890c: nop
  0xa85a890d: nop
  0xa85a890e: mov    $0x0,%ebx          ;   {static_stub}
  0xa85a8913: jmp    0xa85a8913         ;   {runtime_call}
  0xa85a8918: nop
  0xa85a8919: nop
  0xa85a891a: mov    $0x0,%ebx          ;   {static_stub}
  0xa85a891f: jmp    0xa85a891f         ;   {runtime_call}
[Exception Handler]
  0xa85a8924: call   0xa859e860         ;   {runtime_call}
  0xa85a8929: push   $0x1790172         ;   {external_word}
  0xa85a892e: call   0xa85a8933
  0xa85a8933: pusha
  0xa85a8934: call   0x0150c230         ;   {runtime_call}
  0xa85a8939: hlt
[Deopt Handler Code]
  0xa85a893a: push   $0xa85a893a        ;   {section_word}
  0xa85a893f: jmp    0xa853c520         ;   {runtime_call}
Decoding compiled method 0xa85a8c48:
Code:
[Entry Point]
[Constants]
  # {method} {0x8890d788} 'getChars' '(II[CI)V' in 'java/lang/String'
  # this:     ecx       = 'java/lang/String'
  # parm0:    edx       = int
  # parm1:    [sp+0x40]   = int  (sp of caller)
  # parm2:    [sp+0x44]   = '[C'
  # parm3:    [sp+0x48]   = int
  0xa85a8da0: nop
  0xa85a8da1: nop
  0xa85a8da2: nop
  0xa85a8da3: nop
  0xa85a8da4: nop
  0xa85a8da5: nop
  0xa85a8da6: nop
  0xa85a8da7: nop
  0xa85a8da8: nop
  0xa85a8da9: nop
  0xa85a8daa: nop
  0xa85a8dab: nop
  0xa85a8dac: nop
  0xa85a8dad: nop
  0xa85a8dae: nop
  0xa85a8daf: nop
  0xa85a8db0: nop
  0xa85a8db1: nop
  0xa85a8db2: nop
  0xa85a8db3: nop
  0xa85a8db4: nop
  0xa85a8db5: nop
  0xa85a8db6: nop
  0xa85a8db7: cmp    0x4(%ecx),%eax
  0xa85a8dba: jne    0xa853b520         ;   {runtime_call}
[Verified Entry Point]
  0xa85a8dc0: mov    %eax,-0x4000(%esp)
  0xa85a8dc7: push   %ebp
  0xa85a8dc8: sub    $0x38,%esp
  0xa85a8dcb: mov    %edx,%esi
  0xa85a8dcd: mov    $0x88a91580,%edx   ;   {metadata(method data for {method} {0x8890d788} 'getChars' '(II[CI)V' in 'java/lang/String')}
  0xa85a8dd2: mov    0xa4(%edx),%eax
  0xa85a8dd8: add    $0x8,%eax
  0xa85a8ddb: mov    %eax,0xa4(%edx)
  0xa85a8de1: mov    $0x8890d788,%edx   ;   {metadata({method} {0x8890d788} 'getChars' '(II[CI)V' in 'java/lang/String')}
  0xa85a8de6: and    $0x1ff8,%eax
  0xa85a8dec: cmp    $0x0,%eax
  0xa85a8def: je     0xa85a8f91         ;*iload_1
                                        ; - java.lang.String::[email protected] (line 817)

  0xa85a8df5: cmp    $0x0,%esi
  0xa85a8df8: mov    $0x88a91580,%edx   ;   {metadata(method data for {method} {0x8890d788} 'getChars' '(II[CI)V' in 'java/lang/String')}
  0xa85a8dfd: mov    $0xcc,%eax
  0xa85a8e02: jge    0xa85a8e0d
  0xa85a8e08: mov    $0xd4,%eax
  0xa85a8e0d: mov    (%edx,%eax,1),%ebx
  0xa85a8e10: lea    0x1(%ebx),%ebx
  0xa85a8e13: mov    %ebx,(%edx,%eax,1)
  0xa85a8e16: jl     0xa85a8f59         ;*ifge
                                        ; - java.lang.String::[email protected] (line 817)

  0xa85a8e1c: mov    0x40(%esp),%edi
  0xa85a8e20: mov    0x8(%ecx),%ecx     ;*getfield value
                                        ; - java.lang.String::[email protected] (line 820)

  0xa85a8e23: mov    0x8(%ecx),%edx     ;*arraylength
                                        ; - java.lang.String::[email protected] (line 820)
                                        ; implicit exception: dispatches to 0xa85a8fa6
  0xa85a8e26: cmp    %edx,%edi
  0xa85a8e28: mov    $0x88a91580,%edx   ;   {metadata(method data for {method} {0x8890d788} 'getChars' '(II[CI)V' in 'java/lang/String')}
  0xa85a8e2d: mov    $0xe4,%eax
  0xa85a8e32: jle    0xa85a8e3d
  0xa85a8e38: mov    $0xec,%eax
  0xa85a8e3d: mov    (%edx,%eax,1),%ebx
  0xa85a8e40: lea    0x1(%ebx),%ebx
  0xa85a8e43: mov    %ebx,(%edx,%eax,1)
  0xa85a8e46: jg     0xa85a8f21         ;*if_icmple
                                        ; - java.lang.String::[email protected] (line 820)

  0xa85a8e4c: cmp    %edi,%esi
  0xa85a8e4e: mov    $0x88a91580,%edx   ;   {metadata(method data for {method} {0x8890d788} 'getChars' '(II[CI)V' in 'java/lang/String')}
  0xa85a8e53: mov    $0xfc,%eax
  0xa85a8e58: jle    0xa85a8e63
  0xa85a8e5e: mov    $0x104,%eax
  0xa85a8e63: mov    (%edx,%eax,1),%ebx
  0xa85a8e66: lea    0x1(%ebx),%ebx
  0xa85a8e69: mov    %ebx,(%edx,%eax,1)
  0xa85a8e6c: jg     0xa85a8eeb         ;*if_icmple
                                        ; - java.lang.String::[email protected] (line 823)

  0xa85a8e72: mov    0x44(%esp),%eax
  0xa85a8e76: mov    $0x88a91580,%edx   ;   {metadata(method data for {method} {0x8890d788} 'getChars' '(II[CI)V' in 'java/lang/String')}
  0xa85a8e7b: addl   $0x1,0x114(%edx)
  0xa85a8e82: sub    %esi,%edi
  0xa85a8e84: mov    %esi,%edx
  0xa85a8e86: mov    0x48(%esp),%ebx
  0xa85a8e8a: test   %eax,%eax
  0xa85a8e8c: je     0xa85a8fab
  0xa85a8e92: test   %edx,%edx
  0xa85a8e94: jl     0xa85a8fab
  0xa85a8e9a: test   %ebx,%ebx
  0xa85a8e9c: jl     0xa85a8fab
  0xa85a8ea2: lea    (%edx,%edi,1),%esi
  0xa85a8ea5: cmp    0x8(%ecx),%esi
  0xa85a8ea8: ja     0xa85a8fab
  0xa85a8eae: lea    (%ebx,%edi,1),%esi
  0xa85a8eb1: cmp    0x8(%eax),%esi
  0xa85a8eb4: ja     0xa85a8fab
  0xa85a8eba: test   %edi,%edi
  0xa85a8ebc: jl     0xa85a8fab
  0xa85a8ec2: je     0xa85a8ee0
  0xa85a8ec8: lea    0xc(%ecx,%edx,2),%esi
  0xa85a8ecc: mov    %esi,(%esp)
  0xa85a8ecf: lea    0xc(%eax,%ebx,2),%esi
  0xa85a8ed3: mov    %esi,0x4(%esp)
  0xa85a8ed7: mov    %edi,0x8(%esp)
  0xa85a8edb: call   Stub::jshort_arraycopy  ;*invokestatic arraycopy
                                        ; - java.lang.String::[email protected] (line 826)
                                        ;   {runtime_call}
  0xa85a8ee0: add    $0x38,%esp
  0xa85a8ee3: pop    %ebp
  0xa85a8ee4: test   %eax,0xb7712100    ;   {poll_return}
  0xa85a8eea: ret                       ;*return
                                        ; - java.lang.String::[email protected] (line 827)

  0xa85a8eeb: nopl   0x0(%eax,%eax,1)
  0xa85a8ef0: jmp    0xa85a8fcb         ;   {no_reloc}
  0xa85a8ef5: jmp    0xa85a8fd5         ;*new  ; - java.lang.String::[email protected] (line 824)

  0xa85a8efa: mov    %eax,%edx
  0xa85a8efc: mov    $0x88a91580,%ecx   ;   {metadata(method data for {method} {0x8890d788} 'getChars' '(II[CI)V' in 'java/lang/String')}
  0xa85a8f01: addl   $0x1,0x10c(%ecx)
  0xa85a8f08: sub    %esi,%edi
  0xa85a8f0a: mov    %edi,%edx
  0xa85a8f0c: mov    %eax,%ecx          ;*invokespecial <init>
                                        ; - java.lang.String::[email protected] (line 824)

  0xa85a8f0e: mov    %eax,0x20(%esp)
  0xa85a8f12: nop
  0xa85a8f13: call   0xa853b760         ; OopMap{[32]=Oop off=376}
                                        ;*invokespecial <init>
                                        ; - java.lang.String::[email protected] (line 824)
                                        ;   {optimized virtual_call}
  0xa85a8f18: mov    0x20(%esp),%eax
  0xa85a8f1c: jmp    0xa85a9049         ;*athrow
                                        ; - java.lang.String::[email protected] (line 824)

  0xa85a8f21: nopl   0x0(%eax)
  0xa85a8f28: jmp    0xa85a8feb         ;   {no_reloc}
  0xa85a8f2d: jmp    0xa85a8ff5         ;*new  ; - java.lang.String::[email protected] (line 821)

  0xa85a8f32: mov    %eax,%edx
  0xa85a8f34: mov    $0x88a91580,%ecx   ;   {metadata(method data for {method} {0x8890d788} 'getChars' '(II[CI)V' in 'java/lang/String')}
  0xa85a8f39: addl   $0x1,0xf4(%ecx)
  0xa85a8f40: mov    %edi,%edx
  0xa85a8f42: mov    %eax,%ecx          ;*invokespecial <init>
                                        ; - java.lang.String::[email protected] (line 821)

  0xa85a8f44: mov    %eax,0x24(%esp)
  0xa85a8f48: nop
  0xa85a8f49: nop
  0xa85a8f4a: nop
  0xa85a8f4b: call   0xa853b760         ; OopMap{[36]=Oop off=432}
                                        ;*invokespecial <init>
                                        ; - java.lang.String::[email protected] (line 821)
                                        ;   {optimized virtual_call}
  0xa85a8f50: mov    0x24(%esp),%eax
  0xa85a8f54: jmp    0xa85a9049         ;*athrow
                                        ; - java.lang.String::[email protected] (line 821)

  0xa85a8f59: nopl   0x0(%eax)
  0xa85a8f60: jmp    0xa85a900b         ;   {no_reloc}
  0xa85a8f65: jmp    0xa85a9015         ;*new  ; - java.lang.String::[email protected] (line 818)

  0xa85a8f6a: mov    %eax,%edx
  0xa85a8f6c: mov    $0x88a91580,%ecx   ;   {metadata(method data for {method} {0x8890d788} 'getChars' '(II[CI)V' in 'java/lang/String')}
  0xa85a8f71: addl   $0x1,0xdc(%ecx)
  0xa85a8f78: mov    %esi,%edx
  0xa85a8f7a: mov    %eax,%ecx          ;*invokespecial <init>
                                        ; - java.lang.String::[email protected] (line 818)

  0xa85a8f7c: mov    %eax,0x28(%esp)
  0xa85a8f80: nop
  0xa85a8f81: nop
  0xa85a8f82: nop
  0xa85a8f83: call   0xa853b760         ; OopMap{[40]=Oop off=488}
                                        ;*invokespecial <init>
                                        ; - java.lang.String::[email protected] (line 818)
                                        ;   {optimized virtual_call}
  0xa85a8f88: mov    0x28(%esp),%eax
  0xa85a8f8c: jmp    0xa85a9049
  0xa85a8f91: mov    %edx,0x4(%esp)
  0xa85a8f95: movl   $0xffffffff,(%esp)
  0xa85a8f9c: call   0xa859fe20         ; OopMap{ecx=Oop [68]=Oop off=513}
                                        ;*synchronization entry
                                        ; - java.lang.String::[email protected] (line 817)
                                        ;   {runtime_call}
  0xa85a8fa1: jmp    0xa85a8df5
  0xa85a8fa6: call   0xa859d460         ; OopMap{[68]=Oop ecx=Oop off=523}
                                        ;*arraylength
                                        ; - java.lang.String::[email protected] (line 820)
                                        ;   {runtime_call}
  0xa85a8fab: mov    %eax,(%esp)
  0xa85a8fae: mov    %ebx,0x4(%esp)
  0xa85a8fb2: mov    %edi,0x8(%esp)
  0xa85a8fb6: nop
  0xa85a8fb7: call   0xa853bbe0         ; OopMap{off=540}
                                        ;*invokestatic arraycopy
                                        ; - java.lang.String::[email protected] (line 826)
                                        ;   {static_call}
  0xa85a8fbc: jmp    0xa85a8ee0
  0xa85a8fc1: mov    $0x0,%edx          ;   {metadata(NULL)}
  0xa85a8fc6: mov    $0x5050a00,%eax
  0xa85a8fcb: call   0xa859f520         ; OopMap{off=560}
                                        ;*new  ; - java.lang.String::[email protected] (line 824)
                                        ;   {runtime_call}
  0xa85a8fd0: jmp    0xa85a8ef0
  0xa85a8fd5: mov    %edx,%edx
  0xa85a8fd7: call   0xa859d6a0         ; OopMap{off=572}
                                        ;*new  ; - java.lang.String::[email protected] (line 824)
                                        ;   {runtime_call}
  0xa85a8fdc: jmp    0xa85a8efa
  0xa85a8fe1: mov    $0x0,%edx          ;   {metadata(NULL)}
  0xa85a8fe6: mov    $0x5050a00,%eax
  0xa85a8feb: call   0xa859f520         ; OopMap{off=592}
                                        ;*new  ; - java.lang.String::[email protected] (line 821)
                                        ;   {runtime_call}
  0xa85a8ff0: jmp    0xa85a8f28
  0xa85a8ff5: mov    %edx,%edx
  0xa85a8ff7: call   0xa859d6a0         ; OopMap{off=604}
                                        ;*new  ; - java.lang.String::[email protected] (line 821)
                                        ;   {runtime_call}
  0xa85a8ffc: jmp    0xa85a8f32
  0xa85a9001: mov    $0x0,%edx          ;   {metadata(NULL)}
  0xa85a9006: mov    $0x5050a00,%eax
  0xa85a900b: call   0xa859f520         ; OopMap{off=624}
                                        ;*new  ; - java.lang.String::[email protected] (line 818)
                                        ;   {runtime_call}
  0xa85a9010: jmp    0xa85a8f60
  0xa85a9015: mov    %edx,%edx
  0xa85a9017: call   0xa859d6a0         ; OopMap{off=636}
                                        ;*new  ; - java.lang.String::[email protected] (line 818)
                                        ;   {runtime_call}
  0xa85a901c: jmp    0xa85a8f6a
  0xa85a9021: nop
  0xa85a9022: nop
  0xa85a9023: mov    %esp,%esi
  0xa85a9025: shr    $0xc,%esi
  0xa85a9028: mov    0x188a440(,%esi,4),%esi  ;   {external_word}
  0xa85a902f: mov    0x19c(%esi),%eax
  0xa85a9035: movl   $0x0,0x19c(%esi)
  0xa85a903f: movl   $0x0,0x1a0(%esi)
  0xa85a9049: add    $0x38,%esp
  0xa85a904c: pop    %ebp
  0xa85a904d: jmp    0xa8556820         ;   {runtime_call}
  0xa85a9052: hlt
  0xa85a9053: hlt
  0xa85a9054: hlt
  0xa85a9055: hlt
  0xa85a9056: hlt
  0xa85a9057: hlt
  0xa85a9058: hlt
  0xa85a9059: hlt
  0xa85a905a: hlt
  0xa85a905b: hlt
  0xa85a905c: hlt
  0xa85a905d: hlt
  0xa85a905e: hlt
  0xa85a905f: hlt
[Stub Code]
  0xa85a9060: nop                       ;   {no_reloc}
  0xa85a9061: nop
  0xa85a9062: mov    $0x0,%ebx          ;   {static_stub}
  0xa85a9067: jmp    0xa85a9067         ;   {runtime_call}
  0xa85a906c: nop
  0xa85a906d: nop
  0xa85a906e: mov    $0x0,%ebx          ;   {static_stub}
  0xa85a9073: jmp    0xa85a9073         ;   {runtime_call}
  0xa85a9078: nop
  0xa85a9079: nop
  0xa85a907a: mov    $0x0,%ebx          ;   {static_stub}
  0xa85a907f: jmp    0xa85a907f         ;   {runtime_call}
  0xa85a9084: nop
  0xa85a9085: nop
  0xa85a9086: mov    $0x0,%ebx          ;   {static_stub}
  0xa85a908b: jmp    0xa85a908b         ;   {runtime_call}
[Exception Handler]
  0xa85a9090: call   0xa859e860         ;   {runtime_call}
  0xa85a9095: push   $0x1790172         ;   {external_word}
  0xa85a909a: call   0xa85a909f
  0xa85a909f: pusha
  0xa85a90a0: call   0x0150c230         ;   {runtime_call}
  0xa85a90a5: hlt
[Deopt Handler Code]
  0xa85a90a6: push   $0xa85a90a6        ;   {section_word}
  0xa85a90ab: jmp    0xa853c520         ;   {runtime_call}
时间: 2024-11-05 21:46:35

如何获得即时编译器(JIT)的汇编代码(linux环境下)的相关文章

Linux环境下段错误的产生原因及调试方法小结(转)

最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且 项目工程庞大复杂,出现了不少问题,其中遇到最多.花费时间最长的问题就是著名的“段错误”(Segmentation Fault).借此机会系统学习了一下,这里对Linux环境下的段错误做个小结,方便以后同类问题的排查与解决. 1. 段错误是什么 一句话来说,段错误是指访问的内存超出了系统给这个程序所设定的内存空间,例如访问了不存在的内存地址.访问了系统保护的内存地址.访问了只读的内存地址等等情况.这里贴一个对于“段

Linux环境下段错误的产生原因及调试方法小结

最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多.花费时间最长的问题就是著名的“段错误”(Segmentation Fault).借此机会系统学习了一下,这里对Linux环境下的段错误做个小结,方便以后同类问题的排查与解决. 1. 段错误是什么 一句话来说,段错误是指访问的内存超出了系统给这个程序所设定的内存空间,例如访问了不存在的内存地址.访问了系统保护的内存地址.访问了只读的内存地址等等情况.这里贴一个对于“段错

【转】【调试技巧】Linux环境下段错误的产生原因及调试方法小结

本文转自:http://www.cnblogs.com/panfeng412/archive/2011/11/06/segmentation-fault-in-linux.html 最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多.花费时间最长的问题就是著名的“段错误”(Segmentation Fault).借此机会系统学习了一下,这里对Linux环境下的段错误做个小结,方便以后同类问题的排查与解决. 1. 段错误

Linux环境下段错误的产生原因及调试方法小结(转载)

转载自http://www.cnblogs.com/panfeng412/archive/2011/11/06/2237857.html 最近在Linux环境下做C语言项目,由于是在一个原有项目基础之上进行二次开发,而且项目工程庞大复杂,出现了不少问题,其中遇到最多.花费时间 最长的问题就是著名的“段错误”(Segmentation Fault).借此机会系统学习了一下,这里对Linux环境下的段错误做个小结,方便以后同类问题的排查与解决. 1. 段错误是什么 一句话来说,段错误是指访问的内存超

mosquitto在Linux环境下的部署/安装/使用/测试

mosquitto在Linux环境下的部署 看了有三四天的的源码,(当然没怎么好好看了),突然发现对mosquitto的源码有了一点点感觉,于是在第五天决定在Linux环境下部署mosquitto. 使用传统源码安装步骤: 步骤1:http://mosquitto.org/files/source/官网下载源码,放到Linux环境中.解压后,找到主要配置文件config.mk,其中包含mosquitto的安装选项,需要注意的是,默认情况下mosquitto的安装需要OpenSSL(一个强大的安全

Linux环境下线程的同步与互斥以及死锁问题

由于本次要讨论操作系统的死锁问题,所以必须先研究的是linux环境下的线程同步与互斥 先看下面的代码 大家猜想输出应该是什么呢? 结果是下面这个样子 好吧,似乎并没有什么区别... 那么下面再看这段代码(请无视并忽略屏蔽的内容...) 大家猜想正确的结果是什么呢?5000,10000? 好吧,或许你们都错了. 在运行了一段时间后,它的结果是这样的. 是不是又对又错? 为什么呢? 这就是因为程序中printf语句作用:本身是库函数,所以必须进行系统调用,必须进入内核进行切换,有很大概率形成数据的混

【转载】linux环境下tcpdump源代码分析

linux环境下tcpdump源代码分析 原文时间 2013-10-11 13:13:02   原文链接   主题 Tcpdump 作者:韩大卫 @ 吉林师范大学 tcpdump.c 是tcpdump 工具的main.c, 本文旨对tcpdump的框架有简单了解,只展示linux平台使用的一部分核心代码. Tcpdump 的使用目的就是打印出指定条件的报文,即使有再多的正则表达式作为过滤条件.所以只要懂得tcpdump -nXXi eth0 的实现原理即可. 进入main之前,先看一些头文件 n

Linux环境下GNU, GCC, G++编译器

一,GNU GNU是"GNU 's Not Unix"的递归缩写, Stallman宣布GNU应当发音为Guh-NOO(革奴)以避免与new这个单词混淆(注:Gnu在英文中原意为非洲牛羚,发音与new相同) 为保证GNU软件可以自由地"使用.复制.修改和发布",所有GNU软件都在一份在禁止其他人添加任何限制的情况下授权所有权利给任何人的协议条款,GNU通用公共许可证(GNU General Public License,GPL).这个就是被称为"反版权&q

在虚拟机linux环境下编译windows版adb fastboot

原文出自:http://blog.chinaunix.net/uid-20546441-id-1746200.html 我根据虚拟机编译遇到的问题进行一些添加 [前提条件] Linux Android源码完整 虚拟机磁盘空间100G左右(60G用来存放代码和编译后的文件) swap 30G左右,若太小会导致在编译后提示缺失文件 [具体步骤] 理论上,只要下一个windows版本的SDK,里面就自带了fastboot和adb工具. 但我最近确实遇到了一个需要在linux下编译出windows版本的

linux环境下(非UI操作)所有软件的安装与卸载总结

UI界面的软件管理 linux下的软件一般都是经过压缩的,主要的格式有这几种:rpm.tar.tar.gz.tgz等.所以首先拿到软件后第一件事就是解压缩. 在xwindow下以rpm格式的软件安装比较容易,只要在把鼠标移到文件上单击右键,在弹出的菜单里会有专门的三项(只有在右键单击rpm文件才会出现)show info,upgrade和install,这 三项的意思大家都很清楚了,我就不多说了. rpm格式说了,接着就是tar,tar.gz,tgz等,在xwindow下双击这些格式的文件就会自