This is the mail archive of the
mailing list for the GCC project.
Re: [PATCH, rs6000] Fix order of TDmode in FPRs in little-endian mode
- From: David Edelsohn <dje dot gcc at gmail dot com>
- To: Ulrich Weigand <uweigand at de dot ibm dot com>
- Cc: GCC Patches <gcc-patches at gcc dot gnu dot org>
- Date: Wed, 20 Nov 2013 11:12:18 -0500
- Subject: Re: [PATCH, rs6000] Fix order of TDmode in FPRs in little-endian mode
- Authentication-results: sourceware.org; auth=none
- References: <201311182007 dot rAIK7Xhx024773 at d06av02 dot portsmouth dot uk dot ibm dot com>
On Mon, Nov 18, 2013 at 3:07 PM, Ulrich Weigand <email@example.com> wrote:
> Also note that this patch does not change how TDmode values are loaded
> into GPRs: on little-endian, this means we do get the usual LE subreg
> order there (least significant word in lowest-numbered register). This
> does still seem the right thing to do, because there are no instructions
> that operate on DFP values in GPRs, and because this allows us to keep
> using subregs on GPRs in that case, and it allows moving TDmode between
> memory and GPRs (e.g. for vararg arguments) in the usual way.
Does this require special support in GDB so that it understands how to
interpret this type in different classes of registers? However, the
interpretation always will be consistent for a particular class of
> Tested on powerpc64le-linux, fixes all remaining DFP-related test suite
> OK for mainline?
> * config/rs6000/rs6000.c (rs6000_cannot_change_mode_class): Do not
> allow subregs of TDmode in FPRs of smaller size in little-endian.
> (rs6000_split_multireg_move): When splitting an access to TDmode
> in FPRs, do not use simplify_gen_subreg.