tc-microblaze.c - int compare for X_add_number.
authorNeal Frager <neal.frager@amd.com>
Fri, 29 Sep 2023 15:45:46 +0000 (08:45 -0700)
committerMichael J. Eager <eager@eagercon.com>
Fri, 29 Sep 2023 15:47:28 +0000 (08:47 -0700)
The range check should be checking for the range
ffffffff80000000..7fffffff, not ffffffff70000000.

This patch has been tested for years of AMD Xilinx Yocto
releases as part of the following patch set:

https://github.com/Xilinx/meta-xilinx/tree/master/meta-microblaze/recipes-devtools/binutils/binutils

Signed-off-by: nagaraju <nagaraju.mekala@amd.com>
Signed-off-by: Neal Frager <neal.frager@amd.com>
Signed-off-by: Michael J. Eager <eager@eagercon.com>
gas/config/tc-microblaze.c

index aa85174befd02be3e0b0339f507e203a67eed1f4..d900a9e1d0520a60802e6ebdebffb0b5af88c3a3 100644 (file)
@@ -755,7 +755,7 @@ parse_imm (char * s, expressionS * e, offsetT min, offsetT max)
       if ((e->X_add_number >> 31) == 1)
        e->X_add_number |= -((addressT) (1U << 31));
 
-      if (e->X_add_number < min || e->X_add_number > max)
+      if ((int)e->X_add_number < min || (int)e->X_add_number > max)
        {
          as_fatal (_("operand must be absolute in range %lx..%lx, not %lx"),
                    (long) min, (long) max, (long) e->X_add_number);