Skip to content

Instantly share code, notes, and snippets.

@stsypanov
Created December 10, 2021 07:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save stsypanov/16c787e4f9fa3dd122522f16331b68b7 to your computer and use it in GitHub Desktop.
Save stsypanov/16c787e4f9fa3dd122522f16331b68b7 to your computer and use it in GitHub Desktop.
StackOverflow question 70272651 String constructor patched
0x00007f6b88eb5fea: cmp $0x8,%rcx
╭ 0x00007f6b88eb5fee: jg 0x00007f6b88eb6000
│ 0x00007f6b88eb5ff0: dec %rcx
│╭ 0x00007f6b88eb5ff3: js 0x00007f6b88eb6044
││↗ 0x00007f6b88eb5ff5: mov %rax,(%rdi,%rcx,8)
│││ 0x00007f6b88eb5ff9: dec %rcx
││╰ 0x00007f6b88eb5ffc: jge 0x00007f6b88eb5ff5
││ ╭ 0x00007f6b88eb5ffe: jmp 0x00007f6b88eb6044
↘│ │ 0x00007f6b88eb6000: vpxor %ymm0,%ymm0,%ymm0
│ │╭ 0x00007f6b88eb6004: jmp 0x00007f6b88eb6016
0.24% │ ││↗ 0x00007f6b88eb6009: vmovdqu %ymm0,(%rdi)
0.05% │ │││ 0x00007f6b88eb600d: vmovdqu %ymm0,0x20(%rdi)
│ │││ 0x00007f6b88eb6012: add $0x40,%rdi
0.26% │ │↘│ 0x00007f6b88eb6016: sub $0x8,%rcx
│ │ ╰ 0x00007f6b88eb601a: jge 0x00007f6b88eb6009
0.26% │ │ 0x00007f6b88eb601c: add $0x4,%rcx
│ │ ╭ 0x00007f6b88eb6020: jl 0x00007f6b88eb602e
│ │ │ 0x00007f6b88eb6022: vmovdqu %ymm0,(%rdi)
│ │ │ 0x00007f6b88eb6026: add $0x20,%rdi
│ │ │ 0x00007f6b88eb602a: sub $0x4,%rcx
0.01% │ │ ↘ 0x00007f6b88eb602e: add $0x4,%rcx
│ │ ╭ 0x00007f6b88eb6032: jle 0x00007f6b88eb6044
│ │ │ 0x00007f6b88eb6034: dec %rcx
│ │ │↗ 0x00007f6b88eb6037: vmovq %xmm0,(%rdi)
0.19% │ │ ││ 0x00007f6b88eb603b: add $0x8,%rdi
│ │ ││ 0x00007f6b88eb603f: dec %rcx
│ │ │╰ 0x00007f6b88eb6042: jge 0x00007f6b88eb6037 ;*invokestatic inflate {reexecute=0 rethrow=0 return_oop=0}
│ │ │ ; - java.lang.String::<init>@276 (line 570)
↘ ↘ ↘ 0x00007f6b88eb6044: xor %ebx,%ebx
0x00007f6b88eb6046: movabs $0x7f6b7ff27000,%rcx
0.22% ╭ 0x00007f6b88eb6050: jmp 0x00007f6b88eb6064
0.26% │↗ 0x00007f6b88eb6052: mov %dil,0x10(%r8,%rsi,1) ;*putfield value {reexecute=0 rethrow=0 return_oop=0}
││ ; - java.lang.String::<init>@74 (line 529)
0.79% ││ 0x00007f6b88eb6057: mov 0x340(%r15),%r10 ; ImmutableOopMap {r8=Oop r14=Oop [24]=Oop }
││ ;*goto {reexecute=1 rethrow=0 return_oop=0}
││ ; - (reexecute) java.lang.String::<init>@141 (line 542)
1.14% ││ 0x00007f6b88eb605e: test %eax,(%r10) ;*goto {reexecute=0 rethrow=0 return_oop=0}
││ ; - java.lang.String::<init>@141 (line 542)
││ ; {poll}
17.28% ││ 0x00007f6b88eb6061: mov %edx,%r10d ;*iload_2 {reexecute=0 rethrow=0 return_oop=0}
││ ; - java.lang.String::<init>@107 (line 537)
0.11% ↘│ 0x00007f6b88eb6064: test %r10d,%r10d
│ 0x00007f6b88eb6067: jl 0x00007f6b88eb669c ;*iflt {reexecute=0 rethrow=0 return_oop=0}
│ ; - java.lang.String::<init>@108 (line 537)
0.39% │ 0x00007f6b88eb606d: cmp %r13d,%r10d
│ 0x00007f6b88eb6070: jge 0x00007f6b88eb66d0 ;*if_icmpge {reexecute=0 rethrow=0 return_oop=0}
│ ; - java.lang.String::<init>@114 (line 537)
0.66% │ 0x00007f6b88eb6076: mov %ebx,%r9d
13.70% │ 0x00007f6b88eb6079: cmp 0x8(%rsp),%r10d
0.01% │ 0x00007f6b88eb607e: jae 0x00007f6b88eb6671
0.14% │ 0x00007f6b88eb6084: movsbl 0x10(%r14,%r10,1),%edi ;*baload {reexecute=0 rethrow=0 return_oop=0}
│ ; - java.lang.String::<init>@119 (line 538)
0.37% │ 0x00007f6b88eb608a: mov %r9d,%ebx
0.99% │ 0x00007f6b88eb608d: inc %ebx ;*iinc {reexecute=0 rethrow=0 return_oop=0}
│ ; - java.lang.String::<init>@131 (line 540)
12.88% │ 0x00007f6b88eb608f: movslq %r9d,%rsi ;*bastore {reexecute=0 rethrow=0 return_oop=0}
│ ; - java.lang.String::<init>@196 (line 548)
0.17% │ 0x00007f6b88eb6092: mov %r10d,%edx
0.39% │ 0x00007f6b88eb6095: inc %edx ;*iinc {reexecute=0 rethrow=0 return_oop=0}
│ ; - java.lang.String::<init>@138 (line 541)
0.96% │ 0x00007f6b88eb6097: test %edi,%edi
0.02% │ 0x00007f6b88eb6099: jl 0x00007f6b88eb60dc ;*iflt {reexecute=0 rethrow=0 return_oop=0}
│ ; - java.lang.String::<init>@124 (line 539)
12.42% │ 0x00007f6b88eb609b: cmp %r11d,%r9d
╰ 0x00007f6b88eb609e: jb 0x00007f6b88eb6052
0x00007f6b88eb60a0: mov $0xffffffe4,%esi
0x00007f6b88eb60a5: mov %r14,%rbp
0x00007f6b88eb60a8: mov %r10d,(%rsp)
0x00007f6b88eb60ac: mov %ebx,0x4(%rsp)
0x00007f6b88eb60b0: mov %r9d,0x8(%rsp)
0x00007f6b88eb60b5: mov %edi,0xc(%rsp)
0x00007f6b88eb60b9: mov 0x18(%rsp),%r10
0x00007f6b88eb60be: mov %r10,0x10(%rsp)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment