下面这段代码逻辑上属于之前的存储java方法的返回值,随便举个例子0x0000026b0a5d0b30这个地址正是之前存放java方法的代码段je 0x0000026b0a5d0b30所跳之处,只是放到了最后而已:(不过我也不知道为什么要放到这后面)
// handle return types different from T_INT __ BIND(is_long); __ movq(Address(c_rarg0, 0), rax); __ jmp(exit); __ BIND(is_float); __ movflt(Address(c_rarg0, 0), xmm0); __ jmp(exit); __ BIND(is_double); __ movdbl(Address(c_rarg0, 0), xmm0); __ jmp(exit); return start; } 0x0000026b0a5d0b30: mov %rax,(%rcx) 0x0000026b0a5d0b33: jmp 0x0000026b0a5d0abd 0x0000026b0a5d0b35: vmovss %xmm0,(%rcx) 0x0000026b0a5d0b39: jmp 0x0000026b0a5d0abd 0x0000026b0a5d0b3b: vmovsd %xmm0,(%rcx) 0x0000026b0a5d0b3f: jmpq 0x0000026b0a5d0abd[inside hotspot] java方法调用的StubCode (3)
内容版权声明:除非注明,否则皆为本站原创文章。