From: hjl Date: Mon, 19 Oct 2015 11:41:03 +0000 (+0000) Subject: Use GET_MODE_BITSIZE to get vector natural alignment X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=b6ec4d7aba7569f3e7f786a61ed2bb5b33ab9058;p=thirdparty%2Fgcc.git Use GET_MODE_BITSIZE to get vector natural alignment 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 for IA MCU psABI to get vector natural alignment to check misaligned vector move. * config/i386/i386.c (ix86_expand_vector_move): Use GET_MODE_BITSIZE for IA MCU psABI to get vector natural alignment. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228969 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index db0aea418e49..b04f38ba0ac6 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2015-10-19 H.J. Lu + + * config/i386/i386.c (ix86_expand_vector_move): Use + GET_MODE_BITSIZE for IA MCU psABI to get vector natural + alignment. + 2015-10-19 H.J. Lu * doc/invoke.texi: Replace @optindex with @opindex. diff --git a/gcc/config/i386/i386.c b/gcc/config/i386/i386.c index 1049455aa2a2..a4f4b6fb8ab5 100644 --- a/gcc/config/i386/i386.c +++ b/gcc/config/i386/i386.c @@ -18645,7 +18645,11 @@ 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 for IA MCU + psABI since the biggest alignment is 4 byte for IA MCU psABI. */ + unsigned int align = (TARGET_IAMCU + ? GET_MODE_BITSIZE (mode) + : GET_MODE_ALIGNMENT (mode)); if (push_operand (op0, VOIDmode)) op0 = emit_move_resolve_push (mode, op0);