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;