19 September 2016

###java 中 voliate

public class Singleton {

    private static Singleton instance;

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

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

###Java7

$ /opt/jdk1.7.0_79/bin/java -version

java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

$ /opt/jdk1.7.0_79/bin/javac Singleton.java

$ /opt/jdk1.7.0_79/jre/bin/java -Xcomp -XX:CompileCommand=dontinline,Singleton.getInstance -XX:CompileCommand=compileonly,Singleton.main -XX:+UnlockDiagnosticVMOptions -XX:+DebugNonSafepoints -XX:CompileCommand=print,*Singleton.getInstance Singleton

###Java8

$ java -version

java version "1.8.0_91"
Java(TM) SE Runtime Environment (build 1.8.0_91-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.91-b14, mixed mode)

$ javac Singleton.java

$ java -Xcomp -XX:CompileCommand=dontinline,Singleton.getInstance -XX:CompileCommand=compileonly,Singleton.main -XX:+UnlockDiagnosticVMOptions -XX:+DebugNonSafepoints -XX:CompileCommand=print,*Singleton.getInstance Singleton

附录:

问题 : Java HotSpot(TM) 64-Bit Server VM warning: printing of assembly code is enabled; turning on DebugNonSafepoints to gain additional output

解决办法:

  1. wget -c https://kenai.com/projects/base-hsdis/downloads/download/linux-hsdis-amd64.so
  2. mv linux-hsdis-amd64.so hsdis-amd64.so
  3. mv hsdis-amd64.so $JAVA_HOME/jre/lib/amd64/server/ 我的 JAVA_HOME=/opt/jdk1.7.0_79

###汇编代码

$/opt/jdk1.7.0_79/jre/bin/java -Xcomp -XX:CompileCommand=dontinline,Singleton.getInstance -XX:CompileCommand=compileonly,Singleton.getInstance -XX:+UnlockDiagnosticVMOptions -XX:+DebugNonSafepoints -XX:CompileCommand=print,*Singleton.getInstance Singleton

CompilerOracle: dontinline *Singleton.getInstance
CompilerOracle: compileonly *Singleton.getInstance
CompilerOracle: print *Singleton.getInstance
Compiled method (c2)      80    1   !         Singleton::getInstance (42 bytes)
 total in heap  [0x00007facdce44b10,0x00007facdce45278] = 1896
 relocation     [0x00007facdce44c30,0x00007facdce44c78] = 72
 main code      [0x00007facdce44c80,0x00007facdce45060] = 992
 stub code      [0x00007facdce45060,0x00007facdce45088] = 40
 oops           [0x00007facdce45088,0x00007facdce450a8] = 32
 scopes data    [0x00007facdce450a8,0x00007facdce45100] = 88
 scopes pcs     [0x00007facdce45100,0x00007facdce45240] = 320
 dependencies   [0x00007facdce45240,0x00007facdce45248] = 8
 handler table  [0x00007facdce45248,0x00007facdce45278] = 48
Loaded disassembler from /opt/jdk1.7.0_79/jre/lib/amd64/server/hsdis-amd64.so
Decoding compiled method 0x00007facdce44b10:
Code:
[Disassembling for mach='i386:x86-64']
[Entry Point]
[Verified Entry Point]
[Constants]
  # {method} 'getInstance' '()LSingleton;' in 'Singleton'
  #           [sp+0x30]  (sp of caller)
  0x00007facdce44c80: mov    %eax,-0x14000(%rsp)
  0x00007facdce44c87: push   %rbp
  0x00007facdce44c88: sub    $0x20,%rsp         ;*synchronization entry
                                                ; - Singleton::getInstance@-1 (line 6)
  0x00007facdce44c8c: mov    $0xec748fa0,%r10   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007facdce44c96: mov    0x58(%r10),%r11d   ;*getstatic instance
                                                ; - Singleton::getInstance@0 (line 6)
  0x00007facdce44c9a: test   %r11d,%r11d
  0x00007facdce44c9d: je     0x00007facdce44cae
  0x00007facdce44c9f: mov    %r11,%rax          ;*getstatic instance
                                                ; - Singleton::getInstance@38 (line 13)
  0x00007facdce44ca2: add    $0x20,%rsp
  0x00007facdce44ca6: pop    %rbp
  0x00007facdce44ca7: test   %eax,0x9e83353(%rip)        # 0x00007face6cc8000
                                                ;   {poll_return}
  0x00007facdce44cad: retq   
  0x00007facdce44cae: mov    (%r10),%rax
  0x00007facdce44cb1: mov    %rax,%r10
  0x00007facdce44cb4: and    $0x7,%r10
  0x00007facdce44cb8: cmp    $0x5,%r10
  0x00007facdce44cbc: jne    0x00007facdce44dc9
  0x00007facdce44cc2: mov    $0xc0416080,%r11d  ;   {oop('java/lang/Class')}
  0x00007facdce44cc8: mov    0xb0(%r11),%r10
  0x00007facdce44ccf: mov    %r10,%r11
  0x00007facdce44cd2: or     %r15,%r11
  0x00007facdce44cd5: mov    %r11,%r8
  0x00007facdce44cd8: xor    %rax,%r8
  0x00007facdce44cdb: test   $0xffffffffffffff87,%r8
  0x00007facdce44ce2: jne    0x00007facdce44e49  ;*monitorenter
                                                ; - Singleton::getInstance@11 (line 7)
  0x00007facdce44ce8: mov    $0x7,%ebp
  0x00007facdce44ced: mov    $0xec748fa0,%r10   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007facdce44cf7: cmp    0x58(%r10),%r12d
  0x00007facdce44cfb: je     0x00007facdce44d27
  0x00007facdce44cfd: mov    $0xec748fa0,%r10   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007facdce44d07: and    (%r10),%rbp
  0x00007facdce44d0a: cmp    $0x5,%rbp
  0x00007facdce44d0e: jne    0x00007facdce44e82  ;*monitorexit
                                                ; - Singleton::getInstance@29 (line 11)
  0x00007facdce44d14: mov    $0xec748fa0,%r10   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007facdce44d1e: mov    0x58(%r10),%r11d   ;*getstatic instance
                                                ; - Singleton::getInstance@38 (line 13)
  0x00007facdce44d22: jmpq   0x00007facdce44c9f
  0x00007facdce44d27: mov    0x60(%r15),%rax
  0x00007facdce44d2b: mov    %rax,%r10
  0x00007facdce44d2e: add    $0x10,%r10
  0x00007facdce44d32: cmp    0x70(%r15),%r10
  0x00007facdce44d36: jae    0x00007facdce44da6
  0x00007facdce44d38: mov    %r10,0x60(%r15)
  0x00007facdce44d3c: prefetchnta 0xc0(%r10)
  0x00007facdce44d44: mov    $0xc065d868,%r10d  ;   {oop('Singleton')}
  0x00007facdce44d4a: mov    0xb0(%r10),%r10
  0x00007facdce44d51: mov    %r10,(%rax)
  0x00007facdce44d54: movl   $0xc065d868,0x8(%rax)  ;   {oop('Singleton')}
  0x00007facdce44d5b: mov    %r12d,0xc(%rax)
  0x00007facdce44d5f: mov    %rax,%r10
  0x00007facdce44d62: mov    %r10,(%rsp)        ;*new  ; - Singleton::getInstance@18 (line 9)
  0x00007facdce44d66: mov    %r10,%rsi
  0x00007facdce44d69: xchg   %ax,%ax
  0x00007facdce44d6b: callq  0x00007facdce1cb60  ; OopMap{[0]=Oop off=240}
                                                ;*invokespecial <init>
                                                ; - Singleton::getInstance@22 (line 9)
                                                ;   {optimized virtual_call}
  0x00007facdce44d70: mov    $0xec748fa0,%r10   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007facdce44d7a: mov    (%rsp),%r11
  0x00007facdce44d7e: mov    %r11,%r8
  0x00007facdce44d81: mov    $0xec748fa0,%r11   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007facdce44d8b: mov    %r8d,0x58(%r11)
  0x00007facdce44d8f: shr    $0x9,%r10
  0x00007facdce44d93: mov    $0x7facdc5e4000,%r11
  0x00007facdce44d9d: mov    %r12b,(%r11,%r10,1)  ;*putstatic instance
                                                ; - Singleton::getInstance@25 (line 9)
  0x00007facdce44da1: jmpq   0x00007facdce44cfd
  0x00007facdce44da6: mov    $0xc065d868,%rsi   ;   {oop('Singleton')}
  0x00007facdce44db0: xchg   %ax,%ax
  0x00007facdce44db3: callq  0x00007facdce439a0  ; OopMap{off=312}
                                                ;*new  ; - Singleton::getInstance@18 (line 9)
                                                ;   {runtime_call}
  0x00007facdce44db8: jmp    0x00007facdce44d5f
  0x00007facdce44dba: mov    $0xec748fa0,%r11   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007facdce44dc4: lock cmpxchg %r10,(%r11)
  0x00007facdce44dc9: mov    $0xec748fa0,%r11   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007facdce44dd3: lea    0x10(%rsp),%rbx
  0x00007facdce44dd8: mov    (%r11),%rax
  0x00007facdce44ddb: test   $0x2,%eax
  0x00007facdce44de0: jne    0x00007facdce44e09
  0x00007facdce44de6: or     $0x1,%eax
  0x00007facdce44de9: mov    %rax,(%rbx)
  0x00007facdce44dec: lock cmpxchg %rbx,(%r11)
  0x00007facdce44df1: je     0x00007facdce44e26
  0x00007facdce44df7: sub    %rsp,%rax
  0x00007facdce44dfa: and    $0xfffffffffffff007,%rax
  0x00007facdce44e01: mov    %rax,(%rbx)
  0x00007facdce44e04: jmpq   0x00007facdce44e26
  0x00007facdce44e09: movq   $0x3,(%rbx)
  0x00007facdce44e10: mov    %rax,%rbx
  0x00007facdce44e13: mov    0x16(%rax),%rax
  0x00007facdce44e17: test   %rax,%rax
  0x00007facdce44e1a: jne    0x00007facdce44e26
  0x00007facdce44e20: lock cmpxchg %r15,0x16(%rbx)
  0x00007facdce44e26: nop    
  0x00007facdce44e27: je     0x00007facdce44ce8
  0x00007facdce44e2d: mov    $0xec748fa0,%rsi   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007facdce44e37: lea    0x10(%rsp),%rdx
  0x00007facdce44e3c: xchg   %ax,%ax
  0x00007facdce44e3f: callq  0x00007facdce430e0  ; OopMap{off=452}
                                                ;*monitorenter
                                                ; - Singleton::getInstance@11 (line 7)
                                                ;   {runtime_call}
  0x00007facdce44e44: jmpq   0x00007facdce44ce8
  0x00007facdce44e49: test   $0x7,%r8
  0x00007facdce44e50: jne    0x00007facdce44dba
  0x00007facdce44e56: test   $0x300,%r8
  0x00007facdce44e5d: jne    0x00007facdce44e6c
  0x00007facdce44e5f: and    $0x37f,%rax
  0x00007facdce44e66: mov    %rax,%r11
  0x00007facdce44e69: or     %r15,%r11
  0x00007facdce44e6c: mov    $0xec748fa0,%r10   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007facdce44e76: lock cmpxchg %r11,(%r10)
  0x00007facdce44e7b: jne    0x00007facdce44e2d
  0x00007facdce44e7d: jmpq   0x00007facdce44ce8
  0x00007facdce44e82: mov    $0xec748fa0,%r11   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007facdce44e8c: lea    0x10(%rsp),%rax
  0x00007facdce44e91: mov    (%r11),%r10
  0x00007facdce44e94: cmpq   $0x0,(%rax)
  0x00007facdce44e9b: je     0x00007facdce44f33
  0x00007facdce44ea1: test   $0x2,%r10d
  0x00007facdce44ea8: je     0x00007facdce44f2b
  0x00007facdce44eae: mov    0x16(%r10),%rax
  0x00007facdce44eb2: xor    %r15,%rax
  0x00007facdce44eb5: or     0x26(%r10),%rax
  0x00007facdce44eb9: jne    0x00007facdce44f33
  0x00007facdce44ebf: mov    0x36(%r10),%rax
  0x00007facdce44ec3: or     0x3e(%r10),%rax
  0x00007facdce44ec7: jne    0x00007facdce44eda
  0x00007facdce44ecd: movq   $0x0,0x16(%r10)
  0x00007facdce44ed5: jmpq   0x00007facdce44f33
  0x00007facdce44eda: cmpq   $0x0,0x46(%r10)
  0x00007facdce44ee2: je     0x00007facdce44f19
  0x00007facdce44ee8: movq   $0x0,0x16(%r10)
  0x00007facdce44ef0: lock addl $0x0,(%rsp)
  0x00007facdce44ef5: cmpq   $0x0,0x46(%r10)
  0x00007facdce44efd: jne    0x00007facdce44f21
  0x00007facdce44f03: mov    $0x0,%rax
  0x00007facdce44f0d: lock cmpxchg %r15,0x16(%r10)
  0x00007facdce44f13: jne    0x00007facdce44f21
  0x00007facdce44f19: or     $0x1,%eax
  0x00007facdce44f1c: jmpq   0x00007facdce44f33
  0x00007facdce44f21: test   $0x0,%eax
  0x00007facdce44f26: jmpq   0x00007facdce44f33
  0x00007facdce44f2b: mov    (%rax),%r10
  0x00007facdce44f2e: lock cmpxchg %r10,(%r11)
  0x00007facdce44f33: je     0x00007facdce44d14
  0x00007facdce44f39: mov    $0xec748fa0,%rdi   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007facdce44f43: lea    0x10(%rsp),%rsi    ;*monitorenter
                                                ; - Singleton::getInstance@11 (line 7)
  0x00007facdce44f48: mov    $0x7face5ae53f0,%r10
  0x00007facdce44f52: callq  *%r10              ;*monitorexit
                                                ; - Singleton::getInstance@29 (line 11)
  0x00007facdce44f55: jmpq   0x00007facdce44d14  ;*new
                                                ; - Singleton::getInstance@18 (line 9)
  0x00007facdce44f5a: mov    %rax,%rbx
  0x00007facdce44f5d: jmp    0x00007facdce44f62  ;*invokespecial <init>
                                                ; - Singleton::getInstance@22 (line 9)
  0x00007facdce44f5f: mov    %rax,%rbx
  0x00007facdce44f62: mov    $0xec748fa0,%r10   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007facdce44f6c: and    (%r10),%rbp
  0x00007facdce44f6f: cmp    $0x5,%rbp
  0x00007facdce44f73: jne    0x00007facdce44f82  ;*monitorexit
                                                ; - Singleton::getInstance@35 (line 11)
  0x00007facdce44f75: mov    %rbx,%rsi
  0x00007facdce44f78: add    $0x20,%rsp
  0x00007facdce44f7c: pop    %rbp
  0x00007facdce44f7d: jmpq   0x00007facdce467e0  ;   {runtime_call}
  0x00007facdce44f82: mov    $0xec748fa0,%r11   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007facdce44f8c: lea    0x10(%rsp),%rax
  0x00007facdce44f91: mov    (%r11),%r10
  0x00007facdce44f94: cmpq   $0x0,(%rax)
  0x00007facdce44f9b: je     0x00007facdce45033
  0x00007facdce44fa1: test   $0x2,%r10d
  0x00007facdce44fa8: je     0x00007facdce4502b
  0x00007facdce44fae: mov    0x16(%r10),%rax
  0x00007facdce44fb2: xor    %r15,%rax
  0x00007facdce44fb5: or     0x26(%r10),%rax
  0x00007facdce44fb9: jne    0x00007facdce45033
  0x00007facdce44fbf: mov    0x36(%r10),%rax
  0x00007facdce44fc3: or     0x3e(%r10),%rax
  0x00007facdce44fc7: jne    0x00007facdce44fda
  0x00007facdce44fcd: movq   $0x0,0x16(%r10)
  0x00007facdce44fd5: jmpq   0x00007facdce45033
  0x00007facdce44fda: cmpq   $0x0,0x46(%r10)
  0x00007facdce44fe2: je     0x00007facdce45019
  0x00007facdce44fe8: movq   $0x0,0x16(%r10)
  0x00007facdce44ff0: lock addl $0x0,(%rsp)
  0x00007facdce44ff5: cmpq   $0x0,0x46(%r10)
  0x00007facdce44ffd: jne    0x00007facdce45021
  0x00007facdce45003: mov    $0x0,%rax
  0x00007facdce4500d: lock cmpxchg %r15,0x16(%r10)
  0x00007facdce45013: jne    0x00007facdce45021
  0x00007facdce45019: or     $0x1,%eax
  0x00007facdce4501c: jmpq   0x00007facdce45033
  0x00007facdce45021: test   $0x0,%eax
  0x00007facdce45026: jmpq   0x00007facdce45033
  0x00007facdce4502b: mov    (%rax),%r10
  0x00007facdce4502e: lock cmpxchg %r10,(%r11)
  0x00007facdce45033: je     0x00007facdce44f75
  0x00007facdce45039: mov    $0xec748fa0,%rdi   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007facdce45043: lea    0x10(%rsp),%rsi    ;*monitorenter
                                                ; - Singleton::getInstance@11 (line 7)
  0x00007facdce45048: mov    $0x7face5ae53f0,%r10
  0x00007facdce45052: callq  *%r10              ;*monitorexit
                                                ; - Singleton::getInstance@35 (line 11)
  0x00007facdce45055: jmpq   0x00007facdce44f75
  0x00007facdce4505a: hlt    
  0x00007facdce4505b: hlt    
  0x00007facdce4505c: hlt    
  0x00007facdce4505d: hlt    
  0x00007facdce4505e: hlt    
  0x00007facdce4505f: hlt    
[Stub Code]
  0x00007facdce45060: mov    $0x0,%rbx          ;   {no_reloc}
  0x00007facdce4506a: jmpq   0x00007facdce4506a  ;   {runtime_call}
[Exception Handler]
  0x00007facdce4506f: jmpq   0x00007facdce43a60  ;   {runtime_call}
[Deopt Handler Code]
  0x00007facdce45074: callq  0x00007facdce45079
  0x00007facdce45079: subq   $0x5,(%rsp)
  0x00007facdce4507e: jmpq   0x00007facdce1db00  ;   {runtime_call}
  0x00007facdce45083: hlt    
  0x00007facdce45084: hlt    
  0x00007facdce45085: hlt    
  0x00007facdce45086: hlt    
  0x00007facdce45087: hlt    
OopMapSet contains 3 OopMaps

#0 
OopMap{[0]=Oop off=240}
#1 
OopMap{off=312}
#2 
OopMap{off=452}

$ java -Xcomp -XX:CompileCommand=dontinline,Singleton.getInstance -XX:CompileCommand=compileonly,Singleton.getInstance -XX:+UnlockDiagnosticVMOptions -XX:+DebugNonSafepoints -XX:CompileCommand=print,*Singleton.getInstance SingletonCompilerOracle: dontinline *Singleton.getInstance

CompilerOracle: compileonly *Singleton.getInstance
CompilerOracle: print *Singleton.getInstance
Compiled method (c1)      86    1   !   3       Singleton::getInstance (41 bytes)
 total in heap  [0x00007fb2cd102250,0x00007fb2cd102a30] = 2016
 relocation     [0x00007fb2cd102378,0x00007fb2cd1023d0] = 88
 main code      [0x00007fb2cd1023e0,0x00007fb2cd102760] = 896
 stub code      [0x00007fb2cd102760,0x00007fb2cd102808] = 168
 oops           [0x00007fb2cd102808,0x00007fb2cd102818] = 16
 metadata       [0x00007fb2cd102818,0x00007fb2cd102820] = 8
 scopes data    [0x00007fb2cd102820,0x00007fb2cd1028a8] = 136
 scopes pcs     [0x00007fb2cd1028a8,0x00007fb2cd1029e8] = 320
 dependencies   [0x00007fb2cd1029e8,0x00007fb2cd1029f0] = 8
 handler table  [0x00007fb2cd1029f0,0x00007fb2cd102a20] = 48
 nul chk table  [0x00007fb2cd102a20,0x00007fb2cd102a30] = 16
Loaded disassembler from /opt/jdk1.8.0_91/jre/lib/amd64/server/hsdis-amd64.so
Decoding compiled method 0x00007fb2cd102250:
Code:
[Disassembling for mach='i386:x86-64']
[Entry Point]
[Verified Entry Point]
[Constants]
  # {method} {0x00007fb2e151b2c0} 'getInstance' '()LSingleton;' in 'Singleton'
  #           [sp+0x50]  (sp of caller)
  0x00007fb2cd1023e0: mov    %eax,-0x14000(%rsp)
  0x00007fb2cd1023e7: push   %rbp
  0x00007fb2cd1023e8: sub    $0x40,%rsp
  0x00007fb2cd1023ec: mov    $0x7fb2e151b498,%rax  ;   {metadata(method data for {method} {0x00007fb2e151b2c0} 'getInstance' '()LSingleton;' in 'Singleton')}
  0x00007fb2cd1023f6: mov    0xdc(%rax),%edx
  0x00007fb2cd1023fc: add    $0x8,%edx
  0x00007fb2cd1023ff: mov    %edx,0xdc(%rax)
  0x00007fb2cd102405: mov    $0x7fb2e151b2c0,%rax  ;   {metadata({method} {0x00007fb2e151b2c0} 'getInstance' '()LSingleton;' in 'Singleton')}
  0x00007fb2cd10240f: and    $0x0,%edx
  0x00007fb2cd102412: cmp    $0x0,%edx
  0x00007fb2cd102415: je     0x00007fb2cd1026c9
  0x00007fb2cd10241b: mov    $0xec7da6e0,%rax   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007fb2cd102425: mov    0x68(%rax),%eax    ;*getstatic instance
                                                ; - Singleton::getInstance@0 (line 6)

