]> git.ipfire.org Git - thirdparty/gcc.git/commit - gcc/defaults.h
re PR target/24036 ([e500] ICE in subreg_offset_representable_p, at rtlanal.c:3143)
authorJoseph Myers <joseph@codesourcery.com>
Fri, 1 Dec 2006 02:25:22 +0000 (02:25 +0000)
committerJoseph Myers <jsm28@gcc.gnu.org>
Fri, 1 Dec 2006 02:25:22 +0000 (02:25 +0000)
commit8521c41417b57bf46fc57efccf3befaf6fc0a712
tree3b6620756f6468172f9d6c83a27617279a0da87c
parent877c1c555fdcc46467c9fe9e9dccb8aaf8efe178
re PR target/24036 ([e500] ICE in subreg_offset_representable_p, at rtlanal.c:3143)

2006-12-01  Joseph Myers  <joseph@codesourcery.com>
            David Edelsohn  <edelsohn@gnu.org>

PR target/24036
* doc/tm.texi (HARD_REGNO_NREGS_HAS_PADDING,
HARD_REGNO_NREGS_WITH_PADDING): Document new target macros.
* defaults.h (HARD_REGNO_NREGS_HAS_PADDING,
HARD_REGNO_NREGS_WITH_PADDING): Define.
* config/i386/i386.h (HARD_REGNO_NREGS_HAS_PADDING,
HARD_REGNO_NREGS_WITH_PADDING): Define.
* rtlanal.c (subreg_regno_offset, subreg_offset_representable_p):
Use new macros to detect modes with holes; do not look at integer
units.
(subreg_offset_representable_p): Check for and disallow cases
where the modes use different numbers of bits from registers.
* config/rs6000/rs6000.c (rs6000_emit_move): Handle TFmode
constant for soft-float.
(rs6000_hard_regno_nregs): Use UNITS_PER_FP_WORD for e500 GPRs
containing doubles.
(rs6000_split_multireg_move): Use DFmode reg_mode for TFmode moves
in E500 double case.
* config/rs6000/rs6000.md (movtf): Allow soft-float.
(movtf_softfloat): New.

Co-Authored-By: David Edelsohn <edelsohn@gnu.org>
From-SVN: r119395
gcc/ChangeLog
gcc/config/i386/i386.h
gcc/config/rs6000/rs6000.c
gcc/config/rs6000/rs6000.md
gcc/defaults.h
gcc/doc/tm.texi
gcc/rtlanal.c