Ping, with a caveat. This bug appears on all release branches and is thus not a regression. Should it be slotted for next stage 1?
Kyrill On 16/01/15 16:55, Kyrill Tkachov wrote:
Hi all, This PR is about GCC emiting 'bx lr' instructions when compiling with -march=armv2 or armv3(!). It should be using a move into the pc instead on those architectures. The cause I found for it is that the functions are marked with the ARM_FT_INTERWORKED type and hence in the output_return_instruction function they use 'bx lr'. Rather than changing output_return_instruction to check for the architecture level when outputting the string I think the correct thing to do is to disable interworking when the target does not support any Thumb at all, like these old architectures. Is that correct thinking? Anyway, with this patch the functions are given the ARM_FT_NORMAL type and use 'mov pc, lr' to return. Tested arm-none-eabi. What do people think? Thanks, Kyrill 2014-01-16 Kyrylo Tkachov <kyrylo.tkac...@arm.com> PR target/64405 * config/arm/arm.c (arm_option_override): Disable interworking if Thumb is not available. 2014-01-16 Kyrylo Tkachov <kyrylo.tkac...@arm.com> PR target/64405 * gcc.target/arm/pr64405_1.c: New test.