aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorBernd Edlinger <bernd.edlinger@hotmail.de>2016-11-23 21:53:12 +0000
committerJeff Law <law@gcc.gnu.org>2016-11-23 14:53:12 -0700
commitd5c45ad752d9e7c0b55c3712d2bd92307251c3b7 (patch)
tree81b6be817fb88432ad53c1881225518885ca12d5 /gcc
parent91c9fb42c0c9121b745779bb86e7ac6dae4363b7 (diff)
downloadgcc-d5c45ad752d9e7c0b55c3712d2bd92307251c3b7.zip
gcc-d5c45ad752d9e7c0b55c3712d2bd92307251c3b7.tar.gz
gcc-d5c45ad752d9e7c0b55c3712d2bd92307251c3b7.tar.bz2
opth-gen.awk: Use unsigned shifts for bit masks.
2016-11-07 Bernd Edlinger <bernd.edlinger@hotmail.de> * opth-gen.awk: Use unsigned shifts for bit masks. Allow all bits to be used. Add brackets around macro argument. From-SVN: r242803
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/opth-gen.awk12
2 files changed, 11 insertions, 6 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index a84eb7d..e6f29db 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2016-11-23 Bernd Edlinger <bernd.edlinger@hotmail.de>
+
+ * opth-gen.awk: Use unsigned shifts for bit masks. Allow all bits
+ to be used. Add brackets around macro argument.
+
2016-11-23 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (*<any_or:code>hi_1): Fix operand 2 constraints.
diff --git a/gcc/opth-gen.awk b/gcc/opth-gen.awk
index c728a42..27f4141 100644
--- a/gcc/opth-gen.awk
+++ b/gcc/opth-gen.awk
@@ -350,11 +350,11 @@ for (i = 0; i < n_opts; i++) {
mask_bits[name] = 1
vname = var_name(flags[i])
mask = "MASK_"
- mask_1 = "1"
+ mask_1 = "1U"
if (vname != "") {
mask = "OPTION_MASK_"
if (host_wide_int[vname] == "yes")
- mask_1 = "HOST_WIDE_INT_1"
+ mask_1 = "HOST_WIDE_INT_1U"
} else
extra_mask_bits[name] = 1
print "#define " mask name " (" mask_1 " << " masknum[vname]++ ")"
@@ -362,16 +362,16 @@ for (i = 0; i < n_opts; i++) {
}
for (i = 0; i < n_extra_masks; i++) {
if (extra_mask_bits[extra_masks[i]] == 0)
- print "#define MASK_" extra_masks[i] " (1 << " masknum[""]++ ")"
+ print "#define MASK_" extra_masks[i] " (1U << " masknum[""]++ ")"
}
for (var in masknum) {
if (var != "" && host_wide_int[var] == "yes") {
- print" #if defined(HOST_BITS_PER_WIDE_INT) && " masknum[var] " >= HOST_BITS_PER_WIDE_INT"
+ print "#if defined(HOST_BITS_PER_WIDE_INT) && " masknum[var] " > HOST_BITS_PER_WIDE_INT"
print "#error too many masks for " var
print "#endif"
}
- else if (masknum[var] > 31) {
+ else if (masknum[var] > 32) {
if (var == "")
print "#error too many target masks"
else
@@ -401,7 +401,7 @@ for (i = 0; i < n_opts; i++) {
print "#define TARGET_" name \
" ((" vname " & " mask name ") != 0)"
print "#define TARGET_" name "_P(" vname ")" \
- " ((" vname " & " mask name ") != 0)"
+ " (((" vname ") & " mask name ") != 0)"
}
}
for (i = 0; i < n_extra_masks; i++) {