re PR target/61098 (Poor code setting count register for large loops)
commitbfe51f424a31275083a79e8f524af2976ff30b29
authorAlan Modra <amodra@gmail.com>
Mon, 26 May 2014 13:09:48 +0000 (26 22:39 +0930)
committerAlan Modra <amodra@gcc.gnu.org>
Mon, 26 May 2014 13:09:48 +0000 (26 22:39 +0930)
tree8d79f014d1e738377c94c4520bbddc32df573189
parenta9243bfced3137c8fc9830b7c43c4cdabc313cc6
re PR target/61098 (Poor code setting count register for large loops)

PR target/61098
* config/rs6000/rs6000.c (rs6000_emit_set_const): Remove unneeded
params and return a bool.  Remove dead code.  Update comment.
Assert we have a const_int source.  Remove bogus code from
32-bit HWI days.  Move !TARGET_POWERPC64 handling, and correct
handling of constants > 2G and reg_equal note, from..
(rs6000_emit_set_long_const): ..here.  Remove unneeded param and
return value.  Update comment.  If we can, use a new pseudo
for intermediate calculations.
* config/rs6000/rs6000-protos.h (rs6000_emit_set_const): Update
prototype.
* config/rs6000/rs6000.md (movsi_internal1_single+1): Update
call to rs6000_emit_set_const in splitter.
(movdi_internal64+2, +3): Likewise.

From-SVN: r210932
gcc/ChangeLog
gcc/config/rs6000/rs6000-protos.h
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/rs6000.md