2013-11-23 Richard Sandiford <rdsandiford@googlemail.com>
+ * 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.
+
+2013-11-23 Richard Sandiford <rdsandiford@googlemail.com>
+
* config/bfin/bfin-protos.h (push_multiple_operation): Delete.
(pop_multiple_operation): Delete.
(analyze_push_multiple_operation): Declare.
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);
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;
(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)")))