  0x00007fb2cd102428: cmp    $0x0,%rax
  0x00007fb2cd10242c: mov    $0x7fb2e151b498,%rax  ;   {metadata(method data for {method} {0x00007fb2e151b2c0} 'getInstance' '()LSingleton;' in 'Singleton')}
  0x00007fb2cd102436: mov    $0x108,%rdx
  0x00007fb2cd102440: jne    0x00007fb2cd102450
  0x00007fb2cd102446: mov    $0x118,%rdx
  0x00007fb2cd102450: mov    (%rax,%rdx,1),%rsi
  0x00007fb2cd102454: lea    0x1(%rsi),%rsi
  0x00007fb2cd102458: mov    %rsi,(%rax,%rdx,1)
  0x00007fb2cd10245c: jne    0x00007fb2cd10264f  ;*ifnonnull
                                                ; - Singleton::getInstance@3 (line 6)

  0x00007fb2cd102462: mov    $0xec7da6e0,%rdx   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007fb2cd10246c: lea    0x28(%rsp),%rsi
  0x00007fb2cd102471: mov    %rdx,0x8(%rsi)
  0x00007fb2cd102475: mov    (%rdx),%rax        ; implicit exception: dispatches to 0x00007fb2cd1026e0
  0x00007fb2cd102478: mov    %rax,%rdi
  0x00007fb2cd10247b: and    $0x7,%rdi
  0x00007fb2cd10247f: cmp    $0x5,%rdi
  0x00007fb2cd102483: jne    0x00007fb2cd10250a
  0x00007fb2cd102489: mov    0x8(%rdx),%edi
  0x00007fb2cd10248c: shl    $0x3,%rdi
  0x00007fb2cd102490: mov    0xa8(%rdi),%rdi
  0x00007fb2cd102497: or     %r15,%rdi
  0x00007fb2cd10249a: xor    %rax,%rdi
  0x00007fb2cd10249d: and    $0xffffffffffffff87,%rdi
  0x00007fb2cd1024a1: je     0x00007fb2cd102532
  0x00007fb2cd1024a7: test   $0x7,%rdi
  0x00007fb2cd1024ae: jne    0x00007fb2cd1024f7
  0x00007fb2cd1024b0: test   $0x300,%rdi
  0x00007fb2cd1024b7: jne    0x00007fb2cd1024d6
  0x00007fb2cd1024b9: and    $0x37f,%rax
  0x00007fb2cd1024c0: mov    %rax,%rdi
  0x00007fb2cd1024c3: or     %r15,%rdi
  0x00007fb2cd1024c6: lock cmpxchg %rdi,(%rdx)
  0x00007fb2cd1024cb: jne    0x00007fb2cd1026e5
  0x00007fb2cd1024d1: jmpq   0x00007fb2cd102532
  0x00007fb2cd1024d6: mov    0x8(%rdx),%edi
  0x00007fb2cd1024d9: shl    $0x3,%rdi
  0x00007fb2cd1024dd: mov    0xa8(%rdi),%rdi
  0x00007fb2cd1024e4: or     %r15,%rdi
  0x00007fb2cd1024e7: lock cmpxchg %rdi,(%rdx)
  0x00007fb2cd1024ec: jne    0x00007fb2cd1026e5
  0x00007fb2cd1024f2: jmpq   0x00007fb2cd102532
  0x00007fb2cd1024f7: mov    0x8(%rdx),%edi
  0x00007fb2cd1024fa: shl    $0x3,%rdi
  0x00007fb2cd1024fe: mov    0xa8(%rdi),%rdi
  0x00007fb2cd102505: lock cmpxchg %rdi,(%rdx)
  0x00007fb2cd10250a: mov    (%rdx),%rax
  0x00007fb2cd10250d: or     $0x1,%rax
  0x00007fb2cd102511: mov    %rax,(%rsi)
  0x00007fb2cd102514: lock cmpxchg %rsi,(%rdx)
  0x00007fb2cd102519: je     0x00007fb2cd102532
  0x00007fb2cd10251f: sub    %rsp,%rax
  0x00007fb2cd102522: and    $0xfffffffffffff007,%rax
  0x00007fb2cd102529: mov    %rax,(%rsi)
  0x00007fb2cd10252c: jne    0x00007fb2cd1026e5  ;*monitorenter
                                                ; - Singleton::getInstance@10 (line 7)

