Mercurial > hg > graal-jvmci-8
comparison src/cpu/x86/vm/sharedRuntime_x86_64.cpp @ 14957:4062efea018b
Remove compiled method call intrinsic.
author | Thomas Wuerthinger <thomas.wuerthinger@oracle.com> |
---|---|
date | Thu, 03 Apr 2014 17:47:29 +0200 |
parents | 4ca6dc0799b6 |
children | ed29f7ff71eb |
comparison
equal
deleted
inserted
replaced
14953:5a87cbdd8a09 | 14957:4062efea018b |
---|---|
1675 const BasicType* sig_bt, | 1675 const BasicType* sig_bt, |
1676 const VMRegPair* regs) { | 1676 const VMRegPair* regs) { |
1677 verify_oop_args(masm, method, sig_bt, regs); | 1677 verify_oop_args(masm, method, sig_bt, regs); |
1678 vmIntrinsics::ID iid = method->intrinsic_id(); | 1678 vmIntrinsics::ID iid = method->intrinsic_id(); |
1679 | 1679 |
1680 #ifdef GRAAL | |
1681 if (iid == vmIntrinsics::_CompilerToVMImpl_executeCompiledMethod) { | |
1682 // We are called from compiled code here. The three object arguments | |
1683 // are already in the correct registers (j_rarg0, jrarg1, jrarg2). The | |
1684 // fourth argument (j_rarg3) is a pointer to the HotSpotInstalledCode object. | |
1685 | |
1686 // Load the nmethod pointer from the HotSpotInstalledCode object | |
1687 __ movq(j_rarg4, Address(j_rarg3, sizeof(oopDesc))); | |
1688 | |
1689 // Check whether the nmethod was invalidated | |
1690 __ testq(j_rarg4, j_rarg4); | |
1691 Label invalid_nmethod; | |
1692 __ jcc(Assembler::zero, invalid_nmethod); | |
1693 | |
1694 // Perform a tail call to the verified entry point of the nmethod. | |
1695 __ jmp(Address(j_rarg4, nmethod::verified_entry_point_offset())); | |
1696 | |
1697 __ bind(invalid_nmethod); | |
1698 | |
1699 __ jump(RuntimeAddress(StubRoutines::throw_InvalidInstalledCodeException_entry())); | |
1700 return; | |
1701 } | |
1702 #endif | |
1703 | |
1704 // Now write the args into the outgoing interpreter space | 1680 // Now write the args into the outgoing interpreter space |
1705 bool has_receiver = false; | 1681 bool has_receiver = false; |
1706 Register receiver_reg = noreg; | 1682 Register receiver_reg = noreg; |
1707 int member_arg_pos = -1; | 1683 int member_arg_pos = -1; |
1708 Register member_reg = noreg; | 1684 Register member_reg = noreg; |