]> git.ipfire.org Git - thirdparty/gcc.git/commit
[Patch PR target/67366 1/2] [ARM] - Add movmisalignhi / si patterns
authorramana <ramana@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 9 Oct 2015 10:53:31 +0000 (10:53 +0000)
committerramana <ramana@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 9 Oct 2015 10:53:31 +0000 (10:53 +0000)
commit115857efd5662a6b156131d651308c29c8466366
tree4a9aa55b4f069e4f82a3d1bbcb2444cc4506cacf
parentfa835bace2f6988e623666ee84d4321a4a22dc56
[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.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@228643 138bc75d-0d04-0410-961f-82ee72b054a4
gcc/ChangeLog
gcc/config/arm/arm.md
gcc/config/arm/iterators.md