comparison src/share/vm/c1x/c1x_CodeInstaller.cpp @ 2059:9508a52cbd32

Add deoptimization blob support.
author Thomas Wuerthinger <wuerthinger@ssw.jku.at>
date Wed, 19 Jan 2011 15:48:15 +0100
parents 3c0a889a176b
children 9569fdf936ff
comparison
equal deleted inserted replaced
2058:8f033d37798a 2059:9508a52cbd32
521 _instructions->relocate(call->instruction_address(), runtime_call_Relocation::spec(), Assembler::call32_operand); 521 _instructions->relocate(call->instruction_address(), runtime_call_Relocation::spec(), Assembler::call32_operand);
522 TRACE_C1X_3("CiRuntimeCall::ArithmeticDrem()"); 522 TRACE_C1X_3("CiRuntimeCall::ArithmeticDrem()");
523 } else if (runtime_call == CiRuntimeCall::RegisterFinalizer()) { 523 } else if (runtime_call == CiRuntimeCall::RegisterFinalizer()) {
524 call->set_destination(Runtime1::entry_for(Runtime1::register_finalizer_id)); 524 call->set_destination(Runtime1::entry_for(Runtime1::register_finalizer_id));
525 _instructions->relocate(call->instruction_address(), runtime_call_Relocation::spec(), Assembler::call32_operand); 525 _instructions->relocate(call->instruction_address(), runtime_call_Relocation::spec(), Assembler::call32_operand);
526 } else if (runtime_call == CiRuntimeCall::Deoptimize()) {
527 call->set_destination(SharedRuntime::deopt_blob()->uncommon_trap());
528 _instructions->relocate(call->instruction_address(), runtime_call_Relocation::spec(), Assembler::call32_operand);
526 } else { 529 } else {
527 runtime_call->print(); 530 runtime_call->print();
528 fatal("runtime_call not implemented"); 531 fatal("runtime_call not implemented");
529 } 532 }
530 } else if (global_stub != NULL) { 533 } else if (global_stub != NULL) {