Mercurial > hg > truffle
comparison src/share/vm/opto/output.cpp @ 1162:d749b1813f40
Merge
author | trims |
---|---|
date | Fri, 15 Jan 2010 14:25:44 -0800 |
parents | 97125851f396 |
children | ba263cfb7611 |
comparison
equal
deleted
inserted
replaced
1130:1bc68593a110 | 1162:d749b1813f40 |
---|---|
792 #ifdef ENABLE_ZAP_DEAD_LOCALS | 792 #ifdef ENABLE_ZAP_DEAD_LOCALS |
793 assert( is_node_getting_a_safepoint(mach), "logic does not match; false negative"); | 793 assert( is_node_getting_a_safepoint(mach), "logic does not match; false negative"); |
794 #endif | 794 #endif |
795 | 795 |
796 int safepoint_pc_offset = current_offset; | 796 int safepoint_pc_offset = current_offset; |
797 bool is_method_handle_invoke = false; | |
797 | 798 |
798 // Add the safepoint in the DebugInfoRecorder | 799 // Add the safepoint in the DebugInfoRecorder |
799 if( !mach->is_MachCall() ) { | 800 if( !mach->is_MachCall() ) { |
800 mcall = NULL; | 801 mcall = NULL; |
801 debug_info()->add_safepoint(safepoint_pc_offset, sfn->_oop_map); | 802 debug_info()->add_safepoint(safepoint_pc_offset, sfn->_oop_map); |
802 } else { | 803 } else { |
803 mcall = mach->as_MachCall(); | 804 mcall = mach->as_MachCall(); |
805 | |
806 // Is the call a MethodHandle call? | |
807 if (mcall->is_MachCallJava()) | |
808 is_method_handle_invoke = mcall->as_MachCallJava()->_method_handle_invoke; | |
809 | |
804 safepoint_pc_offset += mcall->ret_addr_offset(); | 810 safepoint_pc_offset += mcall->ret_addr_offset(); |
805 debug_info()->add_safepoint(safepoint_pc_offset, mcall->_oop_map); | 811 debug_info()->add_safepoint(safepoint_pc_offset, mcall->_oop_map); |
806 } | 812 } |
807 | 813 |
808 // Loop over the JVMState list to add scope information | 814 // Loop over the JVMState list to add scope information |
909 | 915 |
910 // Make method available for all Safepoints | 916 // Make method available for all Safepoints |
911 ciMethod* scope_method = method ? method : _method; | 917 ciMethod* scope_method = method ? method : _method; |
912 // Describe the scope here | 918 // Describe the scope here |
913 assert(jvms->bci() >= InvocationEntryBci && jvms->bci() <= 0x10000, "must be a valid or entry BCI"); | 919 assert(jvms->bci() >= InvocationEntryBci && jvms->bci() <= 0x10000, "must be a valid or entry BCI"); |
914 assert(!jvms->should_reexecute() || depth==max_depth, "reexecute allowed only for the youngest"); | 920 assert(!jvms->should_reexecute() || depth == max_depth, "reexecute allowed only for the youngest"); |
915 // Now we can describe the scope. | 921 // Now we can describe the scope. |
916 debug_info()->describe_scope(safepoint_pc_offset,scope_method,jvms->bci(),jvms->should_reexecute(),locvals,expvals,monvals); | 922 debug_info()->describe_scope(safepoint_pc_offset, scope_method, jvms->bci(), jvms->should_reexecute(), is_method_handle_invoke, locvals, expvals, monvals); |
917 } // End jvms loop | 923 } // End jvms loop |
918 | 924 |
919 // Mark the end of the scope set. | 925 // Mark the end of the scope set. |
920 debug_info()->end_safepoint(safepoint_pc_offset); | 926 debug_info()->end_safepoint(safepoint_pc_offset); |
921 } | 927 } |