Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- sri = SUBREG_REG(in);
- srirp = REG_P(sri);
- srimp = MEM_P(sri);
- msri = GET_MODE(sri);
- msris = GET_MODE_SIZE(msri);
- msrirp = GET_MODE_PRECISION(msri);
- inmp = GET_MODE_PRECISION(inmode);
- ins = GET_MODE_SIZE(inmode);
- inmpgtmsrirp = inmp > msrirp;
- if (in != 0 && GET_CODE(in) == SUBREG && (subreg_lowpart_p(in) || strict_low)
- #ifdef CANNOT_CHANGE_MODE_CLASS
- && !CANNOT_CHANGE_MODE_CLASS(msri, inmode, rclass)
- #endif
- && contains_reg_of_mode[(int) rclass][(int) msri]
- && (
- CONSTANT_P(sri)
- || GET_CODE(sri) == PLUS
- || strict_low
- || (
- ((srirp && REGNO(sri) >= FIRST_PSEUDO_REGISTER) || srimp)
- && (inmpgtmsrirp
- #ifdef LOAD_EXTEND_OP
- || (ins <= UNITS_PER_WORD
- && (msris <= UNITS_PER_WORD)
- && inmpgtmsrirp /* <-- redundant? */
- && INTEGRAL_MODE_P(msri)
- && LOAD_EXTEND_OP(msri) != UNKNOWN)
- #endif
- #ifdef WORD_REGISTER_OPERATIONS
- || ((inmp < msrirp)
- && ((ins - 1)/UNITS_PER_WORD == ((msris - 1) / UNITS_PER_WORD)))
- #endif
- )
- )
- || (
- srirp && REGNO(sri) < FIRST_PSEUDO_REGISTER
- /* The case where out is nonzero is handled differently in the following statement. */
- && (out == 0 || subreg_lowpart_p (in))
- && (
- (ins <= UNITS_PER_WORD
- && msris > UNITS_PER_WORD
- && msris / UNITS_PER_WORD != (int) hard_regno_nregs[REGNO(sri)][msri]
- )
- || !HARD_REGNO_MODE_OK(subreg_regno(in), inmode)))
- || (secondary_reload_class(1, rclass, inmode, in) != NO_REGS
- && secondary_reload_class(1, rclass, msri, sri) == NO_REGS)
- #ifdef CANNOT_CHANGE_MODE_CLASS
- || (srirp && REGNO(sri) < FIRST_PSEUDO_REGISTER && REG_CANNOT_CHANGE_MODE_P(REGNO(sri), msri, inmode))
- #endif
- )
- )
Advertisement
Add Comment
Please, Sign In to add comment