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.