This patch just changes a QImode (const_int 255) to (const_int -1),
since the canonical form is to sign-extend.  As things stand the pattern
trips a new assert added on the wide-int branch.

Tested by building rl78-elf before and after the patch and making sure
that there were no changes in assembly code for gcc.c-torture, gcc.dg
and g++dg.  OK to install?

Thanks,
Richard


gcc/
        * config/rl78/rl78-expand.md (one_cmplqi2): Use (const_int -1)
        rather than (const_int 255).

Index: gcc/config/rl78/rl78-expand.md
===================================================================
--- gcc/config/rl78/rl78-expand.md      2013-10-15 19:24:15.821884272 +0100
+++ gcc/config/rl78/rl78-expand.md      2013-11-07 09:41:50.754226143 +0000
@@ -177,7 +177,7 @@ (define_expand "xorqi3"
 (define_expand "one_cmplqi2"
   [(set (match_operand:QI         0 "nonimmediate_operand")
        (xor:QI (match_operand:QI 1 "general_operand")
-               (const_int 255)))
+               (const_int -1)))
    ]
   ""
   "if (rl78_force_nonfar_2 (operands, gen_one_cmplqi2))

Reply via email to