765 restore_live_registers(sasm, save_fpu_registers); 766 767 __ ret(); 768 __ delayed()->restore(); 769 770 } 771 break; 772 773 case access_field_patching_id: 774 { __ set_info("access_field_patching", dont_gc_arguments); 775 oop_maps = generate_patching(sasm, CAST_FROM_FN_PTR(address, access_field_patching)); 776 } 777 break; 778 779 case load_klass_patching_id: 780 { __ set_info("load_klass_patching", dont_gc_arguments); 781 oop_maps = generate_patching(sasm, CAST_FROM_FN_PTR(address, move_klass_patching)); 782 } 783 break; 784 785 case jvmti_exception_throw_id: 786 { // Oexception : exception 787 __ set_info("jvmti_exception_throw", dont_gc_arguments); 788 oop_maps = generate_stub_call(sasm, noreg, CAST_FROM_FN_PTR(address, Runtime1::post_jvmti_exception_throw), I0); 789 } 790 break; 791 792 case dtrace_object_alloc_id: 793 { // O0: object 794 __ set_info("dtrace_object_alloc", dont_gc_arguments); 795 // we can't gc here so skip the oopmap but make sure that all 796 // the live registers get saved. 797 save_live_registers(sasm); 798 799 __ save_thread(L7_thread_cache); 800 __ call(CAST_FROM_FN_PTR(address, SharedRuntime::dtrace_object_alloc), 801 relocInfo::runtime_call_type); 802 __ delayed()->mov(I0, O0); 803 __ restore_thread(L7_thread_cache); 804 805 restore_live_registers(sasm); 806 __ ret(); 807 __ delayed()->restore(); 808 } 809 break; 810 811 #ifndef SERIALGC | 765 restore_live_registers(sasm, save_fpu_registers); 766 767 __ ret(); 768 __ delayed()->restore(); 769 770 } 771 break; 772 773 case access_field_patching_id: 774 { __ set_info("access_field_patching", dont_gc_arguments); 775 oop_maps = generate_patching(sasm, CAST_FROM_FN_PTR(address, access_field_patching)); 776 } 777 break; 778 779 case load_klass_patching_id: 780 { __ set_info("load_klass_patching", dont_gc_arguments); 781 oop_maps = generate_patching(sasm, CAST_FROM_FN_PTR(address, move_klass_patching)); 782 } 783 break; 784 785 case dtrace_object_alloc_id: 786 { // O0: object 787 __ set_info("dtrace_object_alloc", dont_gc_arguments); 788 // we can't gc here so skip the oopmap but make sure that all 789 // the live registers get saved. 790 save_live_registers(sasm); 791 792 __ save_thread(L7_thread_cache); 793 __ call(CAST_FROM_FN_PTR(address, SharedRuntime::dtrace_object_alloc), 794 relocInfo::runtime_call_type); 795 __ delayed()->mov(I0, O0); 796 __ restore_thread(L7_thread_cache); 797 798 restore_live_registers(sasm); 799 __ ret(); 800 __ delayed()->restore(); 801 } 802 break; 803 804 #ifndef SERIALGC |