equal
deleted
inserted
replaced
382 CodeBlob* cb = CodeCache::find_blob_unsafe(pc); |
382 CodeBlob* cb = CodeCache::find_blob_unsafe(pc); |
383 CompiledMethod* nm = (cb != NULL) ? cb->as_compiled_method_or_null() : NULL; |
383 CompiledMethod* nm = (cb != NULL) ? cb->as_compiled_method_or_null() : NULL; |
384 if (nm != NULL && nm->has_unsafe_access()) { |
384 if (nm != NULL && nm->has_unsafe_access()) { |
385 unsafe_access = true; |
385 unsafe_access = true; |
386 } |
386 } |
387 } else if (sig == SIGSEGV && !MacroAssembler::needs_explicit_null_check((intptr_t)info->si_addr)) { |
387 } else if (sig == SIGSEGV && |
|
388 MacroAssembler::uses_implicit_null_check(info->si_addr)) { |
388 // Determination of interpreter/vtable stub/compiled code null exception |
389 // Determination of interpreter/vtable stub/compiled code null exception |
389 CodeBlob* cb = CodeCache::find_blob_unsafe(pc); |
390 CodeBlob* cb = CodeCache::find_blob_unsafe(pc); |
390 if (cb != NULL) { |
391 if (cb != NULL) { |
391 stub = SharedRuntime::continuation_for_implicit_exception(thread, pc, SharedRuntime::IMPLICIT_NULL); |
392 stub = SharedRuntime::continuation_for_implicit_exception(thread, pc, SharedRuntime::IMPLICIT_NULL); |
392 } |
393 } |
680 |
681 |
681 int os::extra_bang_size_in_bytes() { |
682 int os::extra_bang_size_in_bytes() { |
682 // ARM does not require an additional stack bang. |
683 // ARM does not require an additional stack bang. |
683 return 0; |
684 return 0; |
684 } |
685 } |
685 |
|