Mercurial > hg > graal-compiler
comparison src/share/vm/graal/graalCodeInstaller.cpp @ 3538:e4616e3d207b
support for new CiRuntimeCalls CreateNullPointerException and CreateOutOfBoundsException
author | Lukas Stadler <lukas.stadler@jku.at> |
---|---|
date | Wed, 10 Aug 2011 18:19:09 +0200 |
parents | 5aeb62416609 |
children | 25765a764212 |
comparison
equal
deleted
inserted
replaced
3536:c4f88f4ede54 | 3538:e4616e3d207b |
---|---|
592 TRACE_graal_3("CiRuntimeCall::UnwindException()"); | 592 TRACE_graal_3("CiRuntimeCall::UnwindException()"); |
593 } else if (runtime_call == CiRuntimeCall::HandleException()) { | 593 } else if (runtime_call == CiRuntimeCall::HandleException()) { |
594 call->set_destination(Runtime1::entry_for(Runtime1::graal_handle_exception_id)); | 594 call->set_destination(Runtime1::entry_for(Runtime1::graal_handle_exception_id)); |
595 _instructions->relocate(call->instruction_address(), runtime_call_Relocation::spec(), Assembler::call32_operand); | 595 _instructions->relocate(call->instruction_address(), runtime_call_Relocation::spec(), Assembler::call32_operand); |
596 TRACE_graal_3("CiRuntimeCall::HandleException()"); | 596 TRACE_graal_3("CiRuntimeCall::HandleException()"); |
597 } else if (runtime_call == CiRuntimeCall::CreateNullPointerException()) { | |
598 call->set_destination(Runtime1::entry_for(Runtime1::graal_create_null_pointer_exception_id)); | |
599 _instructions->relocate(call->instruction_address(), runtime_call_Relocation::spec(), Assembler::call32_operand); | |
600 TRACE_graal_3("CiRuntimeCall::CreateNullPointerException()"); | |
601 } else if (runtime_call == CiRuntimeCall::CreateOutOfBoundsException()) { | |
602 call->set_destination(Runtime1::entry_for(Runtime1::graal_create_out_of_bounds_exception_id)); | |
603 _instructions->relocate(call->instruction_address(), runtime_call_Relocation::spec(), Assembler::call32_operand); | |
604 TRACE_graal_3("CiRuntimeCall::CreateOutOfBoundsException()"); | |
597 } else if (runtime_call == CiRuntimeCall::JavaTimeMillis()) { | 605 } else if (runtime_call == CiRuntimeCall::JavaTimeMillis()) { |
598 call->set_destination((address)os::javaTimeMillis); | 606 call->set_destination((address)os::javaTimeMillis); |
599 _instructions->relocate(call->instruction_address(), runtime_call_Relocation::spec(), Assembler::call32_operand); | 607 _instructions->relocate(call->instruction_address(), runtime_call_Relocation::spec(), Assembler::call32_operand); |
600 TRACE_graal_3("CiRuntimeCall::JavaTimeMillis()"); | 608 TRACE_graal_3("CiRuntimeCall::JavaTimeMillis()"); |
601 } else if (runtime_call == CiRuntimeCall::JavaTimeNanos()) { | 609 } else if (runtime_call == CiRuntimeCall::JavaTimeNanos()) { |
656 _instructions->relocate(call->instruction_address(), virtual_call_Relocation::spec(_invoke_mark_pc), Assembler::call32_operand); | 664 _instructions->relocate(call->instruction_address(), virtual_call_Relocation::spec(_invoke_mark_pc), Assembler::call32_operand); |
657 break; | 665 break; |
658 } | 666 } |
659 case MARK_INVOKESTATIC: { | 667 case MARK_INVOKESTATIC: { |
660 assert(method == NULL || method->is_static(), "cannot call non-static method with invokestatic"); | 668 assert(method == NULL || method->is_static(), "cannot call non-static method with invokestatic"); |
669 | |
661 call->set_destination(SharedRuntime::get_resolve_static_call_stub()); | 670 call->set_destination(SharedRuntime::get_resolve_static_call_stub()); |
662 _instructions->relocate(call->instruction_address(), relocInfo::static_call_type, Assembler::call32_operand); | 671 _instructions->relocate(call->instruction_address(), relocInfo::static_call_type, Assembler::call32_operand); |
663 break; | 672 break; |
664 } | 673 } |
665 case MARK_INVOKESPECIAL: { | 674 case MARK_INVOKESPECIAL: { |