This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[mn10300] Avoid genrecog warning
- From: Richard Sandiford <rdsandiford at googlemail dot com>
- To: gcc-patches at gcc dot gnu dot org
- Cc: law at redhat dot com, aoliva at redhat dot com
- Date: Fri, 22 Nov 2013 08:22:38 +0000
- Subject: [mn10300] Avoid genrecog warning
- Authentication-results: sourceware.org; auth=none
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)")))