On 26/02/2025 15:59, Jakub Jelinek wrote:
> Hi!
> 
> The linaro CI found my PR119002 patch broke bootstrap on arm.
> Seems the problem is that it has incorrect REVERSE_CONDITION macro
> definition.
> All other target's REVERSE_CONDITION definitions and the default one
> just use the macro's arguments, while arm.h definition uses the MODE
> argument but uses code instead of CODE (the first argument).
> This happens to work because before my patch the only use of the
> macro was in jump.cc with
>   /* First see if machine description supplies us way to reverse the
>      comparison.  Give it priority over everything else to allow
>      machine description to do tricks.  */
>   if (GET_MODE_CLASS (mode) == MODE_CC
>       && REVERSIBLE_CC_MODE (mode))
>     return REVERSE_CONDITION (code, mode);
> but in my patch it is used with GT rather than code.
> 
> The following patch fixes it, completely untested (but without my
> other patch it doesn't change anything on the preprocessed source),
> ok for trunk?
> 
> 2025-02-26  Jakub Jelinek  <ja...@redhat.com>
> 
>       PR rtl-optimization/119002
>       * config/arm/arm.h (REVERSE_CONDITION): Use CODE - the macro
>       argument - in the macro rather than code.
> 
> --- gcc/config/arm/arm.h.jj   2025-01-09 22:04:32.140141200 +0100
> +++ gcc/config/arm/arm.h      2025-02-26 16:46:13.127544209 +0100
> @@ -2261,8 +2261,8 @@ extern int making_const_table;
>  
>  #define REVERSE_CONDITION(CODE,MODE) \
>    (((MODE) == CCFPmode || (MODE) == CCFPEmode) \
> -   ? reverse_condition_maybe_unordered (code) \
> -   : reverse_condition (code))
> +   ? reverse_condition_maybe_unordered (CODE) \
> +   : reverse_condition (CODE))
>  
>  #define CLZ_DEFINED_VALUE_AT_ZERO(MODE, VALUE) \
>    ((VALUE) = GET_MODE_UNIT_BITSIZE (MODE), 2)
> 
>       Jakub
> 

OK

R.

Reply via email to