aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHans-Peter Nilsson <hp@gcc.gnu.org>2006-01-10 18:13:16 +0000
committerHans-Peter Nilsson <hp@gcc.gnu.org>2006-01-10 18:13:16 +0000
commitd76fe40bcfdcc0012388894d3bccbd6630ec32ea (patch)
tree21612dc77ec5e5642131482984a5fd12fff71637
parent4580de7efa326bd62d122c338e823e9d73ff67a3 (diff)
downloadgcc-d76fe40bcfdcc0012388894d3bccbd6630ec32ea.zip
gcc-d76fe40bcfdcc0012388894d3bccbd6630ec32ea.tar.gz
gcc-d76fe40bcfdcc0012388894d3bccbd6630ec32ea.tar.bz2
re PR target/25718 (invalid assembly for unsigned-minimum expressions.)
PR target/25718 * config/cris/cris.md ("uminsi3"): Don't use 8- or 16-bit sizes for a negative bound. From-SVN: r109548
-rw-r--r--gcc/config/cris/cris.md13
1 files changed, 9 insertions, 4 deletions
diff --git a/gcc/config/cris/cris.md b/gcc/config/cris/cris.md
index 5665897..a657319 100644
--- a/gcc/config/cris/cris.md
+++ b/gcc/config/cris/cris.md
@@ -2679,11 +2679,16 @@
{
if (GET_CODE (operands[2]) == CONST_INT)
{
- if (INTVAL (operands[2]) < 256)
- return "bound.b %2,%0";
+ /* Constant operands are zero-extended, so only 32-bit operands
+ may be negative. */
+ if (INTVAL (operands[2]) >= 0)
+ {
+ if (INTVAL (operands[2]) < 256)
+ return "bound.b %2,%0";
- if (INTVAL (operands[2]) < 65536)
- return "bound.w %2,%0";
+ if (INTVAL (operands[2]) < 65536)
+ return "bound.w %2,%0";
+ }
}
else if (which_alternative == 3)
return "bound.d %2,%1,%0";