diff options
author | Richard Henderson <rth@redhat.com> | 2001-09-06 15:14:43 -0700 |
---|---|---|
committer | Richard Henderson <rth@gcc.gnu.org> | 2001-09-06 15:14:43 -0700 |
commit | 7d8be4dab0814a35eb8150722dec6626e7f7162e (patch) | |
tree | e092e83c22a3a8cf7bfdb46857702de8b9cbd22d | |
parent | a1dc9455a34010a845a20f7d3dc8a0c64988b44d (diff) | |
download | gcc-7d8be4dab0814a35eb8150722dec6626e7f7162e.zip gcc-7d8be4dab0814a35eb8150722dec6626e7f7162e.tar.gz gcc-7d8be4dab0814a35eb8150722dec6626e7f7162e.tar.bz2 |
simplify-rtx.c (simplify_binary_operation): Simplify contents of CONST.
* simplify-rtx.c (simplify_binary_operation): Simplify contents
of CONST.
From-SVN: r45447
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/simplify-rtx.c | 22 |
2 files changed, 27 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 7c49298..16c65e2 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -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 diff --git a/gcc/simplify-rtx.c b/gcc/simplify-rtx.c index ea1cc6d..7f358d3 100644 --- a/gcc/simplify-rtx.c +++ b/gcc/simplify-rtx.c @@ -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: |