comparison src/share/vm/graal/graalCodeInstaller.cpp @ 10854:e1fcdda22831

SPARC: can compile some stubs now but they don't work yet
author twisti
date Mon, 22 Jul 2013 22:26:49 -0700
parents 4e1db4c9d4c5
children b5f6188d79c5
comparison
equal deleted inserted replaced
10853:22baf2a69f6d 10854:e1fcdda22831
732 NativeInstruction* inst = nativeInstruction_at(_instructions->start() + pc_offset); 732 NativeInstruction* inst = nativeInstruction_at(_instructions->start() + pc_offset);
733 jint next_pc_offset = CodeInstaller::pd_next_offset(inst, pc_offset, hotspot_method); 733 jint next_pc_offset = CodeInstaller::pd_next_offset(inst, pc_offset, hotspot_method);
734 734
735 if (target->is_a(SystemDictionary::HotSpotInstalledCode_klass())) { 735 if (target->is_a(SystemDictionary::HotSpotInstalledCode_klass())) {
736 assert(inst->is_jump(), "jump expected"); 736 assert(inst->is_jump(), "jump expected");
737
738 CodeBlob* cb = (CodeBlob*) (address) HotSpotInstalledCode::codeBlob(target); 737 CodeBlob* cb = (CodeBlob*) (address) HotSpotInstalledCode::codeBlob(target);
739 assert(cb != NULL, "npe"); 738 assert(cb != NULL, "npe");
740
741 CodeInstaller::pd_relocate_CodeBlob(cb, inst); 739 CodeInstaller::pd_relocate_CodeBlob(cb, inst);
742
743 return; 740 return;
744 } 741 }
745 742
746 if (debug_info != NULL) { 743 if (debug_info != NULL) {
747 oop frame = DebugInfo::bytecodePosition(debug_info); 744 oop frame = DebugInfo::bytecodePosition(debug_info);
753 } 750 }
754 } 751 }
755 752
756 if (foreign_call != NULL) { 753 if (foreign_call != NULL) {
757 jlong foreign_call_destination = HotSpotForeignCallLinkage::address(foreign_call); 754 jlong foreign_call_destination = HotSpotForeignCallLinkage::address(foreign_call);
758
759 CodeInstaller::pd_relocate_ForeignCall(inst, foreign_call_destination); 755 CodeInstaller::pd_relocate_ForeignCall(inst, foreign_call_destination);
760 } else { // method != NULL 756 } else { // method != NULL
761 assert(hotspot_method != NULL, "unexpected JavaMethod"); 757 assert(hotspot_method != NULL, "unexpected JavaMethod");
762 assert(debug_info != NULL, "debug info expected"); 758 assert(debug_info != NULL, "debug info expected");
763 759
764 TRACE_graal_3("method call"); 760 TRACE_graal_3("method call");
765 CodeInstaller::pd_relocate_JavaMethod(hotspot_method, pc_offset); 761 CodeInstaller::pd_relocate_JavaMethod(hotspot_method, pc_offset);
766 } 762 }
763
767 _next_call_type = MARK_INVOKE_INVALID; 764 _next_call_type = MARK_INVOKE_INVALID;
765
768 if (debug_info != NULL) { 766 if (debug_info != NULL) {
769 _debug_recorder->end_safepoint(next_pc_offset); 767 _debug_recorder->end_safepoint(next_pc_offset);
770 } 768 }
771 } 769 }
772 770