Advertisement
Guest User

Untitled

a guest
Jun 24th, 2018
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 95.86 KB | None | 0 0
  1. [kiv@XPS-13-9350 ~]$ cat HelloWorld.java
  2. public class HelloWorld {
  3. public static void main(String[] args) {
  4. System.out.println("Hello world!");
  5. }
  6. }
  7. [kiv@XPS-13-9350 ~]$ javac HelloWorld.java
  8. [kiv@XPS-13-9350 ~]$ java -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssembly HelloWorld
  9. OpenJDK 64-Bit Server VM warning: PrintAssembly is enabled; turning on DebugNonSafepoints to gain additional output
  10. Loaded disassembler from /usr/lib/jvm/java-8-openjdk/jre/lib/amd64/hsdis-amd64.so
  11. Decoding compiled method 0x00007f72e91018d0:
  12. Code:
  13. [Disassembling for mach='i386:x86-64']
  14. [Entry Point]
  15. [Constants]
  16. # {method} {0x00007f72e3805000} 'hashCode' '()I' in 'java/lang/String'
  17. # [sp+0x40] (sp of caller)
  18. 0x00007f72e9101a40: mov 0x8(%rsi),%r10d
  19. 0x00007f72e9101a44: shl $0x3,%r10
  20. 0x00007f72e9101a48: cmp %rax,%r10
  21. 0x00007f72e9101a4b: jne 0x00007f72e9045ba0 ; {runtime_call}
  22. 0x00007f72e9101a51: data16 data16 nopw 0x0(%rax,%rax,1)
  23. 0x00007f72e9101a5c: data16 data16 xchg %ax,%ax
  24. [Verified Entry Point]
  25. 0x00007f72e9101a60: mov %eax,-0x14000(%rsp)
  26. 0x00007f72e9101a67: push %rbp
  27. 0x00007f72e9101a68: sub $0x30,%rsp
  28. 0x00007f72e9101a6c: movabs $0x7f72e39ddb70,%rax ; {metadata(method data for {method} {0x00007f72e3805000} 'hashCode' '()I' in 'java/lang/String')}
  29. 0x00007f72e9101a76: mov 0xdc(%rax),%edi
  30. 0x00007f72e9101a7c: add $0x8,%edi
  31. 0x00007f72e9101a7f: mov %edi,0xdc(%rax)
  32. 0x00007f72e9101a85: movabs $0x7f72e3805000,%rax ; {metadata({method} {0x00007f72e3805000} 'hashCode' '()I' in 'java/lang/String')}
  33. 0x00007f72e9101a8f: and $0x1ff8,%edi
  34. 0x00007f72e9101a95: cmp $0x0,%edi
  35. 0x00007f72e9101a98: je 0x00007f72e9101bd1 ;*aload_0
  36. ; - java.lang.String::hashCode@0 (line 1466)
  37.  
  38. 0x00007f72e9101a9e: mov 0x10(%rsi),%eax ;*getfield hash
  39. ; - java.lang.String::hashCode@1 (line 1466)
  40.  
  41. 0x00007f72e9101aa1: cmp $0x0,%eax
  42. 0x00007f72e9101aa4: movabs $0x7f72e39ddb70,%rdi ; {metadata(method data for {method} {0x00007f72e3805000} 'hashCode' '()I' in 'java/lang/String')}
  43. 0x00007f72e9101aae: movabs $0x108,%rbx
  44. 0x00007f72e9101ab8: jne 0x00007f72e9101ac8
  45. 0x00007f72e9101abe: movabs $0x118,%rbx
  46. 0x00007f72e9101ac8: mov (%rdi,%rbx,1),%rdx
  47. 0x00007f72e9101acc: lea 0x1(%rdx),%rdx
  48. 0x00007f72e9101ad0: mov %rdx,(%rdi,%rbx,1)
  49. 0x00007f72e9101ad4: jne 0x00007f72e9101bc5 ;*ifne
  50. ; - java.lang.String::hashCode@6 (line 1467)
  51.  
  52. 0x00007f72e9101ada: mov 0xc(%rsi),%edi
  53. 0x00007f72e9101add: shl $0x3,%rdi ;*getfield value
  54. ; - java.lang.String::hashCode@10 (line 1467)
  55.  
  56. 0x00007f72e9101ae1: mov 0xc(%rdi),%ebx ;*arraylength
  57. ; - java.lang.String::hashCode@13 (line 1467)
  58. ; implicit exception: dispatches to 0x00007f72e9101be8
  59. 0x00007f72e9101ae4: cmp $0x0,%ebx
  60. 0x00007f72e9101ae7: movabs $0x7f72e39ddb70,%rdx ; {metadata(method data for {method} {0x00007f72e3805000} 'hashCode' '()I' in 'java/lang/String')}
  61. 0x00007f72e9101af1: movabs $0x128,%rcx
  62. 0x00007f72e9101afb: jle 0x00007f72e9101b0b
  63. 0x00007f72e9101b01: movabs $0x138,%rcx
  64. 0x00007f72e9101b0b: mov (%rdx,%rcx,1),%r8
  65. 0x00007f72e9101b0f: lea 0x1(%r8),%r8
  66. 0x00007f72e9101b13: mov %r8,(%rdx,%rcx,1)
  67. 0x00007f72e9101b17: jle 0x00007f72e9101bc5 ;*ifle
  68. ; - java.lang.String::hashCode@14 (line 1467)
  69.  
  70. 0x00007f72e9101b1d: mov $0x0,%edx
  71. 0x00007f72e9101b22: jmpq 0x00007f72e9101b8a ;*iload_3
  72. ; - java.lang.String::hashCode@24 (line 1470)
  73.  
  74. 0x00007f72e9101b27: nop
  75. 0x00007f72e9101b28: movslq %edx,%rcx
  76. 0x00007f72e9101b2b: movzwl 0x10(%rdi,%rcx,2),%ecx ;*caload
  77. ; - java.lang.String::hashCode@39 (line 1471)
  78.  
  79. 0x00007f72e9101b30: mov %rax,%r8
  80. 0x00007f72e9101b33: shl $0x5,%eax
  81. 0x00007f72e9101b36: sub %r8d,%eax
  82. 0x00007f72e9101b39: add %ecx,%eax
  83. 0x00007f72e9101b3b: inc %edx
  84. 0x00007f72e9101b3d: movabs $0x7f72e39ddb70,%rcx ; {metadata(method data for {method} {0x00007f72e3805000} 'hashCode' '()I' in 'java/lang/String')}
  85. 0x00007f72e9101b47: mov 0xe0(%rcx),%r8d
  86. 0x00007f72e9101b4e: add $0x8,%r8d
  87. 0x00007f72e9101b52: mov %r8d,0xe0(%rcx)
  88. 0x00007f72e9101b59: movabs $0x7f72e3805000,%rcx ; {metadata({method} {0x00007f72e3805000} 'hashCode' '()I' in 'java/lang/String')}
  89. 0x00007f72e9101b63: and $0xfff8,%r8d
  90. 0x00007f72e9101b6a: cmp $0x0,%r8d
  91. 0x00007f72e9101b6e: je 0x00007f72e9101bed ; OopMap{rdi=Oop rsi=Oop off=308}
  92. ;*goto
  93. ; - java.lang.String::hashCode@45 (line 1470)
  94.  
  95. 0x00007f72e9101b74: test %eax,0x16a4e586(%rip) # 0x00007f72ffb50100
  96. ; {poll}
  97. 0x00007f72e9101b7a: movabs $0x7f72e39ddb70,%rcx ; {metadata(method data for {method} {0x00007f72e3805000} 'hashCode' '()I' in 'java/lang/String')}
  98. 0x00007f72e9101b84: incl 0x168(%rcx) ;*goto
  99. ; - java.lang.String::hashCode@45 (line 1470)
  100.  
  101. 0x00007f72e9101b8a: cmp %ebx,%edx
  102. 0x00007f72e9101b8c: movabs $0x7f72e39ddb70,%rcx ; {metadata(method data for {method} {0x00007f72e3805000} 'hashCode' '()I' in 'java/lang/String')}
  103. 0x00007f72e9101b96: movabs $0x148,%r8
  104. 0x00007f72e9101ba0: jge 0x00007f72e9101bb0
  105. 0x00007f72e9101ba6: movabs $0x158,%r8
  106. 0x00007f72e9101bb0: mov (%rcx,%r8,1),%r9
  107. 0x00007f72e9101bb4: lea 0x1(%r9),%r9
  108. 0x00007f72e9101bb8: mov %r9,(%rcx,%r8,1)
  109. 0x00007f72e9101bbc: jl 0x00007f72e9101b28 ;*if_icmpge
  110. ; - java.lang.String::hashCode@30 (line 1470)
  111.  
  112. 0x00007f72e9101bc2: mov %eax,0x10(%rsi) ;*putfield hash
  113. ; - java.lang.String::hashCode@50 (line 1473)
  114.  
  115. 0x00007f72e9101bc5: add $0x30,%rsp
  116. 0x00007f72e9101bc9: pop %rbp
  117. 0x00007f72e9101bca: test %eax,0x16a4e530(%rip) # 0x00007f72ffb50100
  118. ; {poll_return}
  119. 0x00007f72e9101bd0: retq
  120. 0x00007f72e9101bd1: mov %rax,0x8(%rsp)
  121. 0x00007f72e9101bd6: movq $0xffffffffffffffff,(%rsp)
  122. 0x00007f72e9101bde: callq 0x00007f72e90fdfe0 ; OopMap{rsi=Oop off=419}
  123. ;*synchronization entry
  124. ; - java.lang.String::hashCode@-1 (line 1466)
  125. ; {runtime_call}
  126. 0x00007f72e9101be3: jmpq 0x00007f72e9101a9e
  127. 0x00007f72e9101be8: callq 0x00007f72e90f9980 ; OopMap{rsi=Oop rdi=Oop off=429}
  128. ;*arraylength
  129. ; - java.lang.String::hashCode@13 (line 1467)
  130. ; {runtime_call}
  131. 0x00007f72e9101bed: mov %rcx,0x8(%rsp)
  132. 0x00007f72e9101bf2: movq $0x2d,(%rsp)
  133. 0x00007f72e9101bfa: callq 0x00007f72e90fdfe0 ; OopMap{rdi=Oop rsi=Oop off=447}
  134. ;*goto
  135. ; - java.lang.String::hashCode@45 (line 1470)
  136. ; {runtime_call}
  137. 0x00007f72e9101bff: jmpq 0x00007f72e9101b74
  138. 0x00007f72e9101c04: nop
  139. 0x00007f72e9101c05: nop
  140. 0x00007f72e9101c06: mov 0x290(%r15),%rax
  141. 0x00007f72e9101c0d: movabs $0x0,%r10
  142. 0x00007f72e9101c17: mov %r10,0x290(%r15)
  143. 0x00007f72e9101c1e: movabs $0x0,%r10
  144. 0x00007f72e9101c28: mov %r10,0x298(%r15)
  145. 0x00007f72e9101c2f: add $0x30,%rsp
  146. 0x00007f72e9101c33: pop %rbp
  147. 0x00007f72e9101c34: jmpq 0x00007f72e90f9360 ; {runtime_call}
  148. 0x00007f72e9101c39: hlt
  149. 0x00007f72e9101c3a: hlt
  150. 0x00007f72e9101c3b: hlt
  151. 0x00007f72e9101c3c: hlt
  152. 0x00007f72e9101c3d: hlt
  153. 0x00007f72e9101c3e: hlt
  154. 0x00007f72e9101c3f: hlt
  155. [Exception Handler]
  156. [Stub Code]
  157. 0x00007f72e9101c40: callq 0x00007f72e90fb820 ; {no_reloc}
  158. 0x00007f72e9101c45: mov %rsp,-0x28(%rsp)
  159. 0x00007f72e9101c4a: sub $0x80,%rsp
  160. 0x00007f72e9101c51: mov %rax,0x78(%rsp)
  161. 0x00007f72e9101c56: mov %rcx,0x70(%rsp)
  162. 0x00007f72e9101c5b: mov %rdx,0x68(%rsp)
  163. 0x00007f72e9101c60: mov %rbx,0x60(%rsp)
  164. 0x00007f72e9101c65: mov %rbp,0x50(%rsp)
  165. 0x00007f72e9101c6a: mov %rsi,0x48(%rsp)
  166. 0x00007f72e9101c6f: mov %rdi,0x40(%rsp)
  167. 0x00007f72e9101c74: mov %r8,0x38(%rsp)
  168. 0x00007f72e9101c79: mov %r9,0x30(%rsp)
  169. 0x00007f72e9101c7e: mov %r10,0x28(%rsp)
  170. 0x00007f72e9101c83: mov %r11,0x20(%rsp)
  171. 0x00007f72e9101c88: mov %r12,0x18(%rsp)
  172. 0x00007f72e9101c8d: mov %r13,0x10(%rsp)
  173. 0x00007f72e9101c92: mov %r14,0x8(%rsp)
  174. 0x00007f72e9101c97: mov %r15,(%rsp)
  175. 0x00007f72e9101c9b: movabs $0x7f72fe733a12,%rdi ; {external_word}
  176. 0x00007f72e9101ca5: movabs $0x7f72e9101c45,%rsi ; {internal_word}
  177. 0x00007f72e9101caf: mov %rsp,%rdx
  178. 0x00007f72e9101cb2: and $0xfffffffffffffff0,%rsp
  179. 0x00007f72e9101cb6: callq 0x00007f72fe438740 ; {runtime_call}
  180. 0x00007f72e9101cbb: hlt
  181. [Deopt Handler Code]
  182. 0x00007f72e9101cbc: movabs $0x7f72e9101cbc,%r10 ; {section_word}
  183. 0x00007f72e9101cc6: push %r10
  184. 0x00007f72e9101cc8: jmpq 0x00007f72e9047240 ; {runtime_call}
  185. 0x00007f72e9101ccd: hlt
  186. 0x00007f72e9101cce: hlt
  187. 0x00007f72e9101ccf: hlt
  188. Decoding compiled method 0x00007f72e9100ed0:
  189. Code:
  190. [Entry Point]
  191. [Constants]
  192. # {method} {0x00007f72e3804618} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String'
  193. # this: rsi:rsi = 'java/lang/String'
  194. # parm0: rdx:rdx = 'java/lang/Object'
  195. # [sp+0x40] (sp of caller)
  196. 0x00007f72e9101060: mov 0x8(%rsi),%r10d
  197. 0x00007f72e9101064: shl $0x3,%r10
  198. 0x00007f72e9101068: cmp %rax,%r10
  199. 0x00007f72e910106b: jne 0x00007f72e9045ba0 ; {runtime_call}
  200. 0x00007f72e9101071: data16 data16 nopw 0x0(%rax,%rax,1)
  201. 0x00007f72e910107c: data16 data16 xchg %ax,%ax
  202. [Verified Entry Point]
  203. 0x00007f72e9101080: mov %eax,-0x14000(%rsp)
  204. 0x00007f72e9101087: push %rbp
  205. 0x00007f72e9101088: sub $0x30,%rsp
  206. 0x00007f72e910108c: movabs $0x7f72e39e7818,%rax ; {metadata(method data for {method} {0x00007f72e3804618} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}
  207. 0x00007f72e9101096: mov 0xdc(%rax),%edi
  208. 0x00007f72e910109c: add $0x8,%edi
  209. 0x00007f72e910109f: mov %edi,0xdc(%rax)
  210. 0x00007f72e91010a5: movabs $0x7f72e3804618,%rax ; {metadata({method} {0x00007f72e3804618} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}
  211. 0x00007f72e91010af: and $0x1ff8,%edi
  212. 0x00007f72e91010b5: cmp $0x0,%edi
  213. 0x00007f72e91010b8: je 0x00007f72e9101486 ;*aload_0
  214. ; - java.lang.String::equals@0 (line 977)
  215.  
  216. 0x00007f72e91010be: cmp %rdx,%rsi
  217. 0x00007f72e91010c1: movabs $0x7f72e39e7818,%rax ; {metadata(method data for {method} {0x00007f72e3804618} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}
  218. 0x00007f72e91010cb: movabs $0x108,%rdi
  219. 0x00007f72e91010d5: jne 0x00007f72e91010e5
  220. 0x00007f72e91010db: movabs $0x118,%rdi
  221. 0x00007f72e91010e5: mov (%rax,%rdi,1),%rbx
  222. 0x00007f72e91010e9: lea 0x1(%rbx),%rbx
  223. 0x00007f72e91010ed: mov %rbx,(%rax,%rdi,1)
  224. 0x00007f72e91010f1: je 0x00007f72e9101475 ;*if_acmpne
  225. ; - java.lang.String::equals@2 (line 977)
  226.  
  227. 0x00007f72e91010f7: cmp $0x0,%rdx
  228. 0x00007f72e91010fb: jne 0x00007f72e9101116
  229. 0x00007f72e91010fd: movabs $0x7f72e39e7818,%rbx ; {metadata(method data for {method} {0x00007f72e3804618} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}
  230. 0x00007f72e9101107: orl $0x100,0x120(%rbx)
  231. 0x00007f72e9101111: jmpq 0x00007f72e91011d6
  232. 0x00007f72e9101116: movabs $0x7c0001610,%rcx ; {metadata('java/lang/String')}
  233. 0x00007f72e9101120: mov 0x8(%rdx),%edi
  234. 0x00007f72e9101123: shl $0x3,%rdi
  235. 0x00007f72e9101127: cmp %rdi,%rcx
  236. 0x00007f72e910112a: jne 0x00007f72e91011ba
  237. 0x00007f72e9101130: movabs $0x7f72e39e7818,%rbx ; {metadata(method data for {method} {0x00007f72e3804618} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}
  238. 0x00007f72e910113a: mov 0x8(%rdx),%ecx
  239. 0x00007f72e910113d: shl $0x3,%rcx
  240. 0x00007f72e9101141: cmp 0x130(%rbx),%rcx
  241. 0x00007f72e9101148: jne 0x00007f72e9101157
  242. 0x00007f72e910114a: addq $0x1,0x138(%rbx)
  243. 0x00007f72e9101152: jmpq 0x00007f72e91011db
  244. 0x00007f72e9101157: cmp 0x140(%rbx),%rcx
  245. 0x00007f72e910115e: jne 0x00007f72e910116d
  246. 0x00007f72e9101160: addq $0x1,0x148(%rbx)
  247. 0x00007f72e9101168: jmpq 0x00007f72e91011db
  248. 0x00007f72e910116d: cmpq $0x0,0x130(%rbx)
  249. 0x00007f72e9101178: jne 0x00007f72e9101191
  250. 0x00007f72e910117a: mov %rcx,0x130(%rbx)
  251. 0x00007f72e9101181: movq $0x1,0x138(%rbx)
  252. 0x00007f72e910118c: jmpq 0x00007f72e91011db
  253. 0x00007f72e9101191: cmpq $0x0,0x140(%rbx)
  254. 0x00007f72e910119c: jne 0x00007f72e91011b5
  255. 0x00007f72e910119e: mov %rcx,0x140(%rbx)
  256. 0x00007f72e91011a5: movq $0x1,0x148(%rbx)
  257. 0x00007f72e91011b0: jmpq 0x00007f72e91011db
  258. 0x00007f72e91011b5: jmpq 0x00007f72e91011db
  259. 0x00007f72e91011ba: movabs $0x7f72e39e7818,%rbx ; {metadata(method data for {method} {0x00007f72e3804618} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}
  260. 0x00007f72e91011c4: subq $0x1,0x128(%rbx)
  261. 0x00007f72e91011cc: jmpq 0x00007f72e91011d6
  262. 0x00007f72e91011d1: jmpq 0x00007f72e91011db
  263. 0x00007f72e91011d6: xor %rax,%rax
  264. 0x00007f72e91011d9: jmp 0x00007f72e91011e5
  265. 0x00007f72e91011db: movabs $0x1,%rax ;*instanceof
  266. ; - java.lang.String::equals@8 (line 980)
  267.  
  268. 0x00007f72e91011e5: cmp $0x0,%eax
  269. 0x00007f72e91011e8: movabs $0x7f72e39e7818,%rax ; {metadata(method data for {method} {0x00007f72e3804618} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}
  270. 0x00007f72e91011f2: movabs $0x158,%rdi
  271. 0x00007f72e91011fc: je 0x00007f72e910120c
  272. 0x00007f72e9101202: movabs $0x168,%rdi
  273. 0x00007f72e910120c: mov (%rax,%rdi,1),%rbx
  274. 0x00007f72e9101210: lea 0x1(%rbx),%rbx
  275. 0x00007f72e9101214: mov %rbx,(%rax,%rdi,1)
  276. 0x00007f72e9101218: je 0x00007f72e9101464 ;*ifeq
  277. ; - java.lang.String::equals@11 (line 980)
  278.  
  279. 0x00007f72e910121e: cmp $0x0,%rdx
  280. 0x00007f72e9101222: jne 0x00007f72e910123d
  281. 0x00007f72e9101224: movabs $0x7f72e39e7818,%rbx ; {metadata(method data for {method} {0x00007f72e3804618} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}
  282. 0x00007f72e910122e: orl $0x100,0x170(%rbx)
  283. 0x00007f72e9101238: jmpq 0x00007f72e91012fd
  284. 0x00007f72e910123d: movabs $0x7c0001610,%rax ; {metadata('java/lang/String')}
  285. 0x00007f72e9101247: mov 0x8(%rdx),%edi
  286. 0x00007f72e910124a: shl $0x3,%rdi
  287. 0x00007f72e910124e: cmp %rdi,%rax
  288. 0x00007f72e9101251: jne 0x00007f72e91012e1
  289. 0x00007f72e9101257: movabs $0x7f72e39e7818,%rbx ; {metadata(method data for {method} {0x00007f72e3804618} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}
  290. 0x00007f72e9101261: mov 0x8(%rdx),%eax
  291. 0x00007f72e9101264: shl $0x3,%rax
  292. 0x00007f72e9101268: cmp 0x180(%rbx),%rax
  293. 0x00007f72e910126f: jne 0x00007f72e910127e
  294. 0x00007f72e9101271: addq $0x1,0x188(%rbx)
  295. 0x00007f72e9101279: jmpq 0x00007f72e91012fd
  296. 0x00007f72e910127e: cmp 0x190(%rbx),%rax
  297. 0x00007f72e9101285: jne 0x00007f72e9101294
  298. 0x00007f72e9101287: addq $0x1,0x198(%rbx)
  299. 0x00007f72e910128f: jmpq 0x00007f72e91012fd
  300. 0x00007f72e9101294: cmpq $0x0,0x180(%rbx)
  301. 0x00007f72e910129f: jne 0x00007f72e91012b8
  302. 0x00007f72e91012a1: mov %rax,0x180(%rbx)
  303. 0x00007f72e91012a8: movq $0x1,0x188(%rbx)
  304. 0x00007f72e91012b3: jmpq 0x00007f72e91012fd
  305. 0x00007f72e91012b8: cmpq $0x0,0x190(%rbx)
  306. 0x00007f72e91012c3: jne 0x00007f72e91012dc
  307. 0x00007f72e91012c5: mov %rax,0x190(%rbx)
  308. 0x00007f72e91012cc: movq $0x1,0x198(%rbx)
  309. 0x00007f72e91012d7: jmpq 0x00007f72e91012fd
  310. 0x00007f72e91012dc: jmpq 0x00007f72e91012fd
  311. 0x00007f72e91012e1: movabs $0x7f72e39e7818,%rbx ; {metadata(method data for {method} {0x00007f72e3804618} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}
  312. 0x00007f72e91012eb: subq $0x1,0x178(%rbx)
  313. 0x00007f72e91012f3: jmpq 0x00007f72e910149d
  314. 0x00007f72e91012f8: jmpq 0x00007f72e91012fd
  315. 0x00007f72e91012fd: mov %rdx,%rax ;*checkcast
  316. ; - java.lang.String::equals@15 (line 981)
  317.  
  318. 0x00007f72e9101300: mov 0xc(%rsi),%esi
  319. 0x00007f72e9101303: shl $0x3,%rsi ;*getfield value
  320. ; - java.lang.String::equals@20 (line 982)
  321.  
  322. 0x00007f72e9101307: mov 0xc(%rsi),%edi ;*arraylength
  323. ; - java.lang.String::equals@23 (line 982)
  324. ; implicit exception: dispatches to 0x00007f72e91014a6
  325. 0x00007f72e910130a: mov 0xc(%rax),%eax ; implicit exception: dispatches to 0x00007f72e91014ab
  326. 0x00007f72e910130d: shl $0x3,%rax ;*getfield value
  327. ; - java.lang.String::equals@27 (line 983)
  328.  
  329. 0x00007f72e9101311: mov 0xc(%rax),%ebx ;*arraylength
  330. ; - java.lang.String::equals@30 (line 983)
  331. ; implicit exception: dispatches to 0x00007f72e91014b0
  332. 0x00007f72e9101314: cmp %ebx,%edi
  333. 0x00007f72e9101316: movabs $0x7f72e39e7818,%rbx ; {metadata(method data for {method} {0x00007f72e3804618} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}
  334. 0x00007f72e9101320: movabs $0x1a8,%rdx
  335. 0x00007f72e910132a: jne 0x00007f72e910133a
  336. 0x00007f72e9101330: movabs $0x1b8,%rdx
  337. 0x00007f72e910133a: mov (%rbx,%rdx,1),%rcx
  338. 0x00007f72e910133e: lea 0x1(%rcx),%rcx
  339. 0x00007f72e9101342: mov %rcx,(%rbx,%rdx,1)
  340. 0x00007f72e9101346: jne 0x00007f72e9101464 ;*if_icmpne
  341. ; - java.lang.String::equals@31 (line 983)
  342.  
  343. 0x00007f72e910134c: mov $0x0,%ebx
  344. 0x00007f72e9101351: jmpq 0x00007f72e91013ff ;*iload_3
  345. ; - java.lang.String::equals@49 (line 987)
  346.  
  347. 0x00007f72e9101356: xchg %ax,%ax
  348. 0x00007f72e9101358: movslq %ebx,%rdi
  349. 0x00007f72e910135b: cmp 0xc(%rsi),%ebx
  350. 0x00007f72e910135e: jae 0x00007f72e91014b5
  351. 0x00007f72e9101364: movzwl 0x10(%rsi,%rdi,2),%edi ;*caload
  352. ; - java.lang.String::equals@60 (line 988)
  353.  
  354. 0x00007f72e9101369: movslq %ebx,%rcx
  355. 0x00007f72e910136c: cmp 0xc(%rax),%ebx
  356. 0x00007f72e910136f: jae 0x00007f72e91014be
  357. 0x00007f72e9101375: movzwl 0x10(%rax,%rcx,2),%ecx ;*caload
  358. ; - java.lang.String::equals@65 (line 988)
  359.  
  360. 0x00007f72e910137a: cmp %ecx,%edi
  361. 0x00007f72e910137c: movabs $0x7f72e39e7818,%rdi ; {metadata(method data for {method} {0x00007f72e3804618} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}
  362. 0x00007f72e9101386: movabs $0x1e8,%rcx
  363. 0x00007f72e9101390: je 0x00007f72e91013a0
  364. 0x00007f72e9101396: movabs $0x1f8,%rcx
  365. 0x00007f72e91013a0: mov (%rdi,%rcx,1),%r8
  366. 0x00007f72e91013a4: lea 0x1(%r8),%r8
  367. 0x00007f72e91013a8: mov %r8,(%rdi,%rcx,1)
  368. 0x00007f72e91013ac: jne 0x00007f72e9101442 ;*if_icmpeq
  369. ; - java.lang.String::equals@66 (line 988)
  370.  
  371. 0x00007f72e91013b2: inc %ebx
  372. 0x00007f72e91013b4: movabs $0x7f72e39e7818,%rdi ; {metadata(method data for {method} {0x00007f72e3804618} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}
  373. 0x00007f72e91013be: mov 0xe0(%rdi),%ecx
  374. 0x00007f72e91013c4: add $0x8,%ecx
  375. 0x00007f72e91013c7: mov %ecx,0xe0(%rdi)
  376. 0x00007f72e91013cd: movabs $0x7f72e3804618,%rdi ; {metadata({method} {0x00007f72e3804618} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}
  377. 0x00007f72e91013d7: and $0xfff8,%ecx
  378. 0x00007f72e91013dd: cmp $0x0,%ecx
  379. 0x00007f72e91013e0: je 0x00007f72e91014c7 ; OopMap{rax=Oop rsi=Oop off=902}
  380. ;*goto
  381. ; - java.lang.String::equals@74 (line 990)
  382.  
  383. 0x00007f72e91013e6: test %eax,0x16a4ed14(%rip) # 0x00007f72ffb50100
  384. ; {poll}
  385. 0x00007f72e91013ec: movabs $0x7f72e39e7818,%rdi ; {metadata(method data for {method} {0x00007f72e3804618} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}
  386. 0x00007f72e91013f6: incl 0x208(%rdi)
  387. 0x00007f72e91013fc: mov %rdx,%rdi ;*goto
  388. ; - java.lang.String::equals@74 (line 990)
  389.  
  390. 0x00007f72e91013ff: mov %rdi,%rdx
  391. 0x00007f72e9101402: dec %edx
  392. 0x00007f72e9101404: cmp $0x0,%edi
  393. 0x00007f72e9101407: movabs $0x7f72e39e7818,%rdi ; {metadata(method data for {method} {0x00007f72e3804618} 'equals' '(Ljava/lang/Object;)Z' in 'java/lang/String')}
  394. 0x00007f72e9101411: movabs $0x1c8,%rcx
  395. 0x00007f72e910141b: je 0x00007f72e910142b
  396. 0x00007f72e9101421: movabs $0x1d8,%rcx
  397. 0x00007f72e910142b: mov (%rdi,%rcx,1),%r8
  398. 0x00007f72e910142f: lea 0x1(%r8),%r8
  399. 0x00007f72e9101433: mov %r8,(%rdi,%rcx,1)
  400. 0x00007f72e9101437: je 0x00007f72e9101453
  401. 0x00007f72e910143d: jmpq 0x00007f72e9101358 ;*ifeq
  402. ; - java.lang.String::equals@53 (line 987)
  403.  
  404. 0x00007f72e9101442: mov $0x0,%eax
  405. 0x00007f72e9101447: add $0x30,%rsp
  406. 0x00007f72e910144b: pop %rbp
  407. 0x00007f72e910144c: test %eax,0x16a4ecae(%rip) # 0x00007f72ffb50100
  408. ; {poll_return}
  409. 0x00007f72e9101452: retq ;*ireturn
  410. ; - java.lang.String::equals@70 (line 989)
  411.  
  412. 0x00007f72e9101453: mov $0x1,%eax
  413. 0x00007f72e9101458: add $0x30,%rsp
  414. 0x00007f72e910145c: pop %rbp
  415. 0x00007f72e910145d: test %eax,0x16a4ec9d(%rip) # 0x00007f72ffb50100
  416. ; {poll_return}
  417. 0x00007f72e9101463: retq ;*ireturn
  418. ; - java.lang.String::equals@78 (line 992)
  419.  
  420. 0x00007f72e9101464: mov $0x0,%eax
  421. 0x00007f72e9101469: add $0x30,%rsp
  422. 0x00007f72e910146d: pop %rbp
  423. 0x00007f72e910146e: test %eax,0x16a4ec8c(%rip) # 0x00007f72ffb50100
  424. ; {poll_return}
  425. 0x00007f72e9101474: retq ;*ireturn
  426. ; - java.lang.String::equals@80 (line 995)
  427.  
  428. 0x00007f72e9101475: mov $0x1,%eax
  429. 0x00007f72e910147a: add $0x30,%rsp
  430. 0x00007f72e910147e: pop %rbp
  431. 0x00007f72e910147f: test %eax,0x16a4ec7b(%rip) # 0x00007f72ffb50100
  432. ; {poll_return}
  433. 0x00007f72e9101485: retq
  434. 0x00007f72e9101486: mov %rax,0x8(%rsp)
  435. 0x00007f72e910148b: movq $0xffffffffffffffff,(%rsp)
  436. 0x00007f72e9101493: callq 0x00007f72e90fdfe0 ; OopMap{rsi=Oop rdx=Oop off=1080}
  437. ;*synchronization entry
  438. ; - java.lang.String::equals@-1 (line 977)
  439. ; {runtime_call}
  440. 0x00007f72e9101498: jmpq 0x00007f72e91010be
  441. 0x00007f72e910149d: mov %rdx,(%rsp)
  442. 0x00007f72e91014a1: callq 0x00007f72e90fbb80 ; OopMap{rsi=Oop off=1094}
  443. ;*checkcast
  444. ; - java.lang.String::equals@15 (line 981)
  445. ; {runtime_call}
  446. 0x00007f72e91014a6: callq 0x00007f72e90f9980 ; OopMap{rax=Oop rsi=Oop off=1099}
  447. ;*arraylength
  448. ; - java.lang.String::equals@23 (line 982)
  449. ; {runtime_call}
  450. 0x00007f72e91014ab: callq 0x00007f72e90f9980 ; OopMap{rsi=Oop off=1104}
  451. ;*getfield value
  452. ; - java.lang.String::equals@27 (line 983)
  453. ; {runtime_call}
  454. 0x00007f72e91014b0: callq 0x00007f72e90f9980 ; OopMap{rsi=Oop rax=Oop off=1109}
  455. ;*arraylength
  456. ; - java.lang.String::equals@30 (line 983)
  457. ; {runtime_call}
  458. 0x00007f72e91014b5: mov %rbx,(%rsp)
  459. 0x00007f72e91014b9: callq 0x00007f72e90f8ec0 ; OopMap{rax=Oop rsi=Oop off=1118}
  460. ;*caload
  461. ; - java.lang.String::equals@60 (line 988)
  462. ; {runtime_call}
  463. 0x00007f72e91014be: mov %rbx,(%rsp)
  464. 0x00007f72e91014c2: callq 0x00007f72e90f8ec0 ; OopMap{rax=Oop rsi=Oop off=1127}
  465. ;*caload
  466. ; - java.lang.String::equals@65 (line 988)
  467. ; {runtime_call}
  468. 0x00007f72e91014c7: mov %rdi,0x8(%rsp)
  469. 0x00007f72e91014cc: movq $0x4a,(%rsp)
  470. 0x00007f72e91014d4: callq 0x00007f72e90fdfe0 ; OopMap{rax=Oop rsi=Oop off=1145}
  471. ;*goto
  472. ; - java.lang.String::equals@74 (line 990)
  473. ; {runtime_call}
  474. 0x00007f72e91014d9: jmpq 0x00007f72e91013e6
  475. 0x00007f72e91014de: nop
  476. 0x00007f72e91014df: nop
  477. 0x00007f72e91014e0: mov 0x290(%r15),%rax
  478. 0x00007f72e91014e7: movabs $0x0,%r10
  479. 0x00007f72e91014f1: mov %r10,0x290(%r15)
  480. 0x00007f72e91014f8: movabs $0x0,%r10
  481. 0x00007f72e9101502: mov %r10,0x298(%r15)
  482. 0x00007f72e9101509: add $0x30,%rsp
  483. 0x00007f72e910150d: pop %rbp
  484. 0x00007f72e910150e: jmpq 0x00007f72e90f9360 ; {runtime_call}
  485. 0x00007f72e9101513: hlt
  486. 0x00007f72e9101514: hlt
  487. 0x00007f72e9101515: hlt
  488. 0x00007f72e9101516: hlt
  489. 0x00007f72e9101517: hlt
  490. 0x00007f72e9101518: hlt
  491. 0x00007f72e9101519: hlt
  492. 0x00007f72e910151a: hlt
  493. 0x00007f72e910151b: hlt
  494. 0x00007f72e910151c: hlt
  495. 0x00007f72e910151d: hlt
  496. 0x00007f72e910151e: hlt
  497. 0x00007f72e910151f: hlt
  498. [Exception Handler]
  499. [Stub Code]
  500. 0x00007f72e9101520: callq 0x00007f72e90fb820 ; {no_reloc}
  501. 0x00007f72e9101525: mov %rsp,-0x28(%rsp)
  502. 0x00007f72e910152a: sub $0x80,%rsp
  503. 0x00007f72e9101531: mov %rax,0x78(%rsp)
  504. 0x00007f72e9101536: mov %rcx,0x70(%rsp)
  505. 0x00007f72e910153b: mov %rdx,0x68(%rsp)
  506. 0x00007f72e9101540: mov %rbx,0x60(%rsp)
  507. 0x00007f72e9101545: mov %rbp,0x50(%rsp)
  508. 0x00007f72e910154a: mov %rsi,0x48(%rsp)
  509. 0x00007f72e910154f: mov %rdi,0x40(%rsp)
  510. 0x00007f72e9101554: mov %r8,0x38(%rsp)
  511. 0x00007f72e9101559: mov %r9,0x30(%rsp)
  512. 0x00007f72e910155e: mov %r10,0x28(%rsp)
  513. 0x00007f72e9101563: mov %r11,0x20(%rsp)
  514. 0x00007f72e9101568: mov %r12,0x18(%rsp)
  515. 0x00007f72e910156d: mov %r13,0x10(%rsp)
  516. 0x00007f72e9101572: mov %r14,0x8(%rsp)
  517. 0x00007f72e9101577: mov %r15,(%rsp)
  518. 0x00007f72e910157b: movabs $0x7f72fe733a12,%rdi ; {external_word}
  519. 0x00007f72e9101585: movabs $0x7f72e9101525,%rsi ; {internal_word}
  520. 0x00007f72e910158f: mov %rsp,%rdx
  521. 0x00007f72e9101592: and $0xfffffffffffffff0,%rsp
  522. 0x00007f72e9101596: callq 0x00007f72fe438740 ; {runtime_call}
  523. 0x00007f72e910159b: hlt
  524. [Deopt Handler Code]
  525. 0x00007f72e910159c: movabs $0x7f72e910159c,%r10 ; {section_word}
  526. 0x00007f72e91015a6: push %r10
  527. 0x00007f72e91015a8: jmpq 0x00007f72e9047240 ; {runtime_call}
  528. 0x00007f72e91015ad: hlt
  529. 0x00007f72e91015ae: hlt
  530. 0x00007f72e91015af: hlt
  531. Decoding compiled method 0x00007f72e91005d0:
  532. Code:
  533. [Entry Point]
  534. [Constants]
  535. # {method} {0x00007f72e3800480} '<init>' '()V' in 'java/lang/Object'
  536. # [sp+0x40] (sp of caller)
  537. 0x00007f72e9100740: mov 0x8(%rsi),%r10d
  538. 0x00007f72e9100744: shl $0x3,%r10
  539. 0x00007f72e9100748: cmp %rax,%r10
  540. 0x00007f72e910074b: jne 0x00007f72e9045ba0 ; {runtime_call}
  541. 0x00007f72e9100751: data16 data16 nopw 0x0(%rax,%rax,1)
  542. 0x00007f72e910075c: data16 data16 xchg %ax,%ax
  543. [Verified Entry Point]
  544. 0x00007f72e9100760: mov %eax,-0x14000(%rsp)
  545. 0x00007f72e9100767: push %rbp
  546. 0x00007f72e9100768: sub $0x30,%rsp
  547. 0x00007f72e910076c: movabs $0x7f72e39771c0,%rdi ; {metadata(method data for {method} {0x00007f72e3800480} '<init>' '()V' in 'java/lang/Object')}
  548. 0x00007f72e9100776: mov 0xdc(%rdi),%ebx
  549. 0x00007f72e910077c: add $0x8,%ebx
  550. 0x00007f72e910077f: mov %ebx,0xdc(%rdi)
  551. 0x00007f72e9100785: movabs $0x7f72e3800480,%rdi ; {metadata({method} {0x00007f72e3800480} '<init>' '()V' in 'java/lang/Object')}
  552. 0x00007f72e910078f: and $0x1ff8,%ebx
  553. 0x00007f72e9100795: cmp $0x0,%ebx
  554. 0x00007f72e9100798: je 0x00007f72e91007b7
  555. 0x00007f72e910079e: mov %rsi,%rdi ;*return
  556. ; - java.lang.Object::<init>@0 (line 37)
  557.  
  558. 0x00007f72e91007a1: mov %rsi,0x20(%rsp)
  559. 0x00007f72e91007a6: callq 0x00007f72e90f9ba0 ; OopMap{[32]=Oop off=107}
  560. ;*return
  561. ; - java.lang.Object::<init>@0 (line 37)
  562. ; {runtime_call}
  563. 0x00007f72e91007ab: add $0x30,%rsp
  564. 0x00007f72e91007af: pop %rbp
  565. 0x00007f72e91007b0: test %eax,0x16a4f94a(%rip) # 0x00007f72ffb50100
  566. ; {poll_return}
  567. 0x00007f72e91007b6: retq
  568. 0x00007f72e91007b7: mov %rdi,0x8(%rsp)
  569. 0x00007f72e91007bc: movq $0xffffffffffffffff,(%rsp)
  570. 0x00007f72e91007c4: callq 0x00007f72e90fdfe0 ; OopMap{rsi=Oop off=137}
  571. ;*synchronization entry
  572. ; - java.lang.Object::<init>@-1 (line 37)
  573. ; {runtime_call}
  574. 0x00007f72e91007c9: jmp 0x00007f72e910079e
  575. 0x00007f72e91007cb: nop
  576. 0x00007f72e91007cc: nop
  577. 0x00007f72e91007cd: mov 0x290(%r15),%rax
  578. 0x00007f72e91007d4: movabs $0x0,%r10
  579. 0x00007f72e91007de: mov %r10,0x290(%r15)
  580. 0x00007f72e91007e5: movabs $0x0,%r10
  581. 0x00007f72e91007ef: mov %r10,0x298(%r15)
  582. 0x00007f72e91007f6: add $0x30,%rsp
  583. 0x00007f72e91007fa: pop %rbp
  584. 0x00007f72e91007fb: jmpq 0x00007f72e90f9360 ; {runtime_call}
  585. [Exception Handler]
  586. [Stub Code]
  587. 0x00007f72e9100800: callq 0x00007f72e90fb820 ; {no_reloc}
  588. 0x00007f72e9100805: mov %rsp,-0x28(%rsp)
  589. 0x00007f72e910080a: sub $0x80,%rsp
  590. 0x00007f72e9100811: mov %rax,0x78(%rsp)
  591. 0x00007f72e9100816: mov %rcx,0x70(%rsp)
  592. 0x00007f72e910081b: mov %rdx,0x68(%rsp)
  593. 0x00007f72e9100820: mov %rbx,0x60(%rsp)
  594. 0x00007f72e9100825: mov %rbp,0x50(%rsp)
  595. 0x00007f72e910082a: mov %rsi,0x48(%rsp)
  596. 0x00007f72e910082f: mov %rdi,0x40(%rsp)
  597. 0x00007f72e9100834: mov %r8,0x38(%rsp)
  598. 0x00007f72e9100839: mov %r9,0x30(%rsp)
  599. 0x00007f72e910083e: mov %r10,0x28(%rsp)
  600. 0x00007f72e9100843: mov %r11,0x20(%rsp)
  601. 0x00007f72e9100848: mov %r12,0x18(%rsp)
  602. 0x00007f72e910084d: mov %r13,0x10(%rsp)
  603. 0x00007f72e9100852: mov %r14,0x8(%rsp)
  604. 0x00007f72e9100857: mov %r15,(%rsp)
  605. 0x00007f72e910085b: movabs $0x7f72fe733a12,%rdi ; {external_word}
  606. 0x00007f72e9100865: movabs $0x7f72e9100805,%rsi ; {internal_word}
  607. 0x00007f72e910086f: mov %rsp,%rdx
  608. 0x00007f72e9100872: and $0xfffffffffffffff0,%rsp
  609. 0x00007f72e9100876: callq 0x00007f72fe438740 ; {runtime_call}
  610. 0x00007f72e910087b: hlt
  611. [Deopt Handler Code]
  612. 0x00007f72e910087c: movabs $0x7f72e910087c,%r10 ; {section_word}
  613. 0x00007f72e9100886: push %r10
  614. 0x00007f72e9100888: jmpq 0x00007f72e9047240 ; {runtime_call}
  615. 0x00007f72e910088d: hlt
  616. 0x00007f72e910088e: hlt
  617. 0x00007f72e910088f: hlt
  618. Decoding compiled method 0x00007f72e9103350:
  619. Code:
  620. [Entry Point]
  621. # {method} {0x00007f72e3819930} 'arraycopy' '(Ljava/lang/Object;ILjava/lang/Object;II)V' in 'java/lang/System'
  622. # parm0: rsi:rsi = 'java/lang/Object'
  623. # parm1: rdx = int
  624. # parm2: rcx:rcx = 'java/lang/Object'
  625. # parm3: r8 = int
  626. # parm4: r9 = int
  627. # [sp+0x60] (sp of caller)
  628. 0x00007f72e91034c0: mov 0x8(%rsi),%r10d
  629. 0x00007f72e91034c4: shl $0x3,%r10
  630. 0x00007f72e91034c8: cmp %r10,%rax
  631. 0x00007f72e91034cb: je 0x00007f72e91034d8
  632. 0x00007f72e91034d1: jmpq 0x00007f72e9045ba0 ; {runtime_call}
  633. 0x00007f72e91034d6: xchg %ax,%ax
  634. [Verified Entry Point]
  635. 0x00007f72e91034d8: mov %eax,-0x14000(%rsp)
  636. 0x00007f72e91034df: push %rbp
  637. 0x00007f72e91034e0: mov %rsp,%rbp
  638. 0x00007f72e91034e3: sub $0x50,%rsp
  639. 0x00007f72e91034e7: mov %r9,(%rsp)
  640. 0x00007f72e91034eb: mov %r8,%r9
  641. 0x00007f72e91034ee: mov %rcx,0x18(%rsp)
  642. 0x00007f72e91034f3: cmp $0x0,%rcx
  643. 0x00007f72e91034f7: lea 0x18(%rsp),%r8
  644. 0x00007f72e91034fc: cmove 0x18(%rsp),%r8
  645. 0x00007f72e9103502: mov %rdx,%rcx
  646. 0x00007f72e9103505: mov %rsi,0x8(%rsp)
  647. 0x00007f72e910350a: cmp $0x0,%rsi
  648. 0x00007f72e910350e: lea 0x8(%rsp),%rdx
  649. 0x00007f72e9103513: cmove 0x8(%rsp),%rdx
  650. 0x00007f72e9103519: movabs $0x76b780c78,%r14 ; {oop(a 'java/lang/Class' = 'java/lang/System')}
  651. 0x00007f72e9103523: mov %r14,0x38(%rsp)
  652. 0x00007f72e9103528: lea 0x38(%rsp),%r14
  653. 0x00007f72e910352d: mov %r14,%rsi ; OopMap{[24]=Oop [8]=Oop [56]=Oop off=112}
  654. 0x00007f72e9103530: movabs $0x7f72e9103530,%r10 ; {section_word}
  655. 0x00007f72e910353a: mov %r10,0x1c8(%r15)
  656. 0x00007f72e9103541: mov %rsp,0x1c0(%r15)
  657. 0x00007f72e9103548: cmpb $0x0,0x15aa9dd5(%rip) # 0x00007f72febad324
  658. ; {external_word}
  659. 0x00007f72e910354f: je 0x00007f72e9103593
  660. 0x00007f72e9103555: push %rsi
  661. 0x00007f72e9103556: push %rdx
  662. 0x00007f72e9103557: push %rcx
  663. 0x00007f72e9103558: push %r8
  664. 0x00007f72e910355a: push %r9
  665. 0x00007f72e910355c: movabs $0x7f72e3819930,%rsi ; {metadata({method} {0x00007f72e3819930} 'arraycopy' '(Ljava/lang/Object;ILjava/lang/Object;II)V' in 'java/lang/System')}
  666. 0x00007f72e9103566: mov %r15,%rdi
  667. 0x00007f72e9103569: test $0xf,%esp
  668. 0x00007f72e910356f: je 0x00007f72e9103587
  669. 0x00007f72e9103575: sub $0x8,%rsp
  670. 0x00007f72e9103579: callq 0x00007f72fe5d8290 ; {runtime_call}
  671. 0x00007f72e910357e: add $0x8,%rsp
  672. 0x00007f72e9103582: jmpq 0x00007f72e910358c
  673. 0x00007f72e9103587: callq 0x00007f72fe5d8290 ; {runtime_call}
  674. 0x00007f72e910358c: pop %r9
  675. 0x00007f72e910358e: pop %r8
  676. 0x00007f72e9103590: pop %rcx
  677. 0x00007f72e9103591: pop %rdx
  678. 0x00007f72e9103592: pop %rsi
  679. 0x00007f72e9103593: lea 0x1e0(%r15),%rdi
  680. 0x00007f72e910359a: movl $0x4,0x258(%r15)
  681. 0x00007f72e91035a5: callq 0x00007f72fe3023d0 ; {runtime_call}
  682. 0x00007f72e91035aa: vzeroupper
  683. 0x00007f72e91035ad: movl $0x5,0x258(%r15)
  684. 0x00007f72e91035b8: mov %r15d,%ecx
  685. 0x00007f72e91035bb: shr $0x4,%ecx
  686. 0x00007f72e91035be: and $0xffc,%ecx
  687. 0x00007f72e91035c4: movabs $0x7f72ffb20000,%r10 ; {external_word}
  688. 0x00007f72e91035ce: mov %ecx,(%r10,%rcx,1)
  689. 0x00007f72e91035d2: cmpl $0x0,0x15ab4488(%rip) # 0x00007f72febb7a64
  690. ; {external_word}
  691. 0x00007f72e91035dc: jne 0x00007f72e91035f0
  692. 0x00007f72e91035e2: cmpl $0x0,0x30(%r15)
  693. 0x00007f72e91035ea: je 0x00007f72e9103609
  694. 0x00007f72e91035f0: mov %r15,%rdi
  695. 0x00007f72e91035f3: mov %rsp,%r12
  696. 0x00007f72e91035f6: sub $0x0,%rsp
  697. 0x00007f72e91035fa: and $0xfffffffffffffff0,%rsp
  698. 0x00007f72e91035fe: callq 0x00007f72fe68a4f0 ; {runtime_call}
  699. 0x00007f72e9103603: mov %r12,%rsp
  700. 0x00007f72e9103606: xor %r12,%r12
  701. 0x00007f72e9103609: movl $0x8,0x258(%r15)
  702. 0x00007f72e9103614: cmpl $0x1,0x284(%r15)
  703. 0x00007f72e910361f: je 0x00007f72e91036a7
  704. 0x00007f72e9103625: cmpb $0x0,0x15aa9cf8(%rip) # 0x00007f72febad324
  705. ; {external_word}
  706. 0x00007f72e910362c: je 0x00007f72e9103662
  707. 0x00007f72e9103632: movabs $0x7f72e3819930,%rsi ; {metadata({method} {0x00007f72e3819930} 'arraycopy' '(Ljava/lang/Object;ILjava/lang/Object;II)V' in 'java/lang/System')}
  708. 0x00007f72e910363c: mov %r15,%rdi
  709. 0x00007f72e910363f: test $0xf,%esp
  710. 0x00007f72e9103645: je 0x00007f72e910365d
  711. 0x00007f72e910364b: sub $0x8,%rsp
  712. 0x00007f72e910364f: callq 0x00007f72fe5d82a0 ; {runtime_call}
  713. 0x00007f72e9103654: add $0x8,%rsp
  714. 0x00007f72e9103658: jmpq 0x00007f72e9103662
  715. 0x00007f72e910365d: callq 0x00007f72fe5d82a0 ; {runtime_call}
  716. 0x00007f72e9103662: movabs $0x0,%r10
  717. 0x00007f72e910366c: mov %r10,0x1c0(%r15)
  718. 0x00007f72e9103673: movabs $0x0,%r10
  719. 0x00007f72e910367d: mov %r10,0x1c8(%r15)
  720. 0x00007f72e9103684: mov 0x38(%r15),%rcx
  721. 0x00007f72e9103688: movl $0x0,0x100(%rcx)
  722. 0x00007f72e9103692: leaveq
  723. 0x00007f72e9103693: cmpq $0x0,0x8(%r15)
  724. 0x00007f72e910369b: jne 0x00007f72e91036a2
  725. 0x00007f72e91036a1: retq
  726. 0x00007f72e91036a2: jmpq Stub::forward exception ; {runtime_call}
  727. 0x00007f72e91036a7: mov %rsp,%r12
  728. 0x00007f72e91036aa: sub $0x0,%rsp
  729. 0x00007f72e91036ae: and $0xfffffffffffffff0,%rsp
  730. 0x00007f72e91036b2: callq 0x00007f72fe5e0a80 ; {runtime_call}
  731. 0x00007f72e91036b7: mov %r12,%rsp
  732. 0x00007f72e91036ba: xor %r12,%r12
  733. 0x00007f72e91036bd: jmpq 0x00007f72e9103625
  734. 0x00007f72e91036c2: hlt
  735. 0x00007f72e91036c3: hlt
  736. 0x00007f72e91036c4: hlt
  737. 0x00007f72e91036c5: hlt
  738. 0x00007f72e91036c6: hlt
  739. 0x00007f72e91036c7: hlt
  740. Decoding compiled method 0x00007f72e9102dd0:
  741. Code:
  742. [Entry Point]
  743. [Constants]
  744. # {method} {0x00007f72e3803db0} 'charAt' '(I)C' in 'java/lang/String'
  745. # this: rsi:rsi = 'java/lang/String'
  746. # parm0: rdx = int
  747. # [sp+0x40] (sp of caller)
  748. 0x00007f72e9102f40: mov 0x8(%rsi),%r10d
  749. 0x00007f72e9102f44: shl $0x3,%r10
  750. 0x00007f72e9102f48: cmp %rax,%r10
  751. 0x00007f72e9102f4b: jne 0x00007f72e9045ba0 ; {runtime_call}
  752. 0x00007f72e9102f51: data16 data16 nopw 0x0(%rax,%rax,1)
  753. 0x00007f72e9102f5c: data16 data16 xchg %ax,%ax
  754. [Verified Entry Point]
  755. 0x00007f72e9102f60: mov %eax,-0x14000(%rsp)
  756. 0x00007f72e9102f67: push %rbp
  757. 0x00007f72e9102f68: sub $0x30,%rsp
  758. 0x00007f72e9102f6c: mov %rdx,%rdi
  759. 0x00007f72e9102f6f: movabs $0x7f72e3995cf8,%rax ; {metadata(method data for {method} {0x00007f72e3803db0} 'charAt' '(I)C' in 'java/lang/String')}
  760. 0x00007f72e9102f79: mov 0xdc(%rax),%edx
  761. 0x00007f72e9102f7f: add $0x8,%edx
  762. 0x00007f72e9102f82: mov %edx,0xdc(%rax)
  763. 0x00007f72e9102f88: movabs $0x7f72e3803db0,%rax ; {metadata({method} {0x00007f72e3803db0} 'charAt' '(I)C' in 'java/lang/String')}
  764. 0x00007f72e9102f92: and $0x1ff8,%edx
  765. 0x00007f72e9102f98: cmp $0x0,%edx
  766. 0x00007f72e9102f9b: je 0x00007f72e9103076 ;*iload_1
  767. ; - java.lang.String::charAt@0 (line 657)
  768.  
  769. 0x00007f72e9102fa1: cmp $0x0,%edi
  770. 0x00007f72e9102fa4: movabs $0x7f72e3995cf8,%rax ; {metadata(method data for {method} {0x00007f72e3803db0} 'charAt' '(I)C' in 'java/lang/String')}
  771. 0x00007f72e9102fae: movabs $0x108,%rdx
  772. 0x00007f72e9102fb8: jl 0x00007f72e9102fc8
  773. 0x00007f72e9102fbe: movabs $0x118,%rdx
  774. 0x00007f72e9102fc8: mov (%rax,%rdx,1),%rbx
  775. 0x00007f72e9102fcc: lea 0x1(%rbx),%rbx
  776. 0x00007f72e9102fd0: mov %rbx,(%rax,%rdx,1)
  777. 0x00007f72e9102fd4: jl 0x00007f72e9103036 ;*iflt
  778. ; - java.lang.String::charAt@1 (line 657)
  779.  
  780. 0x00007f72e9102fda: mov 0xc(%rsi),%eax
  781. 0x00007f72e9102fdd: shl $0x3,%rax ;*getfield value
  782. ; - java.lang.String::charAt@6 (line 657)
  783.  
  784. 0x00007f72e9102fe1: mov 0xc(%rax),%edx ;*arraylength
  785. ; - java.lang.String::charAt@9 (line 657)
  786. ; implicit exception: dispatches to 0x00007f72e910308d
  787. 0x00007f72e9102fe4: cmp %edx,%edi
  788. 0x00007f72e9102fe6: movabs $0x7f72e3995cf8,%rdx ; {metadata(method data for {method} {0x00007f72e3803db0} 'charAt' '(I)C' in 'java/lang/String')}
  789. 0x00007f72e9102ff0: movabs $0x128,%rsi
  790. 0x00007f72e9102ffa: jl 0x00007f72e910300a
  791. 0x00007f72e9103000: movabs $0x138,%rsi
  792. 0x00007f72e910300a: mov (%rdx,%rsi,1),%rbx
  793. 0x00007f72e910300e: lea 0x1(%rbx),%rbx
  794. 0x00007f72e9103012: mov %rbx,(%rdx,%rsi,1)
  795. 0x00007f72e9103016: jge 0x00007f72e9103036 ;*if_icmplt
  796. ; - java.lang.String::charAt@10 (line 657)
  797.  
  798. 0x00007f72e910301c: movslq %edi,%rdi
  799. 0x00007f72e910301f: movzwl 0x10(%rax,%rdi,2),%eax ;*caload
  800. ; - java.lang.String::charAt@27 (line 660)
  801.  
  802. 0x00007f72e9103024: and $0xffff,%eax
  803. 0x00007f72e910302a: add $0x30,%rsp
  804. 0x00007f72e910302e: pop %rbp
  805. 0x00007f72e910302f: test %eax,0x16a4d0cb(%rip) # 0x00007f72ffb50100
  806. ; {poll_return}
  807. 0x00007f72e9103035: retq ;*ireturn
  808. ; - java.lang.String::charAt@28 (line 660)
  809.  
  810. 0x00007f72e9103036: xchg %ax,%ax
  811. 0x00007f72e9103038: jmpq 0x00007f72e91030a1 ; {no_reloc}
  812. 0x00007f72e910303d: add %al,(%rax)
  813. 0x00007f72e910303f: add %al,(%rax)
  814. 0x00007f72e9103041: add %ch,%cl
  815. 0x00007f72e9103043: add %al,%fs:(%rax)
  816. 0x00007f72e9103046: add %cl,-0x75(%rax) ;*new ; - java.lang.String::charAt@13 (line 658)
  817.  
  818. 0x00007f72e9103049: rorb -0x42(%rax) ; {metadata(method data for {method} {0x00007f72e3803db0} 'charAt' '(I)C' in 'java/lang/String')}
  819. 0x00007f72e910304c: clc
  820. 0x00007f72e910304d: pop %rsp
  821. 0x00007f72e910304e: cltd
  822. 0x00007f72e910304f: jrcxz 0x00007f72e91030c3
  823. 0x00007f72e9103051: jg 0x00007f72e9103053
  824. 0x00007f72e9103053: add %cl,-0x7d(%rax)
  825. 0x00007f72e9103056: xchg %cl,0x1(%rax)
  826. 0x00007f72e9103059: add %al,(%rax)
  827. 0x00007f72e910305b: add %ecx,-0x75(%rax)
  828. 0x00007f72e910305e: xlat %ds:(%rbx)
  829. 0x00007f72e910305f: mov %rax,%rsi ;*invokespecial <init>
  830. ; - java.lang.String::charAt@18 (line 658)
  831.  
  832. 0x00007f72e9103062: mov %rax,0x20(%rsp)
  833. 0x00007f72e9103067: callq 0x00007f72e9045de0 ; OopMap{[32]=Oop off=300}
  834. ;*invokespecial <init>
  835. ; - java.lang.String::charAt@18 (line 658)
  836. ; {optimized virtual_call}
  837. 0x00007f72e910306c: mov 0x20(%rsp),%rax
  838. 0x00007f72e9103071: jmpq 0x00007f72e91030e0
  839. 0x00007f72e9103076: mov %rax,0x8(%rsp)
  840. 0x00007f72e910307b: movq $0xffffffffffffffff,(%rsp)
  841. 0x00007f72e9103083: callq 0x00007f72e90fdfe0 ; OopMap{rsi=Oop off=328}
  842. ;*synchronization entry
  843. ; - java.lang.String::charAt@-1 (line 657)
  844. ; {runtime_call}
  845. 0x00007f72e9103088: jmpq 0x00007f72e9102fa1
  846. 0x00007f72e910308d: callq 0x00007f72e90f9980 ; OopMap{rax=Oop off=338}
  847. ;*arraylength
  848. ; - java.lang.String::charAt@9 (line 657)
  849. ; {runtime_call}
  850. 0x00007f72e9103092: movabs $0x0,%rdx ; {metadata(NULL)}
  851. 0x00007f72e910309c: mov $0xa050f00,%eax
  852. 0x00007f72e91030a1: callq 0x00007f72e90fcfe0 ; OopMap{off=358}
  853. ;*new ; - java.lang.String::charAt@13 (line 658)
  854. ; {runtime_call}
  855. 0x00007f72e91030a6: jmp 0x00007f72e9103038
  856. 0x00007f72e91030a8: nop
  857. 0x00007f72e91030a9: nop
  858. 0x00007f72e91030aa: nop
  859. 0x00007f72e91030ab: mov %rdx,%rdx
  860. 0x00007f72e91030ae: callq 0x00007f72e90f9e20 ; OopMap{off=371}
  861. ;*new ; - java.lang.String::charAt@13 (line 658)
  862. ; {runtime_call}
  863. 0x00007f72e91030b3: jmp 0x00007f72e9103047
  864. 0x00007f72e91030b5: nop
  865. 0x00007f72e91030b6: nop
  866. 0x00007f72e91030b7: mov 0x290(%r15),%rax
  867. 0x00007f72e91030be: movabs $0x0,%r10
  868. 0x00007f72e91030c8: mov %r10,0x290(%r15)
  869. 0x00007f72e91030cf: movabs $0x0,%r10
  870. 0x00007f72e91030d9: mov %r10,0x298(%r15)
  871. 0x00007f72e91030e0: add $0x30,%rsp
  872. 0x00007f72e91030e4: pop %rbp
  873. 0x00007f72e91030e5: jmpq 0x00007f72e90f9360 ; {runtime_call}
  874. 0x00007f72e91030ea: hlt
  875. 0x00007f72e91030eb: hlt
  876. 0x00007f72e91030ec: hlt
  877. 0x00007f72e91030ed: hlt
  878. 0x00007f72e91030ee: hlt
  879. 0x00007f72e91030ef: hlt
  880. 0x00007f72e91030f0: hlt
  881. 0x00007f72e91030f1: hlt
  882. 0x00007f72e91030f2: hlt
  883. 0x00007f72e91030f3: hlt
  884. 0x00007f72e91030f4: hlt
  885. 0x00007f72e91030f5: hlt
  886. 0x00007f72e91030f6: hlt
  887. 0x00007f72e91030f7: hlt
  888. 0x00007f72e91030f8: hlt
  889. 0x00007f72e91030f9: hlt
  890. 0x00007f72e91030fa: hlt
  891. 0x00007f72e91030fb: hlt
  892. 0x00007f72e91030fc: hlt
  893. 0x00007f72e91030fd: hlt
  894. 0x00007f72e91030fe: hlt
  895. 0x00007f72e91030ff: hlt
  896. [Stub Code]
  897. 0x00007f72e9103100: nop ; {no_reloc}
  898. 0x00007f72e9103101: nop
  899. 0x00007f72e9103102: nop
  900. 0x00007f72e9103103: nop
  901. 0x00007f72e9103104: nop
  902. 0x00007f72e9103105: movabs $0x0,%rbx ; {static_stub}
  903. 0x00007f72e910310f: jmpq 0x00007f72e910310f ; {runtime_call}
  904. [Exception Handler]
  905. 0x00007f72e9103114: callq 0x00007f72e90fb820 ; {runtime_call}
  906. 0x00007f72e9103119: mov %rsp,-0x28(%rsp)
  907. 0x00007f72e910311e: sub $0x80,%rsp
  908. 0x00007f72e9103125: mov %rax,0x78(%rsp)
  909. 0x00007f72e910312a: mov %rcx,0x70(%rsp)
  910. 0x00007f72e910312f: mov %rdx,0x68(%rsp)
  911. 0x00007f72e9103134: mov %rbx,0x60(%rsp)
  912. 0x00007f72e9103139: mov %rbp,0x50(%rsp)
  913. 0x00007f72e910313e: mov %rsi,0x48(%rsp)
  914. 0x00007f72e9103143: mov %rdi,0x40(%rsp)
  915. 0x00007f72e9103148: mov %r8,0x38(%rsp)
  916. 0x00007f72e910314d: mov %r9,0x30(%rsp)
  917. 0x00007f72e9103152: mov %r10,0x28(%rsp)
  918. 0x00007f72e9103157: mov %r11,0x20(%rsp)
  919. 0x00007f72e910315c: mov %r12,0x18(%rsp)
  920. 0x00007f72e9103161: mov %r13,0x10(%rsp)
  921. 0x00007f72e9103166: mov %r14,0x8(%rsp)
  922. 0x00007f72e910316b: mov %r15,(%rsp)
  923. 0x00007f72e910316f: movabs $0x7f72fe733a12,%rdi ; {external_word}
  924. 0x00007f72e9103179: movabs $0x7f72e9103119,%rsi ; {internal_word}
  925. 0x00007f72e9103183: mov %rsp,%rdx
  926. 0x00007f72e9103186: and $0xfffffffffffffff0,%rsp
  927. 0x00007f72e910318a: callq 0x00007f72fe438740 ; {runtime_call}
  928. 0x00007f72e910318f: hlt
  929. [Deopt Handler Code]
  930. 0x00007f72e9103190: movabs $0x7f72e9103190,%r10 ; {section_word}
  931. 0x00007f72e910319a: push %r10
  932. 0x00007f72e910319c: jmpq 0x00007f72e9047240 ; {runtime_call}
  933. 0x00007f72e91031a1: hlt
  934. 0x00007f72e91031a2: hlt
  935. 0x00007f72e91031a3: hlt
  936. 0x00007f72e91031a4: hlt
  937. 0x00007f72e91031a5: hlt
  938. 0x00007f72e91031a6: hlt
  939. 0x00007f72e91031a7: hlt
  940. Decoding compiled method 0x00007f72e9102a10:
  941. Code:
  942. [Entry Point]
  943. [Verified Entry Point]
  944. [Constants]
  945. # {method} {0x00007f72e38f6508} 'min' '(II)I' in 'java/lang/Math'
  946. # parm0: rsi = int
  947. # parm1: rdx = int
  948. # [sp+0x40] (sp of caller)
  949. 0x00007f72e9102b80: mov %eax,-0x14000(%rsp)
  950. 0x00007f72e9102b87: push %rbp
  951. 0x00007f72e9102b88: sub $0x30,%rsp
  952. 0x00007f72e9102b8c: movabs $0x7f72e39f8cb8,%rax ; {metadata(method data for {method} {0x00007f72e38f6508} 'min' '(II)I' in 'java/lang/Math')}
  953. 0x00007f72e9102b96: mov 0xdc(%rax),%edi
  954. 0x00007f72e9102b9c: add $0x8,%edi
  955. 0x00007f72e9102b9f: mov %edi,0xdc(%rax)
  956. 0x00007f72e9102ba5: movabs $0x7f72e38f6508,%rax ; {metadata({method} {0x00007f72e38f6508} 'min' '(II)I' in 'java/lang/Math')}
  957. 0x00007f72e9102baf: and $0x1ff8,%edi
  958. 0x00007f72e9102bb5: cmp $0x0,%edi
  959. 0x00007f72e9102bb8: je 0x00007f72e9102c1d ;*iload_0
  960. ; - java.lang.Math::min@0 (line 1336)
  961.  
  962. 0x00007f72e9102bbe: cmp %edx,%esi
  963. 0x00007f72e9102bc0: movabs $0x7f72e39f8cb8,%rax ; {metadata(method data for {method} {0x00007f72e38f6508} 'min' '(II)I' in 'java/lang/Math')}
  964. 0x00007f72e9102bca: movabs $0x108,%rdi
  965. 0x00007f72e9102bd4: jg 0x00007f72e9102be4
  966. 0x00007f72e9102bda: movabs $0x118,%rdi
  967. 0x00007f72e9102be4: mov (%rax,%rdi,1),%rbx
  968. 0x00007f72e9102be8: lea 0x1(%rbx),%rbx
  969. 0x00007f72e9102bec: mov %rbx,(%rax,%rdi,1)
  970. 0x00007f72e9102bf0: jg 0x00007f72e9102c0b ;*if_icmpgt
  971. ; - java.lang.Math::min@2 (line 1336)
  972.  
  973. 0x00007f72e9102bf6: movabs $0x7f72e39f8cb8,%rax ; {metadata(method data for {method} {0x00007f72e38f6508} 'min' '(II)I' in 'java/lang/Math')}
  974. 0x00007f72e9102c00: incl 0x128(%rax)
  975. 0x00007f72e9102c06: jmpq 0x00007f72e9102c0e ;*goto
  976. ; - java.lang.Math::min@6 (line 1336)
  977.  
  978. 0x00007f72e9102c0b: mov %rdx,%rsi ;*ireturn
  979. ; - java.lang.Math::min@10 (line 1336)
  980.  
  981. 0x00007f72e9102c0e: mov %rsi,%rax
  982. 0x00007f72e9102c11: add $0x30,%rsp
  983. 0x00007f72e9102c15: pop %rbp
  984. 0x00007f72e9102c16: test %eax,0x16a4d4e4(%rip) # 0x00007f72ffb50100
  985. ; {poll_return}
  986. 0x00007f72e9102c1c: retq
  987. 0x00007f72e9102c1d: mov %rax,0x8(%rsp)
  988. 0x00007f72e9102c22: movq $0xffffffffffffffff,(%rsp)
  989. 0x00007f72e9102c2a: callq 0x00007f72e90fdfe0 ; OopMap{off=175}
  990. ;*synchronization entry
  991. ; - java.lang.Math::min@-1 (line 1336)
  992. ; {runtime_call}
  993. 0x00007f72e9102c2f: jmp 0x00007f72e9102bbe
  994. 0x00007f72e9102c31: nop
  995. 0x00007f72e9102c32: nop
  996. 0x00007f72e9102c33: mov 0x290(%r15),%rax
  997. 0x00007f72e9102c3a: movabs $0x0,%r10
  998. 0x00007f72e9102c44: mov %r10,0x290(%r15)
  999. 0x00007f72e9102c4b: movabs $0x0,%r10
  1000. 0x00007f72e9102c55: mov %r10,0x298(%r15)
  1001. 0x00007f72e9102c5c: add $0x30,%rsp
  1002. 0x00007f72e9102c60: pop %rbp
  1003. 0x00007f72e9102c61: jmpq 0x00007f72e90f9360 ; {runtime_call}
  1004. 0x00007f72e9102c66: hlt
  1005. 0x00007f72e9102c67: hlt
  1006. 0x00007f72e9102c68: hlt
  1007. 0x00007f72e9102c69: hlt
  1008. 0x00007f72e9102c6a: hlt
  1009. 0x00007f72e9102c6b: hlt
  1010. 0x00007f72e9102c6c: hlt
  1011. 0x00007f72e9102c6d: hlt
  1012. 0x00007f72e9102c6e: hlt
  1013. 0x00007f72e9102c6f: hlt
  1014. 0x00007f72e9102c70: hlt
  1015. 0x00007f72e9102c71: hlt
  1016. 0x00007f72e9102c72: hlt
  1017. 0x00007f72e9102c73: hlt
  1018. 0x00007f72e9102c74: hlt
  1019. 0x00007f72e9102c75: hlt
  1020. 0x00007f72e9102c76: hlt
  1021. 0x00007f72e9102c77: hlt
  1022. 0x00007f72e9102c78: hlt
  1023. 0x00007f72e9102c79: hlt
  1024. 0x00007f72e9102c7a: hlt
  1025. 0x00007f72e9102c7b: hlt
  1026. 0x00007f72e9102c7c: hlt
  1027. 0x00007f72e9102c7d: hlt
  1028. 0x00007f72e9102c7e: hlt
  1029. 0x00007f72e9102c7f: hlt
  1030. [Exception Handler]
  1031. [Stub Code]
  1032. 0x00007f72e9102c80: callq 0x00007f72e90fb820 ; {no_reloc}
  1033. 0x00007f72e9102c85: mov %rsp,-0x28(%rsp)
  1034. 0x00007f72e9102c8a: sub $0x80,%rsp
  1035. 0x00007f72e9102c91: mov %rax,0x78(%rsp)
  1036. 0x00007f72e9102c96: mov %rcx,0x70(%rsp)
  1037. 0x00007f72e9102c9b: mov %rdx,0x68(%rsp)
  1038. 0x00007f72e9102ca0: mov %rbx,0x60(%rsp)
  1039. 0x00007f72e9102ca5: mov %rbp,0x50(%rsp)
  1040. 0x00007f72e9102caa: mov %rsi,0x48(%rsp)
  1041. 0x00007f72e9102caf: mov %rdi,0x40(%rsp)
  1042. 0x00007f72e9102cb4: mov %r8,0x38(%rsp)
  1043. 0x00007f72e9102cb9: mov %r9,0x30(%rsp)
  1044. 0x00007f72e9102cbe: mov %r10,0x28(%rsp)
  1045. 0x00007f72e9102cc3: mov %r11,0x20(%rsp)
  1046. 0x00007f72e9102cc8: mov %r12,0x18(%rsp)
  1047. 0x00007f72e9102ccd: mov %r13,0x10(%rsp)
  1048. 0x00007f72e9102cd2: mov %r14,0x8(%rsp)
  1049. 0x00007f72e9102cd7: mov %r15,(%rsp)
  1050. 0x00007f72e9102cdb: movabs $0x7f72fe733a12,%rdi ; {external_word}
  1051. 0x00007f72e9102ce5: movabs $0x7f72e9102c85,%rsi ; {internal_word}
  1052. 0x00007f72e9102cef: mov %rsp,%rdx
  1053. 0x00007f72e9102cf2: and $0xfffffffffffffff0,%rsp
  1054. 0x00007f72e9102cf6: callq 0x00007f72fe438740 ; {runtime_call}
  1055. 0x00007f72e9102cfb: hlt
  1056. [Deopt Handler Code]
  1057. 0x00007f72e9102cfc: movabs $0x7f72e9102cfc,%r10 ; {section_word}
  1058. 0x00007f72e9102d06: push %r10
  1059. 0x00007f72e9102d08: jmpq 0x00007f72e9047240 ; {runtime_call}
  1060. 0x00007f72e9102d0d: hlt
  1061. 0x00007f72e9102d0e: hlt
  1062. 0x00007f72e9102d0f: hlt
  1063. Decoding compiled method 0x00007f72e9102650:
  1064. Code:
  1065. [Entry Point]
  1066. [Constants]
  1067. # {method} {0x00007f72e3803c60} 'length' '()I' in 'java/lang/String'
  1068. # [sp+0x40] (sp of caller)
  1069. 0x00007f72e91027c0: mov 0x8(%rsi),%r10d
  1070. 0x00007f72e91027c4: shl $0x3,%r10
  1071. 0x00007f72e91027c8: cmp %rax,%r10
  1072. 0x00007f72e91027cb: jne 0x00007f72e9045ba0 ; {runtime_call}
  1073. 0x00007f72e91027d1: data16 data16 nopw 0x0(%rax,%rax,1)
  1074. 0x00007f72e91027dc: data16 data16 xchg %ax,%ax
  1075. [Verified Entry Point]
  1076. 0x00007f72e91027e0: mov %eax,-0x14000(%rsp)
  1077. 0x00007f72e91027e7: push %rbp
  1078. 0x00007f72e91027e8: sub $0x30,%rsp
  1079. 0x00007f72e91027ec: movabs $0x7f72e39f8e18,%rax ; {metadata(method data for {method} {0x00007f72e3803c60} 'length' '()I' in 'java/lang/String')}
  1080. 0x00007f72e91027f6: mov 0xdc(%rax),%edi
  1081. 0x00007f72e91027fc: add $0x8,%edi
  1082. 0x00007f72e91027ff: mov %edi,0xdc(%rax)
  1083. 0x00007f72e9102805: movabs $0x7f72e3803c60,%rax ; {metadata({method} {0x00007f72e3803c60} 'length' '()I' in 'java/lang/String')}
  1084. 0x00007f72e910280f: and $0x1ff8,%edi
  1085. 0x00007f72e9102815: cmp $0x0,%edi
  1086. 0x00007f72e9102818: je 0x00007f72e9102834 ;*aload_0
  1087. ; - java.lang.String::length@0 (line 623)
  1088.  
  1089. 0x00007f72e910281e: mov 0xc(%rsi),%eax
  1090. 0x00007f72e9102821: shl $0x3,%rax ;*getfield value
  1091. ; - java.lang.String::length@1 (line 623)
  1092.  
  1093. 0x00007f72e9102825: mov 0xc(%rax),%eax ;*arraylength
  1094. ; - java.lang.String::length@4 (line 623)
  1095. ; implicit exception: dispatches to 0x00007f72e9102848
  1096. 0x00007f72e9102828: add $0x30,%rsp
  1097. 0x00007f72e910282c: pop %rbp
  1098. 0x00007f72e910282d: test %eax,0x16a4d8cd(%rip) # 0x00007f72ffb50100
  1099. ; {poll_return}
  1100. 0x00007f72e9102833: retq
  1101. 0x00007f72e9102834: mov %rax,0x8(%rsp)
  1102. 0x00007f72e9102839: movq $0xffffffffffffffff,(%rsp)
  1103. 0x00007f72e9102841: callq 0x00007f72e90fdfe0 ; OopMap{rsi=Oop off=134}
  1104. ;*synchronization entry
  1105. ; - java.lang.String::length@-1 (line 623)
  1106. ; {runtime_call}
  1107. 0x00007f72e9102846: jmp 0x00007f72e910281e
  1108. 0x00007f72e9102848: callq 0x00007f72e90f9980 ; OopMap{off=141}
  1109. ;*arraylength
  1110. ; - java.lang.String::length@4 (line 623)
  1111. ; {runtime_call}
  1112. 0x00007f72e910284d: nop
  1113. 0x00007f72e910284e: nop
  1114. 0x00007f72e910284f: mov 0x290(%r15),%rax
  1115. 0x00007f72e9102856: movabs $0x0,%r10
  1116. 0x00007f72e9102860: mov %r10,0x290(%r15)
  1117. 0x00007f72e9102867: movabs $0x0,%r10
  1118. 0x00007f72e9102871: mov %r10,0x298(%r15)
  1119. 0x00007f72e9102878: add $0x30,%rsp
  1120. 0x00007f72e910287c: pop %rbp
  1121. 0x00007f72e910287d: jmpq 0x00007f72e90f9360 ; {runtime_call}
  1122. 0x00007f72e9102882: hlt
  1123. 0x00007f72e9102883: hlt
  1124. 0x00007f72e9102884: hlt
  1125. 0x00007f72e9102885: hlt
  1126. 0x00007f72e9102886: hlt
  1127. 0x00007f72e9102887: hlt
  1128. 0x00007f72e9102888: hlt
  1129. 0x00007f72e9102889: hlt
  1130. 0x00007f72e910288a: hlt
  1131. 0x00007f72e910288b: hlt
  1132. 0x00007f72e910288c: hlt
  1133. 0x00007f72e910288d: hlt
  1134. 0x00007f72e910288e: hlt
  1135. 0x00007f72e910288f: hlt
  1136. 0x00007f72e9102890: hlt
  1137. 0x00007f72e9102891: hlt
  1138. 0x00007f72e9102892: hlt
  1139. 0x00007f72e9102893: hlt
  1140. 0x00007f72e9102894: hlt
  1141. 0x00007f72e9102895: hlt
  1142. 0x00007f72e9102896: hlt
  1143. 0x00007f72e9102897: hlt
  1144. 0x00007f72e9102898: hlt
  1145. 0x00007f72e9102899: hlt
  1146. 0x00007f72e910289a: hlt
  1147. 0x00007f72e910289b: hlt
  1148. 0x00007f72e910289c: hlt
  1149. 0x00007f72e910289d: hlt
  1150. 0x00007f72e910289e: hlt
  1151. 0x00007f72e910289f: hlt
  1152. [Exception Handler]
  1153. [Stub Code]
  1154. 0x00007f72e91028a0: callq 0x00007f72e90fb820 ; {no_reloc}
  1155. 0x00007f72e91028a5: mov %rsp,-0x28(%rsp)
  1156. 0x00007f72e91028aa: sub $0x80,%rsp
  1157. 0x00007f72e91028b1: mov %rax,0x78(%rsp)
  1158. 0x00007f72e91028b6: mov %rcx,0x70(%rsp)
  1159. 0x00007f72e91028bb: mov %rdx,0x68(%rsp)
  1160. 0x00007f72e91028c0: mov %rbx,0x60(%rsp)
  1161. 0x00007f72e91028c5: mov %rbp,0x50(%rsp)
  1162. 0x00007f72e91028ca: mov %rsi,0x48(%rsp)
  1163. 0x00007f72e91028cf: mov %rdi,0x40(%rsp)
  1164. 0x00007f72e91028d4: mov %r8,0x38(%rsp)
  1165. 0x00007f72e91028d9: mov %r9,0x30(%rsp)
  1166. 0x00007f72e91028de: mov %r10,0x28(%rsp)
  1167. 0x00007f72e91028e3: mov %r11,0x20(%rsp)
  1168. 0x00007f72e91028e8: mov %r12,0x18(%rsp)
  1169. 0x00007f72e91028ed: mov %r13,0x10(%rsp)
  1170. 0x00007f72e91028f2: mov %r14,0x8(%rsp)
  1171. 0x00007f72e91028f7: mov %r15,(%rsp)
  1172. 0x00007f72e91028fb: movabs $0x7f72fe733a12,%rdi ; {external_word}
  1173. 0x00007f72e9102905: movabs $0x7f72e91028a5,%rsi ; {internal_word}
  1174. 0x00007f72e910290f: mov %rsp,%rdx
  1175. 0x00007f72e9102912: and $0xfffffffffffffff0,%rsp
  1176. 0x00007f72e9102916: callq 0x00007f72fe438740 ; {runtime_call}
  1177. 0x00007f72e910291b: hlt
  1178. [Deopt Handler Code]
  1179. 0x00007f72e910291c: movabs $0x7f72e910291c,%r10 ; {section_word}
  1180. 0x00007f72e9102926: push %r10
  1181. 0x00007f72e9102928: jmpq 0x00007f72e9047240 ; {runtime_call}
  1182. 0x00007f72e910292d: hlt
  1183. 0x00007f72e910292e: hlt
  1184. 0x00007f72e910292f: hlt
  1185. Decoding compiled method 0x00007f72e910c490:
  1186. Code:
  1187. [Entry Point]
  1188. [Constants]
  1189. # {method} {0x00007f72e3805180} 'indexOf' '(II)I' in 'java/lang/String'
  1190. # this: rsi:rsi = 'java/lang/String'
  1191. # parm0: rdx = int
  1192. # parm1: rcx = int
  1193. # [sp+0x40] (sp of caller)
  1194. 0x00007f72e910c620: mov 0x8(%rsi),%r10d
  1195. 0x00007f72e910c624: shl $0x3,%r10
  1196. 0x00007f72e910c628: cmp %rax,%r10
  1197. 0x00007f72e910c62b: jne 0x00007f72e9045ba0 ; {runtime_call}
  1198. 0x00007f72e910c631: data16 data16 nopw 0x0(%rax,%rax,1)
  1199. 0x00007f72e910c63c: data16 data16 xchg %ax,%ax
  1200. [Verified Entry Point]
  1201. 0x00007f72e910c640: mov %eax,-0x14000(%rsp)
  1202. 0x00007f72e910c647: push %rbp
  1203. 0x00007f72e910c648: sub $0x30,%rsp
  1204. 0x00007f72e910c64c: movabs $0x7f72e39f8f38,%rax ; {metadata(method data for {method} {0x00007f72e3805180} 'indexOf' '(II)I' in 'java/lang/String')}
  1205. 0x00007f72e910c656: mov 0xdc(%rax),%edi
  1206. 0x00007f72e910c65c: add $0x8,%edi
  1207. 0x00007f72e910c65f: mov %edi,0xdc(%rax)
  1208. 0x00007f72e910c665: movabs $0x7f72e3805180,%rax ; {metadata({method} {0x00007f72e3805180} 'indexOf' '(II)I' in 'java/lang/String')}
  1209. 0x00007f72e910c66f: and $0x1ff8,%edi
  1210. 0x00007f72e910c675: cmp $0x0,%edi
  1211. 0x00007f72e910c678: je 0x00007f72e910c881 ;*aload_0
  1212. ; - java.lang.String::indexOf@0 (line 1546)
  1213.  
  1214. 0x00007f72e910c67e: mov 0xc(%rsi),%eax
  1215. 0x00007f72e910c681: shl $0x3,%rax ;*getfield value
  1216. ; - java.lang.String::indexOf@1 (line 1546)
  1217.  
  1218. 0x00007f72e910c685: mov 0xc(%rax),%edi ;*arraylength
  1219. ; - java.lang.String::indexOf@4 (line 1546)
  1220. ; implicit exception: dispatches to 0x00007f72e910c898
  1221. 0x00007f72e910c688: cmp $0x0,%ecx
  1222. 0x00007f72e910c68b: movabs $0x7f72e39f8f38,%rbx ; {metadata(method data for {method} {0x00007f72e3805180} 'indexOf' '(II)I' in 'java/lang/String')}
  1223. 0x00007f72e910c695: movabs $0x108,%r8
  1224. 0x00007f72e910c69f: jge 0x00007f72e910c6af
  1225. 0x00007f72e910c6a5: movabs $0x118,%r8
  1226. 0x00007f72e910c6af: mov (%rbx,%r8,1),%r9
  1227. 0x00007f72e910c6b3: lea 0x1(%r9),%r9
  1228. 0x00007f72e910c6b7: mov %r9,(%rbx,%r8,1)
  1229. 0x00007f72e910c6bb: jge 0x00007f72e910c6db ;*ifge
  1230. ; - java.lang.String::indexOf@7 (line 1547)
  1231.  
  1232. 0x00007f72e910c6c1: movabs $0x7f72e39f8f38,%rcx ; {metadata(method data for {method} {0x00007f72e3805180} 'indexOf' '(II)I' in 'java/lang/String')}
  1233. 0x00007f72e910c6cb: incl 0x128(%rcx)
  1234. 0x00007f72e910c6d1: mov $0x0,%ecx
  1235. 0x00007f72e910c6d6: jmpq 0x00007f72e910c713 ;*goto
  1236. ; - java.lang.String::indexOf@12 (line 1548)
  1237.  
  1238. 0x00007f72e910c6db: cmp %edi,%ecx
  1239. 0x00007f72e910c6dd: movabs $0x7f72e39f8f38,%rbx ; {metadata(method data for {method} {0x00007f72e3805180} 'indexOf' '(II)I' in 'java/lang/String')}
  1240. 0x00007f72e910c6e7: movabs $0x140,%r8
  1241. 0x00007f72e910c6f1: jl 0x00007f72e910c701
  1242. 0x00007f72e910c6f7: movabs $0x150,%r8
  1243. 0x00007f72e910c701: mov (%rbx,%r8,1),%r9
  1244. 0x00007f72e910c705: lea 0x1(%r9),%r9
  1245. 0x00007f72e910c709: mov %r9,(%rbx,%r8,1)
  1246. 0x00007f72e910c70d: jge 0x00007f72e910c870 ;*if_icmplt
  1247. ; - java.lang.String::indexOf@17 (line 1549)
  1248.  
  1249. 0x00007f72e910c713: cmp $0x10000,%edx
  1250. 0x00007f72e910c719: movabs $0x7f72e39f8f38,%rbx ; {metadata(method data for {method} {0x00007f72e3805180} 'indexOf' '(II)I' in 'java/lang/String')}
  1251. 0x00007f72e910c723: movabs $0x160,%r8
  1252. 0x00007f72e910c72d: jge 0x00007f72e910c73d
  1253. 0x00007f72e910c733: movabs $0x170,%r8
  1254. 0x00007f72e910c73d: mov (%rbx,%r8,1),%r9
  1255. 0x00007f72e910c741: lea 0x1(%r9),%r9
  1256. 0x00007f72e910c745: mov %r9,(%rbx,%r8,1)
  1257. 0x00007f72e910c749: jge 0x00007f72e910c848
  1258. 0x00007f72e910c74f: jmpq 0x00007f72e910c7eb ;*if_icmpge
  1259. ; - java.lang.String::indexOf@25 (line 1554)
  1260.  
  1261. 0x00007f72e910c754: nopl 0x0(%rax)
  1262. 0x00007f72e910c758: movslq %ecx,%rsi
  1263. 0x00007f72e910c75b: cmp 0xc(%rax),%ecx
  1264. 0x00007f72e910c75e: jae 0x00007f72e910c89d
  1265. 0x00007f72e910c764: movzwl 0x10(%rax,%rsi,2),%esi ;*caload
  1266. ; - java.lang.String::indexOf@47 (line 1559)
  1267.  
  1268. 0x00007f72e910c769: cmp %edx,%esi
  1269. 0x00007f72e910c76b: movabs $0x7f72e39f8f38,%rsi ; {metadata(method data for {method} {0x00007f72e3805180} 'indexOf' '(II)I' in 'java/lang/String')}
  1270. 0x00007f72e910c775: movabs $0x1a0,%rbx
  1271. 0x00007f72e910c77f: jne 0x00007f72e910c78f
  1272. 0x00007f72e910c785: movabs $0x1b0,%rbx
  1273. 0x00007f72e910c78f: mov (%rsi,%rbx,1),%r8
  1274. 0x00007f72e910c793: lea 0x1(%r8),%r8
  1275. 0x00007f72e910c797: mov %r8,(%rsi,%rbx,1)
  1276. 0x00007f72e910c79b: je 0x00007f72e910c828 ;*if_icmpne
  1277. ; - java.lang.String::indexOf@49 (line 1559)
  1278.  
  1279. 0x00007f72e910c7a1: inc %ecx
  1280. 0x00007f72e910c7a3: movabs $0x7f72e39f8f38,%rsi ; {metadata(method data for {method} {0x00007f72e3805180} 'indexOf' '(II)I' in 'java/lang/String')}
  1281. 0x00007f72e910c7ad: mov 0xe0(%rsi),%ebx
  1282. 0x00007f72e910c7b3: add $0x8,%ebx
  1283. 0x00007f72e910c7b6: mov %ebx,0xe0(%rsi)
  1284. 0x00007f72e910c7bc: movabs $0x7f72e3805180,%rsi ; {metadata({method} {0x00007f72e3805180} 'indexOf' '(II)I' in 'java/lang/String')}
  1285. 0x00007f72e910c7c6: and $0xfff8,%ebx
  1286. 0x00007f72e910c7cc: cmp $0x0,%ebx
  1287. 0x00007f72e910c7cf: je 0x00007f72e910c8a6 ; OopMap{rax=Oop off=437}
  1288. ;*goto
  1289. ; - java.lang.String::indexOf@58 (line 1558)
  1290.  
  1291. 0x00007f72e910c7d5: test %eax,0x16a43925(%rip) # 0x00007f72ffb50100
  1292. ; {poll}
  1293. 0x00007f72e910c7db: movabs $0x7f72e39f8f38,%rsi ; {metadata(method data for {method} {0x00007f72e3805180} 'indexOf' '(II)I' in 'java/lang/String')}
  1294. 0x00007f72e910c7e5: incl 0x1c0(%rsi) ;*goto
  1295. ; - java.lang.String::indexOf@58 (line 1558)
  1296.  
  1297. 0x00007f72e910c7eb: cmp %edi,%ecx
  1298. 0x00007f72e910c7ed: movabs $0x7f72e39f8f38,%rsi ; {metadata(method data for {method} {0x00007f72e3805180} 'indexOf' '(II)I' in 'java/lang/String')}
  1299. 0x00007f72e910c7f7: movabs $0x180,%rbx
  1300. 0x00007f72e910c801: jge 0x00007f72e910c811
  1301. 0x00007f72e910c807: movabs $0x190,%rbx
  1302. 0x00007f72e910c811: mov (%rsi,%rbx,1),%r8
  1303. 0x00007f72e910c815: lea 0x1(%r8),%r8
  1304. 0x00007f72e910c819: mov %r8,(%rsi,%rbx,1)
  1305. 0x00007f72e910c81d: jge 0x00007f72e910c837
  1306. 0x00007f72e910c823: jmpq 0x00007f72e910c758 ;*if_icmpge
  1307. ; - java.lang.String::indexOf@40 (line 1558)
  1308.  
  1309. 0x00007f72e910c828: mov %rcx,%rax
  1310. 0x00007f72e910c82b: add $0x30,%rsp
  1311. 0x00007f72e910c82f: pop %rbp
  1312. 0x00007f72e910c830: test %eax,0x16a438ca(%rip) # 0x00007f72ffb50100
  1313. ; {poll_return}
  1314. 0x00007f72e910c836: retq ;*ireturn
  1315. ; - java.lang.String::indexOf@54 (line 1560)
  1316.  
  1317. 0x00007f72e910c837: mov $0xffffffff,%eax
  1318. 0x00007f72e910c83c: add $0x30,%rsp
  1319. 0x00007f72e910c840: pop %rbp
  1320. 0x00007f72e910c841: test %eax,0x16a438b9(%rip) # 0x00007f72ffb50100
  1321. ; {poll_return}
  1322. 0x00007f72e910c847: retq ;*ireturn
  1323. ; - java.lang.String::indexOf@62 (line 1563)
  1324.  
  1325. 0x00007f72e910c848: mov %rsi,%rdi
  1326. 0x00007f72e910c84b: movabs $0x7f72e39f8f38,%rbx ; {metadata(method data for {method} {0x00007f72e3805180} 'indexOf' '(II)I' in 'java/lang/String')}
  1327. 0x00007f72e910c855: addq $0x1,0x1d8(%rbx)
  1328. 0x00007f72e910c85d: nop
  1329. 0x00007f72e910c85e: nop
  1330. 0x00007f72e910c85f: callq 0x00007f72e9045de0 ; OopMap{off=580}
  1331. ;*invokespecial indexOfSupplementary
  1332. ; - java.lang.String::indexOf@66 (line 1565)
  1333. ; {optimized virtual_call}
  1334. 0x00007f72e910c864: add $0x30,%rsp
  1335. 0x00007f72e910c868: pop %rbp
  1336. 0x00007f72e910c869: test %eax,0x16a43891(%rip) # 0x00007f72ffb50100
  1337. ; {poll_return}
  1338. 0x00007f72e910c86f: retq ;*ireturn
  1339. ; - java.lang.String::indexOf@69 (line 1565)
  1340.  
  1341. 0x00007f72e910c870: mov $0xffffffff,%eax
  1342. 0x00007f72e910c875: add $0x30,%rsp
  1343. 0x00007f72e910c879: pop %rbp
  1344. 0x00007f72e910c87a: test %eax,0x16a43880(%rip) # 0x00007f72ffb50100
  1345. ; {poll_return}
  1346. 0x00007f72e910c880: retq
  1347. 0x00007f72e910c881: mov %rax,0x8(%rsp)
  1348. 0x00007f72e910c886: movq $0xffffffffffffffff,(%rsp)
  1349. 0x00007f72e910c88e: callq 0x00007f72e90fdfe0 ; OopMap{rsi=Oop off=627}
  1350. ;*synchronization entry
  1351. ; - java.lang.String::indexOf@-1 (line 1546)
  1352. ; {runtime_call}
  1353. 0x00007f72e910c893: jmpq 0x00007f72e910c67e
  1354. 0x00007f72e910c898: callq 0x00007f72e90f9980 ; OopMap{rsi=Oop rax=Oop off=637}
  1355. ;*arraylength
  1356. ; - java.lang.String::indexOf@4 (line 1546)
  1357. ; {runtime_call}
  1358. 0x00007f72e910c89d: mov %rcx,(%rsp)
  1359. 0x00007f72e910c8a1: callq 0x00007f72e90f8ec0 ; OopMap{rax=Oop off=646}
  1360. ;*caload
  1361. ; - java.lang.String::indexOf@47 (line 1559)
  1362. ; {runtime_call}
  1363. 0x00007f72e910c8a6: mov %rsi,0x8(%rsp)
  1364. 0x00007f72e910c8ab: movq $0x3a,(%rsp)
  1365. 0x00007f72e910c8b3: callq 0x00007f72e90fdfe0 ; OopMap{rax=Oop off=664}
  1366. ;*goto
  1367. ; - java.lang.String::indexOf@58 (line 1558)
  1368. ; {runtime_call}
  1369. 0x00007f72e910c8b8: jmpq 0x00007f72e910c7d5
  1370. 0x00007f72e910c8bd: nop
  1371. 0x00007f72e910c8be: nop
  1372. 0x00007f72e910c8bf: mov 0x290(%r15),%rax
  1373. 0x00007f72e910c8c6: movabs $0x0,%r10
  1374. 0x00007f72e910c8d0: mov %r10,0x290(%r15)
  1375. 0x00007f72e910c8d7: movabs $0x0,%r10
  1376. 0x00007f72e910c8e1: mov %r10,0x298(%r15)
  1377. 0x00007f72e910c8e8: add $0x30,%rsp
  1378. 0x00007f72e910c8ec: pop %rbp
  1379. 0x00007f72e910c8ed: jmpq 0x00007f72e90f9360 ; {runtime_call}
  1380. 0x00007f72e910c8f2: hlt
  1381. 0x00007f72e910c8f3: hlt
  1382. 0x00007f72e910c8f4: hlt
  1383. 0x00007f72e910c8f5: hlt
  1384. 0x00007f72e910c8f6: hlt
  1385. 0x00007f72e910c8f7: hlt
  1386. 0x00007f72e910c8f8: hlt
  1387. 0x00007f72e910c8f9: hlt
  1388. 0x00007f72e910c8fa: hlt
  1389. 0x00007f72e910c8fb: hlt
  1390. 0x00007f72e910c8fc: hlt
  1391. 0x00007f72e910c8fd: hlt
  1392. 0x00007f72e910c8fe: hlt
  1393. 0x00007f72e910c8ff: hlt
  1394. [Stub Code]
  1395. 0x00007f72e910c900: nop ; {no_reloc}
  1396. 0x00007f72e910c901: nop
  1397. 0x00007f72e910c902: nop
  1398. 0x00007f72e910c903: nop
  1399. 0x00007f72e910c904: nop
  1400. 0x00007f72e910c905: movabs $0x0,%rbx ; {static_stub}
  1401. 0x00007f72e910c90f: jmpq 0x00007f72e910c90f ; {runtime_call}
  1402. [Exception Handler]
  1403. 0x00007f72e910c914: callq 0x00007f72e90fb820 ; {runtime_call}
  1404. 0x00007f72e910c919: mov %rsp,-0x28(%rsp)
  1405. 0x00007f72e910c91e: sub $0x80,%rsp
  1406. 0x00007f72e910c925: mov %rax,0x78(%rsp)
  1407. 0x00007f72e910c92a: mov %rcx,0x70(%rsp)
  1408. 0x00007f72e910c92f: mov %rdx,0x68(%rsp)
  1409. 0x00007f72e910c934: mov %rbx,0x60(%rsp)
  1410. 0x00007f72e910c939: mov %rbp,0x50(%rsp)
  1411. 0x00007f72e910c93e: mov %rsi,0x48(%rsp)
  1412. 0x00007f72e910c943: mov %rdi,0x40(%rsp)
  1413. 0x00007f72e910c948: mov %r8,0x38(%rsp)
  1414. 0x00007f72e910c94d: mov %r9,0x30(%rsp)
  1415. 0x00007f72e910c952: mov %r10,0x28(%rsp)
  1416. 0x00007f72e910c957: mov %r11,0x20(%rsp)
  1417. 0x00007f72e910c95c: mov %r12,0x18(%rsp)
  1418. 0x00007f72e910c961: mov %r13,0x10(%rsp)
  1419. 0x00007f72e910c966: mov %r14,0x8(%rsp)
  1420. 0x00007f72e910c96b: mov %r15,(%rsp)
  1421. 0x00007f72e910c96f: movabs $0x7f72fe733a12,%rdi ; {external_word}
  1422. 0x00007f72e910c979: movabs $0x7f72e910c919,%rsi ; {internal_word}
  1423. 0x00007f72e910c983: mov %rsp,%rdx
  1424. 0x00007f72e910c986: and $0xfffffffffffffff0,%rsp
  1425. 0x00007f72e910c98a: callq 0x00007f72fe438740 ; {runtime_call}
  1426. 0x00007f72e910c98f: hlt
  1427. [Deopt Handler Code]
  1428. 0x00007f72e910c990: movabs $0x7f72e910c990,%r10 ; {section_word}
  1429. 0x00007f72e910c99a: push %r10
  1430. 0x00007f72e910c99c: jmpq 0x00007f72e9047240 ; {runtime_call}
  1431. 0x00007f72e910c9a1: hlt
  1432. 0x00007f72e910c9a2: hlt
  1433. 0x00007f72e910c9a3: hlt
  1434. 0x00007f72e910c9a4: hlt
  1435. 0x00007f72e910c9a5: hlt
  1436. 0x00007f72e910c9a6: hlt
  1437. 0x00007f72e910c9a7: hlt
  1438. Decoding compiled method 0x00007f72e910bc10:
  1439. Code:
  1440. [Entry Point]
  1441. [Constants]
  1442. # {method} {0x00007f72e38754e0} 'ensureCapacityInternal' '(I)V' in 'java/lang/AbstractStringBuilder'
  1443. # this: rsi:rsi = 'java/lang/AbstractStringBuilder'
  1444. # parm0: rdx = int
  1445. # [sp+0xb0] (sp of caller)
  1446. 0x00007f72e910bda0: mov 0x8(%rsi),%r10d
  1447. 0x00007f72e910bda4: shl $0x3,%r10
  1448. 0x00007f72e910bda8: cmp %rax,%r10
  1449. 0x00007f72e910bdab: jne 0x00007f72e9045ba0 ; {runtime_call}
  1450. 0x00007f72e910bdb1: data16 data16 nopw 0x0(%rax,%rax,1)
  1451. 0x00007f72e910bdbc: data16 data16 xchg %ax,%ax
  1452. [Verified Entry Point]
  1453. 0x00007f72e910bdc0: mov %eax,-0x14000(%rsp)
  1454. 0x00007f72e910bdc7: push %rbp
  1455. 0x00007f72e910bdc8: sub $0xa0,%rsp
  1456. 0x00007f72e910bdcf: movabs $0x7f72e39f9d20,%rdi ; {metadata(method data for {method} {0x00007f72e38754e0} 'ensureCapacityInternal' '(I)V' in 'java/lang/AbstractStringBuilder')}
  1457. 0x00007f72e910bdd9: mov 0xdc(%rdi),%ebx
  1458. 0x00007f72e910bddf: add $0x8,%ebx
  1459. 0x00007f72e910bde2: mov %ebx,0xdc(%rdi)
  1460. 0x00007f72e910bde8: movabs $0x7f72e38754e0,%rdi ; {metadata({method} {0x00007f72e38754e0} 'ensureCapacityInternal' '(I)V' in 'java/lang/AbstractStringBuilder')}
  1461. 0x00007f72e910bdf2: and $0x1ff8,%ebx
  1462. 0x00007f72e910bdf8: cmp $0x0,%ebx
  1463. 0x00007f72e910bdfb: je 0x00007f72e910c0af ;*iload_1
  1464. ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@0 (line 123)
  1465.  
  1466. 0x00007f72e910be01: mov 0x10(%rsi),%edi
  1467. 0x00007f72e910be04: shl $0x3,%rdi ;*getfield value
  1468. ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@2 (line 123)
  1469.  
  1470. 0x00007f72e910be08: mov 0xc(%rdi),%ebx ;*arraylength
  1471. ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@5 (line 123)
  1472. ; implicit exception: dispatches to 0x00007f72e910c0c6
  1473. 0x00007f72e910be0b: mov %rdx,%rax
  1474. 0x00007f72e910be0e: sub %ebx,%eax
  1475. 0x00007f72e910be10: cmp $0x0,%eax
  1476. 0x00007f72e910be13: movabs $0x7f72e39f9d20,%rax ; {metadata(method data for {method} {0x00007f72e38754e0} 'ensureCapacityInternal' '(I)V' in 'java/lang/AbstractStringBuilder')}
  1477. 0x00007f72e910be1d: movabs $0x108,%rcx
  1478. 0x00007f72e910be27: jle 0x00007f72e910be37
  1479. 0x00007f72e910be2d: movabs $0x118,%rcx
  1480. 0x00007f72e910be37: mov (%rax,%rcx,1),%r8
  1481. 0x00007f72e910be3b: lea 0x1(%r8),%r8
  1482. 0x00007f72e910be3f: mov %r8,(%rax,%rcx,1)
  1483. 0x00007f72e910be43: jle 0x00007f72e910c0a0 ;*ifle
  1484. ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@7 (line 123)
  1485.  
  1486. 0x00007f72e910be49: mov %ebx,0x78(%rsp)
  1487. 0x00007f72e910be4d: mov %rdi,0x80(%rsp)
  1488. 0x00007f72e910be55: mov %rsi,%rax
  1489. 0x00007f72e910be58: movabs $0x7f72e39f9d20,%rcx ; {metadata(method data for {method} {0x00007f72e38754e0} 'ensureCapacityInternal' '(I)V' in 'java/lang/AbstractStringBuilder')}
  1490. 0x00007f72e910be62: addq $0x1,0x128(%rcx)
  1491. 0x00007f72e910be6a: mov %rsi,%rax
  1492. 0x00007f72e910be6d: mov %rax,%rsi ;*invokespecial newCapacity
  1493. ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@17 (line 125)
  1494.  
  1495. 0x00007f72e910be70: mov %rax,0x88(%rsp)
  1496. 0x00007f72e910be78: nop
  1497. 0x00007f72e910be79: nop
  1498. 0x00007f72e910be7a: nop
  1499. 0x00007f72e910be7b: nop
  1500. 0x00007f72e910be7c: nop
  1501. 0x00007f72e910be7d: nop
  1502. 0x00007f72e910be7e: nop
  1503. 0x00007f72e910be7f: callq 0x00007f72e9045de0 ; OopMap{[136]=Oop [128]=Oop off=228}
  1504. ;*invokespecial newCapacity
  1505. ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@17 (line 125)
  1506. ; {optimized virtual_call}
  1507. 0x00007f72e910be84: mov %rax,%r8 ;*invokespecial newCapacity
  1508. ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@17 (line 125)
  1509.  
  1510. 0x00007f72e910be87: movabs $0x7f72e39f9d20,%rbx ; {metadata(method data for {method} {0x00007f72e38754e0} 'ensureCapacityInternal' '(I)V' in 'java/lang/AbstractStringBuilder')}
  1511. 0x00007f72e910be91: addq $0x1,0x138(%rbx)
  1512. 0x00007f72e910be99: movabs $0x7f72e39fa368,%rbx ; {metadata(method data for {method} {0x00007f72e391ac50} 'copyOf' '([CI)[C' in 'java/util/Arrays')}
  1513. 0x00007f72e910bea3: mov 0xdc(%rbx),%edx
  1514. 0x00007f72e910bea9: add $0x8,%edx
  1515. 0x00007f72e910beac: mov %edx,0xdc(%rbx)
  1516. 0x00007f72e910beb2: movabs $0x7f72e391ac50,%rbx ; {metadata({method} {0x00007f72e391ac50} 'copyOf' '([CI)[C' in 'java/util/Arrays')}
  1517. 0x00007f72e910bebc: and $0x7ffff8,%edx
  1518. 0x00007f72e910bec2: cmp $0x0,%edx
  1519. 0x00007f72e910bec5: je 0x00007f72e910c0cb
  1520. 0x00007f72e910becb: mov %r8,%rbx
  1521. 0x00007f72e910bece: movabs $0x7c00001f8,%rdx ; {metadata({type array char})}
  1522. 0x00007f72e910bed8: movslq %ebx,%rbx
  1523. 0x00007f72e910bedb: mov %rbx,%rdi
  1524. 0x00007f72e910bede: cmp $0xffffff,%rbx
  1525. 0x00007f72e910bee5: ja 0x00007f72e910c0e2
  1526. 0x00007f72e910beeb: movabs $0x17,%rsi
  1527. 0x00007f72e910bef5: lea (%rsi,%rbx,2),%rsi
  1528. 0x00007f72e910bef9: and $0xfffffffffffffff8,%rsi
  1529. 0x00007f72e910befd: mov 0x60(%r15),%rax
  1530. 0x00007f72e910bf01: lea (%rax,%rsi,1),%rsi
  1531. 0x00007f72e910bf05: cmp 0x70(%r15),%rsi
  1532. 0x00007f72e910bf09: ja 0x00007f72e910c0e2
  1533. 0x00007f72e910bf0f: mov %rsi,0x60(%r15)
  1534. 0x00007f72e910bf13: sub %rax,%rsi
  1535. 0x00007f72e910bf16: movq $0x1,(%rax)
  1536. 0x00007f72e910bf1d: mov %rdx,%rcx
  1537. 0x00007f72e910bf20: shr $0x3,%rcx
  1538. 0x00007f72e910bf24: mov %ecx,0x8(%rax)
  1539. 0x00007f72e910bf27: mov %ebx,0xc(%rax)
  1540. 0x00007f72e910bf2a: sub $0x10,%rsi
  1541. 0x00007f72e910bf2e: je 0x00007f72e910bf45
  1542. 0x00007f72e910bf34: xor %rbx,%rbx
  1543. 0x00007f72e910bf37: shr $0x3,%rsi
  1544. 0x00007f72e910bf3b: mov %rbx,0x8(%rax,%rsi,8)
  1545. 0x00007f72e910bf40: dec %rsi
  1546. 0x00007f72e910bf43: jne 0x00007f72e910bf3b ;*newarray
  1547. ; - java.util.Arrays::copyOf@1 (line 3332)
  1548. ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@20 (line 124)
  1549.  
  1550. 0x00007f72e910bf45: movabs $0x7f72e39fa368,%rsi ; {metadata(method data for {method} {0x00007f72e391ac50} 'copyOf' '([CI)[C' in 'java/util/Arrays')}
  1551. 0x00007f72e910bf4f: addq $0x1,0x108(%rsi)
  1552. 0x00007f72e910bf57: movabs $0x7f72e39f8cb8,%rsi ; {metadata(method data for {method} {0x00007f72e38f6508} 'min' '(II)I' in 'java/lang/Math')}
  1553. 0x00007f72e910bf61: mov 0xdc(%rsi),%edx
  1554. 0x00007f72e910bf67: add $0x8,%edx
  1555. 0x00007f72e910bf6a: mov %edx,0xdc(%rsi)
  1556. 0x00007f72e910bf70: movabs $0x7f72e38f6508,%rsi ; {metadata({method} {0x00007f72e38f6508} 'min' '(II)I' in 'java/lang/Math')}
  1557. 0x00007f72e910bf7a: and $0x7ffff8,%edx
  1558. 0x00007f72e910bf80: cmp $0x0,%edx
  1559. 0x00007f72e910bf83: je 0x00007f72e910c0ec
  1560. 0x00007f72e910bf89: mov 0x78(%rsp),%ebx
  1561. 0x00007f72e910bf8d: cmp %r8d,%ebx
  1562. 0x00007f72e910bf90: movabs $0x7f72e39f8cb8,%rsi ; {metadata(method data for {method} {0x00007f72e38f6508} 'min' '(II)I' in 'java/lang/Math')}
  1563. 0x00007f72e910bf9a: movabs $0x108,%rdx
  1564. 0x00007f72e910bfa4: jg 0x00007f72e910bfb4
  1565. 0x00007f72e910bfaa: movabs $0x118,%rdx
  1566. 0x00007f72e910bfb4: mov (%rsi,%rdx,1),%rcx
  1567. 0x00007f72e910bfb8: lea 0x1(%rcx),%rcx
  1568. 0x00007f72e910bfbc: mov %rcx,(%rsi,%rdx,1)
  1569. 0x00007f72e910bfc0: jg 0x00007f72e910bfdb ;*if_icmpgt
  1570. ; - java.lang.Math::min@2 (line 1336)
  1571. ; - java.util.Arrays::copyOf@11 (line 3334)
  1572. ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@20 (line 124)
  1573.  
  1574. 0x00007f72e910bfc6: movabs $0x7f72e39f8cb8,%rsi ; {metadata(method data for {method} {0x00007f72e38f6508} 'min' '(II)I' in 'java/lang/Math')}
  1575. 0x00007f72e910bfd0: incl 0x128(%rsi)
  1576. 0x00007f72e910bfd6: jmpq 0x00007f72e910bfde ;*goto
  1577. ; - java.lang.Math::min@6 (line 1336)
  1578. ; - java.util.Arrays::copyOf@11 (line 3334)
  1579. ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@20 (line 124)
  1580.  
  1581. 0x00007f72e910bfdb: mov %r8,%rbx ;*ireturn
  1582. ; - java.lang.Math::min@10 (line 1336)
  1583. ; - java.util.Arrays::copyOf@11 (line 3334)
  1584. ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@20 (line 124)
  1585.  
  1586. 0x00007f72e910bfde: mov 0x80(%rsp),%rdi
  1587. 0x00007f72e910bfe6: movabs $0x7f72e39fa368,%rsi ; {metadata(method data for {method} {0x00007f72e391ac50} 'copyOf' '([CI)[C' in 'java/util/Arrays')}
  1588. 0x00007f72e910bff0: addq $0x1,0x118(%rsi)
  1589. 0x00007f72e910bff8: mov %rdi,%rsi
  1590. 0x00007f72e910bffb: mov $0x0,%edx
  1591. 0x00007f72e910c000: mov %rax,%rcx
  1592. 0x00007f72e910c003: mov $0x0,%r8d
  1593. 0x00007f72e910c009: mov %rbx,%r9
  1594. 0x00007f72e910c00c: mov %rax,0x90(%rsp)
  1595. 0x00007f72e910c014: lea (%rdx,%r9,1),%rdi
  1596. 0x00007f72e910c018: cmp 0xc(%rsi),%edi
  1597. 0x00007f72e910c01b: ja 0x00007f72e910c103
  1598. 0x00007f72e910c021: lea (%r8,%r9,1),%rdi
  1599. 0x00007f72e910c025: cmp 0xc(%rcx),%edi
  1600. 0x00007f72e910c028: ja 0x00007f72e910c103
  1601. 0x00007f72e910c02e: test %r9d,%r9d
  1602. 0x00007f72e910c031: jl 0x00007f72e910c103
  1603. 0x00007f72e910c037: je 0x00007f72e910c073
  1604. 0x00007f72e910c03d: movslq %edx,%rdx
  1605. 0x00007f72e910c040: movslq %r8d,%r8
  1606. 0x00007f72e910c043: lea 0x10(%rsi,%rdx,2),%rdi
  1607. 0x00007f72e910c048: lea 0x10(%rcx,%r8,2),%rsi
  1608. 0x00007f72e910c04d: mov %r9,%rdx
  1609. 0x00007f72e910c050: test $0xf,%esp
  1610. 0x00007f72e910c056: je 0x00007f72e910c06e
  1611. 0x00007f72e910c05c: sub $0x8,%rsp
  1612. 0x00007f72e910c060: callq Stub::jshort_disjoint_arraycopy
  1613. ; {runtime_call}
  1614. 0x00007f72e910c065: add $0x8,%rsp
  1615. 0x00007f72e910c069: jmpq 0x00007f72e910c073
  1616. 0x00007f72e910c06e: callq Stub::jshort_disjoint_arraycopy
  1617. ;*invokestatic arraycopy
  1618. ; - java.util.Arrays::copyOf@14 (line 3333)
  1619. ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@20 (line 124)
  1620. ; {runtime_call}
  1621. 0x00007f72e910c073: mov 0x90(%rsp),%rax
  1622. 0x00007f72e910c07b: mov 0x88(%rsp),%rsi
  1623. 0x00007f72e910c083: mov %rax,%r10
  1624. 0x00007f72e910c086: shr $0x3,%r10
  1625. 0x00007f72e910c08a: mov %r10d,0x10(%rsi)
  1626. 0x00007f72e910c08e: shr $0x9,%rsi
  1627. 0x00007f72e910c092: movabs $0x7f72f8c5d000,%rdi
  1628. 0x00007f72e910c09c: movb $0x0,(%rsi,%rdi,1) ;*putfield value
  1629. ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@23 (line 124)
  1630.  
  1631. 0x00007f72e910c0a0: add $0xa0,%rsp
  1632. 0x00007f72e910c0a7: pop %rbp
  1633. 0x00007f72e910c0a8: test %eax,0x16a44052(%rip) # 0x00007f72ffb50100
  1634. ; {poll_return}
  1635. 0x00007f72e910c0ae: retq
  1636. 0x00007f72e910c0af: mov %rdi,0x8(%rsp)
  1637. 0x00007f72e910c0b4: movq $0xffffffffffffffff,(%rsp)
  1638. 0x00007f72e910c0bc: callq 0x00007f72e90fdfe0 ; OopMap{rsi=Oop off=801}
  1639. ;*synchronization entry
  1640. ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@-1 (line 123)
  1641. ; {runtime_call}
  1642. 0x00007f72e910c0c1: jmpq 0x00007f72e910be01
  1643. 0x00007f72e910c0c6: callq 0x00007f72e90f9980 ; OopMap{rsi=Oop rdi=Oop off=811}
  1644. ;*arraylength
  1645. ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@5 (line 123)
  1646. ; {runtime_call}
  1647. 0x00007f72e910c0cb: mov %rbx,0x8(%rsp)
  1648. 0x00007f72e910c0d0: movq $0xffffffffffffffff,(%rsp)
  1649. 0x00007f72e910c0d8: callq 0x00007f72e90fdfe0 ; OopMap{[136]=Oop [128]=Oop off=829}
  1650. ;*synchronization entry
  1651. ; - java.util.Arrays::copyOf@-1 (line 3332)
  1652. ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@20 (line 124)
  1653. ; {runtime_call}
  1654. 0x00007f72e910c0dd: jmpq 0x00007f72e910becb
  1655. 0x00007f72e910c0e2: callq 0x00007f72e90fa9e0 ; OopMap{[136]=Oop [128]=Oop off=839}
  1656. ;*newarray
  1657. ; - java.util.Arrays::copyOf@1 (line 3332)
  1658. ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@20 (line 124)
  1659. ; {runtime_call}
  1660. 0x00007f72e910c0e7: jmpq 0x00007f72e910bf45
  1661. 0x00007f72e910c0ec: mov %rsi,0x8(%rsp)
  1662. 0x00007f72e910c0f1: movq $0xffffffffffffffff,(%rsp)
  1663. 0x00007f72e910c0f9: callq 0x00007f72e90fdfe0 ; OopMap{[136]=Oop [128]=Oop rax=Oop off=862}
  1664. ;*synchronization entry
  1665. ; - java.lang.Math::min@-1 (line 1336)
  1666. ; - java.util.Arrays::copyOf@11 (line 3334)
  1667. ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@20 (line 124)
  1668. ; {runtime_call}
  1669. 0x00007f72e910c0fe: jmpq 0x00007f72e910bf89
  1670. 0x00007f72e910c103: nop
  1671. 0x00007f72e910c104: nop
  1672. 0x00007f72e910c105: nop
  1673. 0x00007f72e910c106: nop
  1674. 0x00007f72e910c107: callq 0x00007f72e9046260 ; OopMap{[136]=Oop [144]=Oop off=876}
  1675. ;*invokestatic arraycopy
  1676. ; - java.util.Arrays::copyOf@14 (line 3333)
  1677. ; - java.lang.AbstractStringBuilder::ensureCapacityInternal@20 (line 124)
  1678. ; {static_call}
  1679. 0x00007f72e910c10c: jmpq 0x00007f72e910c073
  1680. 0x00007f72e910c111: nop
  1681. 0x00007f72e910c112: nop
  1682. 0x00007f72e910c113: mov 0x290(%r15),%rax
  1683. 0x00007f72e910c11a: movabs $0x0,%r10
  1684. 0x00007f72e910c124: mov %r10,0x290(%r15)
  1685. 0x00007f72e910c12b: movabs $0x0,%r10
  1686. 0x00007f72e910c135: mov %r10,0x298(%r15)
  1687. 0x00007f72e910c13c: add $0xa0,%rsp
  1688. 0x00007f72e910c143: pop %rbp
  1689. 0x00007f72e910c144: jmpq 0x00007f72e90f9360 ; {runtime_call}
  1690. 0x00007f72e910c149: hlt
  1691. 0x00007f72e910c14a: hlt
  1692. 0x00007f72e910c14b: hlt
  1693. 0x00007f72e910c14c: hlt
  1694. 0x00007f72e910c14d: hlt
  1695. 0x00007f72e910c14e: hlt
  1696. 0x00007f72e910c14f: hlt
  1697. 0x00007f72e910c150: hlt
  1698. 0x00007f72e910c151: hlt
  1699. 0x00007f72e910c152: hlt
  1700. 0x00007f72e910c153: hlt
  1701. 0x00007f72e910c154: hlt
  1702. 0x00007f72e910c155: hlt
  1703. 0x00007f72e910c156: hlt
  1704. 0x00007f72e910c157: hlt
  1705. 0x00007f72e910c158: hlt
  1706. 0x00007f72e910c159: hlt
  1707. 0x00007f72e910c15a: hlt
  1708. 0x00007f72e910c15b: hlt
  1709. 0x00007f72e910c15c: hlt
  1710. 0x00007f72e910c15d: hlt
  1711. 0x00007f72e910c15e: hlt
  1712. 0x00007f72e910c15f: hlt
  1713. [Stub Code]
  1714. 0x00007f72e910c160: nop ; {no_reloc}
  1715. 0x00007f72e910c161: nop
  1716. 0x00007f72e910c162: nop
  1717. 0x00007f72e910c163: nop
  1718. 0x00007f72e910c164: nop
  1719. 0x00007f72e910c165: movabs $0x0,%rbx ; {static_stub}
  1720. 0x00007f72e910c16f: jmpq 0x00007f72e910c16f ; {runtime_call}
  1721. 0x00007f72e910c174: nop
  1722. 0x00007f72e910c175: movabs $0x0,%rbx ; {static_stub}
  1723. 0x00007f72e910c17f: jmpq 0x00007f72e910c17f ; {runtime_call}
  1724. [Exception Handler]
  1725. 0x00007f72e910c184: callq 0x00007f72e90fb820 ; {runtime_call}
  1726. 0x00007f72e910c189: mov %rsp,-0x28(%rsp)
  1727. 0x00007f72e910c18e: sub $0x80,%rsp
  1728. 0x00007f72e910c195: mov %rax,0x78(%rsp)
  1729. 0x00007f72e910c19a: mov %rcx,0x70(%rsp)
  1730. 0x00007f72e910c19f: mov %rdx,0x68(%rsp)
  1731. 0x00007f72e910c1a4: mov %rbx,0x60(%rsp)
  1732. 0x00007f72e910c1a9: mov %rbp,0x50(%rsp)
  1733. 0x00007f72e910c1ae: mov %rsi,0x48(%rsp)
  1734. 0x00007f72e910c1b3: mov %rdi,0x40(%rsp)
  1735. 0x00007f72e910c1b8: mov %r8,0x38(%rsp)
  1736. 0x00007f72e910c1bd: mov %r9,0x30(%rsp)
  1737. 0x00007f72e910c1c2: mov %r10,0x28(%rsp)
  1738. 0x00007f72e910c1c7: mov %r11,0x20(%rsp)
  1739. 0x00007f72e910c1cc: mov %r12,0x18(%rsp)
  1740. 0x00007f72e910c1d1: mov %r13,0x10(%rsp)
  1741. 0x00007f72e910c1d6: mov %r14,0x8(%rsp)
  1742. 0x00007f72e910c1db: mov %r15,(%rsp)
  1743. 0x00007f72e910c1df: movabs $0x7f72fe733a12,%rdi ; {external_word}
  1744. 0x00007f72e910c1e9: movabs $0x7f72e910c189,%rsi ; {internal_word}
  1745. 0x00007f72e910c1f3: mov %rsp,%rdx
  1746. 0x00007f72e910c1f6: and $0xfffffffffffffff0,%rsp
  1747. 0x00007f72e910c1fa: callq 0x00007f72fe438740 ; {runtime_call}
  1748. 0x00007f72e910c1ff: hlt
  1749. [Deopt Handler Code]
  1750. 0x00007f72e910c200: movabs $0x7f72e910c200,%r10 ; {section_word}
  1751. 0x00007f72e910c20a: push %r10
  1752. 0x00007f72e910c20c: jmpq 0x00007f72e9047240 ; {runtime_call}
  1753. 0x00007f72e910c211: hlt
  1754. 0x00007f72e910c212: hlt
  1755. 0x00007f72e910c213: hlt
  1756. 0x00007f72e910c214: hlt
  1757. 0x00007f72e910c215: hlt
  1758. 0x00007f72e910c216: hlt
  1759. 0x00007f72e910c217: hlt
  1760. Decoding compiled method 0x00007f72e9102350:
  1761. Code:
  1762. [Entry Point]
  1763. [Constants]
  1764. # {method} {0x00007f72e3800480} '<init>' '()V' in 'java/lang/Object'
  1765. # [sp+0x40] (sp of caller)
  1766. 0x00007f72e91024a0: mov 0x8(%rsi),%r10d
  1767. 0x00007f72e91024a4: shl $0x3,%r10
  1768. 0x00007f72e91024a8: cmp %rax,%r10
  1769. 0x00007f72e91024ab: jne 0x00007f72e9045ba0 ; {runtime_call}
  1770. 0x00007f72e91024b1: data16 data16 nopw 0x0(%rax,%rax,1)
  1771. 0x00007f72e91024bc: data16 data16 xchg %ax,%ax
  1772. [Verified Entry Point]
  1773. 0x00007f72e91024c0: mov %eax,-0x14000(%rsp)
  1774. 0x00007f72e91024c7: push %rbp
  1775. 0x00007f72e91024c8: sub $0x30,%rsp
  1776. 0x00007f72e91024cc: mov %rsi,%rdi ;*return
  1777. ; - java.lang.Object::<init>@0 (line 37)
  1778.  
  1779. 0x00007f72e91024cf: mov %rsi,0x20(%rsp)
  1780. 0x00007f72e91024d4: callq 0x00007f72e90f9ba0 ; OopMap{[32]=Oop off=57}
  1781. ;*return
  1782. ; - java.lang.Object::<init>@0 (line 37)
  1783. ; {runtime_call}
  1784. 0x00007f72e91024d9: add $0x30,%rsp
  1785. 0x00007f72e91024dd: pop %rbp
  1786. 0x00007f72e91024de: test %eax,0x16a4dc1c(%rip) # 0x00007f72ffb50100
  1787. ; {poll_return}
  1788. 0x00007f72e91024e4: retq
  1789. 0x00007f72e91024e5: nop
  1790. 0x00007f72e91024e6: nop
  1791. 0x00007f72e91024e7: mov 0x290(%r15),%rax
  1792. 0x00007f72e91024ee: movabs $0x0,%r10
  1793. 0x00007f72e91024f8: mov %r10,0x290(%r15)
  1794. 0x00007f72e91024ff: movabs $0x0,%r10
  1795. 0x00007f72e9102509: mov %r10,0x298(%r15)
  1796. 0x00007f72e9102510: add $0x30,%rsp
  1797. 0x00007f72e9102514: pop %rbp
  1798. 0x00007f72e9102515: jmpq 0x00007f72e90f9360 ; {runtime_call}
  1799. 0x00007f72e910251a: hlt
  1800. 0x00007f72e910251b: hlt
  1801. 0x00007f72e910251c: hlt
  1802. 0x00007f72e910251d: hlt
  1803. 0x00007f72e910251e: hlt
  1804. 0x00007f72e910251f: hlt
  1805. [Exception Handler]
  1806. [Stub Code]
  1807. 0x00007f72e9102520: callq 0x00007f72e90fb820 ; {no_reloc}
  1808. 0x00007f72e9102525: mov %rsp,-0x28(%rsp)
  1809. 0x00007f72e910252a: sub $0x80,%rsp
  1810. 0x00007f72e9102531: mov %rax,0x78(%rsp)
  1811. 0x00007f72e9102536: mov %rcx,0x70(%rsp)
  1812. 0x00007f72e910253b: mov %rdx,0x68(%rsp)
  1813. 0x00007f72e9102540: mov %rbx,0x60(%rsp)
  1814. 0x00007f72e9102545: mov %rbp,0x50(%rsp)
  1815. 0x00007f72e910254a: mov %rsi,0x48(%rsp)
  1816. 0x00007f72e910254f: mov %rdi,0x40(%rsp)
  1817. 0x00007f72e9102554: mov %r8,0x38(%rsp)
  1818. 0x00007f72e9102559: mov %r9,0x30(%rsp)
  1819. 0x00007f72e910255e: mov %r10,0x28(%rsp)
  1820. 0x00007f72e9102563: mov %r11,0x20(%rsp)
  1821. 0x00007f72e9102568: mov %r12,0x18(%rsp)
  1822. 0x00007f72e910256d: mov %r13,0x10(%rsp)
  1823. 0x00007f72e9102572: mov %r14,0x8(%rsp)
  1824. 0x00007f72e9102577: mov %r15,(%rsp)
  1825. 0x00007f72e910257b: movabs $0x7f72fe733a12,%rdi ; {external_word}
  1826. 0x00007f72e9102585: movabs $0x7f72e9102525,%rsi ; {internal_word}
  1827. 0x00007f72e910258f: mov %rsp,%rdx
  1828. 0x00007f72e9102592: and $0xfffffffffffffff0,%rsp
  1829. 0x00007f72e9102596: callq 0x00007f72fe438740 ; {runtime_call}
  1830. 0x00007f72e910259b: hlt
  1831. [Deopt Handler Code]
  1832. 0x00007f72e910259c: movabs $0x7f72e910259c,%r10 ; {section_word}
  1833. 0x00007f72e91025a6: push %r10
  1834. 0x00007f72e91025a8: jmpq 0x00007f72e9047240 ; {runtime_call}
  1835. 0x00007f72e91025ad: hlt
  1836. 0x00007f72e91025ae: hlt
  1837. 0x00007f72e91025af: hlt
  1838. Decoding compiled method 0x00007f72e910cc10:
  1839. Code:
  1840. [Entry Point]
  1841. [Constants]
  1842. # {method} {0x00007f72e3828488} 'get' '()Ljava/lang/Object;' in 'java/lang/ref/Reference'
  1843. # [sp+0x40] (sp of caller)
  1844. 0x00007f72e910cd60: mov 0x8(%rsi),%r10d
  1845. 0x00007f72e910cd64: shl $0x3,%r10
  1846. 0x00007f72e910cd68: cmp %rax,%r10
  1847. 0x00007f72e910cd6b: jne 0x00007f72e9045ba0 ; {runtime_call}
  1848. 0x00007f72e910cd71: data16 data16 nopw 0x0(%rax,%rax,1)
  1849. 0x00007f72e910cd7c: data16 data16 xchg %ax,%ax
  1850. [Verified Entry Point]
  1851. 0x00007f72e910cd80: mov %eax,-0x14000(%rsp)
  1852. 0x00007f72e910cd87: push %rbp
  1853. 0x00007f72e910cd88: sub $0x30,%rsp
  1854. 0x00007f72e910cd8c: mov 0xc(%rsi),%eax
  1855. 0x00007f72e910cd8f: shl $0x3,%rax ;*aload_0
  1856. ; - java.lang.ref.Reference::get@0 (line 254)
  1857.  
  1858. 0x00007f72e910cd93: add $0x30,%rsp
  1859. 0x00007f72e910cd97: pop %rbp
  1860. 0x00007f72e910cd98: test %eax,0x16a43362(%rip) # 0x00007f72ffb50100
  1861. ; {poll_return}
  1862. 0x00007f72e910cd9e: retq
  1863. 0x00007f72e910cd9f: nop
  1864. 0x00007f72e910cda0: nop
  1865. 0x00007f72e910cda1: mov 0x290(%r15),%rax
  1866. 0x00007f72e910cda8: movabs $0x0,%r10
  1867. 0x00007f72e910cdb2: mov %r10,0x290(%r15)
  1868. 0x00007f72e910cdb9: movabs $0x0,%r10
  1869. 0x00007f72e910cdc3: mov %r10,0x298(%r15)
  1870. 0x00007f72e910cdca: add $0x30,%rsp
  1871. 0x00007f72e910cdce: pop %rbp
  1872. 0x00007f72e910cdcf: jmpq 0x00007f72e90f9360 ; {runtime_call}
  1873. 0x00007f72e910cdd4: hlt
  1874. 0x00007f72e910cdd5: hlt
  1875. 0x00007f72e910cdd6: hlt
  1876. 0x00007f72e910cdd7: hlt
  1877. 0x00007f72e910cdd8: hlt
  1878. 0x00007f72e910cdd9: hlt
  1879. 0x00007f72e910cdda: hlt
  1880. 0x00007f72e910cddb: hlt
  1881. 0x00007f72e910cddc: hlt
  1882. 0x00007f72e910cddd: hlt
  1883. 0x00007f72e910cdde: hlt
  1884. 0x00007f72e910cddf: hlt
  1885. [Exception Handler]
  1886. [Stub Code]
  1887. 0x00007f72e910cde0: callq 0x00007f72e90fb820 ; {no_reloc}
  1888. 0x00007f72e910cde5: mov %rsp,-0x28(%rsp)
  1889. 0x00007f72e910cdea: sub $0x80,%rsp
  1890. 0x00007f72e910cdf1: mov %rax,0x78(%rsp)
  1891. 0x00007f72e910cdf6: mov %rcx,0x70(%rsp)
  1892. 0x00007f72e910cdfb: mov %rdx,0x68(%rsp)
  1893. 0x00007f72e910ce00: mov %rbx,0x60(%rsp)
  1894. 0x00007f72e910ce05: mov %rbp,0x50(%rsp)
  1895. 0x00007f72e910ce0a: mov %rsi,0x48(%rsp)
  1896. 0x00007f72e910ce0f: mov %rdi,0x40(%rsp)
  1897. 0x00007f72e910ce14: mov %r8,0x38(%rsp)
  1898. 0x00007f72e910ce19: mov %r9,0x30(%rsp)
  1899. 0x00007f72e910ce1e: mov %r10,0x28(%rsp)
  1900. 0x00007f72e910ce23: mov %r11,0x20(%rsp)
  1901. 0x00007f72e910ce28: mov %r12,0x18(%rsp)
  1902. 0x00007f72e910ce2d: mov %r13,0x10(%rsp)
  1903. 0x00007f72e910ce32: mov %r14,0x8(%rsp)
  1904. 0x00007f72e910ce37: mov %r15,(%rsp)
  1905. 0x00007f72e910ce3b: movabs $0x7f72fe733a12,%rdi ; {external_word}
  1906. 0x00007f72e910ce45: movabs $0x7f72e910cde5,%rsi ; {internal_word}
  1907. 0x00007f72e910ce4f: mov %rsp,%rdx
  1908. 0x00007f72e910ce52: and $0xfffffffffffffff0,%rsp
  1909. 0x00007f72e910ce56: callq 0x00007f72fe438740 ; {runtime_call}
  1910. 0x00007f72e910ce5b: hlt
  1911. [Deopt Handler Code]
  1912. 0x00007f72e910ce5c: movabs $0x7f72e910ce5c,%r10 ; {section_word}
  1913. 0x00007f72e910ce66: push %r10
  1914. 0x00007f72e910ce68: jmpq 0x00007f72e9047240 ; {runtime_call}
  1915. 0x00007f72e910ce6d: hlt
  1916. 0x00007f72e910ce6e: hlt
  1917. 0x00007f72e910ce6f: hlt
  1918. Hello world!
  1919. [kiv@XPS-13-9350 ~]$
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement