Hi Alex, Hi Jeff,

  There is a typo in the MN10300 store_movm pattern.  It calls
  mn10300_store_multiple_operation to generate a bit mask of registers
  to be pushed, which it then passes to mn10300_print_reg_list.  But
  mn10300_store_multiple_operation is actually a predicate function
  (defined in predicates.md).  The function that should have been called
  is mn10300_store_multiple_operation_p.

  The patch below is the obvious fix for the typo, but I am wondering
  whether it would be better to rename the two functions.  Eg:

    mn10300_store_multiple_operation   -> mn10300_store_multiple_operation_p
    mn10300_store_multiple_operation_p -> mn10300_store_multiple_regs

Cheers
  Nick

gcc/ChangeLog
2014-01-29  Nick Clifton  <ni...@redhat.com>

        * config/mn10300/mn10300.md (store_movm): Fix typo.

Index: gcc/config/mn10300/mn10300.md
===================================================================
--- gcc/config/mn10300/mn10300.md       (revision 207224)
+++ gcc/config/mn10300/mn10300.md       (working copy)
@@ -2059,8 +2059,7 @@
 {
   fputs ("\tmovm ", asm_out_file);
   mn10300_print_reg_list (asm_out_file,
-                          mn10300_store_multiple_operation (operands[0],
-                                                           VOIDmode));
+                          mn10300_store_multiple_operation_p (operands[0]));
   fprintf (asm_out_file, ",(sp)\n");
   return "";
 }

Reply via email to