  0x00007fb2cd102532: mov    $0xec7da6e0,%rdx   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007fb2cd10253c: mov    0x68(%rdx),%edx    ;*getstatic instance
                                                ; - Singleton::getInstance@11 (line 8)

  0x00007fb2cd10253f: cmp    $0x0,%rdx
  0x00007fb2cd102543: mov    $0x7fb2e151b498,%rdx  ;   {metadata(method data for {method} {0x00007fb2e151b2c0} 'getInstance' '()LSingleton;' in 'Singleton')}
  0x00007fb2cd10254d: mov    $0x128,%rsi
  0x00007fb2cd102557: jne    0x00007fb2cd102567
  0x00007fb2cd10255d: mov    $0x138,%rsi
  0x00007fb2cd102567: mov    (%rdx,%rsi,1),%rdi
  0x00007fb2cd10256b: lea    0x1(%rdi),%rdi
  0x00007fb2cd10256f: mov    %rdi,(%rdx,%rsi,1)
  0x00007fb2cd102573: jne    0x00007fb2cd102604  ;*ifnonnull
                                                ; - Singleton::getInstance@14 (line 8)

  0x00007fb2cd102579: mov    $0x100060028,%rdx  ;   {metadata('Singleton')}
  0x00007fb2cd102583: mov    0x60(%r15),%rax
  0x00007fb2cd102587: lea    0x10(%rax),%rdi
  0x00007fb2cd10258b: cmp    0x70(%r15),%rdi
  0x00007fb2cd10258f: ja     0x00007fb2cd1026f8
  0x00007fb2cd102595: mov    %rdi,0x60(%r15)
  0x00007fb2cd102599: mov    0xa8(%rdx),%rcx
  0x00007fb2cd1025a0: mov    %rcx,(%rax)
  0x00007fb2cd1025a3: mov    %rdx,%rcx
  0x00007fb2cd1025a6: shr    $0x3,%rcx
  0x00007fb2cd1025aa: mov    %ecx,0x8(%rax)
  0x00007fb2cd1025ad: xor    %rcx,%rcx
  0x00007fb2cd1025b0: mov    %ecx,0xc(%rax)
  0x00007fb2cd1025b3: xor    %rcx,%rcx          ;*new  ; - Singleton::getInstance@17 (line 9)

