789 int m_cnt = ready_cnt.at(m->_idx) - 1;
790 ready_cnt.at_put(m->_idx, m_cnt);
791 if( m_cnt == 0 )
792 worklist.push(m);
793 }
794
795 }
796
797 // Act as if the call defines the Frame Pointer.
798 // Certainly the FP is alive and well after the call.
799 regs.Insert(_matcher.c_frame_pointer());
800
801 // Set all registers killed and not already defined by the call.
802 uint r_cnt = mcall->tf()->range()->cnt();
803 int op = mcall->ideal_Opcode();
804 MachProjNode *proj = new MachProjNode( mcall, r_cnt+1, RegMask::Empty, MachProjNode::fat_proj );
805 map_node_to_block(proj, block);
806 block->insert_node(proj, node_cnt++);
807
808 // Select the right register save policy.
809 const char * save_policy;
810 switch (op) {
811 case Op_CallRuntime:
812 case Op_CallLeaf:
813 case Op_CallLeafNoFP:
814 // Calling C code so use C calling convention
815 save_policy = _matcher._c_reg_save_policy;
816 break;
817
818 case Op_CallStaticJava:
819 case Op_CallDynamicJava:
820 // Calling Java code so use Java calling convention
821 save_policy = _matcher._register_save_policy;
822 break;
823
824 default:
825 ShouldNotReachHere();
826 }
827
828 // When using CallRuntime mark SOE registers as killed by the call
829 // so values that could show up in the RegisterMap aren't live in a
|
789 int m_cnt = ready_cnt.at(m->_idx) - 1;
790 ready_cnt.at_put(m->_idx, m_cnt);
791 if( m_cnt == 0 )
792 worklist.push(m);
793 }
794
795 }
796
797 // Act as if the call defines the Frame Pointer.
798 // Certainly the FP is alive and well after the call.
799 regs.Insert(_matcher.c_frame_pointer());
800
801 // Set all registers killed and not already defined by the call.
802 uint r_cnt = mcall->tf()->range()->cnt();
803 int op = mcall->ideal_Opcode();
804 MachProjNode *proj = new MachProjNode( mcall, r_cnt+1, RegMask::Empty, MachProjNode::fat_proj );
805 map_node_to_block(proj, block);
806 block->insert_node(proj, node_cnt++);
807
808 // Select the right register save policy.
809 const char *save_policy = NULL;
810 switch (op) {
811 case Op_CallRuntime:
812 case Op_CallLeaf:
813 case Op_CallLeafNoFP:
814 // Calling C code so use C calling convention
815 save_policy = _matcher._c_reg_save_policy;
816 break;
817
818 case Op_CallStaticJava:
819 case Op_CallDynamicJava:
820 // Calling Java code so use Java calling convention
821 save_policy = _matcher._register_save_policy;
822 break;
823
824 default:
825 ShouldNotReachHere();
826 }
827
828 // When using CallRuntime mark SOE registers as killed by the call
829 // so values that could show up in the RegisterMap aren't live in a
|