diff options
author | Richard Sandiford <rdsandiford@googlemail.com> | 2012-10-31 08:01:23 +0000 |
---|---|---|
committer | Richard Sandiford <rsandifo@gcc.gnu.org> | 2012-10-31 08:01:23 +0000 |
commit | 7ae6664baa103b7c1e8628af77978c293549f758 (patch) | |
tree | 3d8ccdacc4e644aca41e23399c1679d3f87f66ce | |
parent | 8e2326a23bb18caa982475742a6a19c8a26fbf36 (diff) | |
download | gcc-7ae6664baa103b7c1e8628af77978c293549f758.tar.gz |
combine.c (simplify_comparison): If BITS_BIG_ENDIAN...
gcc/
* combine.c (simplify_comparison): If BITS_BIG_ENDIAN, always assume
that zero_extracts of const_ints are doing word-sized extractions.
From-SVN: r193026
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/combine.c | 12 |
2 files changed, 6 insertions, 11 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 5b6fd01d85f..fa4d4ba0b4e 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,5 +1,10 @@ 2012-10-31 Richard Sandiford <rdsandiford@googlemail.com> + * combine.c (simplify_comparison): If BITS_BIG_ENDIAN, always assume + that zero_extracts of const_ints are doing word-sized extractions. + +2012-10-31 Richard Sandiford <rdsandiford@googlemail.com> + * combine.c (make_extraction): Remove dead wanted_inner_mode- and pos_rtx-related code. diff --git a/gcc/combine.c b/gcc/combine.c index e9d0a45d633..5bbf0bde937 100644 --- a/gcc/combine.c +++ b/gcc/combine.c @@ -11154,17 +11154,7 @@ simplify_comparison (enum rtx_code code, rtx *pop0, rtx *pop1) && (i = exact_log2 (UINTVAL (XEXP (op0, 0)))) >= 0) { if (BITS_BIG_ENDIAN) - { - enum machine_mode new_mode - = mode_for_extraction (EP_extzv, 1); - if (new_mode == MAX_MACHINE_MODE) - i = BITS_PER_WORD - 1 - i; - else - { - mode = new_mode; - i = (GET_MODE_PRECISION (mode) - 1 - i); - } - } + i = BITS_PER_WORD - 1 - i; op0 = XEXP (op0, 2); op1 = GEN_INT (i); |