diff options
author | Jeff Law <law@gcc.gnu.org> | 2015-09-28 13:27:29 -0600 |
---|---|---|
committer | Jeff Law <law@gcc.gnu.org> | 2015-09-28 13:27:29 -0600 |
commit | 4e671509d92cd4dc7d28d7bb92e46092afcd7370 (patch) | |
tree | 74ec0b78a9025d3c4db06d929e7df4060ef11f11 /gcc | |
parent | d95fc584211f33c495c09fde33e057088d26b43e (diff) | |
download | gcc-4e671509d92cd4dc7d28d7bb92e46092afcd7370.zip gcc-4e671509d92cd4dc7d28d7bb92e46092afcd7370.tar.gz gcc-4e671509d92cd4dc7d28d7bb92e46092afcd7370.tar.bz2 |
Re: [PATCH] Fix undefined behaviour in arc port
Re: [PATCH] Fix undefined behaviour in arc port
* config/arc/arc.c (arc_legitimize_reload_address): Fix stupid
thinko in last change.
* config/arc/constraints.md (C2a): Fix typos in last change.
From-SVN: r228219
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/config/arc/arc.c | 2 | ||||
-rw-r--r-- | gcc/config/arc/constraints.md | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/gcc/config/arc/arc.c b/gcc/config/arc/arc.c index 4d731b5..a6a1921 100644 --- a/gcc/config/arc/arc.c +++ b/gcc/config/arc/arc.c @@ -9322,7 +9322,7 @@ arc_legitimize_reload_address (rtx *p, machine_mode mode, int opnum, shift = scale >> 1; offset_base = ((offset + (256 << shift)) - & ((HOST_WIDE_INT)(-512U << shift))); + & ((HOST_WIDE_INT)((unsigned HOST_WIDE_INT) -512 << shift))); /* Sometimes the normal form does not suit DImode. We could avoid that by using smaller ranges, but that would give less optimized code when SImode is diff --git a/gcc/config/arc/constraints.md b/gcc/config/arc/constraints.md index b3ea115..3d0db36 100644 --- a/gcc/config/arc/constraints.md +++ b/gcc/config/arc/constraints.md @@ -195,7 +195,7 @@ "@internal Unconditional two-address add / sub constant" (and (match_code "const_int") - (match_test "ival == HOST_WIDE_INT (HOST_WIDE_INT_M1U << 31) + (match_test "ival == (HOST_WIDE_INT) (HOST_WIDE_INT_M1U << 31) || (ival >= -0x4000 && ival <= 0x4000 && ((ival >= 0 ? ival : -ival) <= 0x7ff * (ival & -ival)))"))) |