> Testing:
> * Crossbuild for target arm-none-eabi with cpu cortex-a9 neon softfp and
> tested in three configuration: -marm (default), -mthumb, -mapcs-frame. No
> regression on qemu.
> * Crossbuild for target arm-none-eabi thumb2 with cpu cortex-m3. No
> regression on qemu.
> * Crossbuild for target arm-none-eabi thumb1 with cpu arm7tdmi and
> arm1136jf-s. No regression on qemu.
> * Crossbuild for target arm-linux-gnueabi with cpu cortex-a9 with eglibc
> and used this compiler to build AEL linux kernel. It boots successfully. *
> Bootstrap the compiler on cortex-a8 successfully for
> --languages=c,c++,fortran and used this compiler to build gdb. No
> regression with check-gcc and check-gdb.

What other testing have you done?  Thate's a good number of combinations not 
covered by your above list.  In particular:
- Coverage of old cores looks pretty thin.  In particular ARMv4t has different 
interworking requirements.  
- iWMMXT has special alignment requirements.
- Interrupt functions with special prologue/epilogue.  Both traditional ARM 
and Cortex-M3.
- -mtpcs-frame and -mtpcs-leaf-frame

Some of these options are orthogonal.

As you've proved with -mapcs-frame it's near impossible to get these right 
without actually testing them.    I'm not saying you have to do a full testrun 
in every combination, but it's worth testing a representative selection of 
functions (large and small frame, leaf or not, with and without frame pointer, 
uses alloca, etc).  Also worth explicitly clobbering a selection (both odd and 
even numbers) of callee saved registers to make sure we get that right.  Any 
difference in the output should be manually verified (ideally the assembly 
output would be identical).

> * The patches have not been explicitly tested with any FPA variants (which
> are deprecated in 4.7 and expected to become obsolete in 4.8).

I'm not keen on breaking these without actually removing them.

Paul

Reply via email to