On Fri, Oct 16, 2015 at 7:42 PM, H.J. Lu <hongjiu...@intel.com> wrote: > Since GET_MODE_ALIGNMENT is defined by psABI and the biggest alignment > is 4 byte for IA MCU psABI, we should use GET_MODE_BITSIZE to get > vector natural alignment to check misaligned vector move. > > OK for trunk? > > Thanks. > > H.J. > --- > * config/i386/i386.c (ix86_expand_vector_move): Use > GET_MODE_BITSIZE to get vector natural alignment. > --- > gcc/config/i386/i386.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c > index ebe2b0a..d0e1f4c 100644 > --- a/gcc/config/i386/i386.c > +++ b/gcc/config/i386/i386.c > @@ -18650,7 +18650,9 @@ void > ix86_expand_vector_move (machine_mode mode, rtx operands[]) > { > rtx op0 = operands[0], op1 = operands[1]; > - unsigned int align = GET_MODE_ALIGNMENT (mode); > + /* Use GET_MODE_BITSIZE instead of GET_MODE_ALIGNMENT since the > + biggest alignment is 4 byte for IA MCU psABI. */ > + unsigned int align = GET_MODE_BITSIZE (mode);
How about using TARGET_IAMCU condition here and using bitsize only for TARGET_IAMCU? Uros. > if (push_operand (op0, VOIDmode)) > op0 = emit_move_resolve_push (mode, op0); > -- > 2.4.3 >