src/share/vm/opto/machnode.cpp

changeset 6484
318d0622a6d7
parent 6481
1410ad6b05f1
child 6487
15120a36272d
equal deleted inserted replaced
6483:018b357638aa 6484:318d0622a6d7
646 return false; 646 return false;
647 } 647 }
648 648
649 649
650 //------------------------------Registers-------------------------------------- 650 //------------------------------Registers--------------------------------------
651 const RegMask &MachCallNode::in_RegMask( uint idx ) const { 651 const RegMask &MachCallNode::in_RegMask(uint idx) const {
652 // Values in the domain use the users calling convention, embodied in the 652 // Values in the domain use the users calling convention, embodied in the
653 // _in_rms array of RegMasks. 653 // _in_rms array of RegMasks.
654 if (idx < tf()->domain()->cnt()) return _in_rms[idx]; 654 if (idx < tf()->domain()->cnt()) {
655 return _in_rms[idx];
656 }
657 if (idx == mach_constant_base_node_input()) {
658 return MachConstantBaseNode::static_out_RegMask();
659 }
655 // Values outside the domain represent debug info 660 // Values outside the domain represent debug info
656 return *Compile::current()->matcher()->idealreg2debugmask[in(idx)->ideal_reg()]; 661 return *Compile::current()->matcher()->idealreg2debugmask[in(idx)->ideal_reg()];
657 } 662 }
658 663
659 //============================================================================= 664 //=============================================================================
676 681
677 //------------------------------Registers-------------------------------------- 682 //------------------------------Registers--------------------------------------
678 const RegMask &MachCallJavaNode::in_RegMask(uint idx) const { 683 const RegMask &MachCallJavaNode::in_RegMask(uint idx) const {
679 // Values in the domain use the users calling convention, embodied in the 684 // Values in the domain use the users calling convention, embodied in the
680 // _in_rms array of RegMasks. 685 // _in_rms array of RegMasks.
681 if (idx < tf()->domain()->cnt()) return _in_rms[idx]; 686 if (idx < tf()->domain()->cnt()) {
687 return _in_rms[idx];
688 }
689 if (idx == mach_constant_base_node_input()) {
690 return MachConstantBaseNode::static_out_RegMask();
691 }
682 // Values outside the domain represent debug info 692 // Values outside the domain represent debug info
683 Matcher* m = Compile::current()->matcher(); 693 Matcher* m = Compile::current()->matcher();
684 // If this call is a MethodHandle invoke we have to use a different 694 // If this call is a MethodHandle invoke we have to use a different
685 // debugmask which does not include the register we use to save the 695 // debugmask which does not include the register we use to save the
686 // SP over MH invokes. 696 // SP over MH invokes.

mercurial