Mercurial > hg > truffle
comparison src/share/vm/graal/graalRuntime.cpp @ 9471:5fa54bf57f8c
replaced exception_handler_nofpu assembler stub with a compiled stub (GRAAL-81)
generalized stub printf mechanism to also serve as a fatal VM exit message
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Wed, 01 May 2013 17:46:12 +0200 |
parents | 3e7d22d31f7e |
children | 3d3da5a588bb |
comparison
equal
deleted
inserted
replaced
9466:b8cae7920bca | 9471:5fa54bf57f8c |
---|---|
400 if (continuation != NULL && !SharedRuntime::deopt_blob()->contains(continuation)) { | 400 if (continuation != NULL && !SharedRuntime::deopt_blob()->contains(continuation)) { |
401 nm->add_handler_for_exception_and_pc(exception, pc, continuation); | 401 nm->add_handler_for_exception_and_pc(exception, pc, continuation); |
402 } | 402 } |
403 } | 403 } |
404 | 404 |
405 thread->set_vm_result(exception()); | |
406 // Set flag if return address is a method handle call site. | 405 // Set flag if return address is a method handle call site. |
407 thread->set_is_method_handle_return(nm->is_method_handle_return(pc)); | 406 thread->set_is_method_handle_return(nm->is_method_handle_return(pc)); |
408 | 407 |
409 if (TraceExceptions) { | 408 if (TraceExceptions) { |
410 ttyLocker ttyl; | 409 ttyLocker ttyl; |
568 assert(format != NULL && java_lang_String::is_instance(format), "must be"); | 567 assert(format != NULL && java_lang_String::is_instance(format), "must be"); |
569 char *buf = java_lang_String::as_utf8_string(format); | 568 char *buf = java_lang_String::as_utf8_string(format); |
570 tty->print(buf, v1, v2, v3); | 569 tty->print(buf, v1, v2, v3); |
571 JRT_END | 570 JRT_END |
572 | 571 |
573 JRT_LEAF(void, GraalRuntime::stub_printf(jlong format, jlong v1, jlong v2, jlong v3)) | 572 JRT_LEAF(void, GraalRuntime::vm_message(jboolean vmError, jlong format, jlong v1, jlong v2, jlong v3)) |
574 ResourceMark rm; | 573 ResourceMark rm; |
575 char *buf = (char*) (address) format; | 574 char *buf = (char*) (address) format; |
576 tty->print(buf, v1, v2, v3); | 575 if (vmError) { |
576 fatal(err_msg(buf, v1, v2, v3)); | |
577 } else { | |
578 tty->print(buf, v1, v2, v3); | |
579 } | |
577 JRT_END | 580 JRT_END |
578 | 581 |
579 JRT_ENTRY(void, GraalRuntime::log_primitive(JavaThread* thread, jchar typeChar, jlong value, jboolean newline)) | 582 JRT_ENTRY(void, GraalRuntime::log_primitive(JavaThread* thread, jchar typeChar, jlong value, jboolean newline)) |
580 union { | 583 union { |
581 jlong l; | 584 jlong l; |