Hi all, This patch adjusts the patterns in thumb2.md to conform with -mrestrict-it. 16-bit alternatives are added, patterns that explicitly generate IT blocks that don't conform are disabled or replaced with appropriate patterns for arm_restrict_it. A new pattern thumb2_cond_arith_strict_it is added that is a splitter version of thumb2_cond_arith but produces patterns appropriate for arm_restrict_it.
Bootstrapped on Cortex-A15, tested on model and qemu with ARMv7 and ARMv8 architecture levels. Ok for trunk? Thanks, Kyrill 2013-06-21 Kyrylo Tkachov <kyrylo.tkac...@arm.com> * config/arm/predicates.md (shiftable_operator_strict_it): New predicate. * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Disable cond_exec version for arm_restrict_it. (thumb2_smaxsi3): Add 16-bit alternatives. (thumb2_sminsi3): Likewise. (thumb32_umaxsi3): Likewise. (thumb2_uminsi3): Likewise. (thumb2_abssi2): Adjust constraints for arm_restrict_it. (thumb2_neg_abssi2): Likewise. (thumb2_mov_scc): Add alternative for 16-bit encoding. (thumb2_mov_negscc): Likewise. (thumb2_mov_notscc): Disable for arm_restrict_it. (thumb2_ior_scc): Likewise. (thumb2_ior_scc_strict_it): New pattern. (thumb2_cond_move): Adjust for arm_restrict_it. (thumb2_cond_arith): Disable for arm_restrict_it. (thumb2_cond_arith_strict_it): New pattern. (thumb2_cond_sub): Adjust for arm_restrict_it. (thumb2_movcond): Likewise. (thumb2_extendqisi_v6): Disable cond_exec variant for arm_restrict_it. (thumb2_zero_extendhisi2_v6): Likewise. (thumb2_zero_extendqisi2_v6): Likewise. (orsi_notsi_si): Likewise. (orsi_not_shiftsi_si): Likewise.
11-thumb2-changes.patch
Description: Binary data