summaryrefslogtreecommitdiff
path: root/gcc/optabs.c
diff options
context:
space:
mode:
authorRichard Kenner <kenner@vlsi1.ultra.nyu.edu>2002-02-24 12:46:52 +0000
committerRichard Kenner <kenner@gcc.gnu.org>2002-02-24 07:46:52 -0500
commitcb8f73be28c7ad42f8244cc9e442c7559d39f725 (patch)
tree99233f48d28edd8bdceacfb41c695098e8b5393d /gcc/optabs.c
parente2743a17d99ff4f2aa5b584a62007a44343a2bcf (diff)
downloadgcc-cb8f73be28c7ad42f8244cc9e442c7559d39f725.tar.gz
optabs.c (widen_operand): Only call convert_modes for promoted SUBREG if signedness matches.
* optabs.c (widen_operand): Only call convert_modes for promoted SUBREG if signedness matches. * config/alpha/alpha.md (*addsi_se2, *subsi_se2): New patterns. From-SVN: r50004
Diffstat (limited to 'gcc/optabs.c')
-rw-r--r--gcc/optabs.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/gcc/optabs.c b/gcc/optabs.c
index 2a2ebb3a8df..69fb999a7de 100644
--- a/gcc/optabs.c
+++ b/gcc/optabs.c
@@ -191,7 +191,8 @@ widen_operand (op, mode, oldmode, unsignedp, no_extend)
do so. */
if (! no_extend
|| GET_MODE (op) == VOIDmode
- || (GET_CODE (op) == SUBREG && SUBREG_PROMOTED_VAR_P (op)))
+ || (GET_CODE (op) == SUBREG && SUBREG_PROMOTED_VAR_P (op)
+ && SUBREG_PROMOTED_UNSIGNED_P (op) == unsignedp))
return convert_modes (mode, oldmode, op, unsignedp);
/* If MODE is no wider than a single word, we return a paradoxical