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 <[email protected]>
* 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 "";
}