[Patch PR target/67366 1/2] [ARM] - Add movmisalignhi / si patterns
authorRamana Radhakrishnan <ramana.radhakrishnan@arm.com>
Fri, 9 Oct 2015 10:53:31 +0000 (10:53 +0000)
committerRamana Radhakrishnan <ramana@gcc.gnu.org>
Fri, 9 Oct 2015 10:53:31 +0000 (10:53 +0000)
commita46b23e136f56e1bb44065d260b49c24b656bd8b
tree4a9aa55b4f069e4f82a3d1bbcb2444cc4506cacf
parentdc0e206000fbb611e6ce9ab425035f29876470a5
[Patch PR target/67366 1/2] [ARM] - Add movmisalignhi / si patterns

This adds movmisalignhi and movmisalignsi expanders when unaligned
access is allowed by the architecture. This allows the mid-end
to expand to misaligned loads and stored.

Compared code generated for the Linux kernel and
it changes code generation for a handful of files all for the better
basically by reducing the stack usage.

Tested by :

1. armhf bootstrap and regression test - no regressions.
2.. arm-none-eabi cross build and regression test for

    {-marm/-march=armv7-a/-mfpu=vfpv3-d16/-mfloat-abi=softfp}
    {-mthumb/-march=armv8-a/-mfpu=crypto-neon-fp-armv8/-mfloat-abi=hard}
    {-marm/-mcpu=arm7tdmi/-mfloat-abi=soft}
    {-mthumb/-mcpu=arm7tdmi/-mfloat-abi=soft}

Will apply to trunk once 2/2 is approved.

regards
Ramana

2015-10-09  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>

        PR target/67366
        * config/arm/arm.md (movmisalign<mode>): New.
        * config/arm/iterators.md (HSI): New.

From-SVN: r228643
gcc/ChangeLog
gcc/config/arm/arm.md
gcc/config/arm/iterators.md