3645 if( (_lChild && !(mRule2->_lChild)) || (_rChild && !(mRule2->_rChild)) ) return Not_cisc_spillable; |
3645 if( (_lChild && !(mRule2->_lChild)) || (_rChild && !(mRule2->_rChild)) ) return Not_cisc_spillable; |
3646 |
3646 |
3647 // Check left operands |
3647 // Check left operands |
3648 if( (_lChild == NULL) && (mRule2->_lChild == NULL) ) { |
3648 if( (_lChild == NULL) && (mRule2->_lChild == NULL) ) { |
3649 left_spillable = Maybe_cisc_spillable; |
3649 left_spillable = Maybe_cisc_spillable; |
3650 } else { |
3650 } else if (_lChild != NULL) { |
3651 left_spillable = _lChild->cisc_spill_match(globals, registers, mRule2->_lChild, operand, reg_type); |
3651 left_spillable = _lChild->cisc_spill_match(globals, registers, mRule2->_lChild, operand, reg_type); |
3652 } |
3652 } |
3653 |
3653 |
3654 // Check right operands |
3654 // Check right operands |
3655 if( (_rChild == NULL) && (mRule2->_rChild == NULL) ) { |
3655 if( (_rChild == NULL) && (mRule2->_rChild == NULL) ) { |
3656 right_spillable = Maybe_cisc_spillable; |
3656 right_spillable = Maybe_cisc_spillable; |
3657 } else { |
3657 } else if (_rChild != NULL) { |
3658 right_spillable = _rChild->cisc_spill_match(globals, registers, mRule2->_rChild, operand, reg_type); |
3658 right_spillable = _rChild->cisc_spill_match(globals, registers, mRule2->_rChild, operand, reg_type); |
3659 } |
3659 } |
3660 |
3660 |
3661 // Combine results of left and right checks |
3661 // Combine results of left and right checks |
3662 cisc_spillable = cisc_spill_merge(left_spillable, right_spillable); |
3662 cisc_spillable = cisc_spill_merge(left_spillable, right_spillable); |