]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
arm: Fix up REVERSE_CONDITION macro [PR119002]
authorJakub Jelinek <jakub@redhat.com>
Wed, 26 Feb 2025 18:28:09 +0000 (19:28 +0100)
committerJakub Jelinek <jakub@gcc.gnu.org>
Wed, 26 Feb 2025 18:28:09 +0000 (19:28 +0100)
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.

2025-02-26  Jakub Jelinek  <jakub@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

index 73ca00a8de35f088f174c30b61f0ed1b47003746..8472b75612721b2de43b4efbf73afb554573faac 100644 (file)
@@ -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)