x86: slightly simplify offset_in_range()
authorJan Beulich <jbeulich@suse.com>
Tue, 15 Jun 2021 06:00:17 +0000 (08:00 +0200)
committerJan Beulich <jbeulich@suse.com>
Tue, 15 Jun 2021 06:00:17 +0000 (08:00 +0200)
Applying a mask with all bits set (or its inverse, with hence all bits
clear) won't alter the result (or won't trigger the warning). Re-arrange
the code to eliminate two more of the somewhat odd (2 << width_minus_1)
constructs.

gas/ChangeLog
gas/config/tc-i386.c

index 0a59cd74d6ab8669cda171b7c2f6a77397e956b1..76994470180456f6711d231eb9e0ccdf463990c9 100644 (file)
@@ -1,3 +1,8 @@
+2021-06-15  Jan Beulich  <jbeulich@suse.com>
+
+       * config/tc-i386.c (offset_in_range): Bail early when mask would
+       cover all bits anyway.
+
 2021-06-15  Jan Beulich  <jbeulich@suse.com>
 
        * config/tc-i386.c (optimize_disp): Generalize disp32 part of
index e6276dcab5c46991b612865fd75ef7f91b1b33c5..945a1a6958eb0321013bf1d534c1959057455b3e 100644 (file)
@@ -2556,10 +2556,10 @@ offset_in_range (offsetT val, int size)
     {
     case 1: mask = ((addressT) 1 <<  8) - 1; break;
     case 2: mask = ((addressT) 1 << 16) - 1; break;
-    case 4: mask = ((addressT) 2 << 31) - 1; break;
 #ifdef BFD64
-    case 8: mask = ((addressT) 2 << 63) - 1; break;
+    case 4: mask = ((addressT) 1 << 32) - 1; break;
 #endif
+    case sizeof (val): return val;
     default: abort ();
     }