  0x00007fb2cd1025b6: mov    %rax,%rsi
  0x00007fb2cd1025b9: mov    $0x7fb2e151b498,%rdi  ;   {metadata(method data for {method} {0x00007fb2e151b2c0} 'getInstance' '()LSingleton;' in 'Singleton')}
  0x00007fb2cd1025c3: addq   $0x1,0x148(%rdi)
  0x00007fb2cd1025cb: mov    %rax,%rsi          ;*invokespecial <init>
                                                ; - Singleton::getInstance@21 (line 9)

  0x00007fb2cd1025ce: mov    %rax,0x20(%rsp)
  0x00007fb2cd1025d3: nop    
  0x00007fb2cd1025d4: nop    
  0x00007fb2cd1025d5: nop    
  0x00007fb2cd1025d6: nop    
  0x00007fb2cd1025d7: callq  0x00007fb2cd046020  ; OopMap{[32]=Oop [48]=Oop off=508}
                                                ;*invokespecial <init>
                                                ; - Singleton::getInstance@21 (line 9)
                                                ;   {optimized virtual_call}
  0x00007fb2cd1025dc: mov    $0xec7da6e0,%rax   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007fb2cd1025e6: mov    0x20(%rsp),%rsi
  0x00007fb2cd1025eb: mov    %rsi,%r10
  0x00007fb2cd1025ee: mov    %r10d,0x68(%rax)
  0x00007fb2cd1025f2: shr    $0x9,%rax
  0x00007fb2cd1025f6: mov    $0x7fb2e1a02000,%rsi
  0x00007fb2cd102600: movb   $0x0,(%rax,%rsi,1)  ;*putstatic instance
                                                ; - Singleton::getInstance@24 (line 9)

