diff options
author | Jan Beulich <jbeulich@suse.com> | 2021-06-15 08:00:17 +0200 |
---|---|---|
committer | Jan Beulich <jbeulich@suse.com> | 2021-06-15 08:00:17 +0200 |
commit | 649658972ca923250019ca15e4ddd98bf28bf123 (patch) | |
tree | bc9be5d01b7e506c526ba335b8b6d9e0d045c3ca /gas | |
parent | a50187b2c6c28be79a32332e06a572cf08683de3 (diff) | |
download | gdb-649658972ca923250019ca15e4ddd98bf28bf123.zip gdb-649658972ca923250019ca15e4ddd98bf28bf123.tar.gz gdb-649658972ca923250019ca15e4ddd98bf28bf123.tar.bz2 |
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.
Diffstat (limited to 'gas')
-rw-r--r-- | gas/ChangeLog | 5 | ||||
-rw-r--r-- | gas/config/tc-i386.c | 4 |
2 files changed, 7 insertions, 2 deletions
diff --git a/gas/ChangeLog b/gas/ChangeLog index 0a59cd7..7699447 100644 --- a/gas/ChangeLog +++ b/gas/ChangeLog @@ -1,5 +1,10 @@ 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 the BFD64-only logic to also apply to non-64-bit code. (i386_finalize_displacement): Use extend_to_32bit_address for diff --git a/gas/config/tc-i386.c b/gas/config/tc-i386.c index e6276dc..945a1a69 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 (); } |