diff options
author | Alan Modra <amodra@bigpond.net.au> | 2002-09-05 22:48:53 +0000 |
---|---|---|
committer | Alan Modra <amodra@gcc.gnu.org> | 2002-09-06 08:18:53 +0930 |
commit | bc401279d9b3bb27ff8e8aba614105cf9ae633df (patch) | |
tree | 1210049ca743c691b4dc561626b26ecad0a23134 | |
parent | e2cbee7fd1d126a404e33321057392c5777db950 (diff) | |
download | gcc-bc401279d9b3bb27ff8e8aba614105cf9ae633df.zip gcc-bc401279d9b3bb27ff8e8aba614105cf9ae633df.tar.gz gcc-bc401279d9b3bb27ff8e8aba614105cf9ae633df.tar.bz2 |
rs6000.md (extzvsi_internal2): Revert most of 2002-07-26 change.
* config/rs6000/rs6000.md (extzvsi_internal2): Revert most of
2002-07-26 change. Comment.
From-SVN: r56867
-rw-r--r-- | gcc/ChangeLog | 5 | ||||
-rw-r--r-- | gcc/config/rs6000/rs6000.md | 12 |
2 files changed, 10 insertions, 7 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index e33cd49..835e6ec 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,8 @@ +2002-09-06 Alan Modra <amodra@bigpond.net.au> + + * config/rs6000/rs6000.md (extzvsi_internal2): Revert most of + 2002-07-26 change. Comment. + 2002-09-05 Kaveh R. Ghazi <ghazi@caip.rutgers.edu> * frv.c (frv_unique_section, frv_select_section, diff --git a/gcc/config/rs6000/rs6000.md b/gcc/config/rs6000/rs6000.md index c3ff213..7c564a4 100644 --- a/gcc/config/rs6000/rs6000.md +++ b/gcc/config/rs6000/rs6000.md @@ -3880,14 +3880,12 @@ if (which_alternative == 1) return \"#\"; - if ((start > 0 && start + size <= 16) || start >= 16) + /* Since we are using the output value, we can't ignore any need for + a shift. The bitfield must end at the LSB. */ + if (start >= 16 && start + size == 32) { - operands[3] = GEN_INT (((1 << (16 - (start & 15))) - - (1 << (16 - (start & 15) - size)))); - if (start < 16) - return \"{andiu.|andis.} %0,%1,%3\"; - else - return \"{andil.|andi.} %0,%1,%3\"; + operands[3] = GEN_INT ((1 << size) - 1); + return \"{andil.|andi.} %0,%1,%3\"; } if (start + size >= 32) |