On Sat, Sep 1, 2012 at 8:32 AM, Jakub Jelinek <ja...@redhat.com> wrote:

> The following testcase results in an assembler warning on movb $700415, %ch
> The problem is that the *mov*_insv_1* patterns use SImode or DImode for the
> source operand, accept CONST_INTs in the constraints and nothing truncates
> the constants to QImode.  While the b modifier in %b1 handles changing the
> printout of registers and memory (forcing it to be 8-bit low register or
> in Intel syntax 8-bit memory), it doesn't handle CONST_INTs this way.
> I've checked other such uses of b, w, k modifiers and usually they are used
> either in widening of the operand (which is fine), or with constraints not
> allowing integers.
>
> Fixed thusly, bootstrapped/regtested on x86_64-linux and i686-linux, ok for
> trunk/4.7?
>
> 2012-09-01  Jakub Jelinek  <ja...@redhat.com>
>
>         PR target/54436
>         * config/i386/i386.md (*mov<mode>_insv_1_rex64, *movsi_insv_1): If
>         operands[1] is CONST_INT_P, convert it to QImode before printing.
>
>         * gcc.dg/torture/pr54436.c: New test.

OK.

Thanks,
Uros.

Reply via email to