> 2011-05-03 Richard Guenther <rguent...@suse.de> > > * expmed.c (expand_variable_shift): Rename to ... > (expand_shift_1): ... this. Take an expanded shift amount. > For rotates recurse directly not building trees for the shift amount. > (expand_variable_shift): Wrap around expand_shift_1. > (expand_shift): Adjust.
Looks OK on principle, but... > --- 2140,2161 ---- > code below. */ > > rtx subtarget = target == shifted ? 0 : target; > ! rtx new_amount, other_amount; > rtx temp1; > ! > ! new_amount = amount; > other_amount > ! = simplify_gen_binary (MINUS, GET_MODE (amount), > ! GEN_INT (GET_MODE_BITSIZE (mode)), > ! amount); ... why going back to AMOUNT? The old code uses OP1, which can be different from AMOUNT if SHIFT_COUNT_TRUNCATED is nonzero. -- Eric Botcazou