This patch series implements the changes/additions to the ARM ABI proposed at https://gcc.gnu.org/ml/gcc/2015-07/msg00040.html .

The first patch is the ABI update. This is an ABI-breaking change for any code using __attribute__((aligned(...))) on a public interface (a case not previously defined by the AAPCS).

This causes a regression of gcc.c-torture/execute/20040709-1.c at -O0 (only), and the align_rec2.c fails, both due to a latent bug where we can emit strd/ldrd on an odd-numbered register in ARM state. The second patch prevents such illegal instructions and fixes both tests.

On trunk, tested via bootstrap + check-gcc on arm-none-linux-gnueabihf (cortex-a15+neon). Also cross-tested arm-none-eabi with a number of variants.

On gcc-5-branch, patches rebase cleanly, tested via profiledbootstrap + check-gcc. (Yes, profiledbootstrap succeeds.)

Reply via email to