Hi,

This patch references the wrong bug. It should reference 71677 and not
71667
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71677

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71667


Thanks,
Alan.



As we discussed in the patch review, there were some issues with using %Y
for
the ISA 3.0 instructions LXSD and STXSD.

I have rewritten the patch so that we have a new memory constraint (%wY)
that
explicitly targets those instructions.  I went back to the mov{DF,DD}
patterns
and changed their use of %o to %wY.

I removed the test that was generated from the XalanNamespacesStack.cpp
source
that showed up the problem.

I have bootstrapped this on a little endian power8 system and there were no
regressions in the test suite.  I also built Spec 2006 for power9 with this
compiler, and the xalancbmk benchmark now builds.  I will kick off a big
endian
build on a power7 system.

Assuming there are no regressions in power7, are these patches ok to
install in
the trunk, and backport to GCC 6.2 after a burn-in period?

2016-06-28  Michael Meissner  <meiss...@linux.vnet.ibm.com>

        PR target/71667
        * config/rs6000/constraints.md (wY constraint): New constraint to
        match the requirements for the LXSD and STXSD instructions.
        * config/rs6000/predicates.md (offsettable_mem_14bit_operand): New
        predicate to match the requirements for the LXSD and STXSD
        instructions.
        * config/rs6000/rs6000.md (mov<mode>_hardfloat32, FMOVE64 case):
        Use constaint wY for LXSD/STXSD instructions instead of 'o' or 'Y'
        to make sure that the bottom 2 bits of offset are 0, the address
        form is offsettable, and no updating is done in the address mode.
        (mov<mode>_hardfloat64, FMOVE64 case): Likewise.
        (movdi_internal32): Likewise
        (movdi_internal64): Likewise.

-- 
Michael Meissner, IBM
IBM, M/S 2506R, 550 King Street, Littleton, MA 01460-6245, USA
email: meiss...@linux.vnet.ibm.com, phone: +1 (978) 899-4797




Reply via email to