summaryrefslogtreecommitdiff
path: root/gcc/expmed.c
diff options
context:
space:
mode:
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2002-06-17 20:56:15 +0000
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>2002-06-17 20:56:15 +0000
commit513fac1b5989ce753f4cf3cf90c27738df8af7fe (patch)
tree02c530636d8bd158c37193c4b2cd217a3d585bf0 /gcc/expmed.c
parenta6ff766aeae4005684a9985c31f70720e75a200f (diff)
downloadgcc-513fac1b5989ce753f4cf3cf90c27738df8af7fe.tar.gz
* expmed.c (make_tree): Handle SIGN_EXTEND/ZERO_EXTEND.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@54716 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc/expmed.c')
-rw-r--r--gcc/expmed.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/gcc/expmed.c b/gcc/expmed.c
index 60e9c2583ea..8ef4fca585f 100644
--- a/gcc/expmed.c
+++ b/gcc/expmed.c
@@ -4136,6 +4136,13 @@ make_tree (type, x)
build (TRUNC_DIV_EXPR, t,
make_tree (t, XEXP (x, 0)),
make_tree (t, XEXP (x, 1)))));
+
+ case SIGN_EXTEND:
+ case ZERO_EXTEND:
+ t = (*lang_hooks.types.type_for_mode) (GET_MODE (XEXP (x, 0)),
+ GET_CODE (x) == ZERO_EXTEND);
+ return fold (convert (type, make_tree (t, XEXP (x, 0))));
+
default:
t = make_node (RTL_EXPR);
TREE_TYPE (t) = type;