diff options
author | Richard Henderson <rth@redhat.com> | 2002-06-17 13:56:15 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2002-06-17 13:56:15 -0700 |
commit | 5c45425b5c27536f42f21ebede0bc7d9b57dce32 (patch) | |
tree | 02c530636d8bd158c37193c4b2cd217a3d585bf0 /gcc | |
parent | 9aa497ae23a34e2c851c9f3c7e2ad19372b96fae (diff) | |
download | gcc-5c45425b5c27536f42f21ebede0bc7d9b57dce32.zip gcc-5c45425b5c27536f42f21ebede0bc7d9b57dce32.tar.gz gcc-5c45425b5c27536f42f21ebede0bc7d9b57dce32.tar.bz2 |
* expmed.c (make_tree): Handle SIGN_EXTEND/ZERO_EXTEND.
From-SVN: r54716
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/expmed.c | 7 |
2 files changed, 12 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index a5b3e3e..2fb2248 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2002-06-17 Richard Henderson <rth@redhat.com> + + PR target/6922 + * expmed.c (make_tree): Handle SIGN_EXTEND/ZERO_EXTEND. + 2002-06-17 Tom Tromey <tromey@redhat.com> * dwarfout.c: Include function.h. diff --git a/gcc/expmed.c b/gcc/expmed.c index 60e9c25..8ef4fca 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; |