2013-09-10 Christophe Lyon <christophe.lyon@linaro.org>
commit98b1f9f24d409365d8edb006a05e29bcbd81a12a
authorclyon <clyon@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 10 Sep 2013 08:17:11 +0000 (10 08:17 +0000)
committerclyon <clyon@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 10 Sep 2013 08:17:11 +0000 (10 08:17 +0000)
treefb29fe19f772d3d483891479ea0405f6419adee2
parentd852e3c68466e14700941a73d8b5b6d2faf949e2
2013-09-10  Christophe Lyon  <christophe.lyon@linaro.org>

Backport from trunk r200593,201024,201025,201122,201124,201126.
2013-07-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

* config/arm/arm.md (arm_andsi3_insn): Add alternatives for 16-bit
encoding.
(iorsi3_insn): Likewise.
(arm_xorsi3): Likewise.

2013-07-18  Sofiane Naci  <sofiane.naci@arm.com>

* config/arm/arm.md (attribute "type"): Rename "simple_alu_imm" to
"arlo_imm".  Rename "alu_reg" to "arlo_reg".  Rename "simple_alu_shift" to
"extend".  Split "alu_shift" into "shift" and "arlo_shift".  Split
"alu_shift_reg" into "shift_reg" and "arlo_shift_reg".  List types
in alphabetical order.
(attribute "core_cycles"): Update for attribute changes.
(arm_addsi3): Likewise.
(addsi3_compare0): Likewise.
(addsi3_compare0_scratch): Likewise.
(addsi3_compare_op1): Likewise.
(addsi3_compare_op2): Likewise.
(compare_addsi2_op0): Likewise.
(compare_addsi2_op1): Likewise.
(addsi3_carryin_shift_<optab>): Likewise.
(subsi3_carryin_shift): Likewise.
(rsbsi3_carryin_shift): Likewise.
(arm_subsi3_insn): Likewise.
(subsi3_compare0): Likewise.
(subsi3_compare): Likewise.
(arm_andsi3_insn): Likewise.
(thumb1_andsi3_insn): Likewise.
(andsi3_compare0): Likewise.
(andsi3_compare0_scratch): Likewise.
(zeroextractsi_compare0_scratch
(andsi_not_shiftsi_si): Likewise.
(iorsi3_insn): Likewise.
(iorsi3_compare0): Likewise.
(iorsi3_compare0_scratch): Likewise.
(arm_xorsi3): Likewise.
(thumb1_xorsi3_insn): Likewise.
(xorsi3_compare0): Likewise.
(xorsi3_compare0_scratch): Likewise.
(satsi_<SAT:code>_shift): Likewise.
(rrx): Likewise.
(arm_shiftsi3): Likewise.
(shiftsi3_compare0): Likewise.
(not_shiftsi): Likewise.
(not_shiftsi_compare0): Likewise.
(not_shiftsi_compare0_scratch): Likewise.
(arm_one_cmplsi2): Likewise.
(thumb_one_complsi2): Likewise.
(notsi_compare0): Likewise.
(notsi_compare0_scratch): Likewise.
(thumb1_zero_extendhisi2): Likewise.
(arm_zero_extendhisi2): Likewise.
(arm_zero_extendhisi2_v6): Likewise.
(arm_zero_extendhisi2addsi): Likewise.
(thumb1_zero_extendqisi2): Likewise.
(thumb1_zero_extendqisi2_v6): Likewise.
(arm_zero_extendqisi2): Likewise.
(arm_zero_extendqisi2_v6): Likewise.
(arm_zero_extendqisi2addsi): Likewise.
(thumb1_extendhisi2): Likewise.
(arm_extendhisi2): Likewise.
(arm_extendhisi2_v6): Likewise.
(arm_extendqisi): Likewise.
(arm_extendqisi_v6): Likewise.
(arm_extendqisi2addsi): Likewise.
(thumb1_extendqisi2): Likewise.
(thumb1_movdi_insn): Likewise.
(arm_movsi_insn): Likewise.
(movsi_compare0): Likewise.
(movhi_insn_arch4): Likewise.
(movhi_bytes): Likewise.
(arm_movqi_insn): Likewise.
(thumb1_movqi_insn): Likewise.
(arm32_movhf): Likewise.
(thumb1_movhf): Likewise.
(arm_movsf_soft_insn): Likewise.
(thumb1_movsf_insn): Likewise.
(movdf_soft_insn): Likewise.
(thumb_movdf_insn): Likewise.
(arm_cmpsi_insn): Likewise.
(cmpsi_shiftsi): Likewise.
(cmpsi_shiftsi_swp): Likewise.
(arm_cmpsi_negshiftsi_si): Likewise.
(movsicc_insn): Likewise.
(movsfcc_soft_insn): Likewise.
(arith_shiftsi): Likewise.
(arith_shiftsi_compare0
(arith_shiftsi_compare0_scratch
(sub_shiftsi): Likewise.
(sub_shiftsi_compare0
(sub_shiftsi_compare0_scratch
(and_scc): Likewise.
(cond_move): Likewise.
(if_plus_move): Likewise.
(if_move_plus): Likewise.
(if_move_not): Likewise.
(if_not_move): Likewise.
(if_shift_move): Likewise.
(if_move_shift): Likewise.
(if_shift_shift): Likewise.
(if_not_arith): Likewise.
(if_arith_not): Likewise.
(cond_move_not): Likewise.
(thumb1_ashlsi3): Set type attribute.
(thumb1_ashrsi3): Likewise.
(thumb1_lshrsi3): Likewise.
(thumb1_rotrsi3): Likewise.
(shiftsi3_compare0_scratch): Likewise.
* config/arm/neon.md (neon_mov<mode>): Update for attribute changes.
(neon_mov<mode>): Likewise.
* config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Update for attribute
changes.
(thumb2_movsi_insn): Likewise.
(thumb2_cmpsi_neg_shiftsi): Likewise.
(thumb2_extendqisi_v6): Likewise.
(thumb2_zero_extendhisi2_v6): Likewise.
(thumb2_zero_extendqisi2_v6): Likewise.
(thumb2_shiftsi3_short): Likewise.
(thumb2_addsi3_compare0_scratch): Likewise.
(orsi_not_shiftsi_si): Likewise.
* config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
* config/arm/arm-fixed.md (arm_ssatsihi_shift): Update for attribute
changes.
* config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
(1020alu_shift_op): Likewise.
(1020alu_shift_reg_op): Likewise.
* config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
(alu_shift_op): Likewise.
(alu_shift_reg_op): Likewise.
* config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
(11_alu_shift_op): Likewise.
(11_alu_shift_reg_op): Likewise.
* config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
(9_alu_shift_reg_op): Likewise.
* config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute changes.
(cortex_a15_alu_shift): Likewise.
(cortex_a15_alu_shift_reg): Likewise.
* config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute changes.
(cortex_a5_alu_shift): Likewise.
* config/arm/cortex-a53.md (cortex_a53_alu) : Update for attribute
changes.
(cortex_a53_alu_shift): Likewise.
* config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
changes.
(cortex_a7_alu_reg): Likewise.
(cortex_a7_alu_shift): Likewise.
* config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute changes.
(cortex_a8_alu_shift): Likewise.
(cortex_a8_alu_shift_reg): Likewise.
(cortex_a8_mov): Likewise.
* config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
(cortex_a9_dp_shift): Likewise.
* config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute changes.
* config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute changes.
(cortex_r4_mov): Likewise.
(cortex_r4_alu_shift): Likewise.
(cortex_r4_alu_shift_reg): Likewise.
* config/arm/fa526.md (526_alu_op): Update for attribute changes.
(526_alu_shift_op): Likewise.
* config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
* config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
(626te_alu_shift_op): Likewise.
* config/arm/fa726te.md (726te_shift_op): Update for attribute changes.
(726te_alu_op): Likewise.
(726te_alu_shift_op): Likewise.
(726te_alu_shift_reg_op): Likewise.
* config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
(mp626_alu_shift_op): Likewise.
* config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute changes.
(pj4_alu_e1_conds): Likewise.
(pj4_alu): Likewise.
(pj4_alu_conds): Likewise.
(pj4_shift): Likewise.
(pj4_shift_conds): Likewise.
(pj4_alu_shift): Likewise.
(pj4_alu_shift_conds): Likewise.
* config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute changes.
(cortexa7_older_only): Likewise.
(cortexa7_younger): Likewise.

2013-07-18  Sofiane Naci  <sofiane.naci@arm.com>

* config/arm/arm.md (attribute "insn"): Delete values "mrs", "msr",
"xtab" and "sat".  Move value "clz" from here to ...
(attriubte "type"): ... here.
(satsi_<SAT:code>): Delete "insn" attribute.
(satsi_<SAT:code>_shift): Likewise.
(arm_zero_extendqisi2addsi): Likewise.
(arm_extendqisi2addsi): Likewise.
(clzsi2): Update for attribute changes.
(rbitsi2): Likewise.
* config/arm/arm-fixed.md (arm_ssatsihi_shift): Delete "insn" attribute.
(arm_usatsihi): Likewise.
* config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.

2013-07-22  Kyrylo Tkachov  <kyrylo.tkachov@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): Convert to generate cond_exec.
(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_movsicc_insn): Adjust alternatives.
(thumb2_mov_negscc): Disable for arm_restrict_it.
(thumb2_mov_negscc_strict_it): New pattern.
(thumb2_mov_notscc_strict_it): New pattern.
(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.

2013-07-22  Sofiane Naci  <sofiane.naci@arm.com>

* config/arm/arm.md (attribute "insn"): Delete.
(attribute "type"): Add "mov_imm", "mov_reg", "mov_shift",
"mov_shift_reg", "mvn_imm", "mvn_reg", "mvn_shift" and "mvn_shift_reg".
(not_shiftsi): Update for attribute change.
(not_shiftsi_compare0): Likewise.
(not_shiftsi_compare0_scratch): Likewise.
(arm_one_cmplsi2): Likewise.
(thumb1_one_cmplsi2): Likewise.
(notsi_compare0): Likewise.
(notsi_compare0_scratch): Likewise.
(thumb1_movdi_insn): Likewise.
(arm_movsi_insn): Likewise.
(movhi_insn_arch4): Likewise.
(movhi_bytes): Likewise.
(arm_movqi_insn): Likewise.
(thumb1_movqi_insn): Likewise.
(arm32_movhf): Likewise.
(thumb1_movhf): Likewise.
(arm_movsf_soft_insn): Likewise.
(thumb1_movsf_insn): Likewise.
(thumb_movdf_insn): Likewise.
(movsicc_insn): Likewise.
(movsfcc_soft_insn): Likewise.
(and_scc): Likewise.
(cond_move): Likewise.
(if_move_not): Likewise.
(if_not_move): Likewise.
(if_shift_move): Likewise.
(if_move_shift): Likewise.
(if_shift_shift): Likewise.
(if_not_arith): Likewise.
(if_arith_not): Likewise.
(cond_move_not): Likewise.
* config/arm/neon.md (neon_mov<mode>): Update for attribute change.
(neon_mov<mode>): Likewise.
* config/arm/vfp.md (arm_movsi_vfp): Update for attribute change.
(thumb2_movsi_vfp): Likewise.
(movsf_vfp): Likewise.
(thumb2_movsf_vfp): Likewise.
* config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute change.
(cortexa7_older_only): Likewise.
(cortexa7_younger): Likewise.
* config/arm/arm1020e.md (1020alu_op): Update for attribute change.
(1020alu_shift_op): Likewise.
(1020alu_shift_reg_op): Likewise.
* config/arm/arm1026ejs.md (alu_op): Update for attribute change.
(alu_shift_op): Likewise.
(alu_shift_reg_op): Likewise.
* config/arm/arm1136jfs.md (11_alu_op): Update for attribute change.
(11_alu_shift_op): Likewise.
(11_alu_shift_reg_op): Likewise.
* config/arm/arm926ejs.md (9_alu_op): Update for attribute change.
(9_alu_shift_reg_op): Likewise.
* config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute change.
(cortex_a15_alu_shift): Likewise.
(cortex_a15_alu_shift_reg): Likewise.
* config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute change.
(cortex_a5_alu_shift): Likewise.
* config/arm/cortex-a53.md (cortex_a53_alu): Update for attribute change.
(cortex_a53_alu_shift): Likewise.
* config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute change.
(cortex_a7_alu_reg): Likewise.
(cortex_a7_alu_shift): Likewise.
* config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
(cortex_a8_alu_shift): Likewise.
(cortex_a8_alu_shift_reg): Likewise.
(cortex_a8_mov): Likewise.
* config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
(cortex_a9_dp_shift): Likewise.
* config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute change.
* config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute change.
(cortex_r4_mov): Likewise.
(cortex_r4_alu_shift): Likewise.
(cortex_r4_alu_shift_reg): Likewise.
* config/arm/fa526.md (526_alu_op): Update for attribute change.
(526_alu_shift_op): Likewise.
* config/arm/fa606te.md (606te_alu_op): Update for attribute change.
* config/arm/fa626te.md (626te_alu_op): Update for attribute change.
(626te_alu_shift_op): Likewise.
* config/arm/fa726te.md (726te_shift_op): Update for attribute change.
(726te_alu_op): Likewise.
(726te_alu_shift_op): Likewise.
(726te_alu_shift_reg_op): Likewise.
* config/arm/fmp626.md (mp626_alu_op): Update for attribute change.
(mp626_alu_shift_op): Likewise.
* config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute change.
(pj4_alu_e1_conds): Likewise.
(pj4_alu): Likewise.
(pj4_alu_conds): Likewise.
(pj4_shift): Likewise.
(pj4_shift_conds): Likewise.
(pj4_alu_shift): Likewise.
(pj4_alu_shift_conds): Likewise.

2013-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>

* config/arm/constraints.md (Pd): Allow TARGET_THUMB
instead of TARGET_THUMB1.
(Pz): New constraint.
* config/arm/arm.md (arm_addsi3): Add alternatives for 16-bit
encodings.
(compare_negsi_si): Likewise.
(compare_addsi2_op0): Likewise.
(compare_addsi2_op1): Likewise.
(addsi3_carryin_<optab>): Likewise.
(addsi3_carryin_alt2_<optab>): Likewise.
(addsi3_carryin_shift_<optab>): Disable cond_exec variant
for arm_restrict_it.
(subsi3_carryin): Likewise.
(arm_subsi3_insn): Add alternatives for 16-bit encoding.
(minmax_arithsi): Disable for arm_restrict_it.
(minmax_arithsi_non_canon): Adjust for arm_restrict_it.
(satsi_<SAT:code>): Disable cond_exec variant for arm_restrict_it.
(satsi_<SAT:code>_shift): Likewise.
(arm_shiftsi3): Add alternative for 16-bit encoding.
(arm32_movhf): Disable for arm_restrict_it.
(arm_cmpdi_unsigned): Add alternatives for 16-bit encoding.
(arm_movtas_ze): Disable cond_exec variant for arm_restrict_it.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/branches/linaro@202424 138bc75d-0d04-0410-961f-82ee72b054a4
27 files changed:
gcc-4_8-branch/gcc/ChangeLog.linaro
gcc-4_8-branch/gcc/config/arm/arm-fixed.md
gcc-4_8-branch/gcc/config/arm/arm.c
gcc-4_8-branch/gcc/config/arm/arm.md
gcc-4_8-branch/gcc/config/arm/arm1020e.md
gcc-4_8-branch/gcc/config/arm/arm1026ejs.md
gcc-4_8-branch/gcc/config/arm/arm1136jfs.md
gcc-4_8-branch/gcc/config/arm/arm926ejs.md
gcc-4_8-branch/gcc/config/arm/constraints.md
gcc-4_8-branch/gcc/config/arm/cortex-a15.md
gcc-4_8-branch/gcc/config/arm/cortex-a5.md
gcc-4_8-branch/gcc/config/arm/cortex-a53.md
gcc-4_8-branch/gcc/config/arm/cortex-a7.md
gcc-4_8-branch/gcc/config/arm/cortex-a8.md
gcc-4_8-branch/gcc/config/arm/cortex-a9.md
gcc-4_8-branch/gcc/config/arm/cortex-m4.md
gcc-4_8-branch/gcc/config/arm/cortex-r4.md
gcc-4_8-branch/gcc/config/arm/fa526.md
gcc-4_8-branch/gcc/config/arm/fa606te.md
gcc-4_8-branch/gcc/config/arm/fa626te.md
gcc-4_8-branch/gcc/config/arm/fa726te.md
gcc-4_8-branch/gcc/config/arm/fmp626.md
gcc-4_8-branch/gcc/config/arm/marvell-pj4.md
gcc-4_8-branch/gcc/config/arm/neon.md
gcc-4_8-branch/gcc/config/arm/predicates.md
gcc-4_8-branch/gcc/config/arm/thumb2.md
gcc-4_8-branch/gcc/config/arm/vfp.md