OSDN Git Service

* simplify-rtx.c (simplify_binary_operation): Simplify contents
authorrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 6 Sep 2001 22:14:43 +0000 (22:14 +0000)
committerrth <rth@138bc75d-0d04-0410-961f-82ee72b054a4>
Thu, 6 Sep 2001 22:14:43 +0000 (22:14 +0000)
        of CONST.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@45447 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ChangeLog
gcc/simplify-rtx.c

index 7c49298..16c65e2 100644 (file)
@@ -1,3 +1,8 @@
+2001-09-06  Richard Henderson  <rth@redhat.com>
+
+       * simplify-rtx.c (simplify_binary_operation): Simplify contents
+       of CONST.
+
 2001-09-06  Franz Sirl  <Franz.Sirl-kernel@lauterbach.com>
 
        * config/rs6000/rs6000.c (rs6000_emit_prologue): Fix DWARF2 register
index ea1cc6d..7f358d3 100644 (file)
@@ -1275,6 +1275,28 @@ simplify_binary_operation (code, mode, op0, op1)
               return simplify_gen_binary (AND, mode, op0,
                                           gen_rtx_NOT (mode, XEXP (op1, 0)));
           }
+
+         /* Simplify operations with constants containing embedded offsets.  */
+         if (GET_CODE (op0) == CONST)
+           {
+             tem = simplify_binary_operation (code, mode, XEXP (op0, 0), op1);
+             if (tem)
+               {
+                 if (CONSTANT_P (op1) && ! CONSTANT_P (tem))
+                   tem = gen_rtx_CONST (mode, tem);
+                 return tem;
+               }
+           }
+         if (GET_CODE (op1) == CONST)
+           {
+             tem = simplify_binary_operation (code, mode, op0, XEXP (op1, 0));
+             if (tem)
+               {
+                 if (CONSTANT_P (op0) && ! CONSTANT_P (tem))
+                   tem = gen_rtx_CONST (mode, tem);
+                 return tem;
+               }
+           }
          break;
 
        case MULT: