http://gcc.gnu.org/bugzilla/show_bug.cgi?id=49468

--- Comment #5 from Kazumoto Kojima <kkojima at gcc dot gnu.org> 2011-06-27 
06:39:40 UTC ---
Argh, I also missed clobbers.  Looks fine to me now, except
that insn_and_split "*negdi2" forgot to set constraints and
some minor coding style issues below.

The first comment should be started with a capital letter and
ended with a period.  Also please follow GCC C coding style
even for C program segments in .md file.  C lines in the patch
are started with a tab instead of 2 spaces.  A long conditional
should be broken like as

  (cond
   ? value0
   : value1)

instead of

  (cond ?
         value0 :
         value1)

Please use braces

"
{
  int low_word = ...
  ...

  emit_insn (...
  DONE;
}")

instead of

"
  int low_word = ...
  ...

  emit_insn (...
  DONE;
")

especially when new variables are used, though those braces
aren't required with the current gen* tools.

> +     emit_insn (gen_negsi_cond (operands[0], operands[1], operands[1], 
> +                                                             GEN_INT (1)));

The first line has an extra space after the last comma and
the indentation of the 2nd line doesn't match with GCC coding
standard.  BTW, you could use const[01]_rtx for GEN_INT ([01]):

  emit_insn (gen_negsi_cond (operands[0], operands[1], operands[1],
                 const1_rtx));

There are similar extra white space + broken indentation issues:

> +(define_insn_and_split "negsi_cond"
> +  [(set (match_operand:SI 0 "arith_reg_dest" "=r,r")
> +     (if_then_else:SI (eq:SI (reg:SI T_REG) 
> +                                                     (match_operand:SI 3 
> "const_int_operand" "M,N"))
...
> +       emit_label_after (skip_neg_label, 
> +                                             emit_insn (gen_negsi2 
> (operands[0], operands[1])));
...

Perhaps mail or editor problem?

Reply via email to