equal
deleted
inserted
replaced
219 // If the vtable entry is null, the method is abstract. |
219 // If the vtable entry is null, the method is abstract. |
220 address ame_addr = __ pc(); // ame = abstract method error |
220 address ame_addr = __ pc(); // ame = abstract method error |
221 |
221 |
222 // Must do an explicit check if implicit checks are disabled. |
222 // Must do an explicit check if implicit checks are disabled. |
223 assert(!MacroAssembler::needs_explicit_null_check(in_bytes(Method::from_compiled_offset())), "sanity"); |
223 assert(!MacroAssembler::needs_explicit_null_check(in_bytes(Method::from_compiled_offset())), "sanity"); |
224 if (!ImplicitNullChecks NOT_LINUX(|| true) /*!os::zero_page_read_protected()*/) { |
224 if (!ImplicitNullChecks || !os::zero_page_read_protected()) { |
225 if (TrapBasedNullChecks) { |
225 if (TrapBasedNullChecks) { |
226 __ trap_null_check(R19_method); |
226 __ trap_null_check(R19_method); |
227 } else { |
227 } else { |
228 __ cmpdi(CCR0, R19_method, 0); |
228 __ cmpdi(CCR0, R19_method, 0); |
229 __ beq(CCR0, throw_icce); |
229 __ beq(CCR0, throw_icce); |