This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH, rs6000] Fix order of TDmode in FPRs in little-endian mode


On Mon, Nov 18, 2013 at 3:07 PM, Ulrich Weigand <uweigand@de.ibm.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
register.

> Tested on powerpc64le-linux, fixes all remaining DFP-related test suite
> failures.
>
> OK for mainline?
>
> Bye,
> Ulrich
>
>
> ChangeLog:
>
>         * 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.

Okay.

Thanks, David


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]