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: ");