https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68865

--- Comment #4 from Segher Boessenkool <segher at gcc dot gnu.org> ---
Author: segher
Date: Mon Dec 14 16:13:33 2015
New Revision: 231621

URL: https://gcc.gnu.org/viewcvs?rev=231621&root=gcc&view=rev
Log:
rs6000: Fix a mistake in cstore_si_as_di (PR68865, PR68879)

convert_move does not know how to zero-extend a constant integer to the
target mode -- simply because it does not know the source mode.  As a
result, 32-bit SImode with the high bit set would be effectively sign-
extended instead of zero-extended.

This patch fixes it.


        PR target/68865
        PR target/68879
        * config/rs6000/rs6000.md (cstore_si_as_di): Force all operands
        into registers.

Modified:
    trunk/gcc/ChangeLog
    trunk/gcc/config/rs6000/rs6000.md

Reply via email to