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

【0】README
0.1)本文主要解决如何在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::hashCode@0 (line 1466)

  0xa85a2b33: mov    0xc(%ecx),%eax     ;*getfield hash
                                        ; - java.lang.String::hashCode@1 (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::hashCode@6 (line 1467)

  0xa85a2b5d: mov    0x8(%ecx),%esi     ;*getfield value
                                        ; - java.lang.String::hashCode@10 (line 1467)

  0xa85a2b60: mov    0x8(%esi),%edi     ;*arraylength
                                        ; - java.lang.String::hashCode@13 (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::hashCode@14 (line 1467)

  0xa85a2b92: mov    $0x0,%ebx
  0xa85a2b97: jmp    0xa85a2be8         ;*iload_3
                                        ; - java.lang.String::hashCode@24 (line 1470)

  0xa85a2b9c: movzwl 0xc(%esi,%ebx,2),%edi  ;*caload
                                        ; - java.lang.String::hashCode@39 (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::hashCode@45 (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::hashCode@45 (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::hashCode@30 (line 1470)

  0xa85a2c0a: mov    0x10(%esp),%ecx
  0xa85a2c0e: mov    %eax,0xc(%ecx)     ;*putfield hash
                                        ; - java.lang.String::hashCode@50 (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::hashCode@-1 (line 1466)
                                        ;   {runtime_call}
  0xa85a2c2c: jmp    0xa85a2b33
  0xa85a2c31: call   0xa859d460         ; OopMap{ecx=Oop esi=Oop off=342}
                                        ;*arraylength
                                        ; - java.lang.String::hashCode@13 (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::hashCode@45 (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::equals@0 (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::equals@2 (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::equals@8 (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::equals@11 (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::equals@15 (line 981)

  0xa85a24d1: mov    0x8(%ecx),%esi     ;*getfield value
                                        ; - java.lang.String::equals@20 (line 982)

  0xa85a24d4: mov    0x8(%esi),%edi     ;*arraylength
                                        ; - java.lang.String::equals@23 (line 982)
                                        ; implicit exception: dispatches to 0xa85a2622
  0xa85a24d7: mov    0x8(%eax),%eax     ;*getfield value
                                        ; - java.lang.String::equals@27 (line 983)
                                        ; implicit exception: dispatches to 0xa85a2627
  0xa85a24da: mov    0x8(%eax),%ebx     ;*arraylength
                                        ; - java.lang.String::equals@30 (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::equals@31 (line 983)

  0xa85a2503: mov    $0x0,%ebx
  0xa85a2508: jmp    0xa85a2592         ;*iload_3
                                        ; - java.lang.String::equals@49 (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::equals@60 (line 988)

  0xa85a251e: cmp    0x8(%eax),%ebx
  0xa85a2521: jae    0xa85a2639
  0xa85a2527: movzwl 0xc(%eax,%ebx,2),%edx  ;*caload
                                        ; - java.lang.String::equals@65 (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::equals@66 (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::equals@74 (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::equals@74 (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::equals@53 (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::equals@70 (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::equals@78 (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::equals@80 (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::equals@-1 (line 977)
                                        ;   {runtime_call}
  0xa85a2615: jmp    0xa85a2313
  0xa85a261a: mov    %edx,(%esp)
  0xa85a261d: call   0xa859ea60         ; OopMap{ecx=Oop off=866}
                                        ;*checkcast
                                        ; - java.lang.String::equals@15 (line 981)
                                        ;   {runtime_call}
  0xa85a2622: call   0xa859d460         ; OopMap{eax=Oop esi=Oop off=871}
                                        ;*arraylength
                                        ; - java.lang.String::equals@23 (line 982)
                                        ;   {runtime_call}
  0xa85a2627: call   0xa859d460         ; OopMap{esi=Oop off=876}
                                        ;*getfield value
                                        ; - java.lang.String::equals@27 (line 983)
                                        ;   {runtime_call}
  0xa85a262c: call   0xa859d460         ; OopMap{esi=Oop eax=Oop off=881}
                                        ;*arraylength
                                        ; - java.lang.String::equals@30 (line 983)
                                        ;   {runtime_call}
  0xa85a2631: mov    %ebx,(%esp)
  0xa85a2634: call   0xa859d160         ; OopMap{eax=Oop esi=Oop off=889}
                                        ;*caload
                                        ; - java.lang.String::equals@60 (line 988)
                                        ;   {runtime_call}
  0xa85a2639: mov    %ebx,(%esp)
  0xa85a263c: call   0xa859d160         ; OopMap{eax=Oop esi=Oop off=897}
                                        ;*caload
                                        ; - java.lang.String::equals@65 (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::equals@74 (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::charAt@0 (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::charAt@1 (line 657)

  0xa85a1edc: mov    0x8(%ecx),%eax     ;*getfield value
                                        ; - java.lang.String::charAt@6 (line 657)

  0xa85a1edf: mov    0x8(%eax),%edx     ;*arraylength
                                        ; - java.lang.String::charAt@9 (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::charAt@10 (line 657)

  0xa85a1f08: movzwl 0xc(%eax,%esi,2),%eax  ;*caload
                                        ; - java.lang.String::charAt@27 (line 660)

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

  0xa85a1f18: jmp    0xa85a1f6d         ;   {no_reloc}
  0xa85a1f1d: jmp    0xa85a1f77         ;*new  ; - java.lang.String::charAt@13 (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::charAt@18 (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::charAt@18 (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::charAt@-1 (line 657)
                                        ;   {runtime_call}
  0xa85a1f59: jmp    0xa85a1eb5
  0xa85a1f5e: call   0xa859d460         ; OopMap{eax=Oop off=259}
                                        ;*arraylength
                                        ; - java.lang.String::charAt@9 (line 657)
                                        ;   {runtime_call}
  0xa85a1f63: mov    $0x0,%edx          ;   {metadata(NULL)}
  0xa85a1f68: mov    $0x5050a00,%eax
  0xa85a1f6d: call   0xa859f520         ; OopMap{off=274}
                                        ;*new  ; - java.lang.String::charAt@13 (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::charAt@13 (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::length@0 (line 623)

  0xa85a1bf3: mov    0x8(%ecx),%eax     ;*getfield value
                                        ; - java.lang.String::length@1 (line 623)

  0xa85a1bf6: mov    0x8(%eax),%eax     ;*arraylength
                                        ; - java.lang.String::length@4 (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::length@-1 (line 623)
                                        ;   {runtime_call}
  0xa85a1c14: jmp    0xa85a1bf3
  0xa85a1c16: call   0xa859d460         ; OopMap{off=123}
                                        ;*arraylength
                                        ; - java.lang.String::length@4 (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::get@0 (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::min@0 (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::min@2 (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::min@6 (line 1336)

  0xa85a0d89: mov    %edx,%ecx          ;*ireturn
                                        ; - java.lang.Math::min@10 (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::min@-1 (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::ensureCapacityInternal@0 (line 120)

  0xa85a09b3: mov    0xc(%ecx),%esi     ;*getfield value
                                        ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@2 (line 120)

  0xa85a09b6: mov    0x8(%esi),%esi     ;*arraylength
                                        ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@5 (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::ensureCapacityInternal@7 (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::ensureCapacityInternal@12 (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::ensureCapacityInternal@-1 (line 120)
                                        ;   {runtime_call}
  0xa85a0a7f: jmp    0xa85a09b3
  0xa85a0a84: call   0xa859d460         ; OopMap{ecx=Oop off=297}
                                        ;*arraylength
                                        ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@5 (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::access$400@0 (line 74)

  0xa85a074b: mov    0x8(%ecx),%eax     ;*getfield threadLocalHashCode
                                        ; - java.lang.ThreadLocal::access$400@1 (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::access$400@1 (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::append@0 (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::append@1 (line 418)

  0xa85a85e2: cmp    (%edx),%eax        ;*invokevirtual length
                                        ; - java.lang.AbstractStringBuilder::append@10 (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::length@1 (line 623)
                                        ; - java.lang.AbstractStringBuilder::append@10 (line 420)

  0xa85a868a: mov    0x8(%esi),%esi     ;*arraylength
                                        ; - java.lang.String::length@4 (line 623)
                                        ; - java.lang.AbstractStringBuilder::append@10 (line 420)
                                        ; implicit exception: dispatches to 0xa85a8896
  0xa85a868d: mov    %esi,0x28(%esp)
  0xa85a8691: mov    0x8(%ecx),%edi     ;*getfield count
                                        ; - java.lang.AbstractStringBuilder::append@16 (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::ensureCapacityInternal@2 (line 120)
                                        ; - java.lang.AbstractStringBuilder::append@21 (line 421)

  0xa85a86cf: mov    0x8(%esi),%esi     ;*arraylength
                                        ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@5 (line 120)
                                        ; - java.lang.AbstractStringBuilder::append@21 (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::ensureCapacityInternal@7 (line 120)
                                        ; - java.lang.AbstractStringBuilder::append@21 (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::ensureCapacityInternal@12 (line 121)
                                        ; - java.lang.AbstractStringBuilder::append@21 (line 421)

  0xa85a877e: nop    
  0xa85a877f: call   0xa853b760         ; OopMap{[44]=Oop [48]=Oop off=548}
                                        ;*invokevirtual expandCapacity
                                        ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@12 (line 121)
                                        ; - java.lang.AbstractStringBuilder::append@21 (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::append@28 (line 422)

  0xa85a8793: mov    0x8(%ecx),%eax     ;*getfield count
                                        ; - java.lang.AbstractStringBuilder::append@32 (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::append@35 (line 422)

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

  0xa85a8833: add    0x28(%esp),%eax
  0xa85a8837: mov    %eax,0x8(%ecx)     ;*putfield count
                                        ; - java.lang.AbstractStringBuilder::append@45 (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::append@49 (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::append@5 (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::append@-1 (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::append@10 (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::length@-1 (line 623)
                                        ; - java.lang.AbstractStringBuilder::append@10 (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::length@4 (line 623)
                                        ; - java.lang.AbstractStringBuilder::append@10 (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::ensureCapacityInternal@-1 (line 120)
                                        ; - java.lang.AbstractStringBuilder::append@21 (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::ensureCapacityInternal@5 (line 120)
                                        ; - java.lang.AbstractStringBuilder::append@21 (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::getChars@0 (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::getChars@1 (line 817)

  0xa85a8e1c: mov    0x40(%esp),%edi
  0xa85a8e20: mov    0x8(%ecx),%ecx     ;*getfield value
                                        ; - java.lang.String::getChars@15 (line 820)

  0xa85a8e23: mov    0x8(%ecx),%edx     ;*arraylength
                                        ; - java.lang.String::getChars@18 (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::getChars@19 (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::getChars@33 (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::getChars@58 (line 826)
                                        ;   {runtime_call}
  0xa85a8ee0: add    $0x38,%esp
  0xa85a8ee3: pop    %ebp
  0xa85a8ee4: test   %eax,0xb7712100    ;   {poll_return}
  0xa85a8eea: ret                       ;*return
                                        ; - java.lang.String::getChars@61 (line 827)

  0xa85a8eeb: nopl   0x0(%eax,%eax,1)
  0xa85a8ef0: jmp    0xa85a8fcb         ;   {no_reloc}
  0xa85a8ef5: jmp    0xa85a8fd5         ;*new  ; - java.lang.String::getChars@36 (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::getChars@43 (line 824)

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

  0xa85a8f21: nopl   0x0(%eax)
  0xa85a8f28: jmp    0xa85a8feb         ;   {no_reloc}
  0xa85a8f2d: jmp    0xa85a8ff5         ;*new  ; - java.lang.String::getChars@22 (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::getChars@27 (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::getChars@27 (line 821)
                                        ;   {optimized virtual_call}
  0xa85a8f50: mov    0x24(%esp),%eax
  0xa85a8f54: jmp    0xa85a9049         ;*athrow
                                        ; - java.lang.String::getChars@30 (line 821)

  0xa85a8f59: nopl   0x0(%eax)
  0xa85a8f60: jmp    0xa85a900b         ;   {no_reloc}
  0xa85a8f65: jmp    0xa85a9015         ;*new  ; - java.lang.String::getChars@4 (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::getChars@9 (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::getChars@9 (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::getChars@-1 (line 817)
                                        ;   {runtime_call}
  0xa85a8fa1: jmp    0xa85a8df5
  0xa85a8fa6: call   0xa859d460         ; OopMap{[68]=Oop ecx=Oop off=523}
                                        ;*arraylength
                                        ; - java.lang.String::getChars@18 (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::getChars@58 (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::getChars@36 (line 824)
                                        ;   {runtime_call}
  0xa85a8fd0: jmp    0xa85a8ef0
  0xa85a8fd5: mov    %edx,%edx
  0xa85a8fd7: call   0xa859d6a0         ; OopMap{off=572}
                                        ;*new  ; - java.lang.String::getChars@36 (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::getChars@22 (line 821)
                                        ;   {runtime_call}
  0xa85a8ff0: jmp    0xa85a8f28
  0xa85a8ff5: mov    %edx,%edx
  0xa85a8ff7: call   0xa859d6a0         ; OopMap{off=604}
                                        ;*new  ; - java.lang.String::getChars@22 (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::getChars@4 (line 818)
                                        ;   {runtime_call}
  0xa85a9010: jmp    0xa85a8f60
  0xa85a9015: mov    %edx,%edx
  0xa85a9017: call   0xa859d6a0         ; OopMap{off=636}
                                        ;*new  ; - java.lang.String::getChars@4 (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}




猜你喜欢

转载自blog.csdn.net/pacosonswjtu/article/details/51056045