Mercurial > hg > graal-compiler
diff src/share/vm/c1/c1_Runtime1.cpp @ 6446:c8759f9f9e3c
added Log.printf() for more flexibility in debugging snippets
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Wed, 26 Sep 2012 18:15:11 +0200 |
parents | 7d6f44854ee3 |
children | 3bba61323b38 |
line wrap: on
line diff
--- a/src/share/vm/c1/c1_Runtime1.cpp Wed Sep 26 13:56:27 2012 +0200 +++ b/src/share/vm/c1/c1_Runtime1.cpp Wed Sep 26 18:15:11 2012 +0200 @@ -805,6 +805,27 @@ } JRT_END +JRT_ENTRY(void, Runtime1::graal_log_printf(JavaThread* thread, oop format, jlong val)) + char buf[1025]; + assert(format != NULL && java_lang_String::is_instance(format), "must be"); + + typeArrayOop value = java_lang_String::value(format); + int offset = java_lang_String::offset(format); + int length = java_lang_String::length(format); + + assert(value != NULL, "fmtString must be a literal"); + assert(length >= 0 && length <= 1024, "format must be between 0 and 1024 characters"); + length = MIN2(length, 1024); + + int index = 0; + while (index < length) { + buf[index] = value->char_at(index + offset); + index++; + } + buf[index++] = 0; + tty->print(buf, val); +JRT_END + JRT_ENTRY(void, Runtime1::graal_log_primitive(JavaThread* thread, jchar typeChar, jlong value, jboolean newline)) union { jlong l;