Mercurial > hg > truffle
comparison src/share/vm/runtime/deoptimization.cpp @ 6853:d804e148cff8
Merge
author | kvn |
---|---|
date | Fri, 12 Oct 2012 09:22:52 -0700 |
parents | d8ce2825b193 c3e799c37717 |
children | 18fb7da42534 |
comparison
equal
deleted
inserted
replaced
6842:b9a9ed0f8eeb | 6853:d804e148cff8 |
---|---|
231 oop result = deoptee.saved_oop_result(&map); | 231 oop result = deoptee.saved_oop_result(&map); |
232 assert(result == NULL || result->is_oop(), "must be oop"); | 232 assert(result == NULL || result->is_oop(), "must be oop"); |
233 return_value = Handle(thread, result); | 233 return_value = Handle(thread, result); |
234 assert(Universe::heap()->is_in_or_null(result), "must be heap pointer"); | 234 assert(Universe::heap()->is_in_or_null(result), "must be heap pointer"); |
235 if (TraceDeoptimization) { | 235 if (TraceDeoptimization) { |
236 ttyLocker ttyl; | |
236 tty->print_cr("SAVED OOP RESULT " INTPTR_FORMAT " in thread " INTPTR_FORMAT, result, thread); | 237 tty->print_cr("SAVED OOP RESULT " INTPTR_FORMAT " in thread " INTPTR_FORMAT, result, thread); |
237 } | 238 } |
238 } | 239 } |
239 bool reallocated = false; | 240 bool reallocated = false; |
240 if (objects != NULL) { | 241 if (objects != NULL) { |
491 // correct (initial fp value, unextended sp, ...) | 492 // correct (initial fp value, unextended sp, ...) |
492 info->set_initial_info((intptr_t) array->sender().initial_deoptimization_info()); | 493 info->set_initial_info((intptr_t) array->sender().initial_deoptimization_info()); |
493 | 494 |
494 if (array->frames() > 1) { | 495 if (array->frames() > 1) { |
495 if (VerifyStack && TraceDeoptimization) { | 496 if (VerifyStack && TraceDeoptimization) { |
497 ttyLocker ttyl; | |
496 tty->print_cr("Deoptimizing method containing inlining"); | 498 tty->print_cr("Deoptimizing method containing inlining"); |
497 } | 499 } |
498 } | 500 } |
499 | 501 |
500 array->set_unroll_block(info); | 502 array->set_unroll_block(info); |
571 // must point to the vframeArray for the unpack frame. | 573 // must point to the vframeArray for the unpack frame. |
572 vframeArray* array = thread->vframe_array_head(); | 574 vframeArray* array = thread->vframe_array_head(); |
573 | 575 |
574 #ifndef PRODUCT | 576 #ifndef PRODUCT |
575 if (TraceDeoptimization) { | 577 if (TraceDeoptimization) { |
578 ttyLocker ttyl; | |
576 tty->print_cr("DEOPT UNPACKING thread " INTPTR_FORMAT " vframeArray " INTPTR_FORMAT " mode %d", thread, array, exec_mode); | 579 tty->print_cr("DEOPT UNPACKING thread " INTPTR_FORMAT " vframeArray " INTPTR_FORMAT " mode %d", thread, array, exec_mode); |
577 } | 580 } |
578 #endif | 581 #endif |
579 Events::log(thread, "DEOPT UNPACKING pc=" INTPTR_FORMAT " sp=" INTPTR_FORMAT " mode %d", | 582 Events::log(thread, "DEOPT UNPACKING pc=" INTPTR_FORMAT " sp=" INTPTR_FORMAT " mode %d", |
580 stub_frame.pc(), stub_frame.sp(), exec_mode); | 583 stub_frame.pc(), stub_frame.sp(), exec_mode); |
1320 xtty->end_head(); | 1323 xtty->end_head(); |
1321 } | 1324 } |
1322 if (TraceDeoptimization) { // make noise on the tty | 1325 if (TraceDeoptimization) { // make noise on the tty |
1323 tty->print("Uncommon trap occurred in"); | 1326 tty->print("Uncommon trap occurred in"); |
1324 nm->method()->print_short_name(tty); | 1327 nm->method()->print_short_name(tty); |
1325 tty->print(" (@" INTPTR_FORMAT ") thread=%d reason=%s action=%s unloaded_class_index=%d", | 1328 tty->print(" (@" INTPTR_FORMAT ") thread=" UINTX_FORMAT " reason=%s action=%s unloaded_class_index=%d", |
1326 fr.pc(), | 1329 fr.pc(), |
1327 (int) os::current_thread_id(), | 1330 os::current_thread_id(), |
1328 trap_reason_name(reason), | 1331 trap_reason_name(reason), |
1329 trap_action_name(action), | 1332 trap_action_name(action), |
1330 unloaded_class_index); | 1333 unloaded_class_index); |
1331 if (class_name != NULL) { | 1334 if (class_name != NULL) { |
1332 tty->print(unresolved ? " unresolved class: " : " symbol: "); | 1335 tty->print(unresolved ? " unresolved class: " : " symbol: "); |