  0x00007fb2cd102604: mov    $0xec7da6e0,%rax   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007fb2cd10260e: lea    0x28(%rsp),%rax
  0x00007fb2cd102613: mov    0x8(%rax),%rdi
  0x00007fb2cd102617: mov    (%rdi),%rsi
  0x00007fb2cd10261a: and    $0x7,%rsi
  0x00007fb2cd10261e: cmp    $0x5,%rsi
  0x00007fb2cd102622: je     0x00007fb2cd10263f
  0x00007fb2cd102628: mov    (%rax),%rsi
  0x00007fb2cd10262b: test   %rsi,%rsi
  0x00007fb2cd10262e: je     0x00007fb2cd10263f
  0x00007fb2cd102634: lock cmpxchg %rsi,(%rdi)
  0x00007fb2cd102639: jne    0x00007fb2cd102705  ;*monitorexit
                                                ; - Singleton::getInstance@28 (line 11)

  0x00007fb2cd10263f: mov    $0x7fb2e151b498,%rax  ;   {metadata(method data for {method} {0x00007fb2e151b2c0} 'getInstance' '()LSingleton;' in 'Singleton')}
  0x00007fb2cd102649: incl   0x158(%rax)        ;*goto
                                                ; - Singleton::getInstance@29 (line 11)

  0x00007fb2cd10264f: mov    $0xec7da6e0,%rax   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007fb2cd102659: mov    0x68(%rax),%eax    ;*getstatic instance
                                                ; - Singleton::getInstance@37 (line 13)

  0x00007fb2cd10265c: add    $0x40,%rsp
  0x00007fb2cd102660: pop    %rbp
  0x00007fb2cd102661: test   %eax,0x1845fa99(%rip)        # 0x00007fb2e5562100
                                                ;   {poll_return}
  0x00007fb2cd102667: retq                      ;*areturn
                                                ; - Singleton::getInstance@40 (line 13)

  0x00007fb2cd102668: mov    0x2a8(%r15),%rax
  0x00007fb2cd10266f: xor    %r10,%r10
  0x00007fb2cd102672: mov    %r10,0x2a8(%r15)
  0x00007fb2cd102679: xor    %r10,%r10
  0x00007fb2cd10267c: mov    %r10,0x2b0(%r15)
  0x00007fb2cd102683: mov    %rax,%rsi
  0x00007fb2cd102686: mov    $0xec7da6e0,%rax   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007fb2cd102690: lea    0x28(%rsp),%rax
  0x00007fb2cd102695: mov    0x8(%rax),%rbx
  0x00007fb2cd102699: mov    (%rbx),%rdi
  0x00007fb2cd10269c: and    $0x7,%rdi
  0x00007fb2cd1026a0: cmp    $0x5,%rdi
  0x00007fb2cd1026a4: je     0x00007fb2cd1026c1
  0x00007fb2cd1026aa: mov    (%rax),%rdi
  0x00007fb2cd1026ad: test   %rdi,%rdi
  0x00007fb2cd1026b0: je     0x00007fb2cd1026c1
  0x00007fb2cd1026b6: lock cmpxchg %rdi,(%rbx)
  0x00007fb2cd1026bb: jne    0x00007fb2cd102718  ;*monitorexit
                                                ; - Singleton::getInstance@34 (line 11)

