From: Jan Beulich Date: Tue, 15 Jun 2021 06:00:17 +0000 (+0200) Subject: x86: slightly simplify offset_in_range() X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=649658972ca923250019ca15e4ddd98bf28bf123;p=binutils-gdb.git x86: slightly simplify offset_in_range() 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. --- diff --git a/gas/ChangeLog b/gas/ChangeLog index 0a59cd74d6a..76994470180 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,3 +1,8 @@ +2021-06-15 Jan Beulich + + * config/tc-i386.c (offset_in_range): Bail early when mask would + cover all bits anyway. + 2021-06-15 Jan Beulich * config/tc-i386.c (optimize_disp): Generalize disp32 part of diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index e6276dcab5c..945a1a6958e 100644 --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -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 (); }