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] PR 60203, fix little endian breakage of my PR 60203 fix


On Tue, Feb 18, 2014 at 5:08 PM, Michael Meissner
<meissner@linux.vnet.ibm.com> wrote:
> When I made my patches for PR target/60203 (allow use of ISA 2.07 direct move
> instructions for long double and _Decimal128), I was not aware that little
> endian TDmode has the double words in big endian order, but the bytes within
> the double words in little endian order in memory.  This means that normal
> SUBREG's of TDmode is not allowed.  That patch broke the little endian build,
> and this patch fixes it.  In this patch, I don't allow doing direct move of
> TDmode in little endian.
>
> I have done bootstraps and make check on a big endian power7, big endian
> power8, and little endian power8 systems.  The two big endian systems introduce
> no regressions with the patch applied and without the patch.  The little endian
> system now builds, and runs the test suite.  Is this patch ok to apply?
>
> I did not write a test case, as the normal bootstrap on a little endian power8
> system will catch regressions in the future.
>
> 2014-02-18  Michael Meissner  <meissner@linux.vnet.ibm.com>
>
>         PR target/60203
>         * config/rs6000/rs6000.md (mov<mode>_64bit, TF/TDmode moves):
>         Split 64-bit moves into 2 patterns.  Do not allow the use of
>         direct move for TDmode in little endian, since the decimal value
>         has little endian bytes within a word, but the 64-bit pieces are
>         ordered in a big endian fashion, and normal subreg's of TDmode are
>         not allowed.

Okay.

Thanks, David


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