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.