gcc-patches@gcc.gnu.org
[Top] [All Lists]

Re: PATCH: new port: Moxie

Subject: Re: PATCH: new port: Moxie
From: Anthony Green
Date: Fri, 05 Jun 2009 09:15:22 -0400
On Thu, 2009-06-04 at 08:54 -0700, Richard Henderson wrote:
> > +(define_expand "cbranchsi4"
> > +  [(set (reg:CC CC_REG)
> > +        (compare:CC
> > +         (match_operand:SI 1 "general_operand" "")
> > +         (match_operand:SI 2 "general_operand" "")))
> > +   (set (pc)
> > +        (if_then_else (match_operator:CC 0 "comparison_operator"
> > +                       [(reg:CC CC_REG) (const_int 0)])
> > +                      (label_ref (match_operand 3 "" ""))
> > +                      (pc)))]
> > +  ""
> > +  "
> > +  /* Force the compare operands into regsiters.  */
> > +  if (GET_CODE (operands[1]) != REG)
> > +    operands[1] = force_reg (SImode, operands[1]);
> > +  if (GET_CODE (operands[2]) != REG)
> > +    operands[2] = force_reg (SImode, operands[2]);
> > +")
> 
> Use register_operand for op1 and op2 and you won't need
> the C code there.

But when I make this change I get...

/green/github/moxiedev/gcc/gcc/testsuite/gcc.c-torture/compile/20010326-1.c:16:1:
 error: unrecognizable insn:
(insn 29 28 30
5 
/green/github/moxiedev/gcc/gcc/testsuite/gcc.c-torture/compile/20010326-1.c:14 
(set (reg:CC 11 $r9)
        (compare:CC (reg:SI 35)
            (const_int 0 [0x0]))) -1 (nil))
/green/github/moxiedev/gcc/gcc/testsuite/gcc.c-torture/compile/20010326-1.c:16:1:
 internal compiler error: in extract_insn, at recog.c:2078

Reverting this change it the last version of the port gets me back to
reasonable testsuite results.

             === gcc Summary ===

 # of expected passes                49186
 # of unexpected failures            58
 # of unexpected successes           4
 # of expected failures              71
 # of unsupported tests              611

             === g++ Summary ===

 # of expected passes                18805
 # of unexpected failures            12
 # of expected failures              137
 # of unsupported tests              197

AG

<Prev in Thread] Current Thread [Next in Thread>