On 10/25/22 13:59, Jan-Benedict Glaw wrote: > Hi Jeff! > > On Mon, 2022-10-17 17:47:16 -0600, Jeff Law via Gcc-patches wrote: >> --- a/gcc/config/h8300/h8300.cc >> +++ b/gcc/config/h8300/h8300.cc >> @@ -5531,6 +5531,32 @@ h8300_ok_for_sibcall_p (tree fndecl, tree) >> >> return 1; >> } >> + >> +/* Return TRUE if OP is a PRE_INC or PRE_DEC >> + instruction using REG, FALSE otherwise. */ >> + >> +bool >> +pre_incdec_with_reg (rtx op, int reg) >> +{ >> + /* OP must be a MEM. */ >> + if (GET_CODE (op) != MEM) >> + return false; >> + >> + /* The address must be a PRE_INC or PRE_DEC. */ >> + op = XEXP (op, 0); >> + if (GET_CODE (op) != PRE_DEC && GET_CODE (op) != PRE_INC) >> + return false; >> + >> + /* It must be a register that is being incremented >> + or decremented. */ >> + op = XEXP (op, 0); >> + if (!REG_P (op)) >> + return false; >> + >> + /* Finally, check that the register number matches. */ >> + return REGNO (op) == reg; > This results in a new signed-vs-unsigned warning for me: > > [all 2022-10-25 00:41:11] ../../gcc/gcc/config/h8300/h8300.cc: In function 'bool pre_incdec_with_reg(rtx, int)': > [all 2022-10-25 00:41:11] ../../gcc/gcc/config/h8300/h8300.cc:5557:21: error: comparison of integer expressions of different signedness: 'unsigned int' and 'int' [-Werror=sign-compare] > [all 2022-10-25 00:41:11] 5557 | return REGNO (op) == reg; Fixed via the attached patch.  Thanks for pointing it out. jeff