[mn10300] Avoid genrecog warning

Richard Sandiford rdsandiford@googlemail.com
Fri Nov 22 11:21:00 GMT 2013


I have a patch to upgrade most genrecog warnings into errors.  This patch
fixes one for mn10300 about mn10300_store_multiple_operation not being
defined as a predicate at the .md level.

Tested by building mn10300-elf with the warnings turned to errors, and by
comparing the before and after assembly output at -O2 for gcc.c-torture,
gcc.dg and g++.dg.  OK to install?

Thanks,
Richard


gcc/
	* config/mn10300/mn10300-protos.h (mn10300_store_multiple_operation):
	Delete.
	(mn10300_store_multiple_operation_p): Declare.
	* config/mn10300/mn10300.c (mn10300_store_multiple_operation):
	Rename to...
	(mn10300_store_multiple_operation_p): ...this and remove mode
	argument.
	* config/mn10300/predicates.md (mn10300_store_multiple_operation):
	Define.

Index: gcc/config/mn10300/mn10300-protos.h
===================================================================
--- gcc/config/mn10300/mn10300-protos.h	2013-11-16 21:52:15.083787117 +0000
+++ gcc/config/mn10300/mn10300-protos.h	2013-11-16 21:59:02.106068742 +0000
@@ -32,7 +32,7 @@ extern void  mn10300_print_operand (FILE
 extern void  mn10300_print_operand_address (FILE *, rtx);
 extern void  mn10300_print_reg_list (FILE *, int);
 extern enum machine_mode mn10300_select_cc_mode (enum rtx_code, rtx, rtx);
-extern int   mn10300_store_multiple_operation (rtx, enum machine_mode);
+extern int   mn10300_store_multiple_operation_p (rtx);
 extern int   mn10300_symbolic_operand (rtx, enum machine_mode);
 extern void  mn10300_split_cbranch (enum machine_mode, rtx, rtx);
 extern int   mn10300_split_and_operand_count (rtx);
Index: gcc/config/mn10300/mn10300.c
===================================================================
--- gcc/config/mn10300/mn10300.c	2013-11-16 21:52:15.083787117 +0000
+++ gcc/config/mn10300/mn10300.c	2013-11-16 21:59:02.107068750 +0000
@@ -1237,8 +1237,7 @@ mn10300_expand_epilogue (void)
    registers it saves.  Return 0 otherwise.  */
 
 int
-mn10300_store_multiple_operation (rtx op,
-				  enum machine_mode mode ATTRIBUTE_UNUSED)
+mn10300_store_multiple_operation_p (rtx op)
 {
   int count;
   int mask;
Index: gcc/config/mn10300/predicates.md
===================================================================
--- gcc/config/mn10300/predicates.md	2013-11-16 21:52:15.083787117 +0000
+++ gcc/config/mn10300/predicates.md	2013-11-16 21:59:02.107068750 +0000
@@ -67,3 +67,7 @@ (define_predicate "CCZN_comparison_opera
 (define_predicate "liw_operand"
   (ior (match_operand 0 "register_operand")
        (match_test "satisfies_constraint_O (op)")))
+
+(define_predicate "mn10300_store_multiple_operation"
+  (and (match_code "parallel")
+       (match_test "mn10300_store_multiple_operation_p (op)")))



More information about the Gcc-patches mailing list