]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
* expmed.c (make_tree): Handle SIGN_EXTEND/ZERO_EXTEND.
authorRichard Henderson <rth@redhat.com>
Mon, 17 Jun 2002 18:14:44 +0000 (11:14 -0700)
committerRichard Henderson <rth@gcc.gnu.org>
Mon, 17 Jun 2002 18:14:44 +0000 (11:14 -0700)
From-SVN: r54710

gcc/ChangeLog
gcc/expmed.c

index 921f99bf738092cdcc29ef1f3771d437d8a43187..0b134da84f9416246c619cc5487172113fc02361 100644 (file)
@@ -1,3 +1,8 @@
+2002-06-17  Richard Henderson  <rth@redhat.com>
+
+       PR target/6922
+       * expmed.c (make_tree): Handle SIGN_EXTEND/ZERO_EXTEND.
+
 Mon Jun 17 00:31:46 CEST 2002  Jan Hubicka  <jH@suse.cz>
 
        * i386-protos.h (x86_field_alignment): Declare.
index 7836de712b140f9a60504e867dbb4f9b4e19eeed..4a80013b968d44fe42a80a3152e34e8b86fcb445 100644 (file)
@@ -4136,6 +4136,12 @@ 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 = 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;