Hi Trevor, On Mon, Jul 06, 2015 at 08:11:30AM -0400, tbsaunde+...@tbsaunde.org wrote: > * defaults.h: Provide default for WORD_REGISTER_OPERATIONS. > * config/alpha/alpha.h: Define WORD_REGISTER_OPERATIONS to 1. > * config/arc/arc.h: Likewise. > * config/arm/arm.h: Likewise. > * config/bfin/bfin.h: Likewise. > * config/epiphany/epiphany.h: Likewise. > * config/frv/frv.h: Likewise. > * config/ia64/ia64.h: Likewise. > * config/iq2000/iq2000.h: Likewise. > * config/lm32/lm32.h: Likewise. > * config/m32r/m32r.h: Likewise. > * config/mcore/mcore.h: Likewise. > * config/mep/mep.h: Likewise. > * config/microblaze/microblaze.h: Likewise. > * config/mips/mips.h: Likewise. > * config/mmix/mmix.h: > * config/mn10300/mn10300.h: > * config/nds32/nds32.h: > * config/nios2/nios2.h: > * config/pa/pa.h: > * config/rl78/rl78.h: > * config/sh/sh.h: > * config/sparc/sparc.h: > * config/stormy16/stormy16.h (enum reg_class): > * config/tilegx/tilegx.h: > * config/tilepro/tilepro.h: > * config/v850/v850.h: > * config/xtensa/xtensa.h: > * doc/tm.texi: Regenerate.
Something went wrong here ;-) > @@ -12072,10 +12071,9 @@ simplify_comparison (enum rtx_code code, rtx *pop0, > rtx *pop1) > they no longer have defined values and the meaning of > the code has been changed. */ > && (0 > -#ifdef WORD_REGISTER_OPERATIONS > - || (mode_width > GET_MODE_PRECISION (tmode) > + || (!WORD_REGISTER_OPERATIONS > + && mode_width > GET_MODE_PRECISION (tmode) > && mode_width <= BITS_PER_WORD) > -#endif > || (mode_width <= GET_MODE_PRECISION (tmode) > && subreg_lowpart_p (XEXP (op0, 0)))) > && CONST_INT_P (XEXP (op0, 1)) Please get rid of that "0 ||" now. I think the ! is wrong here? The rest of the combine changes look good. > @@ -6114,13 +6112,12 @@ store_constructor (tree exp, rtx target, int cleared, > HOST_WIDE_INT size) > highest_pow2_factor (offset)); > } > > -#ifdef WORD_REGISTER_OPERATIONS > /* If this initializes a field that is smaller than a > word, at the start of a word, try to widen it to a full > word. This special case allows us to output C++ member > function initializations in a form that the optimizers > can understand. */ > - if (REG_P (target) > + if (WORD_REGISTER_OPERATIONS && REG_P (target) > && bitsize < BITS_PER_WORD > && bitpos % BITS_PER_WORD == 0 > && GET_MODE_CLASS (mode) == MODE_INT Put that first && on a new line as well? Similar many times more. Segher