  0x00007fb2cd1026c1: mov    %rsi,%rax
  0x00007fb2cd1026c4: jmpq   0x00007fb2cd102753
  0x00007fb2cd1026c9: mov    %rax,0x8(%rsp)
  0x00007fb2cd1026ce: movq   $0xffffffffffffffff,(%rsp)
  0x00007fb2cd1026d6: callq  0x00007fb2cd100d20  ; OopMap{off=763}
                                                ;*synchronization entry
                                                ; - Singleton::getInstance@-1 (line 6)
                                                ;   {runtime_call}
  0x00007fb2cd1026db: jmpq   0x00007fb2cd10241b
  0x00007fb2cd1026e0: callq  0x00007fb2cd0f9340  ; OopMap{rdx=Oop off=773}
                                                ;*monitorenter
                                                ; - Singleton::getInstance@10 (line 7)
                                                ;   {runtime_call}
  0x00007fb2cd1026e5: mov    %rdx,0x8(%rsp)
  0x00007fb2cd1026ea: mov    %rsi,(%rsp)
  0x00007fb2cd1026ee: callq  0x00007fb2cd0fbd20  ; OopMap{rdx=Oop [48]=Oop off=787}
                                                ;*monitorenter
                                                ; - Singleton::getInstance@10 (line 7)
                                                ;   {runtime_call}
  0x00007fb2cd1026f3: jmpq   0x00007fb2cd102532
  0x00007fb2cd1026f8: mov    %rdx,%rdx
  0x00007fb2cd1026fb: callq  0x00007fb2cd0f9aa0  ; OopMap{[48]=Oop off=800}
                                                ;*new  ; - Singleton::getInstance@17 (line 9)
                                                ;   {runtime_call}
  0x00007fb2cd102700: jmpq   0x00007fb2cd1025b6
  0x00007fb2cd102705: lea    0x28(%rsp),%rax
  0x00007fb2cd10270a: mov    %rax,(%rsp)
  0x00007fb2cd10270e: callq  0x00007fb2cd0fc120  ;   {runtime_call}
  0x00007fb2cd102713: jmpq   0x00007fb2cd10263f
  0x00007fb2cd102718: lea    0x28(%rsp),%rax
  0x00007fb2cd10271d: mov    %rax,(%rsp)
  0x00007fb2cd102721: callq  0x00007fb2cd0fc120  ;   {runtime_call}
  0x00007fb2cd102726: jmp    0x00007fb2cd1026c1
  0x00007fb2cd102728: nop    
  0x00007fb2cd102729: nop    
  0x00007fb2cd10272a: mov    0x2a8(%r15),%rax
  0x00007fb2cd102731: mov    $0x0,%r10
  0x00007fb2cd10273b: mov    %r10,0x2a8(%r15)
  0x00007fb2cd102742: mov    $0x0,%r10
  0x00007fb2cd10274c: mov    %r10,0x2b0(%r15)
  0x00007fb2cd102753: add    $0x40,%rsp
  0x00007fb2cd102757: pop    %rbp
  0x00007fb2cd102758: jmpq   0x00007fb2cd06bda0  ;   {runtime_call}
  0x00007fb2cd10275d: hlt    
  0x00007fb2cd10275e: hlt    
  0x00007fb2cd10275f: hlt    
[Stub Code]
  0x00007fb2cd102760: nop                       ;   {no_reloc}
  0x00007fb2cd102761: nop    
  0x00007fb2cd102762: nop    
  0x00007fb2cd102763: nop    
  0x00007fb2cd102764: nop    
  0x00007fb2cd102765: mov    $0x0,%rbx          ;   {static_stub}
  0x00007fb2cd10276f: jmpq   0x00007fb2cd10276f  ;   {runtime_call}
[Exception Handler]
  0x00007fb2cd102774: callq  0x00007fb2cd0fb1e0  ;   {runtime_call}
  0x00007fb2cd102779: mov    %rsp,-0x28(%rsp)
  0x00007fb2cd10277e: sub    $0x80,%rsp
  0x00007fb2cd102785: mov    %rax,0x78(%rsp)
  0x00007fb2cd10278a: mov    %rcx,0x70(%rsp)
  0x00007fb2cd10278f: mov    %rdx,0x68(%rsp)
  0x00007fb2cd102794: mov    %rbx,0x60(%rsp)
  0x00007fb2cd102799: mov    %rbp,0x50(%rsp)
  0x00007fb2cd10279e: mov    %rsi,0x48(%rsp)
  0x00007fb2cd1027a3: mov    %rdi,0x40(%rsp)
  0x00007fb2cd1027a8: mov    %r8,0x38(%rsp)
  0x00007fb2cd1027ad: mov    %r9,0x30(%rsp)
  0x00007fb2cd1027b2: mov    %r10,0x28(%rsp)
  0x00007fb2cd1027b7: mov    %r11,0x20(%rsp)
  0x00007fb2cd1027bc: mov    %r12,0x18(%rsp)
  0x00007fb2cd1027c1: mov    %r13,0x10(%rsp)
  0x00007fb2cd1027c6: mov    %r14,0x8(%rsp)
  0x00007fb2cd1027cb: mov    %r15,(%rsp)
  0x00007fb2cd1027cf: mov    $0x7fb2e446261e,%rdi  ;   {external_word}
  0x00007fb2cd1027d9: mov    $0x7fb2cd102779,%rsi  ;   {internal_word}
  0x00007fb2cd1027e3: mov    %rsp,%rdx
  0x00007fb2cd1027e6: and    $0xfffffffffffffff0,%rsp
  0x00007fb2cd1027ea: callq  0x00007fb2e4195b30  ;   {runtime_call}
  0x00007fb2cd1027ef: hlt    
[Deopt Handler Code]
  0x00007fb2cd1027f0: mov    $0x7fb2cd1027f0,%r10  ;   {section_word}
  0x00007fb2cd1027fa: push   %r10
  0x00007fb2cd1027fc: jmpq   0x00007fb2cd046fc0  ;   {runtime_call}
  0x00007fb2cd102801: hlt    
  0x00007fb2cd102802: hlt    
  0x00007fb2cd102803: hlt    
  0x00007fb2cd102804: hlt    
  0x00007fb2cd102805: hlt    
  0x00007fb2cd102806: hlt    
  0x00007fb2cd102807: hlt    
OopMapSet contains 5 OopMaps

#0 
OopMap{[32]=Oop [48]=Oop off=508}
#1 
OopMap{off=763}
#2 
OopMap{rdx=Oop off=773}
#3 
OopMap{rdx=Oop [48]=Oop off=787}
#4 
OopMap{[48]=Oop off=800}
Compiled method (c2)     100    2   !   4       Singleton::getInstance (41 bytes)
 total in heap  [0x00007fb2cd101ad0,0x00007fb2cd102220] = 1872
 relocation     [0x00007fb2cd101bf8,0x00007fb2cd101c40] = 72
 main code      [0x00007fb2cd101c40,0x00007fb2cd102000] = 960
 stub code      [0x00007fb2cd102000,0x00007fb2cd102028] = 40
 oops           [0x00007fb2cd102028,0x00007fb2cd102038] = 16
 metadata       [0x00007fb2cd102038,0x00007fb2cd102050] = 24
 scopes data    [0x00007fb2cd102050,0x00007fb2cd1020a8] = 88
 scopes pcs     [0x00007fb2cd1020a8,0x00007fb2cd1021e8] = 320
 dependencies   [0x00007fb2cd1021e8,0x00007fb2cd1021f0] = 8
 handler table  [0x00007fb2cd1021f0,0x00007fb2cd102220] = 48
Decoding compiled method 0x00007fb2cd101ad0:
Code:
[Entry Point]
[Verified Entry Point]
[Constants]
  # {method} {0x00007fb2e151b2c0} 'getInstance' '()LSingleton;' in 'Singleton'
  #           [sp+0x30]  (sp of caller)
  0x00007fb2cd101c40: mov    %eax,-0x14000(%rsp)
  0x00007fb2cd101c47: push   %rbp
  0x00007fb2cd101c48: sub    $0x20,%rsp         ;*synchronization entry
                                                ; - Singleton::getInstance@-1 (line 6)

  0x00007fb2cd101c4c: mov    $0xec7da6e0,%r10   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007fb2cd101c56: mov    0x68(%r10),%r11d   ;*getstatic instance
                                                ; - Singleton::getInstance@0 (line 6)

  0x00007fb2cd101c5a: test   %r11d,%r11d
  0x00007fb2cd101c5d: je     0x00007fb2cd101c6e
  0x00007fb2cd101c5f: mov    %r11,%rax          ;*getstatic instance
                                                ; - Singleton::getInstance@37 (line 13)

  0x00007fb2cd101c62: add    $0x20,%rsp
  0x00007fb2cd101c66: pop    %rbp
  0x00007fb2cd101c67: test   %eax,0x18460393(%rip)        # 0x00007fb2e5562000
                                                ;   {poll_return}
  0x00007fb2cd101c6d: retq   
  0x00007fb2cd101c6e: mov    (%r10),%rax
  0x00007fb2cd101c71: mov    %rax,%r10
  0x00007fb2cd101c74: and    $0x7,%r10
  0x00007fb2cd101c78: cmp    $0x5,%r10
  0x00007fb2cd101c7c: jne    0x00007fb2cd101da5
  0x00007fb2cd101c82: mov    $0x200003df,%r11d  ;   {metadata('java/lang/Class')}
  0x00007fb2cd101c88: mov    $0x0,%r10
  0x00007fb2cd101c92: lea    (%r10,%r11,8),%r10
  0x00007fb2cd101c96: mov    0xa8(%r10),%r10
  0x00007fb2cd101c9d: mov    %r10,%r11
  0x00007fb2cd101ca0: or     %r15,%r11
  0x00007fb2cd101ca3: mov    %r11,%r8
  0x00007fb2cd101ca6: xor    %rax,%r8
  0x00007fb2cd101ca9: test   $0xffffffffffffff87,%r8
  0x00007fb2cd101cb0: jne    0x00007fb2cd101e1d  ;*monitorenter
                                                ; - Singleton::getInstance@10 (line 7)

  0x00007fb2cd101cb6: mov    $0x7,%ebp
  0x00007fb2cd101cbb: mov    $0xec7da6e0,%r10   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007fb2cd101cc5: cmp    0x68(%r10),%r12d
  0x00007fb2cd101cc9: je     0x00007fb2cd101cf5
  0x00007fb2cd101ccb: mov    $0xec7da6e0,%r10   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007fb2cd101cd5: and    (%r10),%rbp
  0x00007fb2cd101cd8: cmp    $0x5,%rbp
  0x00007fb2cd101cdc: jne    0x00007fb2cd101e56  ;*monitorexit
                                                ; - Singleton::getInstance@28 (line 11)

  0x00007fb2cd101ce2: mov    $0xec7da6e0,%r10   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007fb2cd101cec: mov    0x68(%r10),%r11d   ;*getstatic instance
                                                ; - Singleton::getInstance@37 (line 13)

