aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/rs6000/constraints.md2
-rw-r--r--gcc/config/rs6000/predicates.md12
3 files changed, 12 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index e20f8cb..aeb8fad 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -1,3 +1,8 @@
+2014-11-19 Markus Trippelsdorf <markus@trippelsdorf.de>
+
+ * config/rs6000/constraints.md: Avoid signed integer overflows.
+ * config/rs6000/predicates.md: Likewise.
+
2014-11-19 Renlin Li <Renlin.Li@arm.com>
PR middle-end/63762
diff --git a/gcc/config/rs6000/constraints.md b/gcc/config/rs6000/constraints.md
index b8800e6..0e0e517 100644
--- a/gcc/config/rs6000/constraints.md
+++ b/gcc/config/rs6000/constraints.md
@@ -140,7 +140,7 @@
(define_constraint "I"
"A signed 16-bit constant"
(and (match_code "const_int")
- (match_test "(unsigned HOST_WIDE_INT) (ival + 0x8000) < 0x10000")))
+ (match_test "((unsigned HOST_WIDE_INT) ival + 0x8000) < 0x10000")))
(define_constraint "J"
"high-order 16 bits nonzero"
diff --git a/gcc/config/rs6000/predicates.md b/gcc/config/rs6000/predicates.md
index de7fa4e..1767cbd 100644
--- a/gcc/config/rs6000/predicates.md
+++ b/gcc/config/rs6000/predicates.md
@@ -392,8 +392,8 @@
;; Return 1 if op is a constant integer valid for addition with addis, addi.
(define_predicate "add_cint_operand"
(and (match_code "const_int")
- (match_test "(unsigned HOST_WIDE_INT)
- (INTVAL (op) + (mode == SImode ? 0x80000000 : 0x80008000))
+ (match_test "((unsigned HOST_WIDE_INT) INTVAL (op)
+ + (mode == SImode ? 0x80000000 : 0x80008000))
< (unsigned HOST_WIDE_INT) 0x100000000ll")))
;; Return 1 if op is a constant integer valid for addition
@@ -827,7 +827,7 @@
(define_predicate "mask_operand"
(match_code "const_int")
{
- HOST_WIDE_INT c, lsb;
+ unsigned HOST_WIDE_INT c, lsb;
c = INTVAL (op);
@@ -872,7 +872,7 @@
(define_predicate "mask_operand_wrap"
(match_code "const_int")
{
- HOST_WIDE_INT c, lsb;
+ unsigned HOST_WIDE_INT c, lsb;
c = INTVAL (op);
@@ -897,7 +897,7 @@
(define_predicate "mask64_operand"
(match_code "const_int")
{
- HOST_WIDE_INT c, lsb;
+ unsigned HOST_WIDE_INT c, lsb;
c = INTVAL (op);
@@ -923,7 +923,7 @@
(define_predicate "mask64_2_operand"
(match_code "const_int")
{
- HOST_WIDE_INT c, lsb;
+ unsigned HOST_WIDE_INT c, lsb;
c = INTVAL (op);