0000000000885be0 <_ZN16HeapObjectDumper9do_objectEP7oopDesc>: 885be0: f3 0f 1e fa endbr64 885be4: 55 push %rbp 885be5: 48 89 e5 mov %rsp,%rbp 885be8: 41 55 push %r13 885bea: 49 89 fd mov %rdi,%r13 885bed: 41 54 push %r12 885bef: 49 89 f4 mov %rsi,%r12 885bf2: 53 push %rbx 885bf3: 48 83 ec 08 sub $0x8,%rsp vvvvvvvvvv RAX=CompressedKlassPointers::_value 885bf7: 48 8d 1d da 73 bb 00 lea 0xbb73da(%rip),%rbx # 143cfd8 <_ZN23CompressedKlassPointers6_valueE> 885bfe: 48 8b 03 mov (%rbx),%rax vvvvvvvvvv UseCompactObjectHeaders? 885c01: a8 01 test $0x1,%al 885c03: 0f 84 77 01 00 00 je 885d80 <_ZN16HeapObjectDumper9do_objectEP7oopDesc+0x1a0> vvvvvvvvvv UseCompactObjectHeaders=true 885c09: 48 8b 16 mov (%rsi),%rdx <<< load mark word 885c0c: 48 89 d1 mov %rdx,%rcx <<< copy mark word to rcx 885c0f: 83 e1 03 and $0x3,%ecx <<< mask out lock bits 885c12: 48 83 f9 02 cmp $0x2,%rcx <<< Inflated?? 885c16: 0f 84 5c 02 00 00 je 885e78 <_ZN16HeapObjectDumper9do_objectEP7oopDesc+0x298> 885c1c: 48 c1 ea 20 shr $0x20,%rdx <<< extract narrow Klass 885c20: 48 89 c1 mov %rax,%rcx vvvvvvvvvv Extract encoding base from RAX 885c23: 48 25 00 f0 ff ff and $0xfffffffffffff000,%rax vvvvvvvvvv Extract encoding shift from RCX 885c29: 48 c1 e9 02 shr $0x2,%rcx 885c2d: 83 e1 1f and $0x1f,%ecx vvvvvvvvvv Calculate Klass* = (nKlass << encoding_shift) + encoding_base) 885c30: 48 d3 e2 shl %cl,%rdx 885c33: 48 01 d0 add %rdx,%rax 885c36: 48 8d 15 83 8f c0 00 lea 0xc08f83(%rip),%rdx # 148ebc0 <_ZN9vmClasses8_klassesE> 885c3d: 48 39 42 10 cmp %rax,0x10(%rdx) 885c41: 0f 84 a9 01 00 00 je 885df0 <_ZN16HeapObjectDumper9do_objectEP7oopDesc+0x210> 885c47: 4d 85 e4 test %r12,%r12 885c4a: 0f 84 40 01 00 00 je 885d90 <_ZN16HeapObjectDumper9do_objectEP7oopDesc+0x1b0> 885c50: 48 8b 03 mov (%rbx),%rax 885c53: a8 01 test $0x1,%al 885c55: 0f 84 bd 01 00 00 je 885e18 <_ZN16HeapObjectDumper9do_objectEP7oopDesc+0x238> 885c5b: 49 8b 14 24 mov (%r12),%rdx 885c5f: 48 89 d1 mov %rdx,%rcx 885c62: 83 e1 03 and $0x3,%ecx 885c65: 48 83 f9 02 cmp $0x2,%rcx 885c69: 0f 84 29 02 00 00 je 885e98 <_ZN16HeapObjectDumper9do_objectEP7oopDesc+0x2b8> 885c6f: 48 c1 ea 20 shr $0x20,%rdx 885c73: 48 89 c1 mov %rax,%rcx 885c76: 48 25 00 f0 ff ff and $0xfffffffffffff000,%rax 885c7c: 48 c1 e9 02 shr $0x2,%rcx 885c80: 83 e1 1f and $0x1f,%ecx 885c83: 48 d3 e2 shl %cl,%rdx 885c86: 48 01 d0 add %rdx,%rax 885c89: 48 8b 78 70 mov 0x70(%rax),%rdi 885c8d: 48 85 ff test %rdi,%rdi 885c90: 0f 84 fa 00 00 00 je 885d90 <_ZN16HeapObjectDumper9do_objectEP7oopDesc+0x1b0> 885c96: ff 15 74 d3 b7 00 callq *0xb7d374(%rip) # 1403010 <_ZN14AccessInternal15RuntimeDispatchILm548932EP7oopDescLNS_11BarrierTypeE2EE10_load_funcE> 885c9c: 48 85 c0 test %rax,%rax 885c9f: 0f 84 eb 00 00 00 je 885d90 <_ZN16HeapObjectDumper9do_objectEP7oopDesc+0x1b0> 885ca5: 49 83 7d 10 00 cmpq $0x0,0x10(%r13) 885caa: 74 13 je 885cbf <_ZN16HeapObjectDumper9do_objectEP7oopDesc+0xdf> 885cac: 4c 89 e6 mov %r12,%rsi 885caf: 4c 89 ef mov %r13,%rdi 885cb2: e8 29 d8 ff ff callq 8834e0 <_ZN16HeapObjectDumper8is_largeEP7oopDesc> 885cb7: 84 c0 test %al,%al 885cb9: 0f 85 21 02 00 00 jne 885ee0 <_ZN16HeapObjectDumper9do_objectEP7oopDesc+0x300> 885cbf: 48 8b 03 mov (%rbx),%rax 885cc2: a8 01 test $0x1,%al 885cc4: 0f 84 86 00 00 00 je 885d50 <_ZN16HeapObjectDumper9do_objectEP7oopDesc+0x170> 885cca: 49 8b 14 24 mov (%r12),%rdx 885cce: 48 89 d1 mov %rdx,%rcx 885cd1: 83 e1 03 and $0x3,%ecx 885cd4: 48 83 f9 02 cmp $0x2,%rcx 885cd8: 0f 84 aa 01 00 00 je 885e88 <_ZN16HeapObjectDumper9do_objectEP7oopDesc+0x2a8> 885cde: 48 89 c6 mov %rax,%rsi 885ce1: 48 c1 e8 02 shr $0x2,%rax 885ce5: 48 89 c1 mov %rax,%rcx 885ce8: 48 c1 ea 20 shr $0x20,%rdx 885cec: 48 81 e6 00 f0 ff ff and $0xfffffffffffff000,%rsi 885cf3: 83 e1 1f and $0x1f,%ecx 885cf6: 48 d3 e2 shl %cl,%rdx 885cf9: 83 7c 32 0c 04 cmpl $0x4,0xc(%rdx,%rsi,1) 885cfe: 7e 69 jle 885d69 <_ZN16HeapObjectDumper9do_objectEP7oopDesc+0x189> 885d00: 49 8b 04 24 mov (%r12),%rax 885d04: 48 89 c2 mov %rax,%rdx 885d07: 83 e2 03 and $0x3,%edx 885d0a: 48 83 fa 02 cmp $0x2,%rdx 885d0e: 75 07 jne 885d17 <_ZN16HeapObjectDumper9do_objectEP7oopDesc+0x137> 885d10: 48 83 f0 02 xor $0x2,%rax 885d14: 48 8b 00 mov (%rax),%rax 885d17: 48 c1 e8 20 shr $0x20,%rax 885d1b: 48 d3 e0 shl %cl,%rax 885d1e: 83 7c 30 0c 06 cmpl $0x6,0xc(%rax,%rsi,1) 885d23: 0f 84 9f 01 00 00 je 885ec8 <_ZN16HeapObjectDumper9do_objectEP7oopDesc+0x2e8> 885d29: 49 8b 04 24 mov (%r12),%rax 885d2d: 48 89 c2 mov %rax,%rdx 885d30: 83 e2 03 and $0x3,%edx 885d33: 48 83 fa 02 cmp $0x2,%rdx 885d37: 75 07 jne 885d40 <_ZN16HeapObjectDumper9do_objectEP7oopDesc+0x160> 885d39: 48 83 f0 02 xor $0x2,%rax 885d3d: 48 8b 00 mov (%rax),%rax 885d40: 48 c1 e8 20 shr $0x20,%rax 885d44: 48 d3 e0 shl %cl,%rax 885d47: 8b 44 30 0c mov 0xc(%rax,%rsi,1),%eax 885d4b: e9 0a 01 00 00 jmpq 885e5a <_ZN16HeapObjectDumper9do_objectEP7oopDesc+0x27a> 885d50: a8 02 test $0x2,%al 885d52: 0f 85 d8 00 00 00 jne 885e30 <_ZN16HeapObjectDumper9do_objectEP7oopDesc+0x250> 885d58: 49 8b 44 24 08 mov 0x8(%r12),%rax 885d5d: 8b 40 0c mov 0xc(%rax),%eax 885d60: 83 f8 04 cmp $0x4,%eax 885d63: 0f 8f ec 00 00 00 jg 885e55 <_ZN16HeapObjectDumper9do_objectEP7oopDesc+0x275> 885d69: 49 8b 7d 08 mov 0x8(%r13),%rdi 885d6d: 48 83 c4 08 add $0x8,%rsp 885d71: 4c 89 e6 mov %r12,%rsi 885d74: 5b pop %rbx 885d75: 41 5c pop %r12 885d77: 41 5d pop %r13 885d79: 5d pop %rbp 885d7a: e9 f1 f7 ff ff jmpq 885570 <_ZN13DumperSupport13dump_instanceEP18AbstractDumpWriterP7oopDesc> 885d7f: 90 nop vvvvvvvvvvv UseCompactHeaders=false. UseCompressedClassPointers? 885d80: a8 02 test $0x2,%al 885d82: 0f 84 30 01 00 00 je 885eb8 <_ZN16HeapObjectDumper9do_objectEP7oopDesc+0x2d8> vvvvvvvvvvv UseCompressedClassPointers=true: load narrow Klass and jump back to decoding 885d88: 8b 56 08 mov 0x8(%rsi),%edx 885d8b: e9 90 fe ff ff jmpq 885c20 <_ZN16HeapObjectDumper9do_objectEP7oopDesc+0x40> 885d90: 48 83 3d e0 11 bb 00 cmpq $0x0,0xbb11e0(%rip) # 1436f78 <_ZN16LogTagSetMappingILN6LogTag4typeE12ELS1_49ELS1_0ELS1_0ELS1_0ELS1_0EE7_tagsetE+0x38> 885d97: 00 885d98: 74 70 je 885e0a <_ZN16HeapObjectDumper9do_objectEP7oopDesc+0x22a> 885d9a: 48 8b 3b mov (%rbx),%rdi 885d9d: 40 f6 c7 01 test $0x1,%dil 885da1: 0f 85 89 01 00 00 jne 885f30 <_ZN16HeapObjectDumper9do_objectEP7oopDesc+0x350> 885da7: 40 f6 c7 02 test $0x2,%dil 885dab: 0f 84 bf 01 00 00 je 885f70 <_ZN16HeapObjectDumper9do_objectEP7oopDesc+0x390> 885db1: 41 8b 44 24 08 mov 0x8(%r12),%eax 885db6: 48 89 f9 mov %rdi,%rcx 885db9: 48 81 e7 00 f0 ff ff and $0xfffffffffffff000,%rdi 885dc0: 48 c1 e9 02 shr $0x2,%rcx 885dc4: 83 e1 1f and $0x1f,%ecx 885dc7: 48 d3 e0 shl %cl,%rax 885dca: 48 01 c7 add %rax,%rdi 885dcd: e8 ee 47 29 00 callq b1a5c0 <_ZNK5Klass13external_nameEv> 885dd2: 48 83 c4 08 add $0x8,%rsp