  0x00007fb2cd101cf0: jmpq   0x00007fb2cd101c5f
  0x00007fb2cd101cf5: mov    0x60(%r15),%rax
  0x00007fb2cd101cf9: mov    %rax,%r10
  0x00007fb2cd101cfc: add    $0x10,%r10
  0x00007fb2cd101d00: cmp    0x70(%r15),%r10
  0x00007fb2cd101d04: jae    0x00007fb2cd101d82
  0x00007fb2cd101d06: mov    %r10,0x60(%r15)
  0x00007fb2cd101d0a: prefetchnta 0xc0(%r10)
  0x00007fb2cd101d12: mov    $0x2000c005,%r11d  ;   {metadata('Singleton')}
  0x00007fb2cd101d18: mov    $0x0,%r10
  0x00007fb2cd101d22: lea    (%r10,%r11,8),%r10
  0x00007fb2cd101d26: mov    0xa8(%r10),%r10
  0x00007fb2cd101d2d: mov    %r10,(%rax)
  0x00007fb2cd101d30: movl   $0x2000c005,0x8(%rax)  ;   {metadata('Singleton')}
  0x00007fb2cd101d37: mov    %r12d,0xc(%rax)
  0x00007fb2cd101d3b: mov    %rax,%r10
  0x00007fb2cd101d3e: mov    %r10,(%rsp)        ;*new  ; - Singleton::getInstance@17 (line 9)

  0x00007fb2cd101d42: mov    %r10,%rsi
  0x00007fb2cd101d45: xchg   %ax,%ax
  0x00007fb2cd101d47: callq  0x00007fb2cd046020  ; OopMap{[0]=Oop off=268}
                                                ;*invokespecial <init>
                                                ; - Singleton::getInstance@21 (line 9)
                                                ;   {optimized virtual_call}
  0x00007fb2cd101d4c: mov    $0xec7da6e0,%r10   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007fb2cd101d56: mov    (%rsp),%r11
  0x00007fb2cd101d5a: mov    %r11,%r8
  0x00007fb2cd101d5d: mov    $0xec7da6e0,%r11   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007fb2cd101d67: mov    %r8d,0x68(%r11)
  0x00007fb2cd101d6b: shr    $0x9,%r10
  0x00007fb2cd101d6f: mov    $0x7fb2e1a02000,%r11
  0x00007fb2cd101d79: mov    %r12b,(%r11,%r10,1)  ;*putstatic instance
                                                ; - Singleton::getInstance@24 (line 9)

  0x00007fb2cd101d7d: jmpq   0x00007fb2cd101ccb
  0x00007fb2cd101d82: mov    $0x100060028,%rsi  ;   {metadata('Singleton')}
  0x00007fb2cd101d8c: xchg   %ax,%ax
  0x00007fb2cd101d8f: callq  0x00007fb2cd100fa0  ; OopMap{off=340}
                                                ;*new  ; - Singleton::getInstance@17 (line 9)
                                                ;   {runtime_call}
  0x00007fb2cd101d94: jmp    0x00007fb2cd101d3b
  0x00007fb2cd101d96: mov    $0xec7da6e0,%r11   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007fb2cd101da0: lock cmpxchg %r10,(%r11)
  0x00007fb2cd101da5: mov    $0xec7da6e0,%r11   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007fb2cd101daf: lea    0x10(%rsp),%rbx
  0x00007fb2cd101db4: mov    (%r11),%rax
  0x00007fb2cd101db7: test   $0x2,%rax
  0x00007fb2cd101dbd: jne    0x00007fb2cd101de3
  0x00007fb2cd101dbf: or     $0x1,%rax
  0x00007fb2cd101dc3: mov    %rax,(%rbx)
  0x00007fb2cd101dc6: lock cmpxchg %rbx,(%r11)
  0x00007fb2cd101dcb: je     0x00007fb2cd101dfc
  0x00007fb2cd101dd1: sub    %rsp,%rax
  0x00007fb2cd101dd4: and    $0xfffffffffffff007,%rax
  0x00007fb2cd101ddb: mov    %rax,(%rbx)
  0x00007fb2cd101dde: jmpq   0x00007fb2cd101dfc
  0x00007fb2cd101de3: movq   $0x3,(%rbx)
  0x00007fb2cd101dea: mov    %rax,%rbx
  0x00007fb2cd101ded: mov    0x16(%rbx),%rax
  0x00007fb2cd101df1: test   %rax,%rax
  0x00007fb2cd101df4: jne    0x00007fb2cd101dfc
  0x00007fb2cd101df6: lock cmpxchg %r15,0x16(%rbx)
  0x00007fb2cd101dfc: je     0x00007fb2cd101cb6
  0x00007fb2cd101e02: mov    $0xec7da6e0,%rsi   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007fb2cd101e0c: lea    0x10(%rsp),%rdx
  0x00007fb2cd101e11: xchg   %ax,%ax
  0x00007fb2cd101e13: callq  0x00007fb2cd0fd620  ; OopMap{off=472}
                                                ;*monitorenter
                                                ; - Singleton::getInstance@10 (line 7)
                                                ;   {runtime_call}
  0x00007fb2cd101e18: jmpq   0x00007fb2cd101cb6
  0x00007fb2cd101e1d: test   $0x7,%r8
  0x00007fb2cd101e24: jne    0x00007fb2cd101d96
  0x00007fb2cd101e2a: test   $0x300,%r8
  0x00007fb2cd101e31: jne    0x00007fb2cd101e40
  0x00007fb2cd101e33: and    $0x37f,%rax
  0x00007fb2cd101e3a: mov    %rax,%r11
  0x00007fb2cd101e3d: or     %r15,%r11
  0x00007fb2cd101e40: mov    $0xec7da6e0,%r10   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007fb2cd101e4a: lock cmpxchg %r11,(%r10)
  0x00007fb2cd101e4f: jne    0x00007fb2cd101e02
  0x00007fb2cd101e51: jmpq   0x00007fb2cd101cb6
  0x00007fb2cd101e56: mov    $0xec7da6e0,%r11   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007fb2cd101e60: lea    0x10(%rsp),%rax
  0x00007fb2cd101e65: cmpq   $0x0,(%rax)
  0x00007fb2cd101e6c: je     0x00007fb2cd101ee6
  0x00007fb2cd101e72: mov    (%r11),%r10
  0x00007fb2cd101e75: test   $0x2,%r10
  0x00007fb2cd101e7c: je     0x00007fb2cd101ede
  0x00007fb2cd101e7e: mov    0x16(%r10),%rax
  0x00007fb2cd101e82: xor    %r15,%rax
  0x00007fb2cd101e85: or     0x26(%r10),%rax
  0x00007fb2cd101e89: jne    0x00007fb2cd101ee6
  0x00007fb2cd101e8b: mov    0x36(%r10),%rax
  0x00007fb2cd101e8f: or     0x3e(%r10),%rax
  0x00007fb2cd101e93: jne    0x00007fb2cd101e9f
  0x00007fb2cd101e95: movq   $0x0,0x16(%r10)
  0x00007fb2cd101e9d: jmp    0x00007fb2cd101ee6
  0x00007fb2cd101e9f: cmpq   $0x0,0x46(%r10)
  0x00007fb2cd101ea7: je     0x00007fb2cd101ed2
  0x00007fb2cd101ea9: movq   $0x0,0x16(%r10)
  0x00007fb2cd101eb1: lock addl $0x0,(%rsp)
  0x00007fb2cd101eb6: cmpq   $0x0,0x46(%r10)
  0x00007fb2cd101ebe: jne    0x00007fb2cd101ed7
  0x00007fb2cd101ec0: mov    $0x0,%rax
  0x00007fb2cd101eca: lock cmpxchg %r15,0x16(%r10)
  0x00007fb2cd101ed0: jne    0x00007fb2cd101ed7
  0x00007fb2cd101ed2: or     $0x1,%eax
  0x00007fb2cd101ed5: jmp    0x00007fb2cd101ee6
  0x00007fb2cd101ed7: test   $0x0,%eax
  0x00007fb2cd101edc: jmp    0x00007fb2cd101ee6
  0x00007fb2cd101ede: mov    (%rax),%r10
  0x00007fb2cd101ee1: lock cmpxchg %r10,(%r11)
  0x00007fb2cd101ee6: je     0x00007fb2cd101ce2
  0x00007fb2cd101eec: mov    $0xec7da6e0,%rdi   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007fb2cd101ef6: lea    0x10(%rsp),%rsi    ;*monitorenter
                                                ; - Singleton::getInstance@10 (line 7)

