equal
deleted
inserted
replaced
1760 #endif |
1760 #endif |
1761 |
1761 |
1762 return callee_method; |
1762 return callee_method; |
1763 } |
1763 } |
1764 |
1764 |
|
1765 address SharedRuntime::handle_unsafe_access(JavaThread* thread, address next_pc) { |
|
1766 // The faulting unsafe accesses should be changed to throw the error |
|
1767 // synchronously instead. Meanwhile the faulting instruction will be |
|
1768 // skipped over (effectively turning it into a no-op) and an |
|
1769 // asynchronous exception will be raised which the thread will |
|
1770 // handle at a later point. If the instruction is a load it will |
|
1771 // return garbage. |
|
1772 |
|
1773 // Request an async exception. |
|
1774 thread->set_pending_unsafe_access_error(); |
|
1775 |
|
1776 // Return address of next instruction to execute. |
|
1777 return next_pc; |
|
1778 } |
|
1779 |
1765 #ifdef ASSERT |
1780 #ifdef ASSERT |
1766 void SharedRuntime::check_member_name_argument_is_last_argument(const methodHandle& method, |
1781 void SharedRuntime::check_member_name_argument_is_last_argument(const methodHandle& method, |
1767 const BasicType* sig_bt, |
1782 const BasicType* sig_bt, |
1768 const VMRegPair* regs) { |
1783 const VMRegPair* regs) { |
1769 ResourceMark rm; |
1784 ResourceMark rm; |