6g下载网
当前位置: 主页 > 软件教程 > 编程开发 >

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

时间: 2016-04-04 14:21 来源: 本站整理

分享到:

6G下载网给大家介绍linux环境下如何获得即时编译器(JIT)的汇编代码,文章从给定java源代码、对字节码文件反汇编两方面进行介绍,希望能给大家提供帮助。

1)给定java源代码

  1. // 单例模式(分析volatile关键字是如何禁止指令重排序优化的)    
  2. public class Singleton {    
  3.     private volatile static Singleton instance;    
  4.         
  5.     public static Singleton getInstance() {    
  6.         if(instance == null) {    
  7.             synchronized (Singleton.class) { // 同步块    
  8.                 if(instance == null) {    
  9.                     instance = new Singleton();    
  10.                 }    
  11.             }    
  12.         }    
  13.         return instance;    
  14.     }    
  15.         
  16.     public static void main(String[] args) {    
  17.         Singleton.getInstance();    
  18.     }    
  19. }   

2)对字节码文件反汇编

Attention)

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

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

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

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

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

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

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

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

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

Attention)

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

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

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

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

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

以下是获取的汇编代码实例:

  1. Loaded disassembler from /usr/java/jdk1.8/jre/lib/i386/hsdis-i386.so    
  2. Decoding compiled method 0xa85a29c8:    
  3. Code:    
  4. [Disassembling for mach='i386']    
  5. [Entry Point]    
  6. [Constants]    
  7.   # {method} {0x8890e238} 'hashCode' '()I' in 'java/lang/String'    
  8.   #           [sp+0x30]  (sp of caller)    
  9.   0xa85a2ae0: nop        
  10.   0xa85a2ae1: nop        
  11.   0xa85a2ae2: nop        
  12.   0xa85a2ae3: nop        
  13.   0xa85a2ae4: nop        
  14.   0xa85a2ae5: nop        
  15.   0xa85a2ae6: nop        
  16.   0xa85a2ae7: nop        
  17.   0xa85a2ae8: nop        
  18.   0xa85a2ae9: nop        
  19.   0xa85a2aea: nop        
  20.   0xa85a2aeb: nop        
  21.   0xa85a2aec: nop        
  22.   0xa85a2aed: nop        
  23.   0xa85a2aee: nop        
  24.   0xa85a2aef: nop        
  25.   0xa85a2af0: nop        
  26.   0xa85a2af1: nop        
  27.   0xa85a2af2: nop        
  28.   0xa85a2af3: nop        
  29.   0xa85a2af4: nop        
  30.   0xa85a2af5: nop        
  31.   0xa85a2af6: nop        
  32.   0xa85a2af7: cmp    0x4(%ecx),%eax    
  33.   0xa85a2afa: jne    0xa853b520         ;   {runtime_call}    
  34. [Verified Entry Point]    
  35.   0xa85a2b00: mov    %eax,-0x4000(%esp)    
  36.   0xa85a2b07: push   %ebp    
  37.   0xa85a2b08: sub    $0x28,%esp    
  38.   0xa85a2b0b: mov    $0x88a6db18,%eax   ;   {metadata(method data for {method} {0x8890e238} 'hashCode' '()I' in 'java/lang/String')}    
  39.   0xa85a2b10: mov    0xa4(%eax),%esi    
  40.   0xa85a2b16: add    $0x8,%esi    
  41.   0xa85a2b19: mov    %esi,0xa4(%eax)    
  42.   0xa85a2b1f: mov    $0x8890e238,%eax   ;   {metadata({method} {0x8890e238} 'hashCode' '()I' in 'java/lang/String')}    
  43.   0xa85a2b24: and    $0x1ff8,%esi    
  44.   0xa85a2b2a: cmp    $0x0,%esi    
  45.   0xa85a2b2d: je     0xa85a2c1c         ;*aload_0    
  46.                                         ; - java.lang.String::hashCode@0 (line 1466)    
  47.     
  48.   0xa85a2b33: mov    0xc(%ecx),%eax     ;*getfield hash    
  49.                                         ; - java.lang.String::hashCode@1 (line 1466)    
  50.     
  51.   0xa85a2b36: cmp    $0x0,%eax    
  52.   0xa85a2b39: mov    $0x88a6db18,%esi   ;   {metadata(method data for {method} {0x8890e238} 'hashCode' '()I' in 'java/lang/String')}    
  53.   0xa85a2b3e: mov    $0xcc,%edi    
  54.   0xa85a2b43: jne    0xa85a2b4e    
  55.   0xa85a2b49: mov    $0xd4,%edi    
  56.   0xa85a2b4e: mov    (%esi,%edi,1),%ebx    
  57.   0xa85a2b51: lea    0x1(%ebx),%ebx    
  58.   0xa85a2b54: mov    %ebx,(%esi,%edi,1)    
  59.   0xa85a2b57: jne    0xa85a2c11         ;*ifne    
  60.                                         ; - java.lang.String::hashCode@6 (line 1467)    
  61.     
  62.   0xa85a2b5d: mov    0x8(%ecx),%esi     ;*getfield value    
  63.                                         ; - java.lang.String::hashCode@10 (line 1467)    
  64.     
  65.   0xa85a2b60: mov    0x8(%esi),%edi     ;*arraylength    
  66.                                         ; - java.lang.String::hashCode@13 (line 1467)    
  67.                                         ; implicit exception: dispatches to 0xa85a2c31    
  68.   0xa85a2b63: mov    %edi,0x14(%esp)    
  69.   0xa85a2b67: cmp    $0x0,%edi    
  70.   0xa85a2b6a: mov    $0x88a6db18,%ebx   ;   {metadata(method data for {method} {0x8890e238} 'hashCode' '()I' in 'java/lang/String')}    
  71.   0xa85a2b6f: mov    $0xdc,%edx    
  72.   0xa85a2b74: jle    0xa85a2b7f    
  73.   0xa85a2b7a: mov    $0xe4,%edx    
  74.   0xa85a2b7f: mov    %ecx,0x10(%esp)    
  75.   0xa85a2b83: mov    (%ebx,%edx,1),%ecx    
  76.   0xa85a2b86: lea    0x1(%ecx),%ecx    
  77.   0xa85a2b89: mov    %ecx,(%ebx,%edx,1)    
  78.   0xa85a2b8c: jle    0xa85a2c11         ;*ifle    
  79.                                         ; - java.lang.String::hashCode@14 (line 1467)    
  80.     
  81.   0xa85a2b92: mov    $0x0,%ebx    
  82.   0xa85a2b97: jmp    0xa85a2be8         ;*iload_3    
  83.                                         ; - java.lang.String::hashCode@24 (line 1470)    
  84.     
  85.   0xa85a2b9c: movzwl 0xc(%esi,%ebx,2),%edi  ;*caload    
  86.                                         ; - java.lang.String::hashCode@39 (line 1471)    
  87.     
  88.   0xa85a2ba1: mov    %eax,%edx    
  89.   0xa85a2ba3: shl    $0x5,%eax    
  90.   0xa85a2ba6: sub    %edx,%eax    
  91.   0xa85a2ba8: add    %edi,%eax    
  92.   0xa85a2baa: inc    %ebx    
  93.   0xa85a2bab: mov    $0x88a6db18,%edi   ;   {metadata(method data for {method} {0x8890e238} 'hashCode' '()I' in 'java/lang/String')}    
  94.   0xa85a2bb0: mov    0xa8(%edi),%edx    
  95.   0xa85a2bb6: add    $0x8,%edx    
  96.   0xa85a2bb9: mov    %edx,0xa8(%edi)    
  97.   0xa85a2bbf: mov    $0x8890e238,%edi   ;   {metadata({method} {0x8890e238} 'hashCode' '()I' in 'java/lang/String')}    
  98.   0xa85a2bc4: and    $0xfff8,%edx    
  99.   0xa85a2bca: cmp    $0x0,%edx    
  100.   0xa85a2bcd: je     0xa85a2c36         ; OopMap{[16]=Oop esi=Oop off=243}    
  101.                                         ;*goto    
  102.                                         ; - java.lang.String::hashCode@45 (line 1470)    
  103.     
  104.   0xa85a2bd3: test   %eax,0xb7712100    ;   {poll}    
  105.   0xa85a2bd9: mov    $0x88a6db18,%edi   ;   {metadata(method data for {method} {0x8890e238} 'hashCode' '()I' in 'java/lang/String')}    
  106.   0xa85a2bde: incl   0xfc(%edi)         ;*goto    
  107.                                         ; - java.lang.String::hashCode@45 (line 1470)    
  108.     
  109.   0xa85a2be4: mov    0x14(%esp),%edi    
  110.   0xa85a2be8: cmp    %edi,%ebx    
  111.   0xa85a2bea: mov    $0x88a6db18,%edx   ;   {metadata(method data for {method} {0x8890e238} 'hashCode' '()I' in 'java/lang/String')}    
  112.   0xa85a2bef: mov    $0xec,%ecx    
  113.   0xa85a2bf4: jge    0xa85a2bff    
  114.   0xa85a2bfa: mov    $0xf4,%ecx    
  115.   0xa85a2bff: mov    (%edx,%ecx,1),%edi    
  116.   0xa85a2c02: lea    0x1(%edi),%edi    
  117.   0xa85a2c05: mov    %edi,(%edx,%ecx,1)    
  118.   0xa85a2c08: jl     0xa85a2b9c         ;*if_icmpge    
  119.                                         ; - java.lang.String::hashCode@30 (line 1470)    
  120.     
  121.   0xa85a2c0a: mov    0x10(%esp),%ecx    
  122.   0xa85a2c0e: mov    %eax,0xc(%ecx)     ;*putfield hash    
  123.                                         ; - java.lang.String::hashCode@50 (line 1473)    
  124.     
  125.   0xa85a2c11: add    $0x28,%esp    
  126.   0xa85a2c14: pop    %ebp    
  127.   0xa85a2c15: test   %eax,0xb7712100    ;   {poll_return}    
  128.   0xa85a2c1b: ret        
  129.   0xa85a2c1c: mov    %eax,0x4(%esp)    
  130.   0xa85a2c20: movl   $0xffffffff,(%esp)    
  131.   0xa85a2c27: call   0xa859fe20         ; OopMap{ecx=Oop off=332}    
  132.                                         ;*synchronization entry    
  133.                                         ; - java.lang.String::hashCode@-1 (line 1466)    
  134.                                         ;   {runtime_call}    
  135.   0xa85a2c2c: jmp    0xa85a2b33    
  136.   0xa85a2c31: call   0xa859d460         ; OopMap{ecx=Oop esi=Oop off=342}    
  137.                                         ;*arraylength    
  138.                                         ; - java.lang.String::hashCode@13 (line 1467)    
  139.                                         ;   {runtime_call}    
  140.   0xa85a2c36: mov    %edi,0x4(%esp)    
  141.   0xa85a2c3a: movl   $0x2d,(%esp)    
  142.   0xa85a2c41: call   0xa859fe20         ; OopMap{[16]=Oop esi=Oop off=358}    
  143.                                         ;*goto    
  144.                                         ; - java.lang.String::hashCode@45 (line 1470)    
  145.                                         ;   {runtime_call}    
  146.   0xa85a2c46: jmp    0xa85a2bd3    
  147.   0xa85a2c48: nop        
  148.   0xa85a2c49: nop        
  149.   0xa85a2c4a: mov    %esp,%esi    
  150.   0xa85a2c4c: shr    $0xc,%esi    
  151.   0xa85a2c4f: mov    0x188a440(,%esi,4),%esi  ;   {external_word}    
  152.   0xa85a2c56: mov    0x19c(%esi),%eax    
  153.   0xa85a2c5c: movl   $0x0,0x19c(%esi)    
  154.   0xa85a2c66: movl   $0x0,0x1a0(%esi)    
  155.   0xa85a2c70: add    $0x28,%esp    
  156.   0xa85a2c73: pop    %ebp    
  157.   0xa85a2c74: jmp    0xa8556820         ;   {runtime_call}    
  158.   0xa85a2c79: hlt        
  159.   0xa85a2c7a: hlt        
  160.   0xa85a2c7b: hlt        
  161.   0xa85a2c7c: hlt        
  162.   0xa85a2c7d: hlt        
  163.   0xa85a2c7e: hlt        
  164.   0xa85a2c7f: hlt        
  165. [Exception Handler]    
  166. [Stub Code]    
  167.   0xa85a2c80: call   0xa859e860         ;   {no_reloc}    
  168.   0xa85a2c85: push   $0x1790172         ;   {external_word}    
  169.   0xa85a2c8a: call   0xa85a2c8f    
  170.   0xa85a2c8f: pusha      
  171.   0xa85a2c90: call   0x0150c230         ;   {runtime_call}    
  172.   0xa85a2c95: hlt        
  173. [Deopt Handler Code]    
  174.   0xa85a2c96: push   $0xa85a2c96        ;   {section_word}    
  175.   0xa85a2c9b: jmp    0xa853c520         ;   {runtime_call}    
  176. Decoding compiled method 0xa85a2188:    
  177. Code:    
  178. [Entry Point]    
  179. [Constants]    
  180.   # {method} {0x8890da98} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String'    
  181.   # this:     ecx       = 'java/lang/String'    
  182.   # parm0:    edx       = 'java/lang/Object'    
  183.   #           [sp+0x20]  (sp of caller)    
  184.   0xa85a22c0: nop        
  185.   0xa85a22c1: nop        
  186.   0xa85a22c2: nop        
  187.   0xa85a22c3: nop        
  188.   0xa85a22c4: nop        
  189.   0xa85a22c5: nop        
  190.   0xa85a22c6: nop        
  191.   0xa85a22c7: nop        
  192.   0xa85a22c8: nop        
  193.   0xa85a22c9: nop        
  194.   0xa85a22ca: nop        
  195.   0xa85a22cb: nop        
  196.   0xa85a22cc: nop        
  197.   0xa85a22cd: nop        
  198.   0xa85a22ce: nop        
  199.   0xa85a22cf: nop        
  200.   0xa85a22d0: nop        
  201.   0xa85a22d1: nop        
  202.   0xa85a22d2: nop        
  203.   0xa85a22d3: nop        
  204.   0xa85a22d4: nop        
  205.   0xa85a22d5: nop        
  206.   0xa85a22d6: nop        
  207.   0xa85a22d7: cmp    0x4(%ecx),%eax    
  208.   0xa85a22da: jne    0xa853b520         ;   {runtime_call}    
  209. [Verified Entry Point]    
  210.   0xa85a22e0: mov    %eax,-0x4000(%esp)    
  211.   0xa85a22e7: push   %ebp    
  212.   0xa85a22e8: sub    $0x18,%esp    
  213.   0xa85a22eb: mov    $0x88a732a8,%eax   ;   {metadata(method data for {method} {0x8890da98} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}    
  214.   0xa85a22f0: mov    0xa4(%eax),%esi    
  215.   0xa85a22f6: add    $0x8,%esi    
  216.   0xa85a22f9: mov    %esi,0xa4(%eax)    
  217.   0xa85a22ff: mov    $0x8890da98,%eax   ;   {metadata({method} {0x8890da98} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}    
  218.   0xa85a2304: and    $0x1ff8,%esi    
  219.   0xa85a230a: cmp    $0x0,%esi    
  220.   0xa85a230d: je     0xa85a2605         ;*aload_0    
  221.                                         ; - java.lang.String::equals@0 (line 977)    
  222.     
  223.   0xa85a2313: cmp    %edx,%ecx    
  224.   0xa85a2315: mov    $0x88a732a8,%eax   ;   {metadata(method data for {method} {0x8890da98} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}    
  225.   0xa85a231a: mov    $0xcc,%esi    
  226.   0xa85a231f: jne    0xa85a232a    
  227.   0xa85a2325: mov    $0xd4,%esi    
  228.   0xa85a232a: mov    (%eax,%esi,1),%edi    
  229.   0xa85a232d: lea    0x1(%edi),%edi    
  230.   0xa85a2330: mov    %edi,(%eax,%esi,1)    
  231.   0xa85a2333: je     0xa85a25f5         ;*if_acmpne    
  232.                                         ; - java.lang.String::equals@2 (line 977)    
  233.     
  234.   0xa85a2339: cmp    $0x0,%edx    
  235.   0xa85a233c: jne    0xa85a2352    
  236.   0xa85a233e: mov    $0x88a732a8,%esi   ;   {metadata(method data for {method} {0x8890da98} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}    
  237.   0xa85a2343: orl    $0x100,0xd8(%esi)    
  238.   0xa85a234d: jmp    0xa85a23ec    
  239.   0xa85a2352: cmpl   $0x88910190,0x4(%edx)  ;   {metadata('java/lang/String')}    
  240.   0xa85a2359: jne    0xa85a23d6    
  241.   0xa85a235f: mov    $0x88a732a8,%esi   ;   {metadata(method data for {method} {0x8890da98} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}    
  242.   0xa85a2364: mov    0x4(%edx),%edi    
  243.   0xa85a2367: cmp    0xe0(%esi),%edi    
  244.   0xa85a236d: jne    0xa85a237b    
  245.   0xa85a236f: addl   $0x1,0xe4(%esi)    
  246.   0xa85a2376: jmp    0xa85a23f0    
  247.   0xa85a237b: cmp    0xe8(%esi),%edi    
  248.   0xa85a2381: jne    0xa85a238f    
  249.   0xa85a2383: addl   $0x1,0xec(%esi)    
  250.   0xa85a238a: jmp    0xa85a23f0    
  251.   0xa85a238f: cmpl   $0x0,0xe0(%esi)    
  252.   0xa85a2399: jne    0xa85a23b0    
  253.   0xa85a239b: mov    %edi,0xe0(%esi)    
  254.   0xa85a23a1: movl   $0x1,0xe4(%esi)    
  255.   0xa85a23ab: jmp    0xa85a23f0    
  256.   0xa85a23b0: cmpl   $0x0,0xe8(%esi)    
  257.   0xa85a23ba: jne    0xa85a23d1    
  258.   0xa85a23bc: mov    %edi,0xe8(%esi)    
  259.   0xa85a23c2: movl   $0x1,0xec(%esi)    
  260.   0xa85a23cc: jmp    0xa85a23f0    
  261.   0xa85a23d1: jmp    0xa85a23f0    
  262.   0xa85a23d6: mov    $0x88a732a8,%esi   ;   {metadata(method data for {method} {0x8890da98} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}    
  263.   0xa85a23db: subl   $0x1,0xdc(%esi)    
  264.   0xa85a23e2: jmp    0xa85a23ec    
  265.   0xa85a23e7: jmp    0xa85a23f0    
  266.   0xa85a23ec: xor    %eax,%eax    
  267.   0xa85a23ee: jmp    0xa85a23f5    
  268.   0xa85a23f0: mov    $0x1,%eax          ;*instanceof    
  269.                                         ; - java.lang.String::equals@8 (line 980)    
  270.     
  271.   0xa85a23f5: cmp    $0x0,%eax    
  272.   0xa85a23f8: mov    $0x88a732a8,%eax   ;   {metadata(method data for {method} {0x8890da98} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}    
  273.   0xa85a23fd: mov    $0xf4,%esi    
  274.   0xa85a2402: je     0xa85a240d    
  275.   0xa85a2408: mov    $0xfc,%esi    
  276.   0xa85a240d: mov    (%eax,%esi,1),%edi    
  277.   0xa85a2410: lea    0x1(%edi),%edi    
  278.   0xa85a2413: mov    %edi,(%eax,%esi,1)    
  279.   0xa85a2416: je     0xa85a25e5         ;*ifeq    
  280.                                         ; - java.lang.String::equals@11 (line 980)    
  281.     
  282.   0xa85a241c: cmp    $0x0,%edx    
  283.   0xa85a241f: jne    0xa85a2435    
  284.   0xa85a2421: mov    $0x88a732a8,%esi   ;   {metadata(method data for {method} {0x8890da98} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}    
  285.   0xa85a2426: orl    $0x100,0x100(%esi)    
  286.   0xa85a2430: jmp    0xa85a24cf    
  287.   0xa85a2435: cmpl   $0x88910190,0x4(%edx)  ;   {metadata('java/lang/String')}    
  288.   0xa85a243c: jne    0xa85a24b9    
  289.   0xa85a2442: mov    $0x88a732a8,%esi   ;   {metadata(method data for {method} {0x8890da98} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}    
  290.   0xa85a2447: mov    0x4(%edx),%edi    
  291.   0xa85a244a: cmp    0x108(%esi),%edi    
  292.   0xa85a2450: jne    0xa85a245e    
  293.   0xa85a2452: addl   $0x1,0x10c(%esi)    
  294.   0xa85a2459: jmp    0xa85a24cf    
  295.   0xa85a245e: cmp    0x110(%esi),%edi    
  296.   0xa85a2464: jne    0xa85a2472    
  297.   0xa85a2466: addl   $0x1,0x114(%esi)    
  298.   0xa85a246d: jmp    0xa85a24cf    
  299.   0xa85a2472: cmpl   $0x0,0x108(%esi)    
  300.   0xa85a247c: jne    0xa85a2493    
  301.   0xa85a247e: mov    %edi,0x108(%esi)    
  302.   0xa85a2484: movl   $0x1,0x10c(%esi)    
  303.   0xa85a248e: jmp    0xa85a24cf    
  304.   0xa85a2493: cmpl   $0x0,0x110(%esi)    
  305.   0xa85a249d: jne    0xa85a24b4    
  306.   0xa85a249f: mov    %edi,0x110(%esi)    
  307.   0xa85a24a5: movl   $0x1,0x114(%esi)    
  308.   0xa85a24af: jmp    0xa85a24cf    
  309.   0xa85a24b4: jmp    0xa85a24cf    
  310.   0xa85a24b9: mov    $0x88a732a8,%esi   ;   {metadata(method data for {method} {0x8890da98} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}    
  311.   0xa85a24be: subl   $0x1,0x104(%esi)    
  312.   0xa85a24c5: jmp    0xa85a261a    
  313.   0xa85a24ca: jmp    0xa85a24cf    
  314.   0xa85a24cf: mov    %edx,%eax          ;*checkcast    
  315.                                         ; - java.lang.String::equals@15 (line 981)    
  316.     
  317.   0xa85a24d1: mov    0x8(%ecx),%esi     ;*getfield value    
  318.                                         ; - java.lang.String::equals@20 (line 982)    
  319.     
  320.   0xa85a24d4: mov    0x8(%esi),%edi     ;*arraylength    
  321.                                         ; - java.lang.String::equals@23 (line 982)    
  322.                                         ; implicit exception: dispatches to 0xa85a2622    
  323.   0xa85a24d7: mov    0x8(%eax),%eax     ;*getfield value    
  324.                                         ; - java.lang.String::equals@27 (line 983)    
  325.                                         ; implicit exception: dispatches to 0xa85a2627    
  326.   0xa85a24da: mov    0x8(%eax),%ebx     ;*arraylength    
  327.                                         ; - java.lang.String::equals@30 (line 983)    
  328.                                         ; implicit exception: dispatches to 0xa85a262c    
  329.   0xa85a24dd: cmp    %ebx,%edi    
  330.   0xa85a24df: mov    $0x88a732a8,%ebx   ;   {metadata(method data for {method} {0x8890da98} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}    
  331.   0xa85a24e4: mov    $0x11c,%edx    
  332.   0xa85a24e9: jne    0xa85a24f4    
  333.   0xa85a24ef: mov    $0x124,%edx    
  334.   0xa85a24f4: mov    (%ebx,%edx,1),%ecx    
  335.   0xa85a24f7: lea    0x1(%ecx),%ecx    
  336.   0xa85a24fa: mov    %ecx,(%ebx,%edx,1)    
  337.   0xa85a24fd: jne    0xa85a25e5         ;*if_icmpne    
  338.                                         ; - java.lang.String::equals@31 (line 983)    
  339.     
  340.   0xa85a2503: mov    $0x0,%ebx    
  341.   0xa85a2508: jmp    0xa85a2592         ;*iload_3    
  342.                                         ; - java.lang.String::equals@49 (line 987)    
  343.     
  344.   0xa85a250d: xchg   %ax,%ax    
  345.   0xa85a2510: cmp    0x8(%esi),%ebx    
  346.   0xa85a2513: jae    0xa85a2631    
  347.   0xa85a2519: movzwl 0xc(%esi,%ebx,2),%edi  ;*caload    
  348.                                         ; - java.lang.String::equals@60 (line 988)    
  349.     
  350.   0xa85a251e: cmp    0x8(%eax),%ebx    
  351.   0xa85a2521: jae    0xa85a2639    
  352.   0xa85a2527: movzwl 0xc(%eax,%ebx,2),%edx  ;*caload    
  353.                                         ; - java.lang.String::equals@65 (line 988)    
  354.     
  355.   0xa85a252c: cmp    %edx,%edi    
  356.   0xa85a252e: mov    $0x88a732a8,%edi   ;   {metadata(method data for {method} {0x8890da98} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}    
  357.   0xa85a2533: mov    $0x13c,%edx    
  358.   0xa85a2538: je     0xa85a2543    
  359.   0xa85a253e: mov    $0x144,%edx    
  360.   0xa85a2543: mov    (%edi,%edx,1),%ecx    
  361.   0xa85a2546: lea    0x1(%ecx),%ecx    
  362.   0xa85a2549: mov    %ecx,(%edi,%edx,1)    
  363.   0xa85a254c: jne    0xa85a25c5         ;*if_icmpeq    
  364.                                         ; - java.lang.String::equals@66 (line 988)    
  365.     
  366.   0xa85a2552: mov    0x10(%esp),%edx    
  367.   0xa85a2556: inc    %ebx    
  368.   0xa85a2557: mov    $0x88a732a8,%edi   ;   {metadata(method data for {method} {0x8890da98} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}    
  369.   0xa85a255c: mov    0xa8(%edi),%ecx    
  370.   0xa85a2562: add    $0x8,%ecx    
  371.   0xa85a2565: mov    %ecx,0xa8(%edi)    
  372.   0xa85a256b: mov    $0x8890da98,%edi   ;   {metadata({method} {0x8890da98} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}    
  373.   0xa85a2570: and    $0xfff8,%ecx    
  374.   0xa85a2576: cmp    $0x0,%ecx    
  375.   0xa85a2579: je     0xa85a2641         ; OopMap{eax=Oop esi=Oop off=703}    
  376.                                         ;*goto    
  377.                                         ; - java.lang.String::equals@74 (line 990)    
  378.     
  379.   0xa85a257f: test   %eax,0xb7712100    ;   {poll}    
  380.   0xa85a2585: mov    $0x88a732a8,%edi   ;   {metadata(method data for {method} {0x8890da98} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}    
  381.   0xa85a258a: incl   0x14c(%edi)    
  382.   0xa85a2590: mov    %edx,%edi          ;*goto    
  383.                                         ; - java.lang.String::equals@74 (line 990)    
  384.     
  385.   0xa85a2592: mov    %edi,%edx    
  386.   0xa85a2594: dec    %edx    
  387.   0xa85a2595: cmp    $0x0,%edi    
  388.   0xa85a2598: mov    $0x88a732a8,%edi   ;   {metadata(method data for {method} {0x8890da98} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}    
  389.   0xa85a259d: mov    $0x12c,%ecx    
  390.   0xa85a25a2: je     0xa85a25ad    
  391.   0xa85a25a8: mov    $0x134,%ecx    
  392.   0xa85a25ad: mov    %edx,0x10(%esp)    
  393.   0xa85a25b1: mov    (%edi,%ecx,1),%edx    
  394.   0xa85a25b4: lea    0x1(%edx),%edx    
  395.   0xa85a25b7: mov    %edx,(%edi,%ecx,1)    
  396.   0xa85a25ba: je     0xa85a25d5    
  397.   0xa85a25c0: jmp    0xa85a2510         ;*ifeq    
  398.                                         ; - java.lang.String::equals@53 (line 987)    
  399.     
  400.   0xa85a25c5: mov    $0x0,%eax    
  401.   0xa85a25ca: add    $0x18,%esp    
  402.   0xa85a25cd: pop    %ebp    
  403.   0xa85a25ce: test   %eax,0xb7712100    ;   {poll_return}    
  404.   0xa85a25d4: ret                       ;*ireturn    
  405.                                         ; - java.lang.String::equals@70 (line 989)    
  406.     
  407.   0xa85a25d5: mov    $0x1,%eax    
  408.   0xa85a25da: add    $0x18,%esp    
  409.   0xa85a25dd: pop    %ebp    
  410.   0xa85a25de: test   %eax,0xb7712100    ;   {poll_return}    
  411.   0xa85a25e4: ret                       ;*ireturn    
  412.                                         ; - java.lang.String::equals@78 (line 992)    
  413.     
  414.   0xa85a25e5: mov    $0x0,%eax    
  415.   0xa85a25ea: add    $0x18,%esp    
  416.   0xa85a25ed: pop    %ebp    
  417.   0xa85a25ee: test   %eax,0xb7712100    ;   {poll_return}    
  418.   0xa85a25f4: ret                       ;*ireturn    
  419.                                         ; - java.lang.String::equals@80 (line 995)    
  420.     
  421.   0xa85a25f5: mov    $0x1,%eax    
  422.   0xa85a25fa: add    $0x18,%esp    
  423.   0xa85a25fd: pop    %ebp    
  424.   0xa85a25fe: test   %eax,0xb7712100    ;   {poll_return}    
  425.   0xa85a2604: ret        
  426.   0xa85a2605: mov    %eax,0x4(%esp)    
  427.   0xa85a2609: movl   $0xffffffff,(%esp)    
  428.   0xa85a2610: call   0xa859fe20         ; OopMap{ecx=Oop edx=Oop off=853}    
  429.                                         ;*synchronization entry    
  430.                                         ; - java.lang.String::equals@-1 (line 977)    
  431.                                         ;   {runtime_call}    
  432.   0xa85a2615: jmp    0xa85a2313    
  433.   0xa85a261a: mov    %edx,(%esp)    
  434.   0xa85a261d: call   0xa859ea60         ; OopMap{ecx=Oop off=866}    
  435.                                         ;*checkcast    
  436.                                         ; - java.lang.String::equals@15 (line 981)    
  437.                                         ;   {runtime_call}    
  438.   0xa85a2622: call   0xa859d460         ; OopMap{eax=Oop esi=Oop off=871}    
  439.                                         ;*arraylength    
  440.                                         ; - java.lang.String::equals@23 (line 982)    
  441.                                         ;   {runtime_call}    
  442.   0xa85a2627: call   0xa859d460         ; OopMap{esi=Oop off=876}    
  443.                                         ;*getfield value    
  444.                                         ; - java.lang.String::equals@27 (line 983)    
  445.                                         ;   {runtime_call}    
  446.   0xa85a262c: call   0xa859d460         ; OopMap{esi=Oop eax=Oop off=881}    
  447.                                         ;*arraylength    
  448.                                         ; - java.lang.String::equals@30 (line 983)    
  449.                                         ;   {runtime_call}    
  450.   0xa85a2631: mov    %ebx,(%esp)    
  451.   0xa85a2634: call   0xa859d160         ; OopMap{eax=Oop esi=Oop off=889}    
  452.                                         ;*caload    
  453.                                         ; - java.lang.String::equals@60 (line 988)    
  454.                                         ;   {runtime_call}    
  455.   0xa85a2639: mov    %ebx,(%esp)    
  456.   0xa85a263c: call   0xa859d160         ; OopMap{eax=Oop esi=Oop off=897}    
  457.                                         ;*caload    
  458.                                         ; - java.lang.String::equals@65 (line 988)    
  459.                                         ;   {runtime_call}    
  460.   0xa85a2641: mov    %edi,0x4(%esp)    
  461.   0xa85a2645: movl   $0x4a,(%esp)    
  462.   0xa85a264c: call   0xa859fe20         ; OopMap{eax=Oop esi=Oop off=913}    
  463.                                         ;*goto    
  464.                                         ; - java.lang.String::equals@74 (line 990)    
  465.                                         ;   {runtime_call}    
  466.   0xa85a2651: jmp    0xa85a257f    
  467.   0xa85a2656: nop        
  468.   0xa85a2657: nop        
  469.   0xa85a2658: mov    %esp,%esi    
  470.   0xa85a265a: shr    $0xc,%esi    
  471.   0xa85a265d: mov    0x188a440(,%esi,4),%esi  ;   {external_word}    
  472.   0xa85a2664: mov    0x19c(%esi),%eax    
  473.   0xa85a266a: movl   $0x0,0x19c(%esi)    
  474.   0xa85a2674: movl   $0x0,0x1a0(%esi)    
  475.   0xa85a267e: add    $0x18,%esp    
  476.   0xa85a2681: pop    %ebp    
  477.   0xa85a2682: jmp    0xa8556820         ;   {runtime_call}    
  478.   0xa85a2687: hlt        
  479.   0xa85a2688: hlt        
  480.   0xa85a2689: hlt        
  481.   0xa85a268a: hlt        
  482.   0xa85a268b: hlt        
  483.   0xa85a268c: hlt        
  484.   0xa85a268d: hlt        
  485.   0xa85a268e: hlt        
  486.   0xa85a268f: hlt        
  487.   0xa85a2690: hlt        
  488.   0xa85a2691: hlt        
  489.   0xa85a2692: hlt        
  490.   0xa85a2693: hlt        
  491.   0xa85a2694: hlt        
  492.   0xa85a2695: hlt        
  493.   0xa85a2696: hlt        
  494.   0xa85a2697: hlt        
  495.   0xa85a2698: hlt        
  496.   0xa85a2699: hlt        
  497.   0xa85a269a: hlt        
  498.   0xa85a269b: hlt        
  499.   0xa85a269c: hlt        
  500.   0xa85a269d: hlt        
  501.   0xa85a269e: hlt        
  502.   0xa85a269f: hlt        
  503. [Exception Handler]    
  504. [Stub Code]    
  505.   0xa85a26a0: call   0xa859e860         ;   {no_reloc}    
  506.   0xa85a26a5: push   $0x1790172         ;   {external_word}    
  507.   0xa85a26aa: call   0xa85a26af    
  508.   0xa85a26af: pusha      
  509.   0xa85a26b0: call   0x0150c230         ;   {runtime_call}    
  510.   0xa85a26b5: hlt        
  511. [Deopt Handler Code]    
  512.   0xa85a26b6: push   $0xa85a26b6        ;   {section_word}    
  513.   0xa85a26bb: jmp    0xa853c520         ;   {runtime_call}    
  514. Decoding compiled method 0xa85a1d48:    
  515. Code:    
  516. [Entry Point]    
  517. [Constants]    
  518.   # {method} {0x8890d450} 'charAt' '(I)C' in 'java/lang/String'    
  519.   # this:     ecx       = 'java/lang/String'    
  520.   # parm0:    edx       = int    
  521.   #           [sp+0x20]  (sp of caller)    
  522.   0xa85a1e60: nop        
  523.   0xa85a1e61: nop        
  524.   0xa85a1e62: nop        
  525.   0xa85a1e63: nop        
  526.   0xa85a1e64: nop        
  527.   0xa85a1e65: nop        
  528.   0xa85a1e66: nop        
  529.   0xa85a1e67: nop        
  530.   0xa85a1e68: nop        
  531.   0xa85a1e69: nop        
  532.   0xa85a1e6a: nop        
  533.   0xa85a1e6b: nop        
  534.   0xa85a1e6c: nop        
  535.   0xa85a1e6d: nop        
  536.   0xa85a1e6e: nop        
  537.   0xa85a1e6f: nop        
  538.   0xa85a1e70: nop        
  539.   0xa85a1e71: nop        
  540.   0xa85a1e72: nop        
  541.   0xa85a1e73: nop        
  542.   0xa85a1e74: nop        
  543.   0xa85a1e75: nop        
  544.   0xa85a1e76: nop        
  545.   0xa85a1e77: cmp    0x4(%ecx),%eax    
  546.   0xa85a1e7a: jne    0xa853b520         ;   {runtime_call}    
  547. [Verified Entry Point]    
  548.   0xa85a1e80: mov    %eax,-0x4000(%esp)    
  549.   0xa85a1e87: push   %ebp    
  550.   0xa85a1e88: sub    $0x18,%esp    
  551.   0xa85a1e8b: mov    %edx,%esi    
  552.   0xa85a1e8d: mov    $0x88a34c40,%eax   ;   {metadata(method data for {method} {0x8890d450} 'charAt' '(I)C' in 'java/lang/String')}    
  553.   0xa85a1e92: mov    0xa4(%eax),%edx    
  554.   0xa85a1e98: add    $0x8,%edx    
  555.   0xa85a1e9b: mov    %edx,0xa4(%eax)    
  556.   0xa85a1ea1: mov    $0x8890d450,%eax   ;   {metadata({method} {0x8890d450} 'charAt' '(I)C' in 'java/lang/String')}    
  557.   0xa85a1ea6: and    $0x1ff8,%edx    
  558.   0xa85a1eac: cmp    $0x0,%edx    
  559.   0xa85a1eaf: je     0xa85a1f49         ;*iload_1    
  560.                                         ; - java.lang.String::charAt@0 (line 657)    
  561.     
  562.   0xa85a1eb5: cmp    $0x0,%esi    
  563.   0xa85a1eb8: mov    $0x88a34c40,%eax   ;   {metadata(method data for {method} {0x8890d450} 'charAt' '(I)C' in 'java/lang/String')}    
  564.   0xa85a1ebd: mov    $0xcc,%edx    
  565.   0xa85a1ec2: jl     0xa85a1ecd    
  566.   0xa85a1ec8: mov    $0xd4,%edx    
  567.   0xa85a1ecd: mov    (%eax,%edx,1),%edi    
  568.   0xa85a1ed0: lea    0x1(%edi),%edi    
  569.   0xa85a1ed3: mov    %edi,(%eax,%edx,1)    
  570.   0xa85a1ed6: jl     0xa85a1f18         ;*iflt    
  571.                                         ; - java.lang.String::charAt@1 (line 657)    
  572.     
  573.   0xa85a1edc: mov    0x8(%ecx),%eax     ;*getfield value    
  574.                                         ; - java.lang.String::charAt@6 (line 657)    
  575.     
  576.   0xa85a1edf: mov    0x8(%eax),%edx     ;*arraylength    
  577.                                         ; - java.lang.String::charAt@9 (line 657)    
  578.                                         ; implicit exception: dispatches to 0xa85a1f5e    
  579.   0xa85a1ee2: cmp    %edx,%esi    
  580.   0xa85a1ee4: mov    $0x88a34c40,%edx   ;   {metadata(method data for {method} {0x8890d450} 'charAt' '(I)C' in 'java/lang/String')}    
  581.   0xa85a1ee9: mov    $0xdc,%ecx    
  582.   0xa85a1eee: jl     0xa85a1ef9    
  583.   0xa85a1ef4: mov    $0xe4,%ecx    
  584.   0xa85a1ef9: mov    (%edx,%ecx,1),%edi    
  585.   0xa85a1efc: lea    0x1(%edi),%edi    
  586.   0xa85a1eff: mov    %edi,(%edx,%ecx,1)    
  587.   0xa85a1f02: jge    0xa85a1f18         ;*if_icmplt    
  588.                                         ; - java.lang.String::charAt@10 (line 657)    
  589.     
  590.   0xa85a1f08: movzwl 0xc(%eax,%esi,2),%eax  ;*caload    
  591.                                         ; - java.lang.String::charAt@27 (line 660)    
  592.     
  593.   0xa85a1f0d: add    $0x18,%esp    
  594.   0xa85a1f10: pop    %ebp    
  595.   0xa85a1f11: test   %eax,0xb7712100    ;   {poll_return}    
  596.   0xa85a1f17: ret                       ;*ireturn    
  597.                                         ; - java.lang.String::charAt@28 (line 660)    
  598.     
  599.   0xa85a1f18: jmp    0xa85a1f6d         ;   {no_reloc}    
  600.   0xa85a1f1d: jmp    0xa85a1f77         ;*new  ; - java.lang.String::charAt@13 (line 658)    
  601.     
  602.   0xa85a1f22: mov    %eax,%edx    
  603.   0xa85a1f24: mov    $0x88a34c40,%ecx   ;   {metadata(method data for {method} {0x8890d450} 'charAt' '(I)C' in 'java/lang/String')}    
  604.   0xa85a1f29: addl   $0x1,0xec(%ecx)    
  605.   0xa85a1f30: mov    %esi,%edx    
  606.   0xa85a1f32: mov    %eax,%ecx          ;*invokespecial <init>    
  607.                                         ; - java.lang.String::charAt@18 (line 658)    
  608.     
  609.   0xa85a1f34: mov    %eax,0x10(%esp)    
  610.   0xa85a1f38: nop        
  611.   0xa85a1f39: nop        
  612.   0xa85a1f3a: nop        
  613.   0xa85a1f3b: call   0xa853b760         ; OopMap{[16]=Oop off=224}    
  614.                                         ;*invokespecial <init>    
  615.                                         ; - java.lang.String::charAt@18 (line 658)    
  616.                                         ;   {optimized virtual_call}    
  617.   0xa85a1f40: mov    0x10(%esp),%eax    
  618.   0xa85a1f44: jmp    0xa85a1fa8    
  619.   0xa85a1f49: mov    %eax,0x4(%esp)    
  620.   0xa85a1f4d: movl   $0xffffffff,(%esp)    
  621.   0xa85a1f54: call   0xa859fe20         ; OopMap{ecx=Oop off=249}    
  622.                                         ;*synchronization entry    
  623.                                         ; - java.lang.String::charAt@-1 (line 657)    
  624.                                         ;   {runtime_call}    
  625.   0xa85a1f59: jmp    0xa85a1eb5    
  626.   0xa85a1f5e: call   0xa859d460         ; OopMap{eax=Oop off=259}    
  627.                                         ;*arraylength    
  628.                                         ; - java.lang.String::charAt@9 (line 657)    
  629.                                         ;   {runtime_call}    
  630.   0xa85a1f63: mov    $0x0,%edx          ;   {metadata(NULL)}    
  631.   0xa85a1f68: mov    $0x5050a00,%eax    
  632.   0xa85a1f6d: call   0xa859f520         ; OopMap{off=274}    
  633.                                         ;*new  ; - java.lang.String::charAt@13 (line 658)    
  634.                                         ;   {runtime_call}    
  635.   0xa85a1f72: jmp    0xa85a1f18    
  636.   0xa85a1f74: nop        
  637.   0xa85a1f75: nop        
  638.   0xa85a1f76: nop        
  639.   0xa85a1f77: mov    %edx,%edx    
  640.   0xa85a1f79: call   0xa859d6a0         ; OopMap{off=286}    
  641.                                         ;*new  ; - java.lang.String::charAt@13 (line 658)    
  642.                                         ;   {runtime_call}    
  643.   0xa85a1f7e: jmp    0xa85a1f22    
  644.   0xa85a1f80: nop        
  645.   0xa85a1f81: nop        
  646.   0xa85a1f82: mov    %esp,%esi    
  647.   0xa85a1f84: shr    $0xc,%esi    
  648.   0xa85a1f87: mov    0x188a440(,%esi,4),%esi  ;   {external_word}    
  649.   0xa85a1f8e: mov    0x19c(%esi),%eax    
  650.   0xa85a1f94: movl   $0x0,0x19c(%esi)    
  651.   0xa85a1f9e: movl   $0x0,0x1a0(%esi)    
  652.   0xa85a1fa8: add    $0x18,%esp    
  653.   0xa85a1fab: pop    %ebp    
  654.   0xa85a1fac: jmp    0xa8556820         ;   {runtime_call}    
  655.   0xa85a1fb1: hlt        
  656.   0xa85a1fb2: hlt        
  657.   0xa85a1fb3: hlt        
  658.   0xa85a1fb4: hlt        
  659.   0xa85a1fb5: hlt        
  660.   0xa85a1fb6: hlt        
  661.   0xa85a1fb7: hlt        
  662.   0xa85a1fb8: hlt        
  663.   0xa85a1fb9: hlt        
  664.   0xa85a1fba: hlt        
  665.   0xa85a1fbb: hlt        
  666.   0xa85a1fbc: hlt        
  667.   0xa85a1fbd: hlt        
  668.   0xa85a1fbe: hlt        
  669.   0xa85a1fbf: hlt        
  670. [Stub Code]    
  671.   0xa85a1fc0: nop                       ;   {no_reloc}    
  672.   0xa85a1fc1: nop        
  673.   0xa85a1fc2: mov    $0x0,%ebx          ;   {static_stub}    
  674.   0xa85a1fc7: jmp    0xa85a1fc7         ;   {runtime_call}    
  675. [Exception Handler]    
  676.   0xa85a1fcc: call   0xa859e860         ;   {runtime_call}    
  677.   0xa85a1fd1: push   $0x1790172         ;   {external_word}    
  678.   0xa85a1fd6: call   0xa85a1fdb    
  679.   0xa85a1fdb: pusha      
  680.   0xa85a1fdc: call   0x0150c230         ;   {runtime_call}    
  681.   0xa85a1fe1: hlt        
  682. [Deopt Handler Code]    
  683.   0xa85a1fe2: push   $0xa85a1fe2        ;   {section_word}    
  684.   0xa85a1fe7: jmp    0xa853c520         ;   {runtime_call}    
  685. Decoding compiled method 0xa85a1a88:    
  686. Code:    
  687. [Entry Point]    
  688. [Constants]    
  689.   # {method} {0x8890d360} 'length' '()I' in 'java/lang/String'    
  690.   #           [sp+0x20]  (sp of caller)    
  691.   0xa85a1ba0: nop        
  692.   0xa85a1ba1: nop        
  693.   0xa85a1ba2: nop        
  694.   0xa85a1ba3: nop        
  695.   0xa85a1ba4: nop        
  696.   0xa85a1ba5: nop        
  697.   0xa85a1ba6: nop        
  698.   0xa85a1ba7: nop        
  699.   0xa85a1ba8: nop        
  700.   0xa85a1ba9: nop        
  701.   0xa85a1baa: nop        
  702.   0xa85a1bab: nop        
  703.   0xa85a1bac: nop        
  704.   0xa85a1bad: nop        
  705.   0xa85a1bae: nop        
  706.   0xa85a1baf: nop        
  707.   0xa85a1bb0: nop        
  708.   0xa85a1bb1: nop        
  709.   0xa85a1bb2: nop        
  710.   0xa85a1bb3: nop        
  711.   0xa85a1bb4: nop        
  712.   0xa85a1bb5: nop        
  713.   0xa85a1bb6: nop        
  714.   0xa85a1bb7: cmp    0x4(%ecx),%eax    
  715.   0xa85a1bba: jne    0xa853b520         ;   {runtime_call}    
  716. [Verified Entry Point]    
  717.   0xa85a1bc0: mov    %eax,-0x4000(%esp)    
  718.   0xa85a1bc7: push   %ebp    
  719.   0xa85a1bc8: sub    $0x18,%esp    
  720.   0xa85a1bcb: mov    $0x88a73a70,%eax   ;   {metadata(method data for {method} {0x8890d360} 'length' '()I' in 'java/lang/String')}    
  721.   0xa85a1bd0: mov    0xa4(%eax),%esi    
  722.   0xa85a1bd6: add    $0x8,%esi    
  723.   0xa85a1bd9: mov    %esi,0xa4(%eax)    
  724.   0xa85a1bdf: mov    $0x8890d360,%eax   ;   {metadata({method} {0x8890d360} 'length' '()I' in 'java/lang/String')}    
  725.   0xa85a1be4: and    $0x1ff8,%esi    
  726.   0xa85a1bea: cmp    $0x0,%esi    
  727.   0xa85a1bed: je     0xa85a1c04         ;*aload_0    
  728.                                         ; - java.lang.String::length@0 (line 623)    
  729.     
  730.   0xa85a1bf3: mov    0x8(%ecx),%eax     ;*getfield value    
  731.                                         ; - java.lang.String::length@1 (line 623)    
  732.     
  733.   0xa85a1bf6: mov    0x8(%eax),%eax     ;*arraylength    
  734.                                         ; - java.lang.String::length@4 (line 623)    
  735.                                         ; implicit exception: dispatches to 0xa85a1c16    
  736.   0xa85a1bf9: add    $0x18,%esp    
  737.   0xa85a1bfc: pop    %ebp    
  738.   0xa85a1bfd: test   %eax,0xb7712100    ;   {poll_return}    
  739.   0xa85a1c03: ret        
  740.   0xa85a1c04: mov    %eax,0x4(%esp)    
  741.   0xa85a1c08: movl   $0xffffffff,(%esp)    
  742.   0xa85a1c0f: call   0xa859fe20         ; OopMap{ecx=Oop off=116}    
  743.                                         ;*synchronization entry    
  744.                                         ; - java.lang.String::length@-1 (line 623)    
  745.                                         ;   {runtime_call}    
  746.   0xa85a1c14: jmp    0xa85a1bf3    
  747.   0xa85a1c16: call   0xa859d460         ; OopMap{off=123}    
  748.                                         ;*arraylength    
  749.                                         ; - java.lang.String::length@4 (line 623)    
  750.                                         ;   {runtime_call}    
  751.   0xa85a1c1b: nop        
  752.   0xa85a1c1c: nop        
  753.   0xa85a1c1d: mov    %esp,%esi    
  754.   0xa85a1c1f: shr    $0xc,%esi    
  755.   0xa85a1c22: mov    0x188a440(,%esi,4),%esi  ;   {external_word}    
  756.   0xa85a1c29: mov    0x19c(%esi),%eax    
  757.   0xa85a1c2f: movl   $0x0,0x19c(%esi)    
  758.   0xa85a1c39: movl   $0x0,0x1a0(%esi)    
  759.   0xa85a1c43: add    $0x18,%esp    
  760.   0xa85a1c46: pop    %ebp    
  761.   0xa85a1c47: jmp    0xa8556820         ;   {runtime_call}    
  762.   0xa85a1c4c: hlt        
  763.   0xa85a1c4d: hlt        
  764.   0xa85a1c4e: hlt        
  765.   0xa85a1c4f: hlt        
  766.   0xa85a1c50: hlt        
  767.   0xa85a1c51: hlt        
  768.   0xa85a1c52: hlt        
  769.   0xa85a1c53: hlt        
  770.   0xa85a1c54: hlt        
  771.   0xa85a1c55: hlt        
  772.   0xa85a1c56: hlt        
  773.   0xa85a1c57: hlt        
  774.   0xa85a1c58: hlt        
  775.   0xa85a1c59: hlt        
  776.   0xa85a1c5a: hlt        
  777.   0xa85a1c5b: hlt        
  778.   0xa85a1c5c: hlt        
  779.   0xa85a1c5d: hlt        
  780.   0xa85a1c5e: hlt        
  781.   0xa85a1c5f: hlt        
  782. [Exception Handler]    
  783. [Stub Code]    
  784.   0xa85a1c60: call   0xa859e860         ;   {no_reloc}    
  785.   0xa85a1c65: push   $0x1790172         ;   {external_word}    
  786.   0xa85a1c6a: call   0xa85a1c6f    
  787.   0xa85a1c6f: pusha      
  788.   0xa85a1c70: call   0x0150c230         ;   {runtime_call}    
  789.   0xa85a1c75: hlt        
  790. [Deopt Handler Code]    
  791.   0xa85a1c76: push   $0xa85a1c76        ;   {section_word}    
  792.   0xa85a1c7b: jmp    0xa853c520         ;   {runtime_call}    
  793. Decoding compiled method 0xa85a1588:    
  794. Code:    
  795. [Entry Point]    
  796. [Constants]    
  797.   # {method} {0x88928b90} 'get' '()Ljava/lang/Object;' in 'java/lang/ref/Reference'    
  798.   #           [sp+0x20]  (sp of caller)    
  799.   0xa85a1680: nop        
  800.   0xa85a1681: nop        
  801.   0xa85a1682: nop        
  802.   0xa85a1683: nop        
  803.   0xa85a1684: nop        
  804.   0xa85a1685: nop        
  805.   0xa85a1686: nop        
  806.   0xa85a1687: nop        
  807.   0xa85a1688: nop        
  808.   0xa85a1689: nop        
  809.   0xa85a168a: nop        
  810.   0xa85a168b: nop        
  811.   0xa85a168c: nop        
  812.   0xa85a168d: nop        
  813.   0xa85a168e: nop        
  814.   0xa85a168f: nop        
  815.   0xa85a1690: nop        
  816.   0xa85a1691: nop        
  817.   0xa85a1692: nop        
  818.   0xa85a1693: nop        
  819.   0xa85a1694: nop        
  820.   0xa85a1695: nop        
  821.   0xa85a1696: nop        
  822.   0xa85a1697: cmp    0x4(%ecx),%eax    
  823.   0xa85a169a: jne    0xa853b520         ;   {runtime_call}    
  824. [Verified Entry Point]    
  825.   0xa85a16a0: mov    %eax,-0x4000(%esp)    
  826.   0xa85a16a7: push   %ebp    
  827.   0xa85a16a8: sub    $0x18,%esp    
  828.   0xa85a16ab: mov    0x8(%ecx),%eax     ;*aload_0    
  829.                                         ; - java.lang.ref.Reference::get@0 (line 254)    
  830.     
  831.   0xa85a16ae: add    $0x18,%esp    
  832.   0xa85a16b1: pop    %ebp    
  833.   0xa85a16b2: test   %eax,0xb7712100    ;   {poll_return}    
  834.   0xa85a16b8: ret        
  835.   0xa85a16b9: nop        
  836.   0xa85a16ba: nop        
  837.   0xa85a16bb: mov    %esp,%esi    
  838.   0xa85a16bd: shr    $0xc,%esi    
  839.   0xa85a16c0: mov    0x188a440(,%esi,4),%esi  ;   {external_word}    
  840.   0xa85a16c7: mov    0x19c(%esi),%eax    
  841.   0xa85a16cd: movl   $0x0,0x19c(%esi)    
  842.   0xa85a16d7: movl   $0x0,0x1a0(%esi)    
  843.   0xa85a16e1: add    $0x18,%esp    
  844.   0xa85a16e4: pop    %ebp    
  845.   0xa85a16e5: jmp    0xa8556820         ;   {runtime_call}    
  846.   0xa85a16ea: hlt        
  847.   0xa85a16eb: hlt        
  848.   0xa85a16ec: hlt        
  849.   0xa85a16ed: hlt        
  850.   0xa85a16ee: hlt        
  851.   0xa85a16ef: hlt        
  852.   0xa85a16f0: hlt        
  853.   0xa85a16f1: hlt        
  854.   0xa85a16f2: hlt        
  855.   0xa85a16f3: hlt        
  856.   0xa85a16f4: hlt        
  857.   0xa85a16f5: hlt        
  858.   0xa85a16f6: hlt        
  859.   0xa85a16f7: hlt        
  860.   0xa85a16f8: hlt        
  861.   0xa85a16f9: hlt        
  862.   0xa85a16fa: hlt        
  863.   0xa85a16fb: hlt        
  864.   0xa85a16fc: hlt        
  865.   0xa85a16fd: hlt        
  866.   0xa85a16fe: hlt        
  867.   0xa85a16ff: hlt        
  868. [Exception Handler]    
  869. [Stub Code]    
  870.   0xa85a1700: call   0xa859e860         ;   {no_reloc}    
  871.   0xa85a1705: push   $0x1790172         ;   {external_word}    
  872.   0xa85a170a: call   0xa85a170f    
  873.   0xa85a170f: pusha      
  874.   0xa85a1710: call   0x0150c230         ;   {runtime_call}    
  875.   0xa85a1715: hlt        
  876. [Deopt Handler Code]    
  877.   0xa85a1716: push   $0xa85a1716        ;   {section_word}    
  878.   0xa85a171b: jmp    0xa853c520         ;   {runtime_call}    
  879. Decoding compiled method 0xa85a1188:    
  880. Code:    
  881. [Entry Point]    
  882. [Constants]    
  883.   # {method} {0x8890ab68} '<init>' '()V' in 'java/lang/Object'    
  884.   #           [sp+0x20]  (sp of caller)    
  885.   0xa85a12a0: nop        
  886.   0xa85a12a1: nop        
  887.   0xa85a12a2: nop        
  888.   0xa85a12a3: nop        
  889.   0xa85a12a4: nop        
  890.   0xa85a12a5: nop        
  891.   0xa85a12a6: nop        
  892.   0xa85a12a7: nop        
  893.   0xa85a12a8: nop        
  894.   0xa85a12a9: nop        
  895.   0xa85a12aa: nop        
  896.   0xa85a12ab: nop        
  897.   0xa85a12ac: nop        
  898.   0xa85a12ad: nop        
  899.   0xa85a12ae: nop        
  900.   0xa85a12af: nop        
  901.   0xa85a12b0: nop        
  902.   0xa85a12b1: nop        
  903.   0xa85a12b2: nop        
  904.   0xa85a12b3: nop        
  905.   0xa85a12b4: nop        
  906.   0xa85a12b5: nop        
  907.   0xa85a12b6: nop        
  908.   0xa85a12b7: cmp    0x4(%ecx),%eax    
  909.   0xa85a12ba: jne    0xa853b520         ;   {runtime_call}    
  910. [Verified Entry Point]    
  911.   0xa85a12c0: mov    %eax,-0x4000(%esp)    
  912.   0xa85a12c7: push   %ebp    
  913.   0xa85a12c8: sub    $0x18,%esp    
  914.   0xa85a12cb: mov    $0x88a1c7c0,%esi   ;   {metadata(method data for {method} {0x8890ab68} '<init>' '()V' in 'java/lang/Object')}    
  915.   0xa85a12d0: mov    0xa4(%esi),%edi    
  916.   0xa85a12d6: add    $0x8,%edi    
  917.   0xa85a12d9: mov    %edi,0xa4(%esi)    
  918.   0xa85a12df: mov    $0x8890ab68,%esi   ;   {metadata({method} {0x8890ab68} '<init>' '()V' in 'java/lang/Object')}    
  919.   0xa85a12e4: and    $0x1ff8,%edi    
  920.   0xa85a12ea: cmp    $0x0,%edi    
  921.   0xa85a12ed: je     0xa85a130a    
  922.   0xa85a12f3: mov    %ecx,(%esp)        ;*return    
  923.                                         ; - java.lang.Object::<init>@0 (line 37)    
  924.     
  925.   0xa85a12f6: mov    %ecx,0x10(%esp)    
  926.   0xa85a12fa: call   0xa859d560         ; OopMap{[16]=Oop off=95}    
  927.                                         ;*return    
  928.                                         ; - java.lang.Object::<init>@0 (line 37)    
  929.                                         ;   {runtime_call}    
  930.   0xa85a12ff: add    $0x18,%esp    
  931.   0xa85a1302: pop    %ebp    
  932.   0xa85a1303: test   %eax,0xb7712100    ;   {poll_return}    
  933.   0xa85a1309: ret        
  934.   0xa85a130a: mov    %esi,0x4(%esp)    
  935.   0xa85a130e: movl   $0xffffffff,(%esp)    
  936.   0xa85a1315: call   0xa859fe20         ; OopMap{ecx=Oop off=122}    
  937.                                         ;*synchronization entry    
  938.                                         ; - java.lang.Object::<init>@-1 (line 37)    
  939.                                         ;   {runtime_call}    
  940.   0xa85a131a: jmp    0xa85a12f3    
  941.   0xa85a131c: nop        
  942.   0xa85a131d: nop        
  943.   0xa85a131e: mov    %esp,%esi    
  944.   0xa85a1320: shr    $0xc,%esi    
  945.   0xa85a1323: mov    0x188a440(,%esi,4),%esi  ;   {external_word}    
  946.   0xa85a132a: mov    0x19c(%esi),%eax    
  947.   0xa85a1330: movl   $0x0,0x19c(%esi)    
  948.   0xa85a133a: movl   $0x0,0x1a0(%esi)    
  949.   0xa85a1344: add    $0x18,%esp    
  950.   0xa85a1347: pop    %ebp    
  951.   0xa85a1348: jmp    0xa8556820         ;   {runtime_call}    
  952.   0xa85a134d: hlt        
  953.   0xa85a134e: hlt        
  954.   0xa85a134f: hlt        
  955.   0xa85a1350: hlt        
  956.   0xa85a1351: hlt        
  957.   0xa85a1352: hlt        
  958.   0xa85a1353: hlt        
  959.   0xa85a1354: hlt        
  960.   0xa85a1355: hlt        
  961.   0xa85a1356: hlt        
  962.   0xa85a1357: hlt        
  963.   0xa85a1358: hlt        
  964.   0xa85a1359: hlt        
  965.   0xa85a135a: hlt        
  966.   0xa85a135b: hlt        
  967.   0xa85a135c: hlt        
  968.   0xa85a135d: hlt        
  969.   0xa85a135e: hlt        
  970.   0xa85a135f: hlt        
  971. [Exception Handler]    
  972. [Stub Code]    
  973.   0xa85a1360: call   0xa859e860         ;   {no_reloc}    
  974.   0xa85a1365: push   $0x1790172         ;   {external_word}    
  975.   0xa85a136a: call   0xa85a136f    
  976.   0xa85a136f: pusha      
  977.   0xa85a1370: call   0x0150c230         ;   {runtime_call}    
  978.   0xa85a1375: hlt        
  979. [Deopt Handler Code]    
  980.   0xa85a1376: push   $0xa85a1376        ;   {section_word}    
  981.   0xa85a137b: jmp    0xa853c520         ;   {runtime_call}    
  982. Decoding compiled method 0xa85a0ec8:    
  983. Code:    
  984. [Entry Point]    
  985.   # {method} {0x8891cd90} 'arraycopy' '(Ljava/lang/Object;ILjava/lang/Object;II)V' in 'java/lang/System'    
  986.   # parm0:    ecx       = 'java/lang/Object'    
  987.   # parm1:    edx       = int    
  988.   # parm2:    [sp+0x40]   = 'java/lang/Object'  (sp of caller)    
  989.   # parm3:    [sp+0x44]   = int    
  990.   # parm4:    [sp+0x48]   = int    
  991.   0xa85a0fe0: cmp    0x4(%ecx),%eax    
  992.   0xa85a0fe3: je     0xa85a0ff0    
  993.   0xa85a0fe9: jmp    0xa853b520         ;   {runtime_call}    
  994.   0xa85a0fee: xchg   %ax,%ax    
  995. [Verified Entry Point]    
  996.   0xa85a0ff0: mov    %eax,-0x4000(%esp)    
  997.   0xa85a0ff7: push   %ebp    
  998.   0xa85a0ff8: mov    %esp,%ebp    
  999.   0xa85a0ffa: sub    $0x38,%esp    
  1000.   0xa85a0ffd: mov    %esp,%edi    
  1001.   0xa85a0fff: shr    $0xc,%edi    
  1002.   0xa85a1002: mov    0x188a440(,%edi,4),%edi  ;   {external_word}    
  1003.   0xa85a1009: mov    %ecx,0x1c(%esp)    
  1004.   0xa85a100d: xor    %eax,%eax    
  1005.   0xa85a100f: cmp    $0x0,%ecx    
  1006.   0xa85a1012: je     0xa85a101c    
  1007.   0xa85a1018: lea    0x1c(%esp),%eax    
  1008.   0xa85a101c: mov    %eax,0x8(%esp)    
  1009.   0xa85a1020: mov    %edx,0xc(%esp)    
  1010.   0xa85a1024: xor    %eax,%eax    
  1011.   0xa85a1026: cmpl   $0x0,0x8(%ebp)    
  1012.   0xa85a102d: je     0xa85a1036    
  1013.   0xa85a1033: lea    0x8(%ebp),%eax    
  1014.   0xa85a1036: mov    %eax,0x10(%esp)    
  1015.   0xa85a103a: mov    0xc(%ebp),%eax    
  1016.   0xa85a103d: mov    %eax,0x14(%esp)    
  1017.   0xa85a1041: mov    0x10(%ebp),%eax    
  1018.   0xa85a1044: mov    %eax,0x18(%esp)    
  1019.   0xa85a1048: mov    $0x9e200ab8,%esi   ;   {oop(a 'java/lang/Class' = 'java/lang/System')}    
  1020.   0xa85a104d: mov    %esi,0x24(%esp)    
  1021.   0xa85a1051: lea    0x24(%esp),%esi    
  1022.   0xa85a1055: mov    %esi,0x4(%esp)     ; OopMap{[28]=Oop [64]=Oop [36]=Oop off=121}    
  1023.   0xa85a1059: movl   $0xa85a1059,0x12c(%edi)  ;   {section_word}    
  1024.   0xa85a1063: mov    %esp,0x128(%edi)    
  1025.   0xa85a1069: cmpb   $0x0,0x18757c2     ;   {external_word}    
  1026.   0xa85a1070: je     0xa85a1085    
  1027.   0xa85a1076: mov    $0x8891cd90,%eax   ;   {metadata({method} {0x8891cd90} 'arraycopy' '(Ljava/lang/Object;ILjava/lang/Object;II)V' in 'java/lang/System')}    
  1028.   0xa85a107b: push   %eax    
  1029.   0xa85a107c: push   %edi    
  1030.   0xa85a107d: call   0x0165f200         ;   {runtime_call}    
  1031.   0xa85a1082: add    $0x8,%esp    
  1032.   0xa85a1085: lea    0x138(%edi),%edx    
  1033.   0xa85a108b: mov    %edx,(%esp)    
  1034.   0xa85a108e: movl   $0x4,0x174(%edi)    
  1035.   0xa85a1098: call   0x0140b220         ;   {runtime_call}    
  1036.   0xa85a109d: vzeroupper     
  1037.   0xa85a10a0: movl   $0x5,0x174(%edi)    
  1038.   0xa85a10aa: mov    %edi,%ecx    
  1039.   0xa85a10ac: shr    $0x3,%ecx    
  1040.   0xa85a10af: and    $0xffc,%ecx    
  1041.   0xa85a10b5: mov    %ecx,-0x488ef000(,%ecx,1)    
  1042.                                         ;   {external_word}    
  1043.   0xa85a10bc: cmpl   $0x0,0x187fc60     ;   {external_word}    
  1044.   0xa85a10c6: jne    0xa85a10d9    
  1045.   0xa85a10cc: cmpl   $0x0,0x18(%edi)    
  1046.   0xa85a10d3: je     0xa85a10e2    
  1047.   0xa85a10d9: push   %edi    
  1048.   0xa85a10da: call   0x016fad00         ;   {runtime_call}    
  1049.   0xa85a10df: add    $0x4,%esp    
  1050.   0xa85a10e2: movl   $0x8,0x174(%edi)    
  1051.   0xa85a10ec: cmpl   $0x1,0x194(%edi)    
  1052.   0xa85a10f6: je     0xa85a114a    
  1053.   0xa85a10fc: cmpb   $0x0,0x18757c2     ;   {external_word}    
  1054.   0xa85a1103: je     0xa85a1118    
  1055.   0xa85a1109: mov    $0x8891cd90,%eax   ;   {metadata({method} {0x8891cd90} 'arraycopy' '(Ljava/lang/Object;ILjava/lang/Object;II)V' in 'java/lang/System')}    
  1056.   0xa85a110e: push   %eax    
  1057.   0xa85a110f: push   %edi    
  1058.   0xa85a1110: call   0x0165f1d0         ;   {runtime_call}    
  1059.   0xa85a1115: add    $0x8,%esp    
  1060.   0xa85a1118: movl   $0x0,0x128(%edi)    
  1061.   0xa85a1122: movl   $0x0,0x12c(%edi)    
  1062.   0xa85a112c: mov    0x20(%edi),%ecx    
  1063.   0xa85a112f: movl   $0x0,0x80(%ecx)    
  1064.   0xa85a1139: cmpl   $0x0,0x4(%edi)    
  1065.   0xa85a1140: jne    0xa85a1151    
  1066.   0xa85a1146: mov    %ebp,%esp    
  1067.   0xa85a1148: pop    %ebp    
  1068.   0xa85a1149: ret        
  1069.   0xa85a114a: call   0x0165f1a0         ;   {runtime_call}    
  1070.   0xa85a114f: jmp    0xa85a10fc    
  1071.   0xa85a1151: emms       
  1072.   0xa85a1153: mov    %ebp,%esp    
  1073.   0xa85a1155: pop    %ebp    
  1074.   0xa85a1156: jmp    Stub::forward exception  ;   {runtime_call}    
  1075.   0xa85a115b: hlt        
  1076. Decoding compiled method 0xa85a0c08:    
  1077. Code:    
  1078. [Entry Point]    
  1079. [Verified Entry Point]    
  1080. [Constants]    
  1081.   # {method} {0x889bd9a8} 'min' '(II)I' in 'java/lang/Math'    
  1082.   # parm0:    ecx       = int    
  1083.   # parm1:    edx       = int    
  1084.   #           [sp+0x20]  (sp of caller)    
  1085.   0xa85a0d20: mov    %eax,-0x4000(%esp)    
  1086.   0xa85a0d27: push   %ebp    
  1087.   0xa85a0d28: sub    $0x18,%esp    
  1088.   0xa85a0d2b: mov    $0x88a60090,%eax   ;   {metadata(method data for {method} {0x889bd9a8} 'min' '(II)I' in 'java/lang/Math')}    
  1089.   0xa85a0d30: mov    0xa4(%eax),%esi    
  1090.   0xa85a0d36: add    $0x8,%esi    
  1091.   0xa85a0d39: mov    %esi,0xa4(%eax)    
  1092.   0xa85a0d3f: mov    $0x889bd9a8,%eax   ;   {metadata({method} {0x889bd9a8} 'min' '(II)I' in 'java/lang/Math')}    
  1093.   0xa85a0d44: and    $0x1ff8,%esi    
  1094.   0xa85a0d4a: cmp    $0x0,%esi    
  1095.   0xa85a0d4d: je     0xa85a0d98         ;*iload_0    
  1096.                                         ; - java.lang.Math::min@0 (line 1336)    
  1097.     
  1098.   0xa85a0d53: cmp    %edx,%ecx    
  1099.   0xa85a0d55: mov    $0x88a60090,%eax   ;   {metadata(method data for {method} {0x889bd9a8} 'min' '(II)I' in 'java/lang/Math')}    
  1100.   0xa85a0d5a: mov    $0xcc,%esi    
  1101.   0xa85a0d5f: jg     0xa85a0d6a    
  1102.   0xa85a0d65: mov    $0xd4,%esi    
  1103.   0xa85a0d6a: mov    (%eax,%esi,1),%edi    
  1104.   0xa85a0d6d: lea    0x1(%edi),%edi    
  1105.   0xa85a0d70: mov    %edi,(%eax,%esi,1)    
  1106.   0xa85a0d73: jg     0xa85a0d89         ;*if_icmpgt    
  1107.                                         ; - java.lang.Math::min@2 (line 1336)    
  1108.     
  1109.   0xa85a0d79: mov    $0x88a60090,%eax   ;   {metadata(method data for {method} {0x889bd9a8} 'min' '(II)I' in 'java/lang/Math')}    
  1110.   0xa85a0d7e: incl   0xdc(%eax)    
  1111.   0xa85a0d84: jmp    0xa85a0d8b         ;*goto    
  1112.                                         ; - java.lang.Math::min@6 (line 1336)    
  1113.     
  1114.   0xa85a0d89: mov    %edx,%ecx          ;*ireturn    
  1115.                                         ; - java.lang.Math::min@10 (line 1336)    
  1116.     
  1117.   0xa85a0d8b: mov    %ecx,%eax    
  1118.   0xa85a0d8d: add    $0x18,%esp    
  1119.   0xa85a0d90: pop    %ebp    
  1120.   0xa85a0d91: test   %eax,0xb7712100    ;   {poll_return}    
  1121.   0xa85a0d97: ret        
  1122.   0xa85a0d98: mov    %eax,0x4(%esp)    
  1123.   0xa85a0d9c: movl   $0xffffffff,(%esp)    
  1124.   0xa85a0da3: call   0xa859fe20         ; OopMap{off=136}    
  1125.                                         ;*synchronization entry    
  1126.                                         ; - java.lang.Math::min@-1 (line 1336)    
  1127.                                         ;   {runtime_call}    
  1128.   0xa85a0da8: jmp    0xa85a0d53    
  1129.   0xa85a0daa: nop        
  1130.   0xa85a0dab: nop        
  1131.   0xa85a0dac: mov    %esp,%esi    
  1132.   0xa85a0dae: shr    $0xc,%esi    
  1133.   0xa85a0db1: mov    0x188a440(,%esi,4),%esi  ;   {external_word}    
  1134.   0xa85a0db8: mov    0x19c(%esi),%eax    
  1135.   0xa85a0dbe: movl   $0x0,0x19c(%esi)    
  1136.   0xa85a0dc8: movl   $0x0,0x1a0(%esi)    
  1137.   0xa85a0dd2: add    $0x18,%esp    
  1138.   0xa85a0dd5: pop    %ebp    
  1139.   0xa85a0dd6: jmp    0xa8556820         ;   {runtime_call}    
  1140.   0xa85a0ddb: hlt        
  1141.   0xa85a0ddc: hlt        
  1142.   0xa85a0ddd: hlt        
  1143.   0xa85a0dde: hlt        
  1144.   0xa85a0ddf: hlt        
  1145. [Exception Handler]    
  1146. [Stub Code]    
  1147.   0xa85a0de0: call   0xa859e860         ;   {no_reloc}    
  1148.   0xa85a0de5: push   $0x1790172         ;   {external_word}    
  1149.   0xa85a0dea: call   0xa85a0def    
  1150.   0xa85a0def: pusha      
  1151.   0xa85a0df0: call   0x0150c230         ;   {runtime_call}    
  1152.   0xa85a0df5: hlt        
  1153. [Deopt Handler Code]    
  1154.   0xa85a0df6: push   $0xa85a0df6        ;   {section_word}    
  1155.   0xa85a0dfb: jmp    0xa853c520         ;   {runtime_call}    
  1156. Decoding compiled method 0xa85a0848:    
  1157. Code:    
  1158. [Entry Point]    
  1159. [Constants]    
  1160.   # {method} {0x88961028} 'ensureCapacityInternal' '(I)V' in 'java/lang/AbstractStringBuilder'    
  1161.   # this:     ecx       = 'java/lang/AbstractStringBuilder'    
  1162.   # parm0:    edx       = int    
  1163.   #           [sp+0x20]  (sp of caller)    
  1164.   0xa85a0960: nop        
  1165.   0xa85a0961: nop        
  1166.   0xa85a0962: nop        
  1167.   0xa85a0963: nop        
  1168.   0xa85a0964: nop        
  1169.   0xa85a0965: nop        
  1170.   0xa85a0966: nop        
  1171.   0xa85a0967: nop        
  1172.   0xa85a0968: nop        
  1173.   0xa85a0969: nop        
  1174.   0xa85a096a: nop        
  1175.   0xa85a096b: nop        
  1176.   0xa85a096c: nop        
  1177.   0xa85a096d: nop        
  1178.   0xa85a096e: nop        
  1179.   0xa85a096f: nop        
  1180.   0xa85a0970: nop        
  1181.   0xa85a0971: nop        
  1182.   0xa85a0972: nop        
  1183.   0xa85a0973: nop        
  1184.   0xa85a0974: nop        
  1185.   0xa85a0975: nop        
  1186.   0xa85a0976: nop        
  1187.   0xa85a0977: cmp    0x4(%ecx),%eax    
  1188.   0xa85a097a: jne    0xa853b520         ;   {runtime_call}    
  1189. [Verified Entry Point]    
  1190.   0xa85a0980: mov    %eax,-0x4000(%esp)    
  1191.   0xa85a0987: push   %ebp    
  1192.   0xa85a0988: sub    $0x18,%esp    
  1193.   0xa85a098b: mov    $0x88a803f0,%esi   ;   {metadata(method data for {method} {0x88961028} 'ensureCapacityInternal' '(I)V' in 'java/lang/AbstractStringBuilder')}    
  1194.   0xa85a0990: mov    0xa4(%esi),%edi    
  1195.   0xa85a0996: add    $0x8,%edi    
  1196.   0xa85a0999: mov    %edi,0xa4(%esi)    
  1197.   0xa85a099f: mov    $0x88961028,%esi   ;   {metadata({method} {0x88961028} 'ensureCapacityInternal' '(I)V' in 'java/lang/AbstractStringBuilder')}    
  1198.   0xa85a09a4: and    $0x1ff8,%edi    
  1199.   0xa85a09aa: cmp    $0x0,%edi    
  1200.   0xa85a09ad: je     0xa85a0a6f         ;*iload_1    
  1201.                                         ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@0 (line 120)    
  1202.     
  1203.   0xa85a09b3: mov    0xc(%ecx),%esi     ;*getfield value    
  1204.                                         ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@2 (line 120)    
  1205.     
  1206.   0xa85a09b6: mov    0x8(%esi),%esi     ;*arraylength    
  1207.                                         ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@5 (line 120)    
  1208.                                         ; implicit exception: dispatches to 0xa85a0a84    
  1209.   0xa85a09b9: mov    %edx,%edi    
  1210.   0xa85a09bb: sub    %esi,%edi    
  1211.   0xa85a09bd: cmp    $0x0,%edi    
  1212.   0xa85a09c0: mov    $0x88a803f0,%esi   ;   {metadata(method data for {method} {0x88961028} 'ensureCapacityInternal' '(I)V' in 'java/lang/AbstractStringBuilder')}    
  1213.   0xa85a09c5: mov    $0xcc,%edi    
  1214.   0xa85a09ca: jle    0xa85a09d5    
  1215.   0xa85a09d0: mov    $0xd4,%edi    
  1216.   0xa85a09d5: mov    (%esi,%edi,1),%ebx    
  1217.   0xa85a09d8: lea    0x1(%ebx),%ebx    
  1218.   0xa85a09db: mov    %ebx,(%esi,%edi,1)    
  1219.   0xa85a09de: jle    0xa85a0a64         ;*ifle    
  1220.                                         ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@7 (line 120)    
  1221.     
  1222.   0xa85a09e4: mov    %ecx,%esi    
  1223.   0xa85a09e6: mov    $0x88a803f0,%edi   ;   {metadata(method data for {method} {0x88961028} 'ensureCapacityInternal' '(I)V' in 'java/lang/AbstractStringBuilder')}    
  1224.   0xa85a09eb: mov    0x4(%esi),%esi    
  1225.   0xa85a09ee: cmp    0xe0(%edi),%esi    
  1226.   0xa85a09f4: jne    0xa85a0a02    
  1227.   0xa85a09f6: addl   $0x1,0xe4(%edi)    
  1228.   0xa85a09fd: jmp    0xa85a0a5f    
  1229.   0xa85a0a02: cmp    0xe8(%edi),%esi    
  1230.   0xa85a0a08: jne    0xa85a0a16    
  1231.   0xa85a0a0a: addl   $0x1,0xec(%edi)    
  1232.   0xa85a0a11: jmp    0xa85a0a5f    
  1233.   0xa85a0a16: cmpl   $0x0,0xe0(%edi)    
  1234.   0xa85a0a20: jne    0xa85a0a37    
  1235.   0xa85a0a22: mov    %esi,0xe0(%edi)    
  1236.   0xa85a0a28: movl   $0x1,0xe4(%edi)    
  1237.   0xa85a0a32: jmp    0xa85a0a5f    
  1238.   0xa85a0a37: cmpl   $0x0,0xe8(%edi)    
  1239.   0xa85a0a41: jne    0xa85a0a58    
  1240.   0xa85a0a43: mov    %esi,0xe8(%edi)    
  1241.   0xa85a0a49: movl   $0x1,0xec(%edi)    
  1242.   0xa85a0a53: jmp    0xa85a0a5f    
  1243.   0xa85a0a58: addl   $0x1,0xdc(%edi)    
  1244.   0xa85a0a5f: call   0xa853b760         ; OopMap{off=260}    
  1245.                                         ;*invokevirtual expandCapacity    
  1246.                                         ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@12 (line 121)    
  1247.                                         ;   {optimized virtual_call}    
  1248.   0xa85a0a64: add    $0x18,%esp    
  1249.   0xa85a0a67: pop    %ebp    
  1250.   0xa85a0a68: test   %eax,0xb7712100    ;   {poll_return}    
  1251.   0xa85a0a6e: ret        
  1252.   0xa85a0a6f: mov    %esi,0x4(%esp)    
  1253.   0xa85a0a73: movl   $0xffffffff,(%esp)    
  1254.   0xa85a0a7a: call   0xa859fe20         ; OopMap{ecx=Oop off=287}    
  1255.                                         ;*synchronization entry    
  1256.                                         ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@-1 (line 120)    
  1257.                                         ;   {runtime_call}    
  1258.   0xa85a0a7f: jmp    0xa85a09b3    
  1259.   0xa85a0a84: call   0xa859d460         ; OopMap{ecx=Oop off=297}    
  1260.                                         ;*arraylength    
  1261.                                         ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@5 (line 120)    
  1262.                                         ;   {runtime_call}    
  1263.   0xa85a0a89: nop        
  1264.   0xa85a0a8a: nop        
  1265.   0xa85a0a8b: mov    %esp,%esi    
  1266.   0xa85a0a8d: shr    $0xc,%esi    
  1267.   0xa85a0a90: mov    0x188a440(,%esi,4),%esi  ;   {external_word}    
  1268.   0xa85a0a97: mov    0x19c(%esi),%eax    
  1269.   0xa85a0a9d: movl   $0x0,0x19c(%esi)    
  1270.   0xa85a0aa7: movl   $0x0,0x1a0(%esi)    
  1271.   0xa85a0ab1: add    $0x18,%esp    
  1272.   0xa85a0ab4: pop    %ebp    
  1273.   0xa85a0ab5: jmp    0xa8556820         ;   {runtime_call}    
  1274.   0xa85a0aba: hlt        
  1275.   0xa85a0abb: hlt        
  1276.   0xa85a0abc: hlt        
  1277.   0xa85a0abd: hlt        
  1278.   0xa85a0abe: hlt        
  1279.   0xa85a0abf: hlt        
  1280. [Stub Code]    
  1281.   0xa85a0ac0: nop                       ;   {no_reloc}    
  1282.   0xa85a0ac1: nop        
  1283.   0xa85a0ac2: mov    $0x0,%ebx          ;   {static_stub}    
  1284.   0xa85a0ac7: jmp    0xa85a0ac7         ;   {runtime_call}    
  1285. [Exception Handler]    
  1286.   0xa85a0acc: call   0xa859e860         ;   {runtime_call}    
  1287.   0xa85a0ad1: push   $0x1790172         ;   {external_word}    
  1288.   0xa85a0ad6: call   0xa85a0adb    
  1289.   0xa85a0adb: pusha      
  1290.   0xa85a0adc: call   0x0150c230         ;   {runtime_call}    
  1291.   0xa85a0ae1: hlt        
  1292. [Deopt Handler Code]    
  1293.   0xa85a0ae2: push   $0xa85a0ae2        ;   {section_word}    
  1294.   0xa85a0ae7: jmp    0xa853c520         ;   {runtime_call}    
  1295. Decoding compiled method 0xa85a7b08:    
  1296. Code:    
  1297. [Entry Point]    
  1298. [Constants]    
  1299.   # {method} {0x8890cb58} '<init>' '([CII)V' in 'java/lang/String'    
  1300.   # this:     ecx       = 'java/lang/String'    
  1301.   # parm0:    edx       = '[C'    
  1302.   # parm1:    [sp+0x40]   = int  (sp of caller)    
  1303.   # parm2:    [sp+0x44]   = int    
  1304.   0xa85a7c80: nop        
  1305.   0xa85a7c81: nop        
  1306.   0xa85a7c82: nop        
  1307.   0xa85a7c83: nop        
  1308.   0xa85a7c84: nop        
  1309.   0xa85a7c85: nop        
  1310.   0xa85a7c86: nop        
  1311.   0xa85a7c87: nop        
  1312.   0xa85a7c88: nop        
  1313.   0xa85a7c89: nop        
  1314.   0xa85a7c8a: nop        
  1315.   0xa85a7c8b: nop        
  1316.   0xa85a7c8c: nop        
  1317.   0xa85a7c8d: nop        
  1318.   0xa85a7c8e: nop        
  1319.   0xa85a7c8f: nop        
  1320.   0xa85a7c90: nop        
  1321.   0xa85a7c91: nop        
  1322.   0xa85a7c92: nop        
  1323.   0xa85a7c93: nop        
  1324.   0xa85a7c94: nop        
  1325.   0xa85a7c95: nop        
  1326.   0xa85a7c96: nop        
  1327.   0xa85a7c97: cmp    0x4(%ecx),%eax    
  1328.   0xa85a7c9a: jne    0xa853b520         ;   {runtime_call}    
  1329. [Verified Entry Point]    
  1330.   0xa85a7ca0: mov    %eax,-0x4000(%esp)    
  1331.   0xa85a7ca7: push   %ebp    
  1332.   0xa85a7ca8: sub    $0x38,%esp    
  1333.   0xa85a7cab: mov    %ecx,0x20(%esp)    
  1334.   0xa85a7caf: mov    $0x88a817d8,%esi   ;   {metadata(method data for {method} {0x8890cb58} '<init>' '([CII)V' in 'java/lang/String')}    
  1335.   0xa85a7cb4: mov    0xa4(%esi),%edi    
  1336.   0xa85a7cba: add    $0x8,%edi    
  1337.   0xa85a7cbd: mov    %edi,0xa4(%esi)    
  1338.   0xa85a7cc3: mov    $0x8890cb58,%esi   ;   {metadata({method} {0x8890cb58} '<init>' '([CII)V' in 'java/lang/String')}    
  1339.   0xa85a7cc8: and    $0x1ff8,%edi    
  1340.   0xa85a7cce: cmp    $0x0,%edi    
  1341.   0xa85a7cd1: je     0xa85a7ed9         ;*aload_0    
  1342.                                         ; - java.lang.String::<init>@0 (line 190)    
  1343.     
  1344.   0xa85a7cd7: mov    0x40(%esp),%esi    
  1345.   0xa85a7cdb: mov    %ecx,%edi    
  1346.   0xa85a7cdd: mov    $0x88a817d8,%ebx   ;   {metadata(method data for {method} {0x8890cb58} '<init>' '([CII)V' in 'java/lang/String')}    
  1347.   0xa85a7ce2: addl   $0x1,0xcc(%ebx)    
  1348.   0xa85a7ce9: mov    $0x88a1c7c0,%edi   ;   {metadata(method data for {method} {0x8890ab68} '<init>' '()V' in 'java/lang/Object')}    
  1349.   0xa85a7cee: mov    0xa4(%edi),%ebx    
  1350.   0xa85a7cf4: add    $0x8,%ebx    
  1351.   0xa85a7cf7: mov    %ebx,0xa4(%edi)    
  1352.   0xa85a7cfd: mov    $0x8890ab68,%edi   ;   {metadata({method} {0x8890ab68} '<init>' '()V' in 'java/lang/Object')}    
  1353.   0xa85a7d02: and    $0x7ffff8,%ebx    
  1354.   0xa85a7d08: cmp    $0x0,%ebx    
  1355.   0xa85a7d0b: je     0xa85a7eee    
  1356.   0xa85a7d11: cmp    $0x0,%esi    
  1357.   0xa85a7d14: mov    $0x88a817d8,%edi   ;   {metadata(method data for {method} {0x8890cb58} '<init>' '([CII)V' in 'java/lang/String')}    
  1358.   0xa85a7d19: mov    $0xd4,%ebx    
  1359.   0xa85a7d1e: jge    0xa85a7d29    
  1360.   0xa85a7d24: mov    $0xdc,%ebx    
  1361.   0xa85a7d29: mov    (%edi,%ebx,1),%eax    
  1362.   0xa85a7d2c: lea    0x1(%eax),%eax    
  1363.   0xa85a7d2f: mov    %eax,(%edi,%ebx,1)    
  1364.   0xa85a7d32: jl     0xa85a7ea1         ;*ifge    
  1365.                                         ; - java.lang.String::<init>@5 (line 191)    
  1366.     
  1367.   0xa85a7d38: mov    0x44(%esp),%edi    
  1368.   0xa85a7d3c: cmp    $0x0,%edi    
  1369.   0xa85a7d3f: mov    $0x88a817d8,%ebx   ;   {metadata(method data for {method} {0x8890cb58} '<init>' '([CII)V' in 'java/lang/String')}    
  1370.   0xa85a7d44: mov    $0xec,%eax    
  1371.   0xa85a7d49: jg     0xa85a7d54    
  1372.   0xa85a7d4f: mov    $0xf4,%eax    
  1373.   0xa85a7d54: mov    (%ebx,%eax,1),%ecx    
  1374.   0xa85a7d57: lea    0x1(%ecx),%ecx    
  1375.   0xa85a7d5a: mov    %ecx,(%ebx,%eax,1)    
  1376.   0xa85a7d5d: jg     0xa85a7db3         ;*ifgt    
  1377.                                         ; - java.lang.String::<init>@18 (line 194)    
  1378.     
  1379.   0xa85a7d63: cmp    $0x0,%edi    
  1380.   0xa85a7d66: mov    $0x88a817d8,%ecx   ;   {metadata(method data for {method} {0x8890cb58} '<init>' '([CII)V' in 'java/lang/String')}    
  1381.   0xa85a7d6b: mov    $0xfc,%ebx    
  1382.   0xa85a7d70: jge    0xa85a7d7b    
  1383.   0xa85a7d76: mov    $0x104,%ebx    
  1384.   0xa85a7d7b: mov    (%ecx,%ebx,1),%eax    
  1385.   0xa85a7d7e: lea    0x1(%eax),%eax    
  1386.   0xa85a7d81: mov    %eax,(%ecx,%ebx,1)    
  1387.   0xa85a7d84: jl     0xa85a7e69         ;*ifge    
  1388.                                         ; - java.lang.String::<init>@22 (line 195)    
  1389.     
  1390.   0xa85a7d8a: mov    0x8(%edx),%ecx     ;*arraylength    
  1391.                                         ; - java.lang.String::<init>@36 (line 198)    
  1392.                                         ; implicit exception: dispatches to 0xa85a7f03    
  1393.   0xa85a7d8d: cmp    %ecx,%esi    
  1394.   0xa85a7d8f: mov    $0x88a817d8,%ecx   ;   {metadata(method data for {method} {0x8890cb58} '<init>' '([CII)V' in 'java/lang/String')}    
  1395.   0xa85a7d94: mov    $0x114,%ebx    
  1396.   0xa85a7d99: jg     0xa85a7da4    
  1397.   0xa85a7d9f: mov    $0x11c,%ebx    
  1398.   0xa85a7da4: mov    (%ecx,%ebx,1),%eax    
  1399.   0xa85a7da7: lea    0x1(%eax),%eax    
  1400.   0xa85a7daa: mov    %eax,(%ecx,%ebx,1)    
  1401.   0xa85a7dad: jle    0xa85a7e14         ;*if_icmpgt    
  1402.                                         ; - java.lang.String::<init>@37 (line 198)    
  1403.     
  1404.   0xa85a7db3: mov    0x8(%edx),%ecx     ;*arraylength    
  1405.                                         ; - java.lang.String::<init>@52 (line 204)    
  1406.                                         ; implicit exception: dispatches to 0xa85a7f08    
  1407.   0xa85a7db6: sub    %edi,%ecx    
  1408.   0xa85a7db8: cmp    %ecx,%esi    
  1409.   0xa85a7dba: mov    $0x88a817d8,%ecx   ;   {metadata(method data for {method} {0x8890cb58} '<init>' '([CII)V' in 'java/lang/String')}    
  1410.   0xa85a7dbf: mov    $0x124,%ebx    
  1411.   0xa85a7dc4: jle    0xa85a7dcf    
  1412.   0xa85a7dca: mov    $0x12c,%ebx    
  1413.   0xa85a7dcf: mov    (%ecx,%ebx,1),%eax    
  1414.   0xa85a7dd2: lea    0x1(%eax),%eax    
  1415.   0xa85a7dd5: mov    %eax,(%ecx,%ebx,1)    
  1416.   0xa85a7dd8: jg     0xa85a7e38         ;*if_icmple    
  1417.                                         ; - java.lang.String::<init>@55 (line 204)    
  1418.     
  1419.   0xa85a7dde: mov    $0x88a817d8,%ebx   ;   {metadata(method data for {method} {0x8890cb58} '<init>' '([CII)V' in 'java/lang/String')}    
  1420.   0xa85a7de3: addl   $0x1,0x13c(%ebx)    
  1421.   0xa85a7dea: add    %esi,%edi    
  1422.   0xa85a7dec: mov    %edx,%ecx    
  1423.   0xa85a7dee: mov    %esi,%edx    
  1424.   0xa85a7df0: mov    %edi,(%esp)        ;*invokestatic copyOfRange    
  1425.                                         ; - java.lang.String::<init>@75 (line 207)    
  1426.     
  1427.   0xa85a7df3: call   0xa853bbe0         ; OopMap{[32]=Oop off=376}    
  1428.                                         ;*invokestatic copyOfRange    
  1429.                                         ; - java.lang.String::<init>@75 (line 207)    
  1430.                                         ;   {static_call}    
  1431.   0xa85a7df8: mov    0x20(%esp),%ecx    
  1432.   0xa85a7dfc: mov    %eax,0x8(%ecx)    
  1433.   0xa85a7dff: shr    $0x9,%ecx    
  1434.   0xa85a7e02: movb   $0x0,-0x58401000(%ecx)  ;*putfield value    
  1435.                                         ; - java.lang.String::<init>@78 (line 207)    
  1436.     
  1437.   0xa85a7e09: add    $0x38,%esp    
  1438.   0xa85a7e0c: pop    %ebp    
  1439.   0xa85a7e0d: test   %eax,0xb7712100    ;   {poll_return}    
  1440.   0xa85a7e13: ret                       ;*return    
  1441.                                         ; - java.lang.String::<init>@81 (line 208)    
  1442.     
  1443.   0xa85a7e14: mov    0x20(%esp),%ecx    
  1444.   0xa85a7e18: mov    $0x9e209228,%edx   ;   {oop("")}    
  1445.   0xa85a7e1d: mov    0x8(%edx),%edx     ;*getfield value    
  1446.                                         ; - java.lang.String::<init>@43 (line 199)    
  1447.                                         ; implicit exception: dispatches to 0xa85a7f0d    
  1448.   0xa85a7e20: mov    %edx,0x8(%ecx)    
  1449.   0xa85a7e23: shr    $0x9,%ecx    
  1450.   0xa85a7e26: movb   $0x0,-0x58401000(%ecx)  ;*putfield value    
  1451.                                         ; - java.lang.String::<init>@46 (line 199)    
  1452.     
  1453.   0xa85a7e2d: add    $0x38,%esp    
  1454.   0xa85a7e30: pop    %ebp    
  1455.   0xa85a7e31: test   %eax,0xb7712100    ;   {poll_return}    
  1456.   0xa85a7e37: ret                       ;*return    
  1457.                                         ; - java.lang.String::<init>@49 (line 200)    
  1458.     
  1459.   0xa85a7e38: jmp    0xa85a7f1c         ;   {no_reloc}    
  1460.   0xa85a7e3d: jmp    0xa85a7f26         ;*new  ; - java.lang.String::<init>@58 (line 205)    
  1461.     
  1462.   0xa85a7e42: mov    %eax,%edx    
  1463.   0xa85a7e44: mov    $0x88a817d8,%ecx   ;   {metadata(method data for {method} {0x8890cb58} '<init>' '([CII)V' in 'java/lang/String')}    
  1464.   0xa85a7e49: addl   $0x1,0x134(%ecx)    
  1465.   0xa85a7e50: add    %esi,%edi    
  1466.   0xa85a7e52: mov    %edi,%edx    
  1467.   0xa85a7e54: mov    %eax,%ecx          ;*invokespecial <init>    
  1468.                                         ; - java.lang.String::<init>@65 (line 205)    
  1469.     
  1470.   0xa85a7e56: mov    %eax,0x24(%esp)    
  1471.   0xa85a7e5a: nop        
  1472.   0xa85a7e5b: call   0xa853b760         ; OopMap{[36]=Oop off=480}    
  1473.                                         ;*invokespecial <init>    
  1474.                                         ; - java.lang.String::<init>@65 (line 205)    
  1475.                                         ;   {optimized virtual_call}    
  1476.   0xa85a7e60: mov    0x24(%esp),%eax    
  1477.   0xa85a7e64: jmp    0xa85a7f9a         ;*athrow    
  1478.                                         ; - java.lang.String::<init>@68 (line 205)    
  1479.     
  1480.   0xa85a7e69: nopl   0x0(%eax)    
  1481.   0xa85a7e70: jmp    0xa85a7f3c         ;   {no_reloc}    
  1482.   0xa85a7e75: jmp    0xa85a7f46         ;*new  ; - java.lang.String::<init>@25 (line 196)    
  1483.     
  1484.   0xa85a7e7a: mov    %eax,%edx    
  1485.   0xa85a7e7c: mov    $0x88a817d8,%ecx   ;   {metadata(method data for {method} {0x8890cb58} '<init>' '([CII)V' in 'java/lang/String')}    
  1486.   0xa85a7e81: addl   $0x1,0x10c(%ecx)    
  1487.   0xa85a7e88: mov    %edi,%edx    
  1488.   0xa85a7e8a: mov    %eax,%ecx          ;*invokespecial <init>    
  1489.                                         ; - java.lang.String::<init>@30 (line 196)    
  1490.     
  1491.   0xa85a7e8c: mov    %eax,0x28(%esp)    
  1492.   0xa85a7e90: nop        
  1493.   0xa85a7e91: nop        
  1494.   0xa85a7e92: nop        
  1495.   0xa85a7e93: call   0xa853b760         ; OopMap{[40]=Oop off=536}    
  1496.                                         ;*invokespecial <init>    
  1497.                                         ; - java.lang.String::<init>@30 (line 196)    
  1498.                                         ;   {optimized virtual_call}    
  1499.   0xa85a7e98: mov    0x28(%esp),%eax    
  1500.   0xa85a7e9c: jmp    0xa85a7f9a         ;*athrow    
  1501.                                         ; - java.lang.String::<init>@33 (line 196)    
  1502.     
  1503.   0xa85a7ea1: nopl   0x0(%eax)    
  1504.   0xa85a7ea8: jmp    0xa85a7f5c         ;   {no_reloc}    
  1505.   0xa85a7ead: jmp    0xa85a7f66         ;*new  ; - java.lang.String::<init>@8 (line 192)    
  1506.     
  1507.   0xa85a7eb2: mov    %eax,%edx    
  1508.   0xa85a7eb4: mov    $0x88a817d8,%ecx   ;   {metadata(method data for {method} {0x8890cb58} '<init>' '([CII)V' in 'java/lang/String')}    
  1509.   0xa85a7eb9: addl   $0x1,0xe4(%ecx)    
  1510.   0xa85a7ec0: mov    %esi,%edx    
  1511.   0xa85a7ec2: mov    %eax,%ecx          ;*invokespecial <init>    
  1512.                                         ; - java.lang.String::<init>@13 (line 192)    
  1513.     
  1514.   0xa85a7ec4: mov    %eax,0x2c(%esp)    
  1515.   0xa85a7ec8: nop        
  1516.   0xa85a7ec9: nop        
  1517.   0xa85a7eca: nop        
  1518.   0xa85a7ecb: call   0xa853b760         ; OopMap{[44]=Oop off=592}    
  1519.                                         ;*invokespecial <init>    
  1520.                                         ; - java.lang.String::<init>@13 (line 192)    
  1521.                                         ;   {optimized virtual_call}    
  1522.   0xa85a7ed0: mov    0x2c(%esp),%eax    
  1523.   0xa85a7ed4: jmp    0xa85a7f9a    
  1524.   0xa85a7ed9: mov    %esi,0x4(%esp)    
  1525.   0xa85a7edd: movl   $0xffffffff,(%esp)    
  1526.   0xa85a7ee4: call   0xa859fe20         ; OopMap{ecx=Oop [32]=Oop edx=Oop off=617}    
  1527.                                         ;*synchronization entry    
  1528.                                         ; - java.lang.String::<init>@-1 (line 190)    
  1529.                                         ;   {runtime_call}    
  1530.   0xa85a7ee9: jmp    0xa85a7cd7    
  1531.   0xa85a7eee: mov    %edi,0x4(%esp)    
  1532.   0xa85a7ef2: movl   $0xffffffff,(%esp)    
  1533.   0xa85a7ef9: call   0xa859fe20         ; OopMap{ecx=Oop [32]=Oop edx=Oop off=638}    
  1534.                                         ;*synchronization entry    
  1535.                                         ; - java.lang.Object::<init>@-1 (line 37)    
  1536.                                         ; - java.lang.String::<init>@1 (line 190)    
  1537.                                         ;   {runtime_call}    
  1538.   0xa85a7efe: jmp    0xa85a7d11    
  1539.   0xa85a7f03: call   0xa859d460         ; OopMap{edx=Oop [32]=Oop off=648}    
  1540.                                         ;*arraylength    
  1541.                                         ; - java.lang.String::<init>@36 (line 198)    
  1542.                                         ;   {runtime_call}    
  1543.   0xa85a7f08: call   0xa859d460         ; OopMap{edx=Oop [32]=Oop off=653}    
  1544.                                         ;*arraylength    
  1545.                                         ; - java.lang.String::<init>@52 (line 204)    
  1546.                                         ;   {runtime_call}    
  1547.   0xa85a7f0d: call   0xa859d460         ; OopMap{ecx=Oop [32]=Oop off=658}    
  1548.                                         ;*getfield value    
  1549.                                         ; - java.lang.String::<init>@43 (line 199)    
  1550.                                         ;   {runtime_call}    
  1551.   0xa85a7f12: mov    $0x0,%edx          ;   {metadata(NULL)}    
  1552.   0xa85a7f17: mov    $0x5050a00,%eax    
  1553.   0xa85a7f1c: call   0xa859f520         ; OopMap{off=673}    
  1554.                                         ;*new  ; - java.lang.String::<init>@58 (line 205)    
  1555.                                         ;   {runtime_call}    
  1556.   0xa85a7f21: jmp    0xa85a7e38    
  1557.   0xa85a7f26: mov    %edx,%edx    
  1558.   0xa85a7f28: call   0xa859d6a0         ; OopMap{off=685}    
  1559.                                         ;*new  ; - java.lang.String::<init>@58 (line 205)    
  1560.                                         ;   {runtime_call}    
  1561.   0xa85a7f2d: jmp    0xa85a7e42    
  1562.   0xa85a7f32: mov    $0x0,%edx          ;   {metadata(NULL)}    
  1563.   0xa85a7f37: mov    $0x5050a00,%eax    
  1564.   0xa85a7f3c: call   0xa859f520         ; OopMap{off=705}    
  1565.                                         ;*new  ; - java.lang.String::<init>@25 (line 196)    
  1566.                                         ;   {runtime_call}    
  1567.   0xa85a7f41: jmp    0xa85a7e70    
  1568.   0xa85a7f46: mov    %edx,%edx    
  1569.   0xa85a7f48: call   0xa859d6a0         ; OopMap{off=717}    
  1570.                                         ;*new  ; - java.lang.String::<init>@25 (line 196)    
  1571.                                         ;   {runtime_call}    
  1572.   0xa85a7f4d: jmp    0xa85a7e7a    
  1573.   0xa85a7f52: mov    $0x0,%edx          ;   {metadata(NULL)}    
  1574.   0xa85a7f57: mov    $0x5050a00,%eax    
  1575.   0xa85a7f5c: call   0xa859f520         ; OopMap{off=737}    
  1576.                                         ;*new  ; - java.lang.String::<init>@8 (line 192)    
  1577.                                         ;   {runtime_call}    
  1578.   0xa85a7f61: jmp    0xa85a7ea8    
  1579.   0xa85a7f66: mov    %edx,%edx    
  1580.   0xa85a7f68: call   0xa859d6a0         ; OopMap{off=749}    
  1581.                                         ;*new  ; - java.lang.String::<init>@8 (line 192)    
  1582.                                         ;   {runtime_call}    
  1583.   0xa85a7f6d: jmp    0xa85a7eb2    
  1584.   0xa85a7f72: nop        
  1585.   0xa85a7f73: nop        
  1586.   0xa85a7f74: mov    %esp,%esi    
  1587.   0xa85a7f76: shr    $0xc,%esi    
  1588.   0xa85a7f79: mov    0x188a440(,%esi,4),%esi  ;   {external_word}    
  1589.   0xa85a7f80: mov    0x19c(%esi),%eax    
  1590.   0xa85a7f86: movl   $0x0,0x19c(%esi)    
  1591.   0xa85a7f90: movl   $0x0,0x1a0(%esi)    
  1592.   0xa85a7f9a: add    $0x38,%esp    
  1593.   0xa85a7f9d: pop    %ebp    
  1594.   0xa85a7f9e: jmp    0xa8556820         ;   {runtime_call}    
  1595.   0xa85a7fa3: hlt        
  1596.   0xa85a7fa4: hlt        
  1597.   0xa85a7fa5: hlt        
  1598.   0xa85a7fa6: hlt        
  1599.   0xa85a7fa7: hlt        
  1600.   0xa85a7fa8: hlt        
  1601.   0xa85a7fa9: hlt        
  1602.   0xa85a7faa: hlt        
  1603.   0xa85a7fab: hlt        
  1604.   0xa85a7fac: hlt        
  1605.   0xa85a7fad: hlt        
  1606.   0xa85a7fae: hlt        
  1607.   0xa85a7faf: hlt        
  1608.   0xa85a7fb0: hlt        
  1609.   0xa85a7fb1: hlt        
  1610.   0xa85a7fb2: hlt        
  1611.   0xa85a7fb3: hlt        
  1612.   0xa85a7fb4: hlt        
  1613.   0xa85a7fb5: hlt        
  1614.   0xa85a7fb6: hlt        
  1615.   0xa85a7fb7: hlt        
  1616.   0xa85a7fb8: hlt        
  1617.   0xa85a7fb9: hlt        
  1618.   0xa85a7fba: hlt        
  1619.   0xa85a7fbb: hlt        
  1620.   0xa85a7fbc: hlt        
  1621.   0xa85a7fbd: hlt        
  1622.   0xa85a7fbe: hlt        
  1623.   0xa85a7fbf: hlt        
  1624. [Stub Code]    
  1625.   0xa85a7fc0: nop                       ;   {no_reloc}    
  1626.   0xa85a7fc1: nop        
  1627.   0xa85a7fc2: mov    $0x0,%ebx          ;   {static_stub}    
  1628.   0xa85a7fc7: jmp    0xa85a7fc7         ;   {runtime_call}    
  1629.   0xa85a7fcc: nop        
  1630.   0xa85a7fcd: nop        
  1631.   0xa85a7fce: mov    $0x0,%ebx          ;   {static_stub}    
  1632.   0xa85a7fd3: jmp    0xa85a7fd3         ;   {runtime_call}    
  1633.   0xa85a7fd8: nop        
  1634.   0xa85a7fd9: nop        
  1635.   0xa85a7fda: mov    $0x0,%ebx          ;   {static_stub}    
  1636.   0xa85a7fdf: jmp    0xa85a7fdf         ;   {runtime_call}    
  1637.   0xa85a7fe4: nop        
  1638.   0xa85a7fe5: nop        
  1639.   0xa85a7fe6: mov    $0x0,%ebx          ;   {static_stub}    
  1640.   0xa85a7feb: jmp    0xa85a7feb         ;   {runtime_call}    
  1641. [Exception Handler]    
  1642.   0xa85a7ff0: call   0xa859e860         ;   {runtime_call}    
  1643.   0xa85a7ff5: push   $0x1790172         ;   {external_word}    
  1644.   0xa85a7ffa: call   0xa85a7fff    
  1645.   0xa85a7fff: pusha      
  1646.   0xa85a8000: call   0x0150c230         ;   {runtime_call}    
  1647.   0xa85a8005: hlt        
  1648. [Deopt Handler Code]    
  1649.   0xa85a8006: push   $0xa85a8006        ;   {section_word}    
  1650.   0xa85a800b: jmp    0xa853c520         ;   {runtime_call}    
  1651. Decoding compiled method 0xa85a0648:    
  1652. Code:    
  1653. [Entry Point]    
  1654. [Verified Entry Point]    
  1655. [Constants]    
  1656.   # {method} {0x889c8d40} 'access$400' '(Ljava/lang/ThreadLocal;)I' in 'java/lang/ThreadLocal'    
  1657.   # parm0:    ecx       = 'java/lang/ThreadLocal'    
  1658.   #           [sp+0x20]  (sp of caller)    
  1659.   0xa85a0740: mov    %eax,-0x4000(%esp)    
  1660.   0xa85a0747: push   %ebp    
  1661.   0xa85a0748: sub    $0x18,%esp         ;*aload_0    
  1662.                                         ; - java.lang.ThreadLocal::access$400@0 (line 74)    
  1663.     
  1664.   0xa85a074b: mov    0x8(%ecx),%eax     ;*getfield threadLocalHashCode    
  1665.                                         ; - java.lang.ThreadLocal::access$400@1 (line 74)    
  1666.                                         ; implicit exception: dispatches to 0xa85a0759    
  1667.   0xa85a074e: add    $0x18,%esp    
  1668.   0xa85a0751: pop    %ebp    
  1669.   0xa85a0752: test   %eax,0xb7712100    ;   {poll_return}    
  1670.   0xa85a0758: ret        
  1671.   0xa85a0759: call   0xa859d460         ; OopMap{off=30}    
  1672.                                         ;*getfield threadLocalHashCode    
  1673.                                         ; - java.lang.ThreadLocal::access$400@1 (line 74)    
  1674.                                         ;   {runtime_call}    
  1675.   0xa85a075e: nop        
  1676.   0xa85a075f: nop        
  1677.   0xa85a0760: mov    %esp,%esi    
  1678.   0xa85a0762: shr    $0xc,%esi    
  1679.   0xa85a0765: mov    0x188a440(,%esi,4),%esi  ;   {external_word}    
  1680.   0xa85a076c: mov    0x19c(%esi),%eax    
  1681.   0xa85a0772: movl   $0x0,0x19c(%esi)    
  1682.   0xa85a077c: movl   $0x0,0x1a0(%esi)    
  1683.   0xa85a0786: add    $0x18,%esp    
  1684.   0xa85a0789: pop    %ebp    
  1685.   0xa85a078a: jmp    0xa8556820         ;   {runtime_call}    
  1686.   0xa85a078f: hlt        
  1687.   0xa85a0790: hlt        
  1688.   0xa85a0791: hlt        
  1689.   0xa85a0792: hlt        
  1690.   0xa85a0793: hlt        
  1691.   0xa85a0794: hlt        
  1692.   0xa85a0795: hlt        
  1693.   0xa85a0796: hlt        
  1694.   0xa85a0797: hlt        
  1695.   0xa85a0798: hlt        
  1696.   0xa85a0799: hlt        
  1697.   0xa85a079a: hlt        
  1698.   0xa85a079b: hlt        
  1699.   0xa85a079c: hlt        
  1700.   0xa85a079d: hlt        
  1701.   0xa85a079e: hlt        
  1702.   0xa85a079f: hlt        
  1703. [Exception Handler]    
  1704. [Stub Code]    
  1705.   0xa85a07a0: call   0xa859e860         ;   {no_reloc}    
  1706.   0xa85a07a5: push   $0x1790172         ;   {external_word}    
  1707.   0xa85a07aa: call   0xa85a07af    
  1708.   0xa85a07af: pusha      
  1709.   0xa85a07b0: call   0x0150c230         ;   {runtime_call}    
  1710.   0xa85a07b5: hlt        
  1711. [Deopt Handler Code]    
  1712.   0xa85a07b6: push   $0xa85a07b6        ;   {section_word}    
  1713.   0xa85a07bb: jmp    0xa853c520         ;   {runtime_call}    
  1714. Decoding compiled method 0xa85a8408:    
  1715. Code:    
  1716. [Entry Point]    
  1717. [Constants]    
  1718.   # {method} {0x88961698} 'append' '(Ljava/lang/String;)Ljava/lang/AbstractStringBuilder;' in 'java/lang/AbstractStringBuilder'    
  1719.   # this:     ecx       = 'java/lang/AbstractStringBuilder'    
  1720.   # parm0:    edx       = 'java/lang/String'    
  1721.   #           [sp+0x40]  (sp of caller)    
  1722.   0xa85a8560: nop        
  1723.   0xa85a8561: nop        
  1724.   0xa85a8562: nop        
  1725.   0xa85a8563: nop        
  1726.   0xa85a8564: nop        
  1727.   0xa85a8565: nop        
  1728.   0xa85a8566: nop        
  1729.   0xa85a8567: nop        
  1730.   0xa85a8568: nop        
  1731.   0xa85a8569: nop        
  1732.   0xa85a856a: nop        
  1733.   0xa85a856b: nop        
  1734.   0xa85a856c: nop        
  1735.   0xa85a856d: nop        
  1736.   0xa85a856e: nop        
  1737.   0xa85a856f: nop        
  1738.   0xa85a8570: nop        
  1739.   0xa85a8571: nop        
  1740.   0xa85a8572: nop        
  1741.   0xa85a8573: nop        
  1742.   0xa85a8574: nop        
  1743.   0xa85a8575: nop        
  1744.   0xa85a8576: nop        
  1745.   0xa85a8577: cmp    0x4(%ecx),%eax    
  1746.   0xa85a857a: jne    0xa853b520         ;   {runtime_call}    
  1747. [Verified Entry Point]    
  1748.   0xa85a8580: mov    %eax,-0x4000(%esp)    
  1749.   0xa85a8587: push   %ebp    
  1750.   0xa85a8588: sub    $0x38,%esp    
  1751.   0xa85a858b: mov    %ecx,0x2c(%esp)    
  1752.   0xa85a858f: mov    %edx,0x30(%esp)    
  1753.   0xa85a8593: mov    $0x88a8ffa8,%esi   ;   {metadata(method data for {method} {0x88961698} 'append' '(Ljava/lang/String;)Ljava/lang/AbstractStringBuilder;' in 'java/lang/AbstractStringBuilder')}    
  1754.   0xa85a8598: mov    0xa4(%esi),%edi    
  1755.   0xa85a859e: add    $0x8,%edi    
  1756.   0xa85a85a1: mov    %edi,0xa4(%esi)    
  1757.   0xa85a85a7: mov    $0x88961698,%esi   ;   {metadata({method} {0x88961698} 'append' '(Ljava/lang/String;)Ljava/lang/AbstractStringBuilder;' in 'java/lang/AbstractStringBuilder')}    
  1758.   0xa85a85ac: and    $0x1ff8,%edi    
  1759.   0xa85a85b2: cmp    $0x0,%edi    
  1760.   0xa85a85b5: je     0xa85a8867         ;*aload_1    
  1761.                                         ; - java.lang.AbstractStringBuilder::append@0 (line 418)    
  1762.     
  1763.   0xa85a85bb: cmp    $0x0,%edx    
  1764.   0xa85a85be: mov    $0x88a8ffa8,%esi   ;   {metadata(method data for {method} {0x88961698} 'append' '(Ljava/lang/String;)Ljava/lang/AbstractStringBuilder;' in 'java/lang/AbstractStringBuilder')}    
  1765.   0xa85a85c3: mov    $0xcc,%edi    
  1766.   0xa85a85c8: jne    0xa85a85d3    
  1767.   0xa85a85ce: mov    $0xd4,%edi    
  1768.   0xa85a85d3: mov    (%esi,%edi,1),%ebx    
  1769.   0xa85a85d6: lea    0x1(%ebx),%ebx    
  1770.   0xa85a85d9: mov    %ebx,(%esi,%edi,1)    
  1771.   0xa85a85dc: je     0xa85a8847         ;*ifnonnull    
  1772.                                         ; - java.lang.AbstractStringBuilder::append@1 (line 418)    
  1773.     
  1774.   0xa85a85e2: cmp    (%edx),%eax        ;*invokevirtual length    
  1775.                                         ; - java.lang.AbstractStringBuilder::append@10 (line 420)    
  1776.                                         ; implicit exception: dispatches to 0xa85a887c    
  1777.   0xa85a85e4: mov    %edx,%esi    
  1778.   0xa85a85e6: mov    $0x88a8ffa8,%edi   ;   {metadata(method data for {method} {0x88961698} 'append' '(Ljava/lang/String;)Ljava/lang/AbstractStringBuilder;' in 'java/lang/AbstractStringBuilder')}    
  1779.   0xa85a85eb: mov    0x4(%esi),%esi    
  1780.   0xa85a85ee: cmp    0xe8(%edi),%esi    
  1781.   0xa85a85f4: jne    0xa85a8602    
  1782.   0xa85a85f6: addl   $0x1,0xec(%edi)    
  1783.   0xa85a85fd: jmp    0xa85a865f    
  1784.   0xa85a8602: cmp    0xf0(%edi),%esi    
  1785.   0xa85a8608: jne    0xa85a8616    
  1786.   0xa85a860a: addl   $0x1,0xf4(%edi)    
  1787.   0xa85a8611: jmp    0xa85a865f    
  1788.   0xa85a8616: cmpl   $0x0,0xe8(%edi)    
  1789.   0xa85a8620: jne    0xa85a8637    
  1790.   0xa85a8622: mov    %esi,0xe8(%edi)    
  1791.   0xa85a8628: movl   $0x1,0xec(%edi)    
  1792.   0xa85a8632: jmp    0xa85a865f    
  1793.   0xa85a8637: cmpl   $0x0,0xf0(%edi)    
  1794.   0xa85a8641: jne    0xa85a8658    
  1795.   0xa85a8643: mov    %esi,0xf0(%edi)    
  1796.   0xa85a8649: movl   $0x1,0xf4(%edi)    
  1797.   0xa85a8653: jmp    0xa85a865f    
  1798.   0xa85a8658: addl   $0x1,0xe4(%edi)    
  1799.   0xa85a865f: mov    $0x88a73a70,%esi   ;   {metadata(method data for {method} {0x8890d360} 'length' '()I' in 'java/lang/String')}    
  1800.   0xa85a8664: mov    0xa4(%esi),%edi    
  1801.   0xa85a866a: add    $0x8,%edi    
  1802.   0xa85a866d: mov    %edi,0xa4(%esi)    
  1803.   0xa85a8673: mov    $0x8890d360,%esi   ;   {metadata({method} {0x8890d360} 'length' '()I' in 'java/lang/String')}    
  1804.   0xa85a8678: and    $0x7ffff8,%edi    
  1805.   0xa85a867e: cmp    $0x0,%edi    
  1806.   0xa85a8681: je     0xa85a8881    
  1807.   0xa85a8687: mov    0x8(%edx),%esi     ;*getfield value    
  1808.                                         ; - java.lang.String::length@1 (line 623)    
  1809.                                         ; - java.lang.AbstractStringBuilder::append@10 (line 420)    
  1810.     
  1811.   0xa85a868a: mov    0x8(%esi),%esi     ;*arraylength    
  1812.                                         ; - java.lang.String::length@4 (line 623)    
  1813.                                         ; - java.lang.AbstractStringBuilder::append@10 (line 420)    
  1814.                                         ; implicit exception: dispatches to 0xa85a8896    
  1815.   0xa85a868d: mov    %esi,0x28(%esp)    
  1816.   0xa85a8691: mov    0x8(%ecx),%edi     ;*getfield count    
  1817.                                         ; - java.lang.AbstractStringBuilder::append@16 (line 421)    
  1818.     
  1819.   0xa85a8694: add    %esi,%edi    
  1820.   0xa85a8696: mov    %ecx,%ebx    
  1821.   0xa85a8698: mov    $0x88a8ffa8,%eax   ;   {metadata(method data for {method} {0x88961698} 'append' '(Ljava/lang/String;)Ljava/lang/AbstractStringBuilder;' in 'java/lang/AbstractStringBuilder')}    
  1822.   0xa85a869d: addl   $0x1,0xfc(%eax)    
  1823.   0xa85a86a4: mov    $0x88a803f0,%esi   ;   {metadata(method data for {method} {0x88961028} 'ensureCapacityInternal' '(I)V' in 'java/lang/AbstractStringBuilder')}    
  1824.   0xa85a86a9: mov    0xa4(%esi),%ebx    
  1825.   0xa85a86af: add    $0x8,%ebx    
  1826.   0xa85a86b2: mov    %ebx,0xa4(%esi)    
  1827.   0xa85a86b8: mov    $0x88961028,%esi   ;   {metadata({method} {0x88961028} 'ensureCapacityInternal' '(I)V' in 'java/lang/AbstractStringBuilder')}    
  1828.   0xa85a86bd: and    $0x7ffff8,%ebx    
  1829.   0xa85a86c3: cmp    $0x0,%ebx    
  1830.   0xa85a86c6: je     0xa85a889b    
  1831.   0xa85a86cc: mov    0xc(%ecx),%esi     ;*getfield value    
  1832.                                         ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@2 (line 120)    
  1833.                                         ; - java.lang.AbstractStringBuilder::append@21 (line 421)    
  1834.     
  1835.   0xa85a86cf: mov    0x8(%esi),%esi     ;*arraylength    
  1836.                                         ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@5 (line 120)    
  1837.                                         ; - java.lang.AbstractStringBuilder::append@21 (line 421)    
  1838.                                         ; implicit exception: dispatches to 0xa85a88b0    
  1839.   0xa85a86d2: mov    %edi,%ebx    
  1840.   0xa85a86d4: sub    %esi,%ebx    
  1841.   0xa85a86d6: cmp    $0x0,%ebx    
  1842.   0xa85a86d9: mov    $0x88a803f0,%esi   ;   {metadata(method data for {method} {0x88961028} 'ensureCapacityInternal' '(I)V' in 'java/lang/AbstractStringBuilder')}    
  1843.   0xa85a86de: mov    $0xcc,%ebx    
  1844.   0xa85a86e3: jle    0xa85a86ee    
  1845.   0xa85a86e9: mov    $0xd4,%ebx    
  1846.   0xa85a86ee: mov    (%esi,%ebx,1),%eax    
  1847.   0xa85a86f1: lea    0x1(%eax),%eax    
  1848.   0xa85a86f4: mov    %eax,(%esi,%ebx,1)    
  1849.   0xa85a86f7: jle    0xa85a8784         ;*ifle    
  1850.                                         ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@7 (line 120)    
  1851.                                         ; - java.lang.AbstractStringBuilder::append@21 (line 421)    
  1852.     
  1853.   0xa85a86fd: mov    %ecx,%ebx    
  1854.   0xa85a86ff: mov    $0x88a803f0,%eax   ;   {metadata(method data for {method} {0x88961028} 'ensureCapacityInternal' '(I)V' in 'java/lang/AbstractStringBuilder')}    
  1855.   0xa85a8704: mov    0x4(%ebx),%ebx    
  1856.   0xa85a8707: cmp    0xe0(%eax),%ebx    
  1857.   0xa85a870d: jne    0xa85a871b    
  1858.   0xa85a870f: addl   $0x1,0xe4(%eax)    
  1859.   0xa85a8716: jmp    0xa85a8778    
  1860.   0xa85a871b: cmp    0xe8(%eax),%ebx    
  1861.   0xa85a8721: jne    0xa85a872f    
  1862.   0xa85a8723: addl   $0x1,0xec(%eax)    
  1863.   0xa85a872a: jmp    0xa85a8778    
  1864.   0xa85a872f: cmpl   $0x0,0xe0(%eax)    
  1865.   0xa85a8739: jne    0xa85a8750    
  1866.   0xa85a873b: mov    %ebx,0xe0(%eax)    
  1867.   0xa85a8741: movl   $0x1,0xe4(%eax)    
  1868.   0xa85a874b: jmp    0xa85a8778    
  1869.   0xa85a8750: cmpl   $0x0,0xe8(%eax)    
  1870.   0xa85a875a: jne    0xa85a8771    
  1871.   0xa85a875c: mov    %ebx,0xe8(%eax)    
  1872.   0xa85a8762: movl   $0x1,0xec(%eax)    
  1873.   0xa85a876c: jmp    0xa85a8778    
  1874.   0xa85a8771: addl   $0x1,0xdc(%eax)    
  1875.   0xa85a8778: mov    %edi,%edx    
  1876.   0xa85a877a: mov    %ecx,%edi    
  1877.   0xa85a877c: mov    %edi,%ecx          ;*invokevirtual expandCapacity    
  1878.                                         ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@12 (line 121)    
  1879.                                         ; - java.lang.AbstractStringBuilder::append@21 (line 421)    
  1880.     
  1881.   0xa85a877e: nop        
  1882.   0xa85a877f: call   0xa853b760         ; OopMap{[44]=Oop [48]=Oop off=548}    
  1883.                                         ;*invokevirtual expandCapacity    
  1884.                                         ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@12 (line 121)    
  1885.                                         ; - java.lang.AbstractStringBuilder::append@21 (line 421)    
  1886.                                         ;   {optimized virtual_call}    
  1887.   0xa85a8784: mov    0x28(%esp),%edi    
  1888.   0xa85a8788: mov    0x30(%esp),%esi    
  1889.   0xa85a878c: mov    0x2c(%esp),%ecx    
  1890.   0xa85a8790: mov    0xc(%ecx),%ebx     ;*getfield value    
  1891.                                         ; - java.lang.AbstractStringBuilder::append@28 (line 422)    
  1892.     
  1893.   0xa85a8793: mov    0x8(%ecx),%eax     ;*getfield count    
  1894.                                         ; - java.lang.AbstractStringBuilder::append@32 (line 422)    
  1895.     
  1896.   0xa85a8796: mov    %esi,%edx    
  1897.   0xa85a8798: mov    $0x88a8ffa8,%esi   ;   {metadata(method data for {method} {0x88961698} 'append' '(Ljava/lang/String;)Ljava/lang/AbstractStringBuilder;' in 'java/lang/AbstractStringBuilder')}    
  1898.   0xa85a879d: mov    0x4(%edx),%edx    
  1899.   0xa85a87a0: cmp    0x108(%esi),%edx    
  1900.   0xa85a87a6: jne    0xa85a87b4    
  1901.   0xa85a87a8: addl   $0x1,0x10c(%esi)    
  1902.   0xa85a87af: jmp    0xa85a8811    
  1903.   0xa85a87b4: cmp    0x110(%esi),%edx    
  1904.   0xa85a87ba: jne    0xa85a87c8    
  1905.   0xa85a87bc: addl   $0x1,0x114(%esi)    
  1906.   0xa85a87c3: jmp    0xa85a8811    
  1907.   0xa85a87c8: cmpl   $0x0,0x108(%esi)    
  1908.   0xa85a87d2: jne    0xa85a87e9    
  1909.   0xa85a87d4: mov    %edx,0x108(%esi)    
  1910.   0xa85a87da: movl   $0x1,0x10c(%esi)    
  1911.   0xa85a87e4: jmp    0xa85a8811    
  1912.   0xa85a87e9: cmpl   $0x0,0x110(%esi)    
  1913.   0xa85a87f3: jne    0xa85a880a    
  1914.   0xa85a87f5: mov    %edx,0x110(%esi)    
  1915.   0xa85a87fb: movl   $0x1,0x114(%esi)    
  1916.   0xa85a8805: jmp    0xa85a8811    
  1917.   0xa85a880a: addl   $0x1,0x104(%esi)    
  1918.   0xa85a8811: mov    $0x0,%edx    
  1919.   0xa85a8816: mov    %edi,(%esp)    
  1920.   0xa85a8819: mov    %ebx,0x4(%esp)    
  1921.   0xa85a881d: mov    %eax,0x8(%esp)    
  1922.   0xa85a8821: mov    0x30(%esp),%ecx    ;*invokevirtual getChars    
  1923.                                         ; - java.lang.AbstractStringBuilder::append@35 (line 422)    
  1924.     
  1925.   0xa85a8825: nop        
  1926.   0xa85a8826: nop        
  1927.   0xa85a8827: call   0xa853b760         ; OopMap{[44]=Oop off=716}    
  1928.                                         ;*invokevirtual getChars    
  1929.                                         ; - java.lang.AbstractStringBuilder::append@35 (line 422)    
  1930.                                         ;   {optimized virtual_call}    
  1931.   0xa85a882c: mov    0x2c(%esp),%ecx    
  1932.   0xa85a8830: mov    0x8(%ecx),%eax     ;*getfield count    
  1933.                                         ; - java.lang.AbstractStringBuilder::append@40 (line 423)    
  1934.     
  1935.   0xa85a8833: add    0x28(%esp),%eax    
  1936.   0xa85a8837: mov    %eax,0x8(%ecx)     ;*putfield count    
  1937.                                         ; - java.lang.AbstractStringBuilder::append@45 (line 423)    
  1938.     
  1939.   0xa85a883a: mov    %ecx,%eax    
  1940.   0xa85a883c: add    $0x38,%esp    
  1941.   0xa85a883f: pop    %ebp    
  1942.   0xa85a8840: test   %eax,0xb7712100    ;   {poll_return}    
  1943.   0xa85a8846: ret                       ;*areturn    
  1944.                                         ; - java.lang.AbstractStringBuilder::append@49 (line 424)    
  1945.     
  1946.   0xa85a8847: mov    %ecx,%esi    
  1947.   0xa85a8849: mov    $0x88a8ffa8,%edi   ;   {metadata(method data for {method} {0x88961698} 'append' '(Ljava/lang/String;)Ljava/lang/AbstractStringBuilder;' in 'java/lang/AbstractStringBuilder')}    
  1948.   0xa85a884e: addl   $0x1,0xdc(%edi)    
  1949.   0xa85a8855: nop        
  1950.   0xa85a8856: nop        
  1951.   0xa85a8857: call   0xa853b760         ; OopMap{off=764}    
  1952.                                         ;*invokespecial appendNull    
  1953.                                         ; - java.lang.AbstractStringBuilder::append@5 (line 419)    
  1954.                                         ;   {optimized virtual_call}    
  1955.   0xa85a885c: add    $0x38,%esp    
  1956.   0xa85a885f: pop    %ebp    
  1957.   0xa85a8860: test   %eax,0xb7712100    ;   {poll_return}    
  1958.   0xa85a8866: ret        
  1959.   0xa85a8867: mov    %esi,0x4(%esp)    
  1960.   0xa85a886b: movl   $0xffffffff,(%esp)    
  1961.   0xa85a8872: call   0xa859fe20         ; OopMap{ecx=Oop [44]=Oop edx=Oop [48]=Oop off=791}    
  1962.                                         ;*synchronization entry    
  1963.                                         ; - java.lang.AbstractStringBuilder::append@-1 (line 418)    
  1964.                                         ;   {runtime_call}    
  1965.   0xa85a8877: jmp    0xa85a85bb    
  1966.   0xa85a887c: call   0xa859d460         ; OopMap{ecx=Oop [44]=Oop edx=Oop [48]=Oop off=801}    
  1967.                                         ;*invokevirtual length    
  1968.                                         ; - java.lang.AbstractStringBuilder::append@10 (line 420)    
  1969.                                         ;   {runtime_call}    
  1970.   0xa85a8881: mov    %esi,0x4(%esp)    
  1971.   0xa85a8885: movl   $0xffffffff,(%esp)    
  1972.   0xa85a888c: call   0xa859fe20         ; OopMap{ecx=Oop [44]=Oop edx=Oop [48]=Oop off=817}    
  1973.                                         ;*synchronization entry    
  1974.                                         ; - java.lang.String::length@-1 (line 623)    
  1975.                                         ; - java.lang.AbstractStringBuilder::append@10 (line 420)    
  1976.                                         ;   {runtime_call}    
  1977.   0xa85a8891: jmp    0xa85a8687    
  1978.   0xa85a8896: call   0xa859d460         ; OopMap{ecx=Oop [44]=Oop edx=Oop [48]=Oop off=827}    
  1979.                                         ;*arraylength    
  1980.                                         ; - java.lang.String::length@4 (line 623)    
  1981.                                         ; - java.lang.AbstractStringBuilder::append@10 (line 420)    
  1982.                                         ;   {runtime_call}    
  1983.   0xa85a889b: mov    %esi,0x4(%esp)    
  1984.   0xa85a889f: movl   $0xffffffff,(%esp)    
  1985.   0xa85a88a6: call   0xa859fe20         ; OopMap{ecx=Oop [44]=Oop edx=Oop [48]=Oop off=843}    
  1986.                                         ;*synchronization entry    
  1987.                                         ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@-1 (line 120)    
  1988.                                         ; - java.lang.AbstractStringBuilder::append@21 (line 421)    
  1989.                                         ;   {runtime_call}    
  1990.   0xa85a88ab: jmp    0xa85a86cc    
  1991.   0xa85a88b0: call   0xa859d460         ; OopMap{ecx=Oop [44]=Oop edx=Oop [48]=Oop off=853}    
  1992.                                         ;*arraylength    
  1993.                                         ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@5 (line 120)    
  1994.                                         ; - java.lang.AbstractStringBuilder::append@21 (line 421)    
  1995.                                         ;   {runtime_call}    
  1996.   0xa85a88b5: nop        
  1997.   0xa85a88b6: nop        
  1998.   0xa85a88b7: mov    %esp,%esi    
  1999.   0xa85a88b9: shr    $0xc,%esi    
  2000.   0xa85a88bc: mov    0x188a440(,%esi,4),%esi  ;   {external_word}    
  2001.   0xa85a88c3: mov    0x19c(%esi),%eax    
  2002.   0xa85a88c9: movl   $0x0,0x19c(%esi)    
  2003.   0xa85a88d3: movl   $0x0,0x1a0(%esi)    
  2004.   0xa85a88dd: add    $0x38,%esp    
  2005.   0xa85a88e0: pop    %ebp    
  2006.   0xa85a88e1: jmp    0xa8556820         ;   {runtime_call}    
  2007.   0xa85a88e6: hlt        
  2008.   0xa85a88e7: hlt        
  2009.   0xa85a88e8: hlt        
  2010.   0xa85a88e9: hlt        
  2011.   0xa85a88ea: hlt        
  2012.   0xa85a88eb: hlt        
  2013.   0xa85a88ec: hlt        
  2014.   0xa85a88ed: hlt        
  2015.   0xa85a88ee: hlt        
  2016.   0xa85a88ef: hlt        
  2017.   0xa85a88f0: hlt        
  2018.   0xa85a88f1: hlt        
  2019.   0xa85a88f2: hlt        
  2020.   0xa85a88f3: hlt        
  2021.   0xa85a88f4: hlt        
  2022.   0xa85a88f5: hlt        
  2023.   0xa85a88f6: hlt        
  2024.   0xa85a88f7: hlt        
  2025.   0xa85a88f8: hlt        
  2026.   0xa85a88f9: hlt        
  2027.   0xa85a88fa: hlt        
  2028.   0xa85a88fb: hlt        
  2029.   0xa85a88fc: hlt        
  2030.   0xa85a88fd: hlt        
  2031.   0xa85a88fe: hlt        
  2032.   0xa85a88ff: hlt        
  2033. [Stub Code]    
  2034.   0xa85a8900: nop                       ;   {no_reloc}    
  2035.   0xa85a8901: nop        
  2036.   0xa85a8902: mov    $0x0,%ebx          ;   {static_stub}    
  2037.   0xa85a8907: jmp    0xa85a8907         ;   {runtime_call}    
  2038.   0xa85a890c: nop        
  2039.   0xa85a890d: nop        
  2040.   0xa85a890e: mov    $0x0,%ebx          ;   {static_stub}    
  2041.   0xa85a8913: jmp    0xa85a8913         ;   {runtime_call}    
  2042.   0xa85a8918: nop        
  2043.   0xa85a8919: nop        
  2044.   0xa85a891a: mov    $0x0,%ebx          ;   {static_stub}    
  2045.   0xa85a891f: jmp    0xa85a891f         ;   {runtime_call}    
  2046. [Exception Handler]    
  2047.   0xa85a8924: call   0xa859e860         ;   {runtime_call}    
  2048.   0xa85a8929: push   $0x1790172         ;   {external_word}    
  2049.   0xa85a892e: call   0xa85a8933    
  2050.   0xa85a8933: pusha      
  2051.   0xa85a8934: call   0x0150c230         ;   {runtime_call}    
  2052.   0xa85a8939: hlt        
  2053. [Deopt Handler Code]    
  2054.   0xa85a893a: push   $0xa85a893a        ;   {section_word}    
  2055.   0xa85a893f: jmp    0xa853c520         ;   {runtime_call}    
  2056. Decoding compiled method 0xa85a8c48:    
  2057. Code:    
  2058. [Entry Point]    
  2059. [Constants]    
  2060.   # {method} {0x8890d788} 'getChars' '(II[CI)V' in 'java/lang/String'    
  2061.   # this:     ecx       = 'java/lang/String'    
  2062.   # parm0:    edx       = int    
  2063.   # parm1:    [sp+0x40]   = int  (sp of caller)    
  2064.   # parm2:    [sp+0x44]   = '[C'    
  2065.   # parm3:    [sp+0x48]   = int    
  2066.   0xa85a8da0: nop        
  2067.   0xa85a8da1: nop        
  2068.   0xa85a8da2: nop        
  2069.   0xa85a8da3: nop        
  2070.   0xa85a8da4: nop        
  2071.   0xa85a8da5: nop        
  2072.   0xa85a8da6: nop        
  2073.   0xa85a8da7: nop        
  2074.   0xa85a8da8: nop        
  2075.   0xa85a8da9: nop        
  2076.   0xa85a8daa: nop        
  2077.   0xa85a8dab: nop        
  2078.   0xa85a8dac: nop        
  2079.   0xa85a8dad: nop        
  2080.   0xa85a8dae: nop        
  2081.   0xa85a8daf: nop        
  2082.   0xa85a8db0: nop        
  2083.   0xa85a8db1: nop        
  2084.   0xa85a8db2: nop        
  2085.   0xa85a8db3: nop        
  2086.   0xa85a8db4: nop        
  2087.   0xa85a8db5: nop        
  2088.   0xa85a8db6: nop        
  2089.   0xa85a8db7: cmp    0x4(%ecx),%eax    
  2090.   0xa85a8dba: jne    0xa853b520         ;   {runtime_call}    
  2091. [Verified Entry Point]    
  2092.   0xa85a8dc0: mov    %eax,-0x4000(%esp)    
  2093.   0xa85a8dc7: push   %ebp    
  2094.   0xa85a8dc8: sub    $0x38,%esp    
  2095.   0xa85a8dcb: mov    %edx,%esi    
  2096.   0xa85a8dcd: mov    $0x88a91580,%edx   ;   {metadata(method data for {method} {0x8890d788} 'getChars' '(II[CI)V' in 'java/lang/String')}    
  2097.   0xa85a8dd2: mov    0xa4(%edx),%eax    
  2098.   0xa85a8dd8: add    $0x8,%eax    
  2099.   0xa85a8ddb: mov    %eax,0xa4(%edx)    
  2100.   0xa85a8de1: mov    $0x8890d788,%edx   ;   {metadata({method} {0x8890d788} 'getChars' '(II[CI)V' in 'java/lang/String')}    
  2101.   0xa85a8de6: and    $0x1ff8,%eax    
  2102.   0xa85a8dec: cmp    $0x0,%eax    
  2103.   0xa85a8def: je     0xa85a8f91         ;*iload_1    
  2104.                                         ; - java.lang.String::getChars@0 (line 817)    
  2105.     
  2106.   0xa85a8df5: cmp    $0x0,%esi    
  2107.   0xa85a8df8: mov    $0x88a91580,%edx   ;   {metadata(method data for {method} {0x8890d788} 'getChars' '(II[CI)V' in 'java/lang/String')}    
  2108.   0xa85a8dfd: mov    $0xcc,%eax    
  2109.   0xa85a8e02: jge    0xa85a8e0d    
  2110.   0xa85a8e08: mov    $0xd4,%eax    
  2111.   0xa85a8e0d: mov    (%edx,%eax,1),%ebx    
  2112.   0xa85a8e10: lea    0x1(%ebx),%ebx    
  2113.   0xa85a8e13: mov    %ebx,(%edx,%eax,1)    
  2114.   0xa85a8e16: jl     0xa85a8f59         ;*ifge    
  2115.                                         ; - java.lang.String::getChars@1 (line 817)    
  2116.     
  2117.   0xa85a8e1c: mov    0x40(%esp),%edi    
  2118.   0xa85a8e20: mov    0x8(%ecx),%ecx     ;*getfield value    
  2119.                                         ; - java.lang.String::getChars@15 (line 820)    
  2120.     
  2121.   0xa85a8e23: mov    0x8(%ecx),%edx     ;*arraylength    
  2122.                                         ; - java.lang.String::getChars@18 (line 820)    
  2123.                                         ; implicit exception: dispatches to 0xa85a8fa6    
  2124.   0xa85a8e26: cmp    %edx,%edi    
  2125.   0xa85a8e28: mov    $0x88a91580,%edx   ;   {metadata(method data for {method} {0x8890d788} 'getChars' '(II[CI)V' in 'java/lang/String')}    
  2126.   0xa85a8e2d: mov    $0xe4,%eax    
  2127.   0xa85a8e32: jle    0xa85a8e3d    
  2128.   0xa85a8e38: mov    $0xec,%eax    
  2129.   0xa85a8e3d: mov    (%edx,%eax,1),%ebx    
  2130.   0xa85a8e40: lea    0x1(%ebx),%ebx    
  2131.   0xa85a8e43: mov    %ebx,(%edx,%eax,1)    
  2132.   0xa85a8e46: jg     0xa85a8f21         ;*if_icmple    
  2133.                                         ; - java.lang.String::getChars@19 (line 820)    
  2134.     
  2135.   0xa85a8e4c: cmp    %edi,%esi    
  2136.   0xa85a8e4e: mov    $0x88a91580,%edx   ;   {metadata(method data for {method} {0x8890d788} 'getChars' '(II[CI)V' in 'java/lang/String')}    
  2137.   0xa85a8e53: mov    $0xfc,%eax    
  2138.   0xa85a8e58: jle    0xa85a8e63    
  2139.   0xa85a8e5e: mov    $0x104,%eax    
  2140.   0xa85a8e63: mov    (%edx,%eax,1),%ebx    
  2141.   0xa85a8e66: lea    0x1(%ebx),%ebx    
  2142.   0xa85a8e69: mov    %ebx,(%edx,%eax,1)    
  2143.   0xa85a8e6c: jg     0xa85a8eeb         ;*if_icmple    
  2144.                                         ; - java.lang.String::getChars@33 (line 823)    
  2145.     
  2146.   0xa85a8e72: mov    0x44(%esp),%eax    
  2147.   0xa85a8e76: mov    $0x88a91580,%edx   ;   {metadata(method data for {method} {0x8890d788} 'getChars' '(II[CI)V' in 'java/lang/String')}    
  2148.   0xa85a8e7b: addl   $0x1,0x114(%edx)    
  2149.   0xa85a8e82: sub    %esi,%edi    
  2150.   0xa85a8e84: mov    %esi,%edx    
  2151.   0xa85a8e86: mov    0x48(%esp),%ebx    
  2152.   0xa85a8e8a: test   %eax,%eax    
  2153.   0xa85a8e8c: je     0xa85a8fab    
  2154.   0xa85a8e92: test   %edx,%edx    
  2155.   0xa85a8e94: jl     0xa85a8fab    
  2156.   0xa85a8e9a: test   %ebx,%ebx    
  2157.   0xa85a8e9c: jl     0xa85a8fab    
  2158.   0xa85a8ea2: lea    (%edx,%edi,1),%esi    
  2159.   0xa85a8ea5: cmp    0x8(%ecx),%esi    
  2160.   0xa85a8ea8: ja     0xa85a8fab    
  2161.   0xa85a8eae: lea    (%ebx,%edi,1),%esi    
  2162.   0xa85a8eb1: cmp    0x8(%eax),%esi    
  2163.   0xa85a8eb4: ja     0xa85a8fab    
  2164.   0xa85a8eba: test   %edi,%edi    
  2165.   0xa85a8ebc: jl     0xa85a8fab    
  2166.   0xa85a8ec2: je     0xa85a8ee0    
  2167.   0xa85a8ec8: lea    0xc(%ecx,%edx,2),%esi    
  2168.   0xa85a8ecc: mov    %esi,(%esp)    
  2169.   0xa85a8ecf: lea    0xc(%eax,%ebx,2),%esi    
  2170.   0xa85a8ed3: mov    %esi,0x4(%esp)    
  2171.   0xa85a8ed7: mov    %edi,0x8(%esp)    
  2172.   0xa85a8edb: call   Stub::jshort_arraycopy  ;*invokestatic arraycopy    
  2173.                                         ; - java.lang.String::getChars@58 (line 826)    
  2174.                                         ;   {runtime_call}    
  2175.   0xa85a8ee0: add    $0x38,%esp    
  2176.   0xa85a8ee3: pop    %ebp    
  2177.   0xa85a8ee4: test   %eax,0xb7712100    ;   {poll_return}    
  2178.   0xa85a8eea: ret                       ;*return    
  2179.                                         ; - java.lang.String::getChars@61 (line 827)    
  2180.     
  2181.   0xa85a8eeb: nopl   0x0(%eax,%eax,1)    
  2182.   0xa85a8ef0: jmp    0xa85a8fcb         ;   {no_reloc}    
  2183.   0xa85a8ef5: jmp    0xa85a8fd5         ;*new  ; - java.lang.String::getChars@36 (line 824)    
  2184.     
  2185.   0xa85a8efa: mov    %eax,%edx    
  2186.   0xa85a8efc: mov    $0x88a91580,%ecx   ;   {metadata(method data for {method} {0x8890d788} 'getChars' '(II[CI)V' in 'java/lang/String')}    
  2187.   0xa85a8f01: addl   $0x1,0x10c(%ecx)    
  2188.   0xa85a8f08: sub    %esi,%edi    
  2189.   0xa85a8f0a: mov    %edi,%edx    
  2190.   0xa85a8f0c: mov    %eax,%ecx          ;*invokespecial <init>    
  2191.                                         ; - java.lang.String::getChars@43 (line 824)    
  2192.     
  2193.   0xa85a8f0e: mov    %eax,0x20(%esp)    
  2194.   0xa85a8f12: nop        
  2195.   0xa85a8f13: call   0xa853b760         ; OopMap{[32]=Oop off=376}    
  2196.                                         ;*invokespecial <init>    
  2197.                                         ; - java.lang.String::getChars@43 (line 824)    
  2198.                                         ;   {optimized virtual_call}    
  2199.   0xa85a8f18: mov    0x20(%esp),%eax    
  2200.   0xa85a8f1c: jmp    0xa85a9049         ;*athrow    
  2201.                                         ; - java.lang.String::getChars@46 (line 824)    
  2202.     
  2203.   0xa85a8f21: nopl   0x0(%eax)    
  2204.   0xa85a8f28: jmp    0xa85a8feb         ;   {no_reloc}    
  2205.   0xa85a8f2d: jmp    0xa85a8ff5         ;*new  ; - java.lang.String::getChars@22 (line 821)    
  2206.     
  2207.   0xa85a8f32: mov    %eax,%edx    
  2208.   0xa85a8f34: mov    $0x88a91580,%ecx   ;   {metadata(method data for {method} {0x8890d788} 'getChars' '(II[CI)V' in 'java/lang/String')}    
  2209.   0xa85a8f39: addl   $0x1,0xf4(%ecx)    
  2210.   0xa85a8f40: mov    %edi,%edx    
  2211.   0xa85a8f42: mov    %eax,%ecx          ;*invokespecial <init>    
  2212.                                         ; - java.lang.String::getChars@27 (line 821)    
  2213.     
  2214.   0xa85a8f44: mov    %eax,0x24(%esp)    
  2215.   0xa85a8f48: nop        
  2216.   0xa85a8f49: nop        
  2217.   0xa85a8f4a: nop        
  2218.   0xa85a8f4b: call   0xa853b760         ; OopMap{[36]=Oop off=432}    
  2219.                                         ;*invokespecial <init>    
  2220.                                         ; - java.lang.String::getChars@27 (line 821)    
  2221.                                         ;   {optimized virtual_call}    
  2222.   0xa85a8f50: mov    0x24(%esp),%eax    
  2223.   0xa85a8f54: jmp    0xa85a9049         ;*athrow    
  2224.                                         ; - java.lang.String::getChars@30 (line 821)    
  2225.     
  2226.   0xa85a8f59: nopl   0x0(%eax)    
  2227.   0xa85a8f60: jmp    0xa85a900b         ;   {no_reloc}    
  2228.   0xa85a8f65: jmp    0xa85a9015         ;*new  ; - java.lang.String::getChars@4 (line 818)    
  2229.     
  2230.   0xa85a8f6a: mov    %eax,%edx    
  2231.   0xa85a8f6c: mov    $0x88a91580,%ecx   ;   {metadata(method data for {method} {0x8890d788} 'getChars' '(II[CI)V' in 'java/lang/String')}    
  2232.   0xa85a8f71: addl   $0x1,0xdc(%ecx)    
  2233.   0xa85a8f78: mov    %esi,%edx    
  2234.   0xa85a8f7a: mov    %eax,%ecx          ;*invokespecial <init>    
  2235.                                         ; - java.lang.String::getChars@9 (line 818)    
  2236.     
  2237.   0xa85a8f7c: mov    %eax,0x28(%esp)    
  2238.   0xa85a8f80: nop        
  2239.   0xa85a8f81: nop        
  2240.   0xa85a8f82: nop        
  2241.   0xa85a8f83: call   0xa853b760         ; OopMap{[40]=Oop off=488}    
  2242.                                         ;*invokespecial <init>    
  2243.                                         ; - java.lang.String::getChars@9 (line 818)    
  2244.                                         ;   {optimized virtual_call}    
  2245.   0xa85a8f88: mov    0x28(%esp),%eax    
  2246.   0xa85a8f8c: jmp    0xa85a9049    
  2247.   0xa85a8f91: mov    %edx,0x4(%esp)    
  2248.   0xa85a8f95: movl   $0xffffffff,(%esp)    
  2249.   0xa85a8f9c: call   0xa859fe20         ; OopMap{ecx=Oop [68]=Oop off=513}    
  2250.                                         ;*synchronization entry    
  2251.                                         ; - java.lang.String::getChars@-1 (line 817)    
  2252.                                         ;   {runtime_call}    
  2253.   0xa85a8fa1: jmp    0xa85a8df5    
  2254.   0xa85a8fa6: call   0xa859d460         ; OopMap{[68]=Oop ecx=Oop off=523}    
  2255.                                         ;*arraylength    
  2256.                                         ; - java.lang.String::getChars@18 (line 820)    
  2257.                                         ;   {runtime_call}    
  2258.   0xa85a8fab: mov    %eax,(%esp)    
  2259.   0xa85a8fae: mov    %ebx,0x4(%esp)    
  2260.   0xa85a8fb2: mov    %edi,0x8(%esp)    
  2261.   0xa85a8fb6: nop        
  2262.   0xa85a8fb7: call   0xa853bbe0         ; OopMap{off=540}    
  2263.                                         ;*invokestatic arraycopy    
  2264.                                         ; - java.lang.String::getChars@58 (line 826)    
  2265.                                         ;   {static_call}    
  2266.   0xa85a8fbc: jmp    0xa85a8ee0    
  2267.   0xa85a8fc1: mov    $0x0,%edx          ;   {metadata(NULL)}    
  2268.   0xa85a8fc6: mov    $0x5050a00,%eax    
  2269.   0xa85a8fcb: call   0xa859f520         ; OopMap{off=560}    
  2270.                                         ;*new  ; - java.lang.String::getChars@36 (line 824)    
  2271.                                         ;   {runtime_call}    
  2272.   0xa85a8fd0: jmp    0xa85a8ef0    
  2273.   0xa85a8fd5: mov    %edx,%edx    
  2274.   0xa85a8fd7: call   0xa859d6a0         ; OopMap{off=572}    
  2275.                                         ;*new  ; - java.lang.String::getChars@36 (line 824)    
  2276.                                         ;   {runtime_call}    
  2277.   0xa85a8fdc: jmp    0xa85a8efa    
  2278.   0xa85a8fe1: mov    $0x0,%edx          ;   {metadata(NULL)}    
  2279.   0xa85a8fe6: mov    $0x5050a00,%eax    
  2280.   0xa85a8feb: call   0xa859f520         ; OopMap{off=592}    
  2281.                                         ;*new  ; - java.lang.String::getChars@22 (line 821)    
  2282.                                         ;   {runtime_call}    
  2283.   0xa85a8ff0: jmp    0xa85a8f28    
  2284.   0xa85a8ff5: mov    %edx,%edx    
  2285.   0xa85a8ff7: call   0xa859d6a0         ; OopMap{off=604}    
  2286.                                         ;*new  ; - java.lang.String::getChars@22 (line 821)    
  2287.                                         ;   {runtime_call}    
  2288.   0xa85a8ffc: jmp    0xa85a8f32    
  2289.   0xa85a9001: mov    $0x0,%edx          ;   {metadata(NULL)}    
  2290.   0xa85a9006: mov    $0x5050a00,%eax    
  2291.   0xa85a900b: call   0xa859f520         ; OopMap{off=624}    
  2292.                                         ;*new  ; - java.lang.String::getChars@4 (line 818)    
  2293.                                         ;   {runtime_call}    
  2294.   0xa85a9010: jmp    0xa85a8f60    
  2295.   0xa85a9015: mov    %edx,%edx    
  2296.   0xa85a9017: call   0xa859d6a0         ; OopMap{off=636}    
  2297.                                         ;*new  ; - java.lang.String::getChars@4 (line 818)    
  2298.                                         ;   {runtime_call}    
  2299.   0xa85a901c: jmp    0xa85a8f6a    
  2300.   0xa85a9021: nop        
  2301.   0xa85a9022: nop        
  2302.   0xa85a9023: mov    %esp,%esi    
  2303.   0xa85a9025: shr    $0xc,%esi    
  2304.   0xa85a9028: mov    0x188a440(,%esi,4),%esi  ;   {external_word}    
  2305.   0xa85a902f: mov    0x19c(%esi),%eax    
  2306.   0xa85a9035: movl   $0x0,0x19c(%esi)    
  2307.   0xa85a903f: movl   $0x0,0x1a0(%esi)    
  2308.   0xa85a9049: add    $0x38,%esp    
  2309.   0xa85a904c: pop    %ebp    
  2310.   0xa85a904d: jmp    0xa8556820         ;   {runtime_call}    
  2311.   0xa85a9052: hlt        
  2312.   0xa85a9053: hlt        
  2313.   0xa85a9054: hlt        
  2314.   0xa85a9055: hlt        
  2315.   0xa85a9056: hlt        
  2316.   0xa85a9057: hlt        
  2317.   0xa85a9058: hlt        
  2318.   0xa85a9059: hlt        
  2319.   0xa85a905a: hlt        
  2320.   0xa85a905b: hlt        
  2321.   0xa85a905c: hlt        
  2322.   0xa85a905d: hlt        
  2323.   0xa85a905e: hlt        
  2324.   0xa85a905f: hlt        
  2325. [Stub Code]    
  2326.   0xa85a9060: nop                       ;   {no_reloc}    
  2327.   0xa85a9061: nop        
  2328.   0xa85a9062: mov    $0x0,%ebx          ;   {static_stub}    
  2329.   0xa85a9067: jmp    0xa85a9067         ;   {runtime_call}    
  2330.   0xa85a906c: nop        
  2331.   0xa85a906d: nop        
  2332.   0xa85a906e: mov    $0x0,%ebx          ;   {static_stub}    
  2333.   0xa85a9073: jmp    0xa85a9073         ;   {runtime_call}    
  2334.   0xa85a9078: nop        
  2335.   0xa85a9079: nop        
  2336.   0xa85a907a: mov    $0x0,%ebx          ;   {static_stub}    
  2337.   0xa85a907f: jmp    0xa85a907f         ;   {runtime_call}    
  2338.   0xa85a9084: nop        
  2339.   0xa85a9085: nop        
  2340.   0xa85a9086: mov    $0x0,%ebx          ;   {static_stub}    
  2341.   0xa85a908b: jmp    0xa85a908b         ;   {runtime_call}    
  2342. [Exception Handler]    
  2343.   0xa85a9090: call   0xa859e860         ;   {runtime_call}    
  2344.   0xa85a9095: push   $0x1790172         ;   {external_word}    
  2345.   0xa85a909a: call   0xa85a909f    
  2346.   0xa85a909f: pusha      
  2347.   0xa85a90a0: call   0x0150c230         ;   {runtime_call}    
  2348.   0xa85a90a5: hlt        
  2349. [Deopt Handler Code]    
  2350.   0xa85a90a6: push   $0xa85a90a6        ;   {section_word}    
  2351.   0xa85a90ab: jmp    0xa853c520         ;   {runtime_call}   

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

(责任编辑:6g下载网)

分享到:

------分隔线----------------------------