  0x00007fb2cd101efb: mov    $0x7fb2e431cba0,%r10
  0x00007fb2cd101f05: callq  *%r10              ;*monitorexit
                                                ; - Singleton::getInstance@28 (line 11)

  0x00007fb2cd101f08: jmpq   0x00007fb2cd101ce2  ;*new
                                                ; - Singleton::getInstance@17 (line 9)

  0x00007fb2cd101f0d: mov    %rax,%rbx
  0x00007fb2cd101f10: jmp    0x00007fb2cd101f15  ;*invokespecial <init>
                                                ; - Singleton::getInstance@21 (line 9)

  0x00007fb2cd101f12: mov    %rax,%rbx
  0x00007fb2cd101f15: mov    $0xec7da6e0,%r10   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007fb2cd101f1f: and    (%r10),%rbp
  0x00007fb2cd101f22: cmp    $0x5,%rbp
  0x00007fb2cd101f26: jne    0x00007fb2cd101f35  ;*monitorexit
                                                ; - Singleton::getInstance@34 (line 11)

  0x00007fb2cd101f28: mov    %rbx,%rsi
  0x00007fb2cd101f2b: add    $0x20,%rsp
  0x00007fb2cd101f2f: pop    %rbp
  0x00007fb2cd101f30: jmpq   0x00007fb2cd0fd520  ;   {runtime_call}
  0x00007fb2cd101f35: mov    $0xec7da6e0,%r11   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007fb2cd101f3f: lea    0x10(%rsp),%rax
  0x00007fb2cd101f44: cmpq   $0x0,(%rax)
  0x00007fb2cd101f4b: je     0x00007fb2cd101fc5
  0x00007fb2cd101f51: mov    (%r11),%r10
  0x00007fb2cd101f54: test   $0x2,%r10
  0x00007fb2cd101f5b: je     0x00007fb2cd101fbd
  0x00007fb2cd101f5d: mov    0x16(%r10),%rax
  0x00007fb2cd101f61: xor    %r15,%rax
  0x00007fb2cd101f64: or     0x26(%r10),%rax
  0x00007fb2cd101f68: jne    0x00007fb2cd101fc5
  0x00007fb2cd101f6a: mov    0x36(%r10),%rax
  0x00007fb2cd101f6e: or     0x3e(%r10),%rax
  0x00007fb2cd101f72: jne    0x00007fb2cd101f7e
  0x00007fb2cd101f74: movq   $0x0,0x16(%r10)
  0x00007fb2cd101f7c: jmp    0x00007fb2cd101fc5
  0x00007fb2cd101f7e: cmpq   $0x0,0x46(%r10)
  0x00007fb2cd101f86: je     0x00007fb2cd101fb1
  0x00007fb2cd101f88: movq   $0x0,0x16(%r10)
  0x00007fb2cd101f90: lock addl $0x0,(%rsp)
  0x00007fb2cd101f95: cmpq   $0x0,0x46(%r10)
  0x00007fb2cd101f9d: jne    0x00007fb2cd101fb6
  0x00007fb2cd101f9f: mov    $0x0,%rax
  0x00007fb2cd101fa9: lock cmpxchg %r15,0x16(%r10)
  0x00007fb2cd101faf: jne    0x00007fb2cd101fb6
  0x00007fb2cd101fb1: or     $0x1,%eax
  0x00007fb2cd101fb4: jmp    0x00007fb2cd101fc5
  0x00007fb2cd101fb6: test   $0x0,%eax
  0x00007fb2cd101fbb: jmp    0x00007fb2cd101fc5
  0x00007fb2cd101fbd: mov    (%rax),%r10
  0x00007fb2cd101fc0: lock cmpxchg %r10,(%r11)
  0x00007fb2cd101fc5: je     0x00007fb2cd101f28
  0x00007fb2cd101fcb: mov    $0xec7da6e0,%rdi   ;   {oop(a 'java/lang/Class' = 'Singleton')}
  0x00007fb2cd101fd5: lea    0x10(%rsp),%rsi    ;*monitorenter
                                                ; - Singleton::getInstance@10 (line 7)

  0x00007fb2cd101fda: mov    $0x7fb2e431cba0,%r10
  0x00007fb2cd101fe4: callq  *%r10              ;*monitorexit
                                                ; - Singleton::getInstance@34 (line 11)

  0x00007fb2cd101fe7: jmpq   0x00007fb2cd101f28
  0x00007fb2cd101fec: hlt    
  0x00007fb2cd101fed: hlt    
  0x00007fb2cd101fee: hlt    
  0x00007fb2cd101fef: hlt    
  0x00007fb2cd101ff0: hlt    
  0x00007fb2cd101ff1: hlt    
  0x00007fb2cd101ff2: hlt    
  0x00007fb2cd101ff3: hlt    
  0x00007fb2cd101ff4: hlt    
  0x00007fb2cd101ff5: hlt    
  0x00007fb2cd101ff6: hlt    
  0x00007fb2cd101ff7: hlt    
  0x00007fb2cd101ff8: hlt    
  0x00007fb2cd101ff9: hlt    
  0x00007fb2cd101ffa: hlt    
  0x00007fb2cd101ffb: hlt    
  0x00007fb2cd101ffc: hlt    
  0x00007fb2cd101ffd: hlt    
  0x00007fb2cd101ffe: hlt    
  0x00007fb2cd101fff: hlt    
[Stub Code]
  0x00007fb2cd102000: mov    $0x0,%rbx          ;   {no_reloc}
  0x00007fb2cd10200a: jmpq   0x00007fb2cd10200a  ;   {runtime_call}
[Exception Handler]
  0x00007fb2cd10200f: jmpq   0x00007fb2cd06c060  ;   {runtime_call}
[Deopt Handler Code]
  0x00007fb2cd102014: callq  0x00007fb2cd102019
  0x00007fb2cd102019: subq   $0x5,(%rsp)
  0x00007fb2cd10201e: jmpq   0x00007fb2cd046fc0  ;   {runtime_call}
  0x00007fb2cd102023: hlt    
  0x00007fb2cd102024: hlt    
  0x00007fb2cd102025: hlt    
  0x00007fb2cd102026: hlt    
  0x00007fb2cd102027: hlt    
OopMapSet contains 3 OopMaps

#0 
OopMap{[0]=Oop off=268}
#1 
OopMap{off=340}
#2 
OopMap{off=472}