equal
deleted
inserted
replaced
1759 |
1759 |
1760 // insert a nop at the start of the prolog so we can patch in a |
1760 // insert a nop at the start of the prolog so we can patch in a |
1761 // branch if we need to invalidate the method later |
1761 // branch if we need to invalidate the method later |
1762 __ nop(); |
1762 __ nop(); |
1763 |
1763 |
|
1764 if (C->clinit_barrier_on_entry()) { |
|
1765 assert(!C->method()->holder()->is_not_initialized(), "initialization should have been started"); |
|
1766 |
|
1767 Label L_skip_barrier; |
|
1768 |
|
1769 __ mov_metadata(rscratch2, C->method()->holder()->constant_encoding()); |
|
1770 __ clinit_barrier(rscratch2, rscratch1, &L_skip_barrier); |
|
1771 __ far_jump(RuntimeAddress(SharedRuntime::get_handle_wrong_method_stub())); |
|
1772 __ bind(L_skip_barrier); |
|
1773 } |
|
1774 |
1764 int bangsize = C->bang_size_in_bytes(); |
1775 int bangsize = C->bang_size_in_bytes(); |
1765 if (C->need_stack_bang(bangsize) && UseStackBanging) |
1776 if (C->need_stack_bang(bangsize) && UseStackBanging) |
1766 __ generate_stack_overflow_check(bangsize); |
1777 __ generate_stack_overflow_check(bangsize); |
1767 |
1778 |
1768 __ build_frame(framesize); |
1779 __ build_frame(framesize); |