Hi all, IT blocks in ARMv8 AArch32 Thumb mode are somewhat restricted. They cannot contain more than one instruction, and that one instruction has to be a 16-bit variant of a restricted subset of instructions. ARMv7 IT blocks that don't fit in this category are allowed by ARMv8, but are deprecated.
This patch is the first in a series to get gcc to stop generating the deprecated forms for ARMv8. It creates a command line option, -mrestrict-it, that can be used to enable this new behaviour for earlier architecture variants, as well as switch it off for ARMv8 (via -mno-restrict-it). The new behaviour is controlled by a new variable, arm_restrict_it. We stop the merging of cond_execs into multi-instruction IT blocks when arm_restrict_it is enabled. Bootstrapped on a Cortex-A15, regtested arm-none-eabi on qemu and a model. Ok for trunk? Thanks, Kyrill 2013-06-04 Kyrylo Tkachov <kyrylo.tkac...@arm.com> * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro. (arm_option_override): Override arm_restrict_it where appropriate. (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK. * config/arm/arm.opt (mrestrict-it): New command-line option.
01-options.patch
Description: Binary data