Bump version number, post release.
[official-gcc.git] / gcc-4_8-branch / gcc / ChangeLog.linaro
blobb537734f0dcd536cc0555fbe2482dbaff1651518
1 2013-10-16  Christophe Lyon  <christophe.lyon@linaro.org>
3         * LINARO-VERSION: Bump version.
5 2013-10-15  Christophe Lyon  <christophe.lyon@linaro.org>
7         GCC Linaro 4.8-2013.10 released.
9 2013-10-09  Christophe Lyon  <christophe.lyon@linaro.org>
11         Backport from trunk r198526,198527,200020,200595.
12         2013-05-02  Ian Bolton  <ian.bolton@arm.com>
14         * config/aarch64/aarch64.md (*and_one_cmpl<mode>3_compare0):
15         New pattern.
16         (*and_one_cmplsi3_compare0_uxtw): Likewise.
17         (*and_one_cmpl_<SHIFT:optab><mode>3_compare0): Likewise.
18         (*and_one_cmpl_<SHIFT:optab>si3_compare0_uxtw): Likewise.
20         2013-05-02  Ian Bolton  <ian.bolton@arm.com>
22         * config/aarch64/aarch64.md (movsi_aarch64): Only allow to/from
23         S reg when fp attribute set.
24         (movdi_aarch64): Only allow to/from D reg when fp attribute set.
26         2013-06-12  Sofiane Naci  <sofiane.naci@arm.com>
28         * config/aarch64/aarch64-simd.md (aarch64_combine<mode>): convert to split.
29         (aarch64_simd_combine<mode>): New instruction expansion.
30         * config/aarch64/aarch64-protos.h (aarch64_split_simd_combine): New
31         function prototype.
32         * config/aarch64/aarch64.c (aarch64_split_combine): New function.
33         * config/aarch64/iterators.md (Vdbl): Add entry for DF.
35         2013-07-02  Ian Bolton  <ian.bolton@arm.com>
37         * config/aarch64/aarch64.md (*extr_insv_reg<mode>): New pattern.
39 2013-10-09  Christophe Lyon  <christophe.lyon@linaro.org>
41         Backport from trunk r201879.
42         2013-08-20  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
44         * config/arm/linux-elf.h (MULTILIB_DEFAULTS): Remove definition.
45         * config/arm/t-linux-eabi (MULTILIB_OPTIONS): Document association
46         with MULTLIB_DEFAULTS.
48 2013-10-09  Christophe Lyon  <christophe.lyon@linaro.org>
50         Backport from trunk r201871.
51         2013-08-20  Pavel Chupin  <pavel.v.chupin@intel.com>
53         Fix LIB_SPEC for systems without libpthread.
55         * config/gnu-user.h: Introduce GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC.
56         * config/arm/linux-eabi.h: Use GNU_USER_TARGET_NO_PTHREADS_LIB_SPEC
57         for Android.
58         * config/i386/linux-common.h: Likewise.
59         * config/mips/linux-common.h: Likewise.
61 2013-10-08  Christophe Lyon  <christophe.lyon@linaro.org>
63         Backport from trunk r202702.
64         2013-09-18  Richard Earnshaw  <rearnsha@arm.com>
66         * arm.c (arm_get_frame_offsets): Validate architecture supports
67         LDRD/STRD before accepting the tuning preference.
68         (arm_expand_prologue): Likewise.
69         (arm_expand_epilogue): Likewise.
71 2013-10-04  Venkataramanan.Kumar  <venkataramanan.kumar@linaro.org>
73         Backport from trunk r203028.
74         2013-09-30  Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>
76         * config/aarch64/aarch64.h (MCOUNT_NAME): Define.
77         (NO_PROFILE_COUNTERS): Likewise.
78         (PROFILE_HOOK): Likewise.
79         (FUNCTION_PROFILER): Likewise.
80         * config/aarch64/aarch64.c (aarch64_function_profiler): Remove.
82 2013-10-03  Christophe Lyon  <christophe.lyon@linaro.org>
84         Backport from trunk r201923,201927.
85         2013-08-22  Julian Brown  <julian@codesourcery.com>
87         * configure.ac: Add aarch64 to list of arches which use "nop" in
88         debug_line test.
89         * configure: Regenerate.
91         2013-08-22  Paolo Carlini  <paolo.carlini@oracle.com>
93         * configure.ac: Add backslashes missing from the last change.
94         * configure: Regenerate.
96 2013-10-03  Christophe Lyon  <christophe.lyon@linaro.org>
98         Backport from trunk r202023,202108.
99         2013-08-27  Tejas Belagod  <tejas.belagod@arm.com>
101         * config/aarch64/arm_neon.h: Replace all inline asm implementations
102         of vget_low_* with implementations in terms of other intrinsics.
104         2013-08-30  Tejas Belagod  <tejas.belagod@arm.com>
106         * config/aarch64/arm_neon.h (__AARCH64_UINT64_C, __AARCH64_INT64_C): New
107         arm_neon.h's internal macros to specify 64-bit constants. Avoid using
108         stdint.h's macros.
110 2013-10-03  Christophe Lyon  <christophe.lyon@linaro.org>
112         Backport from trunk r201260,202400.
113         2013-07-26  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
114             Richard Earnshaw  <richard.earnshaw@arm.com>
116         * combine.c (simplify_comparison): Re-canonicalize operands
117         where appropriate.
118         * config/arm/arm.md (movcond_addsi): New splitter.
120         2013-09-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
122         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Return CC_SWP for
123         comparison with negated operand.
124         * config/aarch64/aarch64.md (compare_neg<mode>): Match canonical
125         RTL form.
127 2013-10-03  Christophe Lyon  <christophe.lyon@linaro.org>
129         Backport from trunk r202164.
130         2013-09-02  Bin Cheng  <bin.cheng@arm.com>
132         * tree-ssa-loop-ivopts.c (set_autoinc_for_original_candidates):
133         Find auto-increment use both before and after candidate.
135 2013-10-03  Christophe Lyon  <christophe.lyon@linaro.org>
137         Backport from trunk r202279.
138         2013-09-05  Richard Earnshaw  <rearnsha@arm.com>
140         * arm.c (thumb2_emit_strd_push): Rewrite to use pre-decrement on
141         initial store.
142         * thumb2.md (thumb2_storewb_parisi): New pattern.
144 2013-10-03  Christophe Lyon  <christophe.lyon@linaro.org>
146         Backport from trunk r202275.
147         2013-09-05  Yufeng Zhang  <yufeng.zhang@arm.com>
149         * config/aarch64/aarch64-option-extensions.def: Add
150         AARCH64_OPT_EXTENSION of 'crc'.
151         * config/aarch64/aarch64.h (AARCH64_FL_CRC): New define.
152         (AARCH64_ISA_CRC): Ditto.
153         * doc/invoke.texi (-march and -mcpu feature modifiers): Add
154         description of the CRC extension.
156 2013-10-01  Christophe Lyon  <christophe.lyon@linaro.org>
158         Backport from trunk r201250.
159         2013-07-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
161         * config/arm/arm.md (arm_addsi3, addsi3_carryin_<optab>,
162         addsi3_carryin_alt2_<optab>): Correct output template.
164 2013-10-01  Kugan Vivekanandarajah  <kuganv@linaro.org>
166         Backport from trunk r203059,203116.
167         2013-10-01  Kugan Vivekanandarajah  <kuganv@linaro.org>
169         PR target/58578
170         Revert
171         2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
172         * config/arm/arm.md (arm_ashldi3_1bit):  define_insn into
173         define_insn_and_split.
174         (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
175         (shiftsi3_compare): New pattern.
176         (rrx): New pattern.
177         * config/arm/unspecs.md (UNSPEC_RRX): New.
179 2013-09-11  Christophe Lyon  <christophe.lyon@linaro.org>
181         * LINARO-VERSION: Bump version.
183 2013-09-10  Christophe Lyon  <christophe.lyon@linaro.org>
185         GCC Linaro 4.8-2013.09 released.
187 2013-09-10  Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>
189         Backport from trunk r200197, 201411.
190         2013-06-19  Richard Earnshaw  <rearnsha@arm.com>
192         arm.md (split for eq(reg, 0)): Add variants for ARMv5 and Thumb2.
193         (peepholes for eq(reg, not-0)): Ensure condition register is dead after
194         pattern.  Use more efficient sequences on ARMv5 and Thumb2.
196         2013-08-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
198         * config/arm/arm.md (peepholes for eq (reg1) (reg2/imm)):
199         Generate canonical plus rtx with negated immediate instead of minus
200         where appropriate.
201         * config/arm/arm.c (thumb2_reorg): Handle ADCS <Rd>, <Rn> case.
203 2013-09-10  Christophe Lyon  <christophe.lyon@linaro.org>
205         Backport from trunk r200593,201024,201025,201122,201124,201126.
206         2013-07-02  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
208         * config/arm/arm.md (arm_andsi3_insn): Add alternatives for 16-bit
209         encoding.
210         (iorsi3_insn): Likewise.
211         (arm_xorsi3): Likewise.
213         2013-07-18  Sofiane Naci  <sofiane.naci@arm.com>
215         * config/arm/arm.md (attribute "type"): Rename "simple_alu_imm" to
216         "arlo_imm".  Rename "alu_reg" to "arlo_reg".  Rename "simple_alu_shift" to
217         "extend".  Split "alu_shift" into "shift" and "arlo_shift".  Split
218         "alu_shift_reg" into "shift_reg" and "arlo_shift_reg".  List types
219         in alphabetical order.
220         (attribute "core_cycles"): Update for attribute changes.
221         (arm_addsi3): Likewise.
222         (addsi3_compare0): Likewise.
223         (addsi3_compare0_scratch): Likewise.
224         (addsi3_compare_op1): Likewise.
225         (addsi3_compare_op2): Likewise.
226         (compare_addsi2_op0): Likewise.
227         (compare_addsi2_op1): Likewise.
228         (addsi3_carryin_shift_<optab>): Likewise.
229         (subsi3_carryin_shift): Likewise.
230         (rsbsi3_carryin_shift): Likewise.
231         (arm_subsi3_insn): Likewise.
232         (subsi3_compare0): Likewise.
233         (subsi3_compare): Likewise.
234         (arm_andsi3_insn): Likewise.
235         (thumb1_andsi3_insn): Likewise.
236         (andsi3_compare0): Likewise.
237         (andsi3_compare0_scratch): Likewise.
238         (zeroextractsi_compare0_scratch
239         (andsi_not_shiftsi_si): Likewise.
240         (iorsi3_insn): Likewise.
241         (iorsi3_compare0): Likewise.
242         (iorsi3_compare0_scratch): Likewise.
243         (arm_xorsi3): Likewise.
244         (thumb1_xorsi3_insn): Likewise.
245         (xorsi3_compare0): Likewise.
246         (xorsi3_compare0_scratch): Likewise.
247         (satsi_<SAT:code>_shift): Likewise.
248         (rrx): Likewise.
249         (arm_shiftsi3): Likewise.
250         (shiftsi3_compare0): Likewise.
251         (not_shiftsi): Likewise.
252         (not_shiftsi_compare0): Likewise.
253         (not_shiftsi_compare0_scratch): Likewise.
254         (arm_one_cmplsi2): Likewise.
255         (thumb_one_complsi2): Likewise.
256         (notsi_compare0): Likewise.
257         (notsi_compare0_scratch): Likewise.
258         (thumb1_zero_extendhisi2): Likewise.
259         (arm_zero_extendhisi2): Likewise.
260         (arm_zero_extendhisi2_v6): Likewise.
261         (arm_zero_extendhisi2addsi): Likewise.
262         (thumb1_zero_extendqisi2): Likewise.
263         (thumb1_zero_extendqisi2_v6): Likewise.
264         (arm_zero_extendqisi2): Likewise.
265         (arm_zero_extendqisi2_v6): Likewise.
266         (arm_zero_extendqisi2addsi): Likewise.
267         (thumb1_extendhisi2): Likewise.
268         (arm_extendhisi2): Likewise.
269         (arm_extendhisi2_v6): Likewise.
270         (arm_extendqisi): Likewise.
271         (arm_extendqisi_v6): Likewise.
272         (arm_extendqisi2addsi): Likewise.
273         (thumb1_extendqisi2): Likewise.
274         (thumb1_movdi_insn): Likewise.
275         (arm_movsi_insn): Likewise.
276         (movsi_compare0): Likewise.
277         (movhi_insn_arch4): Likewise.
278         (movhi_bytes): Likewise.
279         (arm_movqi_insn): Likewise.
280         (thumb1_movqi_insn): Likewise.
281         (arm32_movhf): Likewise.
282         (thumb1_movhf): Likewise.
283         (arm_movsf_soft_insn): Likewise.
284         (thumb1_movsf_insn): Likewise.
285         (movdf_soft_insn): Likewise.
286         (thumb_movdf_insn): Likewise.
287         (arm_cmpsi_insn): Likewise.
288         (cmpsi_shiftsi): Likewise.
289         (cmpsi_shiftsi_swp): Likewise.
290         (arm_cmpsi_negshiftsi_si): Likewise.
291         (movsicc_insn): Likewise.
292         (movsfcc_soft_insn): Likewise.
293         (arith_shiftsi): Likewise.
294         (arith_shiftsi_compare0
295         (arith_shiftsi_compare0_scratch
296         (sub_shiftsi): Likewise.
297         (sub_shiftsi_compare0
298         (sub_shiftsi_compare0_scratch
299         (and_scc): Likewise.
300         (cond_move): Likewise.
301         (if_plus_move): Likewise.
302         (if_move_plus): Likewise.
303         (if_move_not): Likewise.
304         (if_not_move): Likewise.
305         (if_shift_move): Likewise.
306         (if_move_shift): Likewise.
307         (if_shift_shift): Likewise.
308         (if_not_arith): Likewise.
309         (if_arith_not): Likewise.
310         (cond_move_not): Likewise.
311         (thumb1_ashlsi3): Set type attribute.
312         (thumb1_ashrsi3): Likewise.
313         (thumb1_lshrsi3): Likewise.
314         (thumb1_rotrsi3): Likewise.
315         (shiftsi3_compare0_scratch): Likewise.
316         * config/arm/neon.md (neon_mov<mode>): Update for attribute changes.
317         (neon_mov<mode>): Likewise.
318         * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si): Update for attribute
319         changes.
320         (thumb2_movsi_insn): Likewise.
321         (thumb2_cmpsi_neg_shiftsi): Likewise.
322         (thumb2_extendqisi_v6): Likewise.
323         (thumb2_zero_extendhisi2_v6): Likewise.
324         (thumb2_zero_extendqisi2_v6): Likewise.
325         (thumb2_shiftsi3_short): Likewise.
326         (thumb2_addsi3_compare0_scratch): Likewise.
327         (orsi_not_shiftsi_si): Likewise.
328         * config/arm/vfp.md (arm_movsi_vfp): Update for attribute changes.
329         * config/arm/arm-fixed.md (arm_ssatsihi_shift): Update for attribute
330         changes.
331         * config/arm/arm1020e.md (1020alu_op): Update for attribute changes.
332         (1020alu_shift_op): Likewise.
333         (1020alu_shift_reg_op): Likewise.
334         * config/arm/arm1026ejs.md (alu_op): Update for attribute changes.
335         (alu_shift_op): Likewise.
336         (alu_shift_reg_op): Likewise.
337         * config/arm/arm1136jfs.md (11_alu_op): Update for attribute changes.
338         (11_alu_shift_op): Likewise.
339         (11_alu_shift_reg_op): Likewise.
340         * config/arm/arm926ejs.md (9_alu_op): Update for attribute changes.
341         (9_alu_shift_reg_op): Likewise.
342         * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute changes.
343         (cortex_a15_alu_shift): Likewise.
344         (cortex_a15_alu_shift_reg): Likewise.
345         * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute changes.
346         (cortex_a5_alu_shift): Likewise.
347         * config/arm/cortex-a53.md (cortex_a53_alu) : Update for attribute
348         changes.
349         (cortex_a53_alu_shift): Likewise.
350         * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
351         changes.
352         (cortex_a7_alu_reg): Likewise.
353         (cortex_a7_alu_shift): Likewise.
354         * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute changes.
355         (cortex_a8_alu_shift): Likewise.
356         (cortex_a8_alu_shift_reg): Likewise.
357         (cortex_a8_mov): Likewise.
358         * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute changes.
359         (cortex_a9_dp_shift): Likewise.
360         * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute changes.
361         * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute changes.
362         (cortex_r4_mov): Likewise.
363         (cortex_r4_alu_shift): Likewise.
364         (cortex_r4_alu_shift_reg): Likewise.
365         * config/arm/fa526.md (526_alu_op): Update for attribute changes.
366         (526_alu_shift_op): Likewise.
367         * config/arm/fa606te.md (606te_alu_op): Update for attribute changes.
368         * config/arm/fa626te.md (626te_alu_op): Update for attribute changes.
369         (626te_alu_shift_op): Likewise.
370         * config/arm/fa726te.md (726te_shift_op): Update for attribute changes.
371         (726te_alu_op): Likewise.
372         (726te_alu_shift_op): Likewise.
373         (726te_alu_shift_reg_op): Likewise.
374         * config/arm/fmp626.md (mp626_alu_op): Update for attribute changes.
375         (mp626_alu_shift_op): Likewise.
376         * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute changes.
377         (pj4_alu_e1_conds): Likewise.
378         (pj4_alu): Likewise.
379         (pj4_alu_conds): Likewise.
380         (pj4_shift): Likewise.
381         (pj4_shift_conds): Likewise.
382         (pj4_alu_shift): Likewise.
383         (pj4_alu_shift_conds): Likewise.
384         * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute changes.
385         (cortexa7_older_only): Likewise.
386         (cortexa7_younger): Likewise.
388         2013-07-18  Sofiane Naci  <sofiane.naci@arm.com>
390         * config/arm/arm.md (attribute "insn"): Delete values "mrs", "msr",
391         "xtab" and "sat".  Move value "clz" from here to ...
392         (attriubte "type"): ... here.
393         (satsi_<SAT:code>): Delete "insn" attribute.
394         (satsi_<SAT:code>_shift): Likewise.
395         (arm_zero_extendqisi2addsi): Likewise.
396         (arm_extendqisi2addsi): Likewise.
397         (clzsi2): Update for attribute changes.
398         (rbitsi2): Likewise.
399         * config/arm/arm-fixed.md (arm_ssatsihi_shift): Delete "insn" attribute.
400         (arm_usatsihi): Likewise.
401         * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
403         2013-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
405         * config/arm/predicates.md (shiftable_operator_strict_it):
406         New predicate.
407         * config/arm/thumb2.md (thumb_andsi_not_shiftsi_si):
408         Disable cond_exec version for arm_restrict_it.
409         (thumb2_smaxsi3): Convert to generate cond_exec.
410         (thumb2_sminsi3): Likewise.
411         (thumb32_umaxsi3): Likewise.
412         (thumb2_uminsi3): Likewise.
413         (thumb2_abssi2): Adjust constraints for arm_restrict_it.
414         (thumb2_neg_abssi2): Likewise.
415         (thumb2_mov_scc): Add alternative for 16-bit encoding.
416         (thumb2_movsicc_insn): Adjust alternatives.
417         (thumb2_mov_negscc): Disable for arm_restrict_it.
418         (thumb2_mov_negscc_strict_it): New pattern.
419         (thumb2_mov_notscc_strict_it): New pattern.
420         (thumb2_mov_notscc): Disable for arm_restrict_it.
421         (thumb2_ior_scc): Likewise.
422         (thumb2_ior_scc_strict_it): New pattern.
423         (thumb2_cond_move): Adjust for arm_restrict_it.
424         (thumb2_cond_arith): Disable for arm_restrict_it.
425         (thumb2_cond_arith_strict_it): New pattern.
426         (thumb2_cond_sub): Adjust for arm_restrict_it.
427         (thumb2_movcond): Likewise.
428         (thumb2_extendqisi_v6): Disable cond_exec variant for arm_restrict_it.
429         (thumb2_zero_extendhisi2_v6): Likewise.
430         (thumb2_zero_extendqisi2_v6): Likewise.
431         (orsi_notsi_si): Likewise.
432         (orsi_not_shiftsi_si): Likewise.
434         2013-07-22  Sofiane Naci  <sofiane.naci@arm.com>
436         * config/arm/arm.md (attribute "insn"): Delete.
437         (attribute "type"): Add "mov_imm", "mov_reg", "mov_shift",
438         "mov_shift_reg", "mvn_imm", "mvn_reg", "mvn_shift" and "mvn_shift_reg".
439         (not_shiftsi): Update for attribute change.
440         (not_shiftsi_compare0): Likewise.
441         (not_shiftsi_compare0_scratch): Likewise.
442         (arm_one_cmplsi2): Likewise.
443         (thumb1_one_cmplsi2): Likewise.
444         (notsi_compare0): Likewise.
445         (notsi_compare0_scratch): Likewise.
446         (thumb1_movdi_insn): Likewise.
447         (arm_movsi_insn): Likewise.
448         (movhi_insn_arch4): Likewise.
449         (movhi_bytes): Likewise.
450         (arm_movqi_insn): Likewise.
451         (thumb1_movqi_insn): Likewise.
452         (arm32_movhf): Likewise.
453         (thumb1_movhf): Likewise.
454         (arm_movsf_soft_insn): Likewise.
455         (thumb1_movsf_insn): Likewise.
456         (thumb_movdf_insn): Likewise.
457         (movsicc_insn): Likewise.
458         (movsfcc_soft_insn): Likewise.
459         (and_scc): Likewise.
460         (cond_move): Likewise.
461         (if_move_not): Likewise.
462         (if_not_move): Likewise.
463         (if_shift_move): Likewise.
464         (if_move_shift): Likewise.
465         (if_shift_shift): Likewise.
466         (if_not_arith): Likewise.
467         (if_arith_not): Likewise.
468         (cond_move_not): Likewise.
469         * config/arm/neon.md (neon_mov<mode>): Update for attribute change.
470         (neon_mov<mode>): Likewise.
471         * config/arm/vfp.md (arm_movsi_vfp): Update for attribute change.
472         (thumb2_movsi_vfp): Likewise.
473         (movsf_vfp): Likewise.
474         (thumb2_movsf_vfp): Likewise.
475         * config/arm/arm.c (xscale_sched_adjust_cost): Update for attribute change.
476         (cortexa7_older_only): Likewise.
477         (cortexa7_younger): Likewise.
478         * config/arm/arm1020e.md (1020alu_op): Update for attribute change.
479         (1020alu_shift_op): Likewise.
480         (1020alu_shift_reg_op): Likewise.
481         * config/arm/arm1026ejs.md (alu_op): Update for attribute change.
482         (alu_shift_op): Likewise.
483         (alu_shift_reg_op): Likewise.
484         * config/arm/arm1136jfs.md (11_alu_op): Update for attribute change.
485         (11_alu_shift_op): Likewise.
486         (11_alu_shift_reg_op): Likewise.
487         * config/arm/arm926ejs.md (9_alu_op): Update for attribute change.
488         (9_alu_shift_reg_op): Likewise.
489         * config/arm/cortex-a15.md (cortex_a15_alu): Update for attribute change.
490         (cortex_a15_alu_shift): Likewise.
491         (cortex_a15_alu_shift_reg): Likewise.
492         * config/arm/cortex-a5.md (cortex_a5_alu): Update for attribute change.
493         (cortex_a5_alu_shift): Likewise.
494         * config/arm/cortex-a53.md (cortex_a53_alu): Update for attribute change.
495         (cortex_a53_alu_shift): Likewise.
496         * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute change.
497         (cortex_a7_alu_reg): Likewise.
498         (cortex_a7_alu_shift): Likewise.
499         * config/arm/cortex-a8.md (cortex_a8_alu): Update for attribute change.
500         (cortex_a8_alu_shift): Likewise.
501         (cortex_a8_alu_shift_reg): Likewise.
502         (cortex_a8_mov): Likewise.
503         * config/arm/cortex-a9.md (cortex_a9_dp): Update for attribute change.
504         (cortex_a9_dp_shift): Likewise.
505         * config/arm/cortex-m4.md (cortex_m4_alu): Update for attribute change.
506         * config/arm/cortex-r4.md (cortex_r4_alu): Update for attribute change.
507         (cortex_r4_mov): Likewise.
508         (cortex_r4_alu_shift): Likewise.
509         (cortex_r4_alu_shift_reg): Likewise.
510         * config/arm/fa526.md (526_alu_op): Update for attribute change.
511         (526_alu_shift_op): Likewise.
512         * config/arm/fa606te.md (606te_alu_op): Update for attribute change.
513         * config/arm/fa626te.md (626te_alu_op): Update for attribute change.
514         (626te_alu_shift_op): Likewise.
515         * config/arm/fa726te.md (726te_shift_op): Update for attribute change.
516         (726te_alu_op): Likewise.
517         (726te_alu_shift_op): Likewise.
518         (726te_alu_shift_reg_op): Likewise.
519         * config/arm/fmp626.md (mp626_alu_op): Update for attribute change.
520         (mp626_alu_shift_op): Likewise.
521         * config/arm/marvell-pj4.md (pj4_alu_e1): Update for attribute change.
522         (pj4_alu_e1_conds): Likewise.
523         (pj4_alu): Likewise.
524         (pj4_alu_conds): Likewise.
525         (pj4_shift): Likewise.
526         (pj4_shift_conds): Likewise.
527         (pj4_alu_shift): Likewise.
528         (pj4_alu_shift_conds): Likewise.
530         2013-07-22  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
532         * config/arm/constraints.md (Pd): Allow TARGET_THUMB
533         instead of TARGET_THUMB1.
534         (Pz): New constraint.
535         * config/arm/arm.md (arm_addsi3): Add alternatives for 16-bit
536         encodings.
537         (compare_negsi_si): Likewise.
538         (compare_addsi2_op0): Likewise.
539         (compare_addsi2_op1): Likewise.
540         (addsi3_carryin_<optab>): Likewise.
541         (addsi3_carryin_alt2_<optab>): Likewise.
542         (addsi3_carryin_shift_<optab>): Disable cond_exec variant
543         for arm_restrict_it.
544         (subsi3_carryin): Likewise.
545         (arm_subsi3_insn): Add alternatives for 16-bit encoding.
546         (minmax_arithsi): Disable for arm_restrict_it.
547         (minmax_arithsi_non_canon): Adjust for arm_restrict_it.
548         (satsi_<SAT:code>): Disable cond_exec variant for arm_restrict_it.
549         (satsi_<SAT:code>_shift): Likewise.
550         (arm_shiftsi3): Add alternative for 16-bit encoding.
551         (arm32_movhf): Disable for arm_restrict_it.
552         (arm_cmpdi_unsigned): Add alternatives for 16-bit encoding.
553         (arm_movtas_ze): Disable cond_exec variant for arm_restrict_it.
555 2013-09-09  Kugan Vivekanandarajah  <kuganv@linaro.org>
557         Backport from trunk r201412.
558         2013-08-01  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
560         * config/arm/arm.md (minmax_arithsi_non_canon): Emit canonical RTL form
561         when subtracting a constant.
563 2013-09-05  Yvan Roux  <yvan.roux@linaro.org>
565         Backport from trunk r201249.
566         2013-07-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
568         * config/arm/arm-fixed.md (ssmulsa3, usmulusa3):
569         Adjust for arm_restrict_it.
570         Remove trailing whitespace.
572 2013-09-05  Yvan Roux  <yvan.roux@linaro.org>
574         Backport from trunk r201342.
575         2013-07-30  Richard Earnshaw  <rearnsha@arm.com>
577         * config.gcc (arm): Require 64-bit host-wide-int for all ARM target
578         configs.
580 2013-09-05  Christophe Lyon  <christophe.lyon@linaro.org>
582         Backport from trunk r199527,199792,199814.
583         2013-05-31  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
585         PR target/56315
586         * config/arm/arm.c (const_ok_for_dimode_op): Handle IOR.
587         * config/arm/arm.md (*iordi3_insn): Change to insn_and_split.
588         * config/arm/neon.md (iordi3_neon): Remove.
589         (neon_vorr<mode>): Generate iordi3 instead of iordi3_neon.
590         * config/arm/predicates.md (imm_for_neon_logic_operand):
591         Move to earlier in the file.
592         (neon_logic_op2): Likewise.
593         (arm_iordi_operand_neon): New predicate.
595         2013-06-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
597         * config/arm/constraints.md (Df): New constraint.
598         * config/arm/arm.md (iordi3_insn): Use Df constraint instead of De.
599         Correct length attribute for last two alternatives.
601         2013-06-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
603         PR target/56315
604         * config/arm/arm.md (*xordi3_insn): Change to insn_and_split.
605         (xordi3): Change operand 2 constraint to arm_xordi_operand.
606         * config/arm/arm.c (const_ok_for_dimode_op): Handle XOR.
607         * config/arm/constraints.md (Dg): New constraint.
608         * config/arm/neon.md (xordi3_neon): Remove.
609         (neon_veor<mode>): Generate xordi3 instead of xordi3_neon.
610         * config/arm/predicates.md (arm_xordi_operand): New predicate.
612 2013-09-05  Christophe Lyon  <christophe.lyon@linaro.org>
614         Backport from trunk r201599.
615         2013-08-08  Richard Earnshaw  <rearnsha@arm.com>
617         PR target/57431
618         * arm/neon.md (neon_vld1_dupdi): New expand pattern.
619         (neon_vld1_dup<mode> VD iterator): Iterate over VD not VDX.
621 2013-09-05  Christophe Lyon  <christophe.lyon@linaro.org>
623         Backport from trunk r201589.
624         2013-08-08  Bernd Edlinger  <bernd.edlinger@hotmail.de>
626         PR target/58065
627         * config/arm/arm.h (MALLOC_ABI_ALIGNMENT): Define.
629 2013-09-03  Venkataramanan Kumar  <venkataramanan.kumar@linaro.org>
631         Backport from trunk
632         r201624, r201666.
633         2013-08-09  James Greenhalgh  <james.greenhalgh@arm.com>
635         * config/aarch64/aarch64-simd-builtins.def (get_lane_signed): Remove.
636         (get_lane_unsigned): Likewise.
637         (dup_lane_scalar): Likewise.
638         (get_lane): enable for VALL.
639         * config/aarch64/aarch64-simd.md
640         (aarch64_dup_lane_scalar<mode>): Remove.
641         (aarch64_get_lane_signed<mode>): Likewise.
642         (aarch64_get_lane_unsigned<mode>): Likewise.
643         (aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): New.
644         (aarch64_get_lane_zero_extendsi<mode>): Likewise.
645         (aarch64_get_lane<mode>): Enable for all vector modes.
646         (aarch64_get_lanedi): Remove misleading constraints.
647         * config/aarch64/arm_neon.h
648         (__aarch64_vget_lane_any): Define.
649         (__aarch64_vget<q>_lane_<fpsu><8,16,32,64>): Likewise.
650         (vget<q>_lane_<fpsu><8,16,32,64>): Use __aarch64_vget_lane macros.
651         (vdup<bhsd>_lane_<su><8,16,32,64>): Likewise.
652          * config/aarch64/iterators.md (VDQQH): New.
653         (VDQQHS): Likewise.
654         (vwcore): Likewise.
656         2013-08-12  James Greenhalgh  <james.greenhalgh@arm.com>
658         * config/aarch64/arm_none.h
659         (vdup<bhsd>_lane_<su><8,16,32,64>): Fix macro call.
661 2013-08-26  Kugan Vivekanandarajah  <kuganv@linaro.org>
663         Backport from trunk r201341.
664         2013-07-30  Richard Earnshaw  <rearnsha@arm.com>
666         * arm.md (mulhi3): New expand pattern.
668 2013-08-16  Christophe Lyon  <christophe.lyon@linaro.org>
670         * LINARO-VERSION: Bump version.
672 2013-08-14  Christophe Lyon  <christophe.lyon@linaro.org>
674         GCC Linaro 4.8-2013.08 released.
676 2013-08-08  Christophe Lyon  <christophe.lyon@linaro.org>
678         Backport from trunk
679         r198489,200167,200199,200510,200513,200515,200576.
680         2013-05-01  Greta Yorsh  <Greta.Yorsh@arm.com>
682         * config/arm/thumb2.md (thumb2_smaxsi3,thumb2_sminsi3): Convert
683         define_insn to define_insn_and_split.
684         (thumb32_umaxsi3,thumb2_uminsi3): Likewise.
685         (thumb2_negdi2,thumb2_abssi2,thumb2_neg_abssi2): Likewise.
686         (thumb2_mov_scc,thumb2_mov_negscc,thumb2_mov_notscc): Likewise.
687         (thumb2_movsicc_insn,thumb2_and_scc,thumb2_ior_scc): Likewise.
688         (thumb2_negscc): Likewise.
690         2013-06-18  Sofiane Naci  <sofiane.naci@arm.com>
692         * config/arm/arm.md (attribute "insn"): Move multiplication and division
693         attributes to...
694         (attribute "type"): ... here.  Remove mult.
695         (attribute "mul32"): New attribute.
696         (attribute "mul64"): Add umaal.
697         (*arm_mulsi3): Update attributes.
698         (*arm_mulsi3_v6): Likewise.
699         (*thumb_mulsi3): Likewise.
700         (*thumb_mulsi3_v6): Likewise.
701         (*mulsi3_compare0): Likewise.
702         (*mulsi3_compare0_v6): Likewise.
703         (*mulsi_compare0_scratch): Likewise.
704         (*mulsi_compare0_scratch_v6): Likewise.
705         (*mulsi3addsi): Likewise.
706         (*mulsi3addsi_v6): Likewise.
707         (*mulsi3addsi_compare0): Likewise.
708         (*mulsi3addsi_compare0_v6): Likewise.
709         (*mulsi3addsi_compare0_scratch): Likewise.
710         (*mulsi3addsi_compare0_scratch_v6): Likewise.
711         (*mulsi3subsi): Likewise.
712         (*mulsidi3adddi): Likewise.
713         (*mulsi3addsi_v6): Likewise.
714         (*mulsidi3adddi_v6): Likewise.
715         (*mulsidi3_nov6): Likewise.
716         (*mulsidi3_v6): Likewise.
717         (*umulsidi3_nov6): Likewise.
718         (*umulsidi3_v6): Likewise.
719         (*umulsidi3adddi): Likewise.
720         (*umulsidi3adddi_v6): Likewise.
721         (*smulsi3_highpart_nov6): Likewise.
722         (*smulsi3_highpart_v6): Likewise.
723         (*umulsi3_highpart_nov6): Likewise.
724         (*umulsi3_highpart_v6): Likewise.
725         (mulhisi3): Likewise.
726         (*mulhisi3tb): Likewise.
727         (*mulhisi3bt): Likewise.
728         (*mulhisi3tt): Likewise.
729         (maddhisi4): Likewise.
730         (*maddhisi4tb): Likewise.
731         (*maddhisi4tt): Likewise.
732         (maddhidi4): Likewise.
733         (*maddhidi4tb): Likewise.
734         (*maddhidi4tt): Likewise.
735         (divsi3): Likewise.
736         (udivsi3): Likewise.
737         * config/arm/thumb2.md (thumb2_mulsi_short): Update attributes.
738         (thumb2_mulsi_short_compare0): Likewise.
739         (thumb2_mulsi_short_compare0_scratch): Likewise.
740         * config/arm/arm1020e.md (1020mult1): Update attribute change.
741         (1020mult2): Likewise.
742         (1020mult3): Likewise.
743         (1020mult4): Likewise.
744         (1020mult5): Likewise.
745         (1020mult6): Likewise.
746         * config/arm/cortex-a15.md (cortex_a15_mult32): Update attribute change.
747         (cortex_a15_mult64): Likewise.
748         (cortex_a15_sdiv): Likewise.
749         (cortex_a15_udiv): Likewise.
750         * config/arm/arm1026ejs.md (mult1): Update attribute change.
751         (mult2): Likewise.
752         (mult3): Likewise.
753         (mult4): Likewise.
754         (mult5): Likewise.
755         (mult6): Likewise.
756         * config/arm/marvell-pj4.md (pj4_ir_mul): Update attribute change.
757         (pj4_ir_div): Likewise.
758         * config/arm/arm1136jfs.md (11_mult1): Update attribute change.
759         (11_mult2): Likewise.
760         (11_mult3): Likewise.
761         (11_mult4): Likewise.
762         (11_mult5): Likewise.
763         (11_mult6): Likewise.
764         (11_mult7): Likewise.
765         * config/arm/cortex-a8.md (cortex_a8_mul): Update attribute change.
766         (cortex_a8_mla): Likewise.
767         (cortex_a8_mull): Likewise.
768         (cortex_a8_smulwy): Likewise.
769         (cortex_a8_smlald): Likewise.
770         * config/arm/cortex-m4.md (cortex_m4_alu): Update attribute change.
771         * config/arm/cortex-r4.md (cortex_r4_mul_4): Update attribute change.
772         (cortex_r4_mul_3): Likewise.
773         (cortex_r4_mla_4): Likewise.
774         (cortex_r4_mla_3): Likewise.
775         (cortex_r4_smlald): Likewise.
776         (cortex_r4_mull): Likewise.
777         (cortex_r4_sdiv): Likewise.
778         (cortex_r4_udiv): Likewise.
779         * config/arm/cortex-a7.md (cortex_a7_mul): Update attribute change.
780         (cortex_a7_idiv): Likewise.
781         * config/arm/arm926ejs.md (9_mult1): Update attribute change.
782         (9_mult2): Likewise.
783         (9_mult3): Likewise.
784         (9_mult4): Likewise.
785         (9_mult5): Likewise.
786         (9_mult6): Likewise.
787         * config/arm/cortex-a53.md (cortex_a53_mul): Update attribute change.
788         (cortex_a53_sdiv): Likewise.
789         (cortex_a53_udiv): Likewise.
790         * config/arm/fa726te.md (726te_mult_op): Update attribute change.
791         * config/arm/fmp626.md (mp626_mult1): Update attribute change.
792         (mp626_mult2): Likewise.
793         (mp626_mult3): Likewise.
794         (mp626_mult4): Likewise.
795         * config/arm/fa526.md (526_mult1): Update attribute change.
796         (526_mult2): Likewise.
797         * config/arm/arm-generic.md (mult): Update attribute change.
798         (mult_ldsched_strongarm): Likewise.
799         (mult_ldsched): Likewise.
800         (multi_cycle): Likewise.
801         * config/arm/cortex-a5.md (cortex_a5_mul): Update attribute change.
802         * config/arm/fa606te.md (606te_mult1): Update attribute change.
803         (606te_mult2): Likewise.
804         (606te_mult3): Likewise.
805         (606te_mult4): Likewise.
806         * config/arm/cortex-a9.md (cortex_a9_mult16): Update attribute change.
807         (cortex_a9_mac16): Likewise.
808         (cortex_a9_multiply): Likewise.
809         (cortex_a9_mac): Likewise.
810         (cortex_a9_multiply_long): Likewise.
811         * config/arm/fa626te.md (626te_mult1): Update attribute change.
812         (626te_mult2): Likewise.
813         (626te_mult3): Likewise.
814         (626te_mult4): Likewise.
816         2013-06-19  Sofiane Naci  <sofiane.naci@arm.com>
818         * config/arm/vfp.md: Move VFP instruction classification documentation
819         to ...
820         * config/arm/arm.md: ... here.  Update instruction classification
821         documentation.
823         2013-06-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
825         * config/arm/predicates.md (arm_cond_move_operator): New predicate.
826         * config/arm/arm.md (movsfcc): Use arm_cond_move_operator predicate.
827         (movdfcc): Likewise.
828         * config/arm/vfp.md (*thumb2_movsf_vfp):
829         Disable predication for arm_restrict_it.
830         (*thumb2_movsfcc_vfp): Disable for arm_restrict_it.
831         (*thumb2_movdfcc_vfp): Likewise.
832         (*abssf2_vfp, *absdf2_vfp, *negsf2_vfp, *negdf2_vfp,*addsf3_vfp,
833         *adddf3_vfp, *subsf3_vfp, *subdf3_vfpc, *divsf3_vfp,*divdf3_vfp,
834         *mulsf3_vfp, *muldf3_vfp, *mulsf3negsf_vfp, *muldf3negdf_vfp,
835         *mulsf3addsf_vfp, *muldf3adddf_vfp, *mulsf3subsf_vfp,
836         *muldf3subdf_vfp, *mulsf3negsfaddsf_vfp, *fmuldf3negdfadddf_vfp,
837         *mulsf3negsfsubsf_vfp, *muldf3negdfsubdf_vfp, *fma<SDF:mode>4,
838         *fmsub<SDF:mode>4, *fnmsub<SDF:mode>4, *fnmadd<SDF:mode>4,
839         *extendsfdf2_vfp, *truncdfsf2_vfp, *extendhfsf2, *truncsfhf2,
840         *truncsisf2_vfp, *truncsidf2_vfp, fixuns_truncsfsi2, fixuns_truncdfsi2,
841         *floatsisf2_vfp, *floatsidf2_vfp, floatunssisf2, floatunssidf2,
842         *sqrtsf2_vfp, *sqrtdf2_vfp, *cmpsf_vfp, *cmpsf_trap_vfp, *cmpdf_vfp,
843         *cmpdf_trap_vfp, <vrint_pattern><SDF:mode>2):
844         Disable predication for arm_restrict_it.
846         2013-06-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
848         * config/arm/arm.md (arm_mulsi3_v6): Add alternative for 16-bit
849         encoding.
850         (mulsi3addsi_v6): Disable predicable variant for arm_restrict_it.
851         (mulsi3subsi): Likewise.
852         (mulsidi3adddi): Likewise.
853         (mulsidi3_v6): Likewise.
854         (umulsidi3_v6): Likewise.
855         (umulsidi3adddi_v6): Likewise.
856         (smulsi3_highpart_v6): Likewise.
857         (umulsi3_highpart_v6): Likewise.
858         (mulhisi3tb): Likewise.
859         (mulhisi3bt): Likewise.
860         (mulhisi3tt): Likewise.
861         (maddhisi4): Likewise.
862         (maddhisi4tb): Likewise.
863         (maddhisi4tt): Likewise.
864         (maddhidi4): Likewise.
865         (maddhidi4tb): Likewise.
866         (maddhidi4tt): Likewise.
867         (zeroextractsi_compare0_scratch): Likewise.
868         (insv_zero): Likewise.
869         (insv_t2): Likewise.
870         (anddi_notzesidi_di): Likewise.
871         (anddi_notsesidi_di): Likewise.
872         (andsi_notsi_si): Likewise.
873         (iordi_zesidi_di): Likewise.
874         (xordi_zesidi_di): Likewise.
875         (andsi_iorsi3_notsi): Likewise.
876         (smax_0): Likewise.
877         (smax_m1): Likewise.
878         (smin_0): Likewise.
879         (not_shiftsi): Likewise.
880         (unaligned_loadsi): Likewise.
881         (unaligned_loadhis): Likewise.
882         (unaligned_loadhiu): Likewise.
883         (unaligned_storesi): Likewise.
884         (unaligned_storehi): Likewise.
885         (extv_reg): Likewise.
886         (extzv_t2): Likewise.
887         (divsi3): Likewise.
888         (udivsi3): Likewise.
889         (arm_zero_extendhisi2addsi): Likewise.
890         (arm_zero_extendqisi2addsi): Likewise.
891         (compareqi_eq0): Likewise.
892         (arm_extendhisi2_v6): Likewise.
893         (arm_extendqisi2addsi): Likewise.
894         (arm_movt): Likewise.
895         (thumb2_ldrd): Likewise.
896         (thumb2_ldrd_base): Likewise.
897         (thumb2_ldrd_base_neg): Likewise.
898         (thumb2_strd): Likewise.
899         (thumb2_strd_base): Likewise.
900         (thumb2_strd_base_neg): Likewise.
901         (arm_negsi2): Add alternative for 16-bit encoding.
902         (arm_one_cmplsi2): Likewise.
904         2013-06-28  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
906         * config/arm/constraints.md (Ts): New constraint.
907         * config/arm/arm.md (arm_movqi_insn): Add alternatives for
908         16-bit encodings.
909         (compare_scc): Use "Ts" constraint for operand 0.
910         (ior_scc_scc): Likewise.
911         (and_scc_scc): Likewise.
912         (and_scc_scc_nodom): Likewise.
913         (ior_scc_scc_cmp): Likewise for operand 7.
914         (and_scc_scc_cmp): Likewise.
915         * config/arm/thumb2.md (thumb2_movsi_insn):
916         Add alternatives for 16-bit encodings.
917         (thumb2_movhi_insn): Likewise.
918         (thumb2_movsicc_insn): Likewise.
919         (thumb2_and_scc): Take 'and' outside cond_exec.  Use "Ts" constraint.
920         (thumb2_negscc): Use "Ts" constraint.
921         Move mvn instruction outside cond_exec block.
922         * config/arm/vfp.md (thumb2_movsi_vfp): Add alternatives
923         for 16-bit encodings.
925         2013-07-01  Sofiane Naci  <sofiane.naci@arm.com>
927         * arm.md (attribute "wtype"): Delete.  Move attribute values from here
928         to ...
929         (attribute "type"): ... here, and prefix with "wmmx_".
930         (attribute "core_cycles"): Update for attribute changes.
931         * iwmmxt.md (tbcstv8qi): Update for attribute changes.
932         (tbcstv4hi): Likewise.
933         (tbcstv2si): Likewise.
934         (iwmmxt_iordi3): Likewise.
935         (iwmmxt_xordi3): Likewise.
936         (iwmmxt_anddi3): Likewise.
937         (iwmmxt_nanddi3): Likewise.
938         (iwmmxt_arm_movdi): Likewise.
939         (iwmmxt_movsi_insn): Likewise.
940         (mov<mode>_internal): Likewise.
941         (and<mode>3_iwmmxt): Likewise.
942         (ior<mode>3_iwmmxt): Likewise.
943         (xor<mode>3_iwmmxt): Likewise.
944         (add<mode>3_iwmmxt): Likewise.
945         (ssaddv8qi3): Likewise.
946         (ssaddv4hi3): Likewise.
947         (ssaddv2si3): Likewise.
948         (usaddv8qi3): Likewise.
949         (usaddv4hi3): Likewise.
950         (usaddv2si3): Likewise.
951         (sub<mode>3_iwmmxt): Likewise.
952         (sssubv8qi3): Likewise.
953         (sssubv4hi3): Likewise.
954         (sssubv2si3): Likewise.
955         (ussubv8qi3): Likewise.
956         (ussubv4hi3): Likewise.
957         (ussubv2si3): Likewise.
958         (mulv4hi3_iwmmxt): Likewise.
959         (smulv4hi3_highpart): Likewise.
960         (umulv4hi3_highpart): Likewise.
961         (iwmmxt_wmacs): Likewise.
962         (iwmmxt_wmacsz): Likewise.
963         (iwmmxt_wmacu): Likewise.
964         (iwmmxt_wmacuz): Likewise.
965         (iwmmxt_clrdi): Likewise.
966         (iwmmxt_clrv8qi): Likewise.
967         (iwmmxt_clr4hi): Likewise.
968         (iwmmxt_clr2si): Likewise.
969         (iwmmxt_uavgrndv8qi3): Likewise.
970         (iwmmxt_uavgrndv4hi3): Likewise.
971         (iwmmxt_uavgv8qi3): Likewise.
972         (iwmmxt_uavgv4hi3): Likewise.
973         (iwmmxt_tinsrb): Likewise.
974         (iwmmxt_tinsrh): Likewise.
975         (iwmmxt_tinsrw): Likewise.
976         (iwmmxt_textrmub): Likewise.
977         (iwmmxt_textrmsb): Likewise.
978         (iwmmxt_textrmuh): Likewise.
979         (iwmmxt_textrmsh): Likewise.
980         (iwmmxt_textrmw): Likewise.
981         (iwmxxt_wshufh): Likewise.
982         (eqv8qi3): Likewise.
983         (eqv4hi3): Likewise.
984         (eqv2si3): Likewise.
985         (gtuv8qi3): Likewise.
986         (gtuv4hi3): Likewise.
987         (gtuv2si3): Likewise.
988         (gtv8qi3): Likewise.
989         (gtv4hi3): Likewise.
990         (gtv2si3): Likewise.
991         (smax<mode>3_iwmmxt): Likewise.
992         (umax<mode>3_iwmmxt): Likewise.
993         (smin<mode>3_iwmmxt): Likewise.
994         (umin<mode>3_iwmmxt): Likewise.
995         (iwmmxt_wpackhss): Likewise.
996         (iwmmxt_wpackwss): Likewise.
997         (iwmmxt_wpackdss): Likewise.
998         (iwmmxt_wpackhus): Likewise.
999         (iwmmxt_wpackwus): Likewise.
1000         (iwmmxt_wpackdus): Likewise.
1001         (iwmmxt_wunpckihb): Likewise.
1002         (iwmmxt_wunpckihh): Likewise.
1003         (iwmmxt_wunpckihw): Likewise.
1004         (iwmmxt_wunpckilb): Likewise.
1005         (iwmmxt_wunpckilh): Likewise.
1006         (iwmmxt_wunpckilw): Likewise.
1007         (iwmmxt_wunpckehub): Likewise.
1008         (iwmmxt_wunpckehuh): Likewise.
1009         (iwmmxt_wunpckehuw): Likewise.
1010         (iwmmxt_wunpckehsb): Likewise.
1011         (iwmmxt_wunpckehsh): Likewise.
1012         (iwmmxt_wunpckehsw): Likewise.
1013         (iwmmxt_wunpckelub): Likewise.
1014         (iwmmxt_wunpckeluh): Likewise.
1015         (iwmmxt_wunpckeluw): Likewise.
1016         (iwmmxt_wunpckelsb): Likewise.
1017         (iwmmxt_wunpckelsh): Likewise.
1018         (iwmmxt_wunpckelsw): Likewise.
1019         (ror<mode>3): Likewise.
1020         (ashr<mode>3_iwmmxt): Likewise.
1021         (lshr<mode>3_iwmmxt): Likewise.
1022         (ashl<mode>3_iwmmxt): Likewise.
1023         (ror<mode>3_di): Likewise.
1024         (ashr<mode>3_di): Likewise.
1025         (lshr<mode>3_di): Likewise.
1026         (ashl<mode>3_di): Likewise.
1027         (iwmmxt_wmadds): Likewise.
1028         (iwmmxt_wmaddu): Likewise.
1029         (iwmmxt_tmia): Likewise.
1030         (iwmmxt_tmiaph): Likewise.
1031         (iwmmxt_tmiabb): Likewise.
1032         (iwmmxt_tmiatb): Likewise.
1033         (iwmmxt_tmiabt): Likewise.
1034         (iwmmxt_tmiatt): Likewise.
1035         (iwmmxt_tmovmskb): Likewise.
1036         (iwmmxt_tmovmskh): Likewise.
1037         (iwmmxt_tmovmskw): Likewise.
1038         (iwmmxt_waccb): Likewise.
1039         (iwmmxt_wacch): Likewise.
1040         (iwmmxt_waccw): Likewise.
1041         (iwmmxt_waligni): Likewise.
1042         (iwmmxt_walignr): Likewise.
1043         (iwmmxt_walignr0): Likewise.
1044         (iwmmxt_walignr1): Likewise.
1045         (iwmmxt_walignr2): Likewise.
1046         (iwmmxt_walignr3): Likewise.
1047         (iwmmxt_wsadb): Likewise.
1048         (iwmmxt_wsadh): Likewise.
1049         (iwmmxt_wsadbz): Likewise.
1050         (iwmmxt_wsadhz): Likewise.
1051         * iwmmxt2.md (iwmmxt_wabs<mode>3): Update for attribute changes.
1052         (iwmmxt_wabsdiffb): Likewise.
1053         (iwmmxt_wabsdiffh): Likewise.
1054         (iwmmxt_wabsdiffw): Likewise.
1055         (iwmmxt_waddsubhx): Likewise
1056         (iwmmxt_wsubaddhx): Likewise.
1057         (addc<mode>3): Likewise.
1058         (iwmmxt_avg4): Likewise.
1059         (iwmmxt_avg4r): Likewise.
1060         (iwmmxt_wmaddsx): Likewise.
1061         (iwmmxt_wmaddux): Likewise.
1062         (iwmmxt_wmaddsn): Likewise.
1063         (iwmmxt_wmaddun): Likewise.
1064         (iwmmxt_wmulwsm): Likewise.
1065         (iwmmxt_wmulwum): Likewise.
1066         (iwmmxt_wmulsmr): Likewise.
1067         (iwmmxt_wmulumr): Likewise.
1068         (iwmmxt_wmulwsmr): Likewise.
1069         (iwmmxt_wmulwumr): Likewise.
1070         (iwmmxt_wmulwl): Likewise.
1071         (iwmmxt_wqmulm): Likewise.
1072         (iwmmxt_wqmulwm): Likewise.
1073         (iwmmxt_wqmulmr): Likewise.
1074         (iwmmxt_wqmulwmr): Likewise.
1075         (iwmmxt_waddbhusm): Likewise.
1076         (iwmmxt_waddbhusl): Likewise.
1077         (iwmmxt_wqmiabb): Likewise.
1078         (iwmmxt_wqmiabt): Likewise.
1079         (iwmmxt_wqmiatb): Likewise.
1080         (iwmmxt_wqmiatt): Likewise.
1081         (iwmmxt_wqmiabbn): Likewise.
1082         (iwmmxt_wqmiabtn): Likewise.
1083         (iwmmxt_wqmiatbn): Likewise.
1084         (iwmmxt_wqmiattn): Likewise.
1085         (iwmmxt_wmiabb): Likewise.
1086         (iwmmxt_wmiabt): Likewise.
1087         (iwmmxt_wmiatb): Likewise.
1088         (iwmmxt_wmiatt): Likewise.
1089         (iwmmxt_wmiabbn): Likewise.
1090         (iwmmxt_wmiabtn): Likewise.
1091         (iwmmxt_wmiatbn): Likewise.
1092         (iwmmxt_wmiattn): Likewise.
1093         (iwmmxt_wmiawbb): Likewise.
1094         (iwmmxt_wmiawbt): Likewise.
1095         (iwmmxt_wmiawtb): Likewise.
1096         (iwmmxt_wmiawtt): Likewise.
1097         (iwmmxt_wmiawbbn): Likewise.
1098         (iwmmxt_wmiawbtn): Likewise.
1099         (iwmmxt_wmiawtbn): Likewise.
1100         (iwmmxt_wmiawttn): Likewise.
1101         (iwmmxt_wmerge): Likewise.
1102         (iwmmxt_tandc<mode>3): Likewise.
1103         (iwmmxt_torc<mode>3): Likewise.
1104         (iwmmxt_torvsc<mode>3): Likewise.
1105         (iwmmxt_textrc<mode>3): Likewise.
1106         * marvell-f-iwmmxt.md (wmmxt_shift): Update for attribute changes.
1107         (wmmxt_pack): Likewise.
1108         (wmmxt_mult_c1): Likewise.
1109         (wmmxt_mult_c2): Likewise.
1110         (wmmxt_alu_c1): Likewise.
1111         (wmmxt_alu_c2): Likewise.
1112         (wmmxt_alu_c3): Likewise.
1113         (wmmxt_transfer_c1): Likewise.
1114         (wmmxt_transfer_c2): Likewise.
1115         (wmmxt_transfer_c3): Likewise.
1116         (marvell_f_iwmmxt_wstr): Likewise.
1117         (marvell_f_iwmmxt_wldr): Likewise.
1119 2013-08-07  Christophe Lyon  <christophe.lyon@linaro.org>
1121         Backport from trunk r201237.
1122         2013-07-25  Terry Guo  <terry.guo@arm.com>
1124         * config/arm/arm.c (thumb1_size_rtx_costs): Assign proper cost for
1125         shift_add/shift_sub0/shift_sub1 RTXs.
1127 2013-08-06  Christophe Lyon  <christophe.lyon@linaro.org>
1129         Backport from trunk r200596,201067,201083.
1130         2013-07-02  Ian Bolton  <ian.bolton@arm.com>
1132         * config/aarch64/aarch64-simd.md (absdi2): Support abs for
1133         DI mode.
1135         2013-07-19  Ian Bolton  <ian.bolton@arm.com>
1137         * config/aarch64/arm_neon.h (vabs_s64): New function
1139         2013-07-20  James Greenhalgh  <james.greenhalgh@arm.com>
1141         * config/aarch64/aarch64-builtins.c
1142         (aarch64_fold_builtin): Fold abs in all modes.
1143         * config/aarch64/aarch64-simd-builtins.def
1144         (abs): Enable for all modes.
1145         * config/aarch64/arm_neon.h
1146         (vabs<q>_s<8,16,32,64): Rewrite using builtins.
1147         (vabs_f64): Add missing intrinsic.
1149 2013-08-06  Christophe Lyon  <christophe.lyon@linaro.org>
1151         Backport from trunk r198735,198831,199959.
1152         2013-05-09  Sofiane Naci  <sofiane.naci@arm.com>
1154         * config/aarch64/aarch64.md: New movtf split.
1155         (*movtf_aarch64): Update.
1156         (aarch64_movdi_tilow): Handle TF modes and rename to
1157         aarch64_movdi_<mode>low.
1158         (aarch64_movdi_tihigh): Handle TF modes and rename to
1159         aarch64_movdi_<mode>high
1160         (aarch64_movtihigh_di): Handle TF modes and rename to
1161         aarch64_mov<mode>high_di
1162         (aarch64_movtilow_di): Handle TF modes and rename to
1163         aarch64_mov<mode>low_di
1164         (aarch64_movtilow_tilow): Remove spurious whitespace.
1165         * config/aarch64/aarch64.c (aarch64_split_128bit_move): Handle TFmode
1166         splits.
1167         (aarch64_print_operand): Update.
1169         2013-05-13  Sofiane Naci  <sofiane.naci@arm.com>
1171         * config/aarch64/aarch64-simd.md (aarch64_simd_mov<mode>): Group
1172         similar switch cases.
1173         (aarch64_simd_mov): Rename to aarch64_split_simd_mov. Update.
1174         (aarch64_simd_mov_to_<mode>low): Delete.
1175         (aarch64_simd_mov_to_<mode>high): Delete.
1176         (move_lo_quad_<mode>): Add w<-r alternative.
1177         (aarch64_simd_move_hi_quad_<mode>): Likewise.
1178         (aarch64_simd_mov_from_*): Update type attribute.
1179         * config/aarch64/aarch64.c (aarch64_split_simd_move): Refacror switch
1180         statement.
1182         2013-06-11  Sofiane Naci  <sofiane.naci@arm.com>
1184         * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>): Update.
1186 2013-08-06  Christophe Lyon  <christophe.lyon@linaro.org>
1188         Backport from trunk r199438,199439,201326.
1190         2013-05-30  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
1192         * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
1193         (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
1194         (arm_emit_vfp_multi_reg_pop): Likewise.
1195         (thumb2_emit_ldrd_pop): Likewise.
1196         (arm_expand_epilogue): Add misc REG_CFA notes.
1197         (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
1199         2013-05-30  Bernd Schmidt  <bernds@codesourcery.com>
1200             Zhenqiang Chen  <zhenqiang.chen@linaro.org>
1202         * config/arm/arm-protos.h: Add and update function protos.
1203         * config/arm/arm.c (use_simple_return_p): New added.
1204         (thumb2_expand_return): Check simple_return flag.
1205         * config/arm/arm.md: Add simple_return and conditional simple_return.
1206         * config/arm/iterators.md: Add iterator for return and simple_return.
1208         2013-07-30  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
1210         PR rtl-optimization/57637
1211         * function.c (move_insn_for_shrink_wrap): Also check the
1212         GEN set of the LIVE problem for the liveness analysis
1213         if it exists, otherwise give up.
1215 2013-08-06  Christophe Lyon  <christophe.lyon@linaro.org>
1217         Backport from trunk r198928,198973,199203,201240,201241,201307.
1218         2013-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1220         PR target/19599
1221         * config/arm/predicates.md (call_insn_operand): New predicate.
1222         * config/arm/constraints.md ("Cs", "Ss"):  New constraints.
1223         * config/arm/arm.md (*call_insn, *call_value_insn): Match only
1224         if insn is not a tail call.
1225         (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
1226         registers.
1227         * config/arm/arm.h (enum reg_class): New caller save register class.
1228         (REG_CLASS_NAMES): Likewise.
1229         (REG_CLASS_CONTENTS): Likewise.
1230         * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
1231         without decls.
1233         2013-05-16  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1235         PR target/19599
1236         * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
1237         for NULL decl.
1239         2013-05-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1241         PR target/19599
1242         PR target/57340
1243         * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
1244         (any_sibcall_could_use_r3): this and handle indirect calls.
1245         (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
1247         2013-07-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1249         PR target/19599
1250         PR target/57731
1251         PR target/57748
1252         * config/arm/arm.md ("*sibcall_value_insn): Replace use of
1253         Ss with US. Adjust output for v5 and v4t.
1254         (*sibcall_value_insn): Likewise and loosen predicate on
1255         operand0.
1256         * config/arm/constraints.md ("Ss"): Rename to US.
1258         2013-07-25  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1260         * config/arm/arm.md (*sibcall_insn): Remove unnecessary space.
1262         2013-07-29  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1263         Fix incorrect changelog entry.
1265         Replace
1266         PR target/57748
1267         with
1268         PR target/57837
1270 2013-08-05  Yvan Roux  <yvan.roux@linaro.org>
1272         Backport from trunk r200922.
1273         2013-07-12  Tejas Belagod  <tejas.belagod@arm.com>
1275         * config/aarch64/aarch64-protos.h
1276         (aarch64_simd_immediate_valid_for_move): Remove.
1277         * config/aarch64/aarch64.c (simd_immediate_info): New member.
1278         (aarch64_simd_valid_immediate): Recognize idioms for shifting ones
1279         cases.
1280         (aarch64_output_simd_mov_immediate): Print the correct shift specifier.
1282 2013-08-05  Yvan Roux  <yvan.roux@linaro.org>
1284         Backport from trunk r200670.
1285         2013-07-04  Tejas Belagod  <tejas.belagod@arm.com>
1287         * config/aarch64/aarch64-protos.h (cpu_vector_cost): New.
1288         (tune_params): New member 'const vec_costs'.
1289         * config/aarch64/aarch64.c (generic_vector_cost): New.
1290         (generic_tunings): New member 'generic_vector_cost'.
1291         (aarch64_builtin_vectorization_cost): New.
1292         (aarch64_add_stmt_cost): New.
1293         (TARGET_VECTORIZE_ADD_STMT_COST): New.
1294         (TARGET_VECTORIZE_BUILTIN_VECTORIZATION_COST): New.
1296 2013-08-05  Yvan Roux  <yvan.roux@linaro.org>
1298         Backport from trunk r200637.
1299         2013-07-03  Yufeng Zhang  <yufeng.zhang@arm.com>
1301         * config/aarch64/aarch64.h (enum arm_abi_type): Remove.
1302         (ARM_ABI_AAPCS64): Ditto.
1303         (arm_abi): Ditto.
1304         (ARM_DEFAULT_ABI): Ditto.
1306 2013-08-05  Yvan Roux  <yvan.roux@linaro.org>
1308         Backport from trunk r200532, r200565.
1309         2013-06-28  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1311         * config/aarch64/aarch64.c (aarch64_cannot_force_const_mem): Adjust
1312         layout.
1314         2013-06-29  Yufeng Zhang  <yufeng.zhang@arm.com>
1316         * config/aarch64/aarch64.c: Remove junk from the beginning of the
1317         file.
1319 2013-08-05  Yvan Roux  <yvan.roux@linaro.org>
1321         Backport from trunk r200531.
1322         2013-06-28  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1324         * config/aarch64/aarch64-protos.h (aarch64_symbol_type):
1325         Update comment w.r.t SYMBOL_TINY_ABSOLUTE.
1327 2013-08-05  Yvan Roux  <yvan.roux@linaro.org>
1329         Backport from trunk r200519.
1330         2013-06-28  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1332         * config/aarch64/aarch64-protos.h
1333         aarch64_classify_symbol_expression): Define.
1334         (aarch64_symbolic_constant_p): Remove.
1335         * config/aarch64/aarch64.c (aarch64_classify_symbol_expression): Remove
1336         static.  Fix line length and white space.
1337         (aarch64_symbolic_constant_p): Remove.
1338         * config/aarch64/predicates.md (aarch64_valid_symref):
1339         Use aarch64_classify_symbol_expression.
1341 2013-08-05  Yvan Roux  <yvan.roux@linaro.org>
1343         Backport from trunk r200466, r200467.
1344         2013-06-27  Yufeng Zhang  <yufeng.zhang@arm.com>
1346         * config/aarch64/aarch64.c (aarch64_force_temporary): Add an extra
1347         parameter 'mode' of type 'enum machine_mode mode'; change to pass
1348         'mode' to force_reg.
1349         (aarch64_add_offset): Update calls to aarch64_force_temporary.
1350         (aarch64_expand_mov_immediate): Likewise.
1352         2013-06-27  Yufeng Zhang  <yufeng.zhang@arm.com>
1354         * config/aarch64/aarch64.c (aarch64_add_offset): Change to pass
1355         'mode' to aarch64_plus_immediate and gen_rtx_PLUS.
1357 2013-08-05  Yvan Roux  <yvan.roux@linaro.org>
1359         Backport from trunk r200419.
1360         2013-06-26  Greta Yorsh  <Greta.Yorsh@arm.com>
1362         * config/arm/arm.h (MAX_CONDITIONAL_EXECUTE): Define macro.
1363         * config/arm/arm-protos.h (arm_max_conditional_execute): New
1364         declaration.
1365         (tune_params): Update comment.
1366         * config/arm/arm.c (arm_cortex_a15_tune): Set max_cond_insns to 2.
1367         (arm_max_conditional_execute): New function.
1368         (thumb2_final_prescan_insn): Use max_insn_skipped and
1369         MAX_INSN_PER_IT_BLOCK to compute maximum instructions in a block.
1371 2013-07-24  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
1373         * LINARO-VERSION: Bump version.
1375 2013-07-19  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
1377         GCC Linaro 4.8-2013.07-1 released.
1379 2013-07-19  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
1381         Backport from trunk r201005.
1382         2013-07-17  Yvan Roux  <yvan.roux@linaro.org>
1384         PR target/57909
1385         * config/arm/arm.c (gen_movmem_ldrd_strd): Fix unaligned load/store
1386         usage in HI mode.
1388 2013-07-05  Christophe Lyon  <christophe.lyon@linaro.org>
1390         GCC Linaro 4.8-2013.07 released.
1392 2013-07-03  Christophe Lyon  <christophe.lyon@linaro.org>
1394         Revert backport from trunk r198928,198973,199203.
1395         2013-05-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1397         PR target/19599
1398         PR target/57340
1399         * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
1400         (any_sibcall_could_use_r3): this and handle indirect calls.
1401         (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
1403         2013-05-16  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1405         PR target/19599
1406         * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
1407         for NULL decl.
1409         2013-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1411         PR target/19599
1412         * config/arm/predicates.md (call_insn_operand): New predicate.
1413         * config/arm/constraints.md ("Cs", "Ss"):  New constraints.
1414         * config/arm/arm.md (*call_insn, *call_value_insn): Match only
1415         if insn is not a tail call.
1416         (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
1417         registers.
1418         * config/arm/arm.h (enum reg_class): New caller save register class.
1419         (REG_CLASS_NAMES): Likewise.
1420         (REG_CLASS_CONTENTS): Likewise.
1421         * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
1422         without decls.
1424 2013-07-03  Christophe Lyon  <christophe.lyon@linaro.org>
1426         Revert backport from mainline (r199438, r199439)
1427         2013-05-30  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
1429         * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
1430         (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
1431         (arm_emit_vfp_multi_reg_pop): Likewise.
1432         (thumb2_emit_ldrd_pop): Likewise.
1433         (arm_expand_epilogue): Add misc REG_CFA notes.
1434         (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
1436         2013-05-30  Bernd Schmidt  <bernds@codesourcery.com>
1437                     Zhenqiang Chen  <zhenqiang.chen@linaro.org>
1439         * config/arm/arm-protos.h: Add and update function protos.
1440         * config/arm/arm.c (use_simple_return_p): New added.
1441         (thumb2_expand_return): Check simple_return flag.
1442         * config/arm/arm.md: Add simple_return and conditional simple_return.
1443         * config/arm/iterators.md: Add iterator for return and simple_return.
1444         * gcc.dg/shrink-wrap-alloca.c: New added.
1445         * gcc.dg/shrink-wrap-pretend.c: New added.
1446         * gcc.dg/shrink-wrap-sibcall.c: New added.
1448 2013-07-03  Christophe Lyon  <christophe.lyon@linaro.org>
1450         Backport from trunk r199640, 199705, 199733, 199734, 199739.
1451         2013-06-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1453         * rtl.def: Add extra fourth optional field to define_cond_exec.
1454         * gensupport.c (process_one_cond_exec): Process attributes from
1455         define_cond_exec.
1456         * doc/md.texi: Document fourth field in define_cond_exec.
1458         2013-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1460         * config/arm/arm.md (enabled_for_depr_it): New attribute.
1461         (predicable_short_it): Likewise.
1462         (predicated): Likewise.
1463         (enabled): Handle above.
1464         (define_cond_exec): Set predicated attribute to yes.
1466         2013-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1468         * config/arm/sync.md (atomic_loaddi_1):
1469         Disable predication for arm_restrict_it.
1470         (arm_load_exclusive<mode>): Likewise.
1471         (arm_load_exclusivesi): Likewise.
1472         (arm_load_exclusivedi): Likewise.
1473         (arm_load_acquire_exclusive<mode>): Likewise.
1474         (arm_load_acquire_exclusivesi): Likewise.
1475         (arm_load_acquire_exclusivedi): Likewise.
1476         (arm_store_exclusive<mode>): Likewise.
1477         (arm_store_exclusive<mode>): Likewise.
1478         (arm_store_release_exclusivedi): Likewise.
1479         (arm_store_release_exclusive<mode>): Likewise.
1481         2013-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1483         * config/arm/arm-ldmstm.ml: Set "predicable_short_it" to "no"
1484         where appropriate.
1485         * config/arm/ldmstm.md: Regenerate.
1487         2013-06-06  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1489         * config/arm/arm-fixed.md (add<mode>3,usadd<mode>3,ssadd<mode>3,
1490         sub<mode>3, ussub<mode>3, sssub<mode>3, arm_ssatsihi_shift,
1491         arm_usatsihi): Adjust alternatives for arm_restrict_it.
1493 2013-07-02  Rob Savoye  <rob.savoye@linaro.org>
1495         Backport from trunk 200096
1497         2013-06-14  Vidya Praveen <vidyapraveen@arm.com>
1499         * config/aarch64/aarch64-simd.md (aarch64_<su>mlal_lo<mode>):
1500         New pattern.
1501         (aarch64_<su>mlal_hi<mode>, aarch64_<su>mlsl_lo<mode>): Likewise.
1502         (aarch64_<su>mlsl_hi<mode>, aarch64_<su>mlal<mode>): Likewise.
1503         (aarch64_<su>mlsl<mode>): Likewise.
1505 2013-07-02  Rob Savoye  <rob.savoye@linaro.org>
1507         Backport from trunk 200062
1509         2013-06-13  Bin Cheng  <bin.cheng@arm.com>
1510         * fold-const.c (operand_equal_p): Consider NOP_EXPR and
1511         CONVERT_EXPR as equal nodes.
1513 2013-07-02  Rob Savoye  <rob.savoye@linaro.org>
1514         Backport from trunk 199810
1516         2013-06-07  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1518         * config/arm/arm.md (anddi3_insn): Remove duplicate alternatives.
1519         Clean up alternatives.
1521 2013-06-20  Rob Savoye  <rob.savoye@linaro.org>
1523         Backport from trunk 200152
1524         2013-06-17  Sofiane Naci  <sofiane.naci@arm.com>
1526         * config/aarch64/aarch64-simd.md (aarch64_dup_lane<mode>): Add r<-w
1527         alternative and update.
1528         (aarch64_dup_lanedi): Delete.
1529         * config/aarch64/arm_neon.h (vdup<bhsd>_lane_*): Update.
1530         * config/aarch64/aarch64-simd-builtins.def: Update.
1532 2013-06-20  Rob Savoye  <rob.savoye@linaro.org>
1534         Backport from trunk 200061
1535         2013-06-13  Bin Cheng  <bin.cheng@arm.com>
1537         * rtlanal.c (noop_move_p): Check the code to be executed for
1538         COND_EXEC.
1540 2013-06-20  Rob Savoye  <rob.savoye@linaro.org>
1542         Backport from trunk 199694
1543         2013-06-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
1545         * config/arm/arm.c (MAX_INSN_PER_IT_BLOCK): New macro.
1546         (arm_option_override): Override arm_restrict_it where appropriate.
1547         (thumb2_final_prescan_insn): Use MAX_INSN_PER_IT_BLOCK.
1548         * config/arm/arm.opt (mrestrict-it): New command-line option.
1549         * doc/invoke.texi: Document -mrestrict-it.
1551 2013-06-20  Christophe Lyon  <christophe.lyon@linaro.org>
1553         Backport from trunk r198683.
1554         2013-05-07  Christophe Lyon  <christophe.lyon@linaro.org>
1556         * config/arm/arm.c (arm_asan_shadow_offset): New function.
1557         (TARGET_ASAN_SHADOW_OFFSET): Define.
1558         * config/arm/linux-eabi.h (ASAN_CC1_SPEC): Define.
1559         (LINUX_OR_ANDROID_CC): Add ASAN_CC1_SPEC.
1561 2013-06-11  Rob Savoye  <rob.savoye@linaro.org>
1563         GCC Linaro gcc-linaro-4.8-2013.06 released.
1565 2013-06-06  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
1567         Backport from mainline (r199438, r199439)
1568         2013-05-30  Zhenqiang Chen  <zhenqiang.chen@linaro.org>
1570         * config/arm/arm.c (arm_add_cfa_adjust_cfa_note): New added.
1571         (arm_emit_multi_reg_pop): Add REG_CFA_ADJUST_CFA notes.
1572         (arm_emit_vfp_multi_reg_pop): Likewise.
1573         (thumb2_emit_ldrd_pop): Likewise.
1574         (arm_expand_epilogue): Add misc REG_CFA notes.
1575         (arm_unwind_emit): Skip REG_CFA_ADJUST_CFA and REG_CFA_RESTORE.
1577         2013-05-30  Bernd Schmidt  <bernds@codesourcery.com>
1578                     Zhenqiang Chen  <zhenqiang.chen@linaro.org>
1580         * config/arm/arm-protos.h: Add and update function protos.
1581         * config/arm/arm.c (use_simple_return_p): New added.
1582         (thumb2_expand_return): Check simple_return flag.
1583         * config/arm/arm.md: Add simple_return and conditional simple_return.
1584         * config/arm/iterators.md: Add iterator for return and simple_return.
1585         * gcc.dg/shrink-wrap-alloca.c: New added.
1586         * gcc.dg/shrink-wrap-pretend.c: New added.
1587         * gcc.dg/shrink-wrap-sibcall.c: New added.
1589 2013-06-06  Kugan Vivekanandarajah  <kuganv@linaro.org>
1591         Backport from mainline r198879:
1593         2013-05-14  Chung-Lin Tang  <cltang@codesourcery.com>
1594         PR target/42017
1595         * config/arm/arm.h (EPILOGUE_USES): Only return true
1596         for LR_REGNUM after epilogue_completed.
1598 2013-06-05  Christophe Lyon  <christophe.lyon@linaro.org>
1600         Backport from trunk r199652,199653,199656,199657,199658.
1602         2013-06-04  Ian Bolton  <ian.bolton@arm.com>
1604         * config/aarch64/aarch64.md (*mov<mode>_aarch64): Call
1605         into function to generate MOVI instruction.
1606         * config/aarch64/aarch64.c (aarch64_simd_container_mode):
1607         New function.
1608         (aarch64_preferred_simd_mode): Turn into wrapper.
1609         (aarch64_output_scalar_simd_mov_immediate): New function.
1610         * config/aarch64/aarch64-protos.h: Add prototype for above.
1612         2013-06-04  Ian Bolton  <ian.bolton@arm.com>
1614         * config/aarch64/aarch64.c (simd_immediate_info): Remove
1615         element_char member.
1616         (sizetochar): Return signed char.
1617         (aarch64_simd_valid_immediate): Remove elchar and other
1618         unnecessary variables.
1619         (aarch64_output_simd_mov_immediate): Take rtx instead of &rtx.
1620         Calculate element_char as required.
1621         * config/aarch64/aarch64-protos.h: Update and move prototype
1622         for aarch64_output_simd_mov_immediate.
1623         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>):
1624         Update arguments.
1626         2013-06-04  Ian Bolton  <ian.bolton@arm.com>
1628         * config/aarch64/aarch64.c (simd_immediate_info): Struct to hold
1629         information completed by aarch64_simd_valid_immediate.
1630         (aarch64_legitimate_constant_p): Update arguments.
1631         (aarch64_simd_valid_immediate): Work with struct rather than many
1632         pointers.
1633         (aarch64_simd_scalar_immediate_valid_for_move): Update arguments.
1634         (aarch64_simd_make_constant): Update arguments.
1635         (aarch64_output_simd_mov_immediate): Work with struct rather than
1636         many pointers.  Output immediate directly rather than as operand.
1637         * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
1638         Update prototype.
1639         * config/aarch64/constraints.md (Dn): Update arguments.
1641         2013-06-04  Ian Bolton  <ian.bolton@arm.com>
1643         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): No
1644         longer static.
1645         (aarch64_simd_immediate_valid_for_move): Remove.
1646         (aarch64_simd_scalar_immediate_valid_for_move): Update call.
1647         (aarch64_simd_make_constant): Update call.
1648         (aarch64_output_simd_mov_immediate): Update call.
1649         * config/aarch64/aarch64-protos.h (aarch64_simd_valid_immediate):
1650         Add prototype.
1651         * config/aarch64/constraints.md (Dn): Update call.
1653         2013-06-04  Ian Bolton  <ian.bolton@arm.com>
1655         * config/aarch64/aarch64.c (aarch64_simd_valid_immediate): Change
1656         return type to bool for prototype.
1657         (aarch64_legitimate_constant_p): Check for true instead of not -1.
1658         (aarch64_simd_valid_immediate): Fix up each return to return a bool.
1659         (aarch64_simd_immediate_valid_for_move): Update retval for bool.
1661 2013-06-04  Christophe Lyon  <christophe.lyon@linaro.org>
1663         Backport from trunk r199261.
1664         2013-05-23  Christian Bruel  <christian.bruel@st.com>
1666         PR debug/57351
1667         * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
1669 2013-06-03  Christophe Lyon  <christophe.lyon@linaro.org>
1671         Backport from trunk
1672         r198890,199254,199259,199260,199293,199407,199408,199454,199544,199545.
1674         2013-05-31  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1676         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
1677         Remove un-necessary braces.
1679         2013-05-31  Marcus Shawcroft  <marcus.shawcroft@arm.com>
1681         * config/aarch64/aarch64.c (aarch64_classify_symbol):
1682         Use SYMBOL_TINY_ABSOLUTE for AARCH64_CMODEL_TINY_PIC.
1684         2013-05-30  Ian Bolton  <ian.bolton@arm.com>
1686         * config/aarch64/aarch64.md (insv<mode>): New define_expand.
1687         (*insv_reg<mode>): New define_insn.
1689         2012-05-29  Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
1690             Marcus Shawcroft  <marcus.shawcroft@arm.com>
1692         * config/aarch64/aarch64-protos.h (aarch64_symbol_type): Define
1693         SYMBOL_TINY_ABSOLUTE.
1694         * config/aarch64/aarch64.c (aarch64_load_symref_appropriately): Handle
1695         SYMBOL_TINY_ABSOLUTE.
1696         (aarch64_expand_mov_immediate): Likewise.
1697         (aarch64_classify_symbol): Likewise.
1698         (aarch64_mov_operand_p): Remove ATTRIBUTE_UNUSED.
1699         Permit SYMBOL_TINY_ABSOLUTE.
1700         * config/aarch64/predicates.md (aarch64_mov_operand): Permit CONST.
1702         2013-05-29  Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
1703             Marcus Shawcroft  <marcus.shawcroft@arm.com>
1705         * config/aarch64/aarch64.c (aarch64_classify_symbol): Remove comment.
1706         Refactor if/switch.  Replace gcc_assert with if.
1708         2013-05-24  Ian Bolton  <ian.bolton@arm.com>
1710         * config/aarch64/aarch64.c (aarch64_print_operand): Change the
1711         X format specifier to only display bottom 16 bits.
1712         * config/aarch64/aarch64.md (insv_imm<mode>): Allow any size of
1713         immediate to match for operand 2, since it will be masked.
1715         2013-05-23  Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
1716             Marcus Shawcroft  <marcus.shawcroft@arm.com>
1718         * config/aarch64/aarch64.md (*movdi_aarch64): Replace Usa with S.
1719         * config/aarch64/constraints.md (Usa): Remove.
1720         * doc/md.texi (AArch64 Usa): Remove.
1722         2013-05-23  Chris Schlumberger-Socha <chris.schlumberger-socha@arm.com>
1723             Marcus Shawcroft  <marcus.shawcroft@arm.com>
1725         * config/aarch64/aarch64-protos.h (aarch64_mov_operand_p): Define.
1726         * config/aarch64/aarch64.c (aarch64_mov_operand_p): Define.
1727         * config/aarch64/predicates.md (aarch64_const_address): Remove.
1728         (aarch64_mov_operand): Use aarch64_mov_operand_p.
1730         2013-05-23  Vidya Praveen <vidyapraveen@arm.com>
1732         * config/aarch64/aarch64-simd.md (clzv4si2): Support for CLZ
1733         instruction (AdvSIMD).
1734         * config/aarch64/aarch64-builtins.c
1735         (aarch64_builtin_vectorized_function): Handler for BUILT_IN_CLZ.
1736         * config/aarch64/aarch-simd-builtins.def: Entry for CLZ.
1738         2013-05-14  James Greenhalgh  <james.greenhalgh@arm.com>
1740         * config/aarch64/aarch64-simd.md
1741         (aarch64_vcond_internal<mode>): Rename to...
1742         (aarch64_vcond_internal<mode><mode>): ...This, for integer modes.
1743         (aarch64_vcond_internal<VDQF_COND:mode><VDQF:mode>): ...This for
1744         float modes. Clarify all iterator modes.
1745         (vcond<mode><mode>): Use new name for vcond expanders.
1746         (vcond<v_cmp_result><mode>): Likewise.
1747         (vcondu<mode><mode>: Likewise.
1748         * config/aarch64/iterators.md (VDQF_COND): New.
1750 2013-05-29  Christophe Lyon  <christophe.lyon@linaro.org>
1752         Backport from trunk r198928,198973,199203.
1753         2013-05-22  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1755         PR target/19599
1756         PR target/57340
1757         * config/arm/arm.c (any_sibcall_uses_r3): Rename to ..
1758         (any_sibcall_could_use_r3): this and handle indirect calls.
1759         (arm_get_frame_offsets): Rename use of any_sibcall_uses_r3.
1761         2013-05-16  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1763         PR target/19599
1764         * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
1765         for NULL decl.
1767         2013-05-15  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
1769         PR target/19599
1770         * config/arm/predicates.md (call_insn_operand): New predicate.
1771         * config/arm/constraints.md ("Cs", "Ss"):  New constraints.
1772         * config/arm/arm.md (*call_insn, *call_value_insn): Match only
1773         if insn is not a tail call.
1774         (*sibcall_insn, *sibcall_value_insn): Adjust for tailcalling through
1775         registers.
1776         * config/arm/arm.h (enum reg_class): New caller save register class.
1777         (REG_CLASS_NAMES): Likewise.
1778         (REG_CLASS_CONTENTS): Likewise.
1779         * config/arm/arm.c (arm_function_ok_for_sibcall): Allow tailcalling
1780         without decls.
1782 2013-05-28  Christophe Lyon  <christophe.lyon@linaro.org>
1784         Backport from trunk r198680.
1785         2013-05-07  Sofiane Naci  <sofiane.naci@arm.com>
1787         * config/aarch64/aarch64-simd.md (*aarch64_simd_mov<mode>): call splitter.
1788         (aarch64_simd_mov<mode>): New expander.
1789         (aarch64_simd_mov_to_<mode>low): New instruction pattern.
1790         (aarch64_simd_mov_to_<mode>high): Likewise.
1791         (aarch64_simd_mov_from_<mode>low): Likewise.
1792         (aarch64_simd_mov_from_<mode>high): Likewise.
1793         (aarch64_dup_lane<mode>): Update.
1794         (aarch64_dup_lanedi): New instruction pattern.
1795         * config/aarch64/aarch64-protos.h (aarch64_split_simd_move): New prototype.
1796         * config/aarch64/aarch64.c (aarch64_split_simd_move): New function.
1798 2013-05-28  Christophe Lyon  <christophe.lyon@linaro.org>
1800         Backport from trunk r198497-198500.
1801         2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
1803         * config/aarch64/aarch64-builtins.c
1804         (aarch64_gimple_fold_builtin.c): Fold more modes for reduc_splus_.
1805         * config/aarch64/aarch64-simd-builtins.def
1806         (reduc_splus_): Add new modes.
1807         (reduc_uplus_): New.
1808         * config/aarch64/aarch64-simd.md (aarch64_addvv4sf): Remove.
1809         (reduc_uplus_v4sf): Likewise.
1810         (reduc_splus_v4sf): Likewise.
1811         (aarch64_addv<mode>): Likewise.
1812         (reduc_uplus_<mode>): Likewise.
1813         (reduc_splus_<mode>): Likewise.
1814         (aarch64_addvv2di): Likewise.
1815         (reduc_uplus_v2di): Likewise.
1816         (reduc_splus_v2di): Likewise.
1817         (aarch64_addvv2si): Likewise.
1818         (reduc_uplus_v2si): Likewise.
1819         (reduc_splus_v2si): Likewise.
1820         (reduc_<sur>plus_<mode>): New.
1821         (reduc_<sur>plus_v2di): Likewise.
1822         (reduc_<sur>plus_v2si): Likewise.
1823         (reduc_<sur>plus_v4sf): Likewise.
1824         (aarch64_addpv4sf): Likewise.
1825         * config/aarch64/arm_neon.h
1826         (vaddv<q>_<s,u,f><8, 16, 32, 64): Rewrite using builtins.
1827         * config/aarch64/iterators.md (unspec): Remove UNSPEC_ADDV,
1828         add UNSPEC_SADDV, UNSPEC_UADDV.
1829         (SUADDV): New.
1830         (sur): Add UNSPEC_SADDV, UNSPEC_UADDV.
1832         2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
1834         * config/aarch64/arm_neon.h
1835         (v<max,min><nm><q><v>_<sfu><8, 16, 32, 64>): Rewrite using builtins.
1837         2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
1839         * config/aarch64/aarch64-builtins
1840         (aarch64_gimple_fold_builtin): Fold reduc_<su><maxmin>_ builtins.
1842         2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
1844         * config/aarch64/aarch64-simd-builtins.def
1845         (reduc_smax_): New.
1846         (reduc_smin_): Likewise.
1847         (reduc_umax_): Likewise.
1848         (reduc_umin_): Likewise.
1849         (reduc_smax_nan_): Likewise.
1850         (reduc_smin_nan_): Likewise.
1851         (fmax): Remove.
1852         (fmin): Likewise.
1853         (smax): Update for V2SF, V4SF and V2DF modes.
1854         (smin): Likewise.
1855         (smax_nan): New.
1856         (smin_nan): Likewise.
1857         * config/aarch64/aarch64-simd.md (<maxmin><mode>3): Rename to...
1858         (<su><maxmin><mode>3): ...This, refactor.
1859         (s<maxmin><mode>3): New.
1860         (<maxmin_uns><mode>3): Likewise.
1861         (reduc_<maxmin_uns>_<mode>): Refactor.
1862         (reduc_<maxmin_uns>_v4sf): Likewise.
1863         (reduc_<maxmin_uns>_v2si): Likewise.
1864         (aarch64_<fmaxmin><mode>: Remove.
1865         * config/aarch64/arm_neon.h (vmax<q>_f<32,64>): Rewrite to use
1866         new builtin names.
1867         (vmin<q>_f<32,64>): Likewise.
1868         * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
1869         (FMAXMIN): New.
1870         (su): Add mappings for smax, smin, umax, umin.
1871         (maxmin): New.
1872         (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
1873         (FMAXMIN): Rename as...
1874         (FMAXMIN_UNS): ...This.
1875         (maxminv): Remove.
1876         (fmaxminv): Likewise.
1877         (fmaxmin): Likewise.
1878         (maxmin_uns): New.
1879         (maxmin_uns_op): Likewise.
1881 2013-05-28  Christophe Lyon  <christophe.lyon@linaro.org>
1883         Backport from trunk r199241.
1884         2013-05-23  James Greenhalgh  <james.greenhalgh@arm.com>
1886         * config/aarch64/aarch64-simd.md
1887         (aarch64_cm<optab>di): Add clobber of CC_REGNUM to unsplit pattern.
1889 2013-05-23  Christophe Lyon  <christophe.lyon@linaro.org>
1891         Backport from trunk r198970.
1892         2013-05-16  Greta Yorsh  <Greta.Yorsh@arm.com>
1894         * config/arm/arm-protos.h (gen_movmem_ldrd_strd): New declaration.
1895         * config/arm/arm.c (next_consecutive_mem): New function.
1896         (gen_movmem_ldrd_strd): Likewise.
1897         * config/arm/arm.md (movmemqi): Update condition and code.
1898         (unaligned_loaddi, unaligned_storedi): New patterns.
1900 2013-05-19  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
1902         * LINARO-VERSION: Bump version number.
1904 2013-05-14  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
1906         GCC Linaro 4.8-2013.05 released.
1908 2013-05-14  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
1910         Backport from trunk r198677.
1911         2013-05-07  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
1913         * config/aarch64/aarch64.md
1914         (cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): Restrict the
1915         shift value between 0-4.
1917 2013-05-14  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
1919         Backport from trunk r198574-198575.
1920         2013-05-03  Vidya Praveen  <vidyapraveen@arm.com>
1922         * config/aarch64/aarch64-simd.md (simd_fabd): Correct the description.
1924         2013-05-03  Vidya Praveen  <vidyapraveen@arm.com>
1926         * config/aarch64/aarch64-simd.md (*fabd_scalar<mode>3): Support
1927         scalar form of FABD instruction.
1929 2013-05-14  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
1931         Backport from trunk r198490-198496
1932         2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
1934         * config/aarch64/arm_neon.h
1935         (vac<ge, gt><sd>_f<32, 64>): Rename to...
1936         (vca<ge, gt><sd>_f<32, 64>): ...this, reimpliment in C.
1937         (vca<ge, gt, lt, le><q>_f<32, 64>): Reimpliment in C.
1939         2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
1941         * config/aarch64/aarch64-simd.md (*aarch64_fac<optab><mode>): New.
1942         * config/aarch64/iterators.md (FAC_COMPARISONS): New.
1944         2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
1946         * config/aarch64/aarch64-simd.md
1947         (vcond<mode>_internal): Handle special cases for constant masks.
1948         (vcond<mode><mode>): Allow nonmemory_operands for outcome vectors.
1949         (vcondu<mode><mode>): Likewise.
1950         (vcond<v_cmp_result><mode>): New.
1952         2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
1954         * config/aarch64/aarch64-builtins.c (BUILTIN_VALLDI): Define.
1955         (aarch64_fold_builtin): Add folding for cm<eq,ge,gt,tst>.
1956         * config/aarch64/aarch64-simd-builtins.def
1957         (cmeq): Update to BUILTIN_VALLDI.
1958         (cmgt): Likewise.
1959         (cmge): Likewise.
1960         (cmle): Likewise.
1961         (cmlt): Likewise.
1962         * config/aarch64/arm_neon.h
1963         (vc<eq, lt, le, gt, ge, tst><z><qsd>_<fpsu><8,16,32,64>): Remap
1964         to builtins or C as appropriate.
1966         2013-05-01  James Greenhalgh  <james.greenhalgh@arm.com>
1968         * config/aarch64/aarch64-simd-builtins.def (cmhs): Rename to...
1969         (cmgeu): ...This.
1970         (cmhi): Rename to...
1971         (cmgtu): ...This.
1972         * config/aarch64/aarch64-simd.md
1973         (simd_mode): Add SF.
1974         (aarch64_vcond_internal): Use new names for unsigned comparison insns.
1975         (aarch64_cm<optab><mode>): Rewrite to not use UNSPECs.
1976         * config/aarch64/aarch64.md (*cstore<mode>_neg): Rename to...
1977         (cstore<mode>_neg): ...This.
1978         * config/aarch64/iterators.md
1979         (VALLF): new.
1980         (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
1981         (COMPARISONS): New.
1982         (UCOMPARISONS): Likewise.
1983         (optab): Add missing comparisons.
1984         (n_optab): New.
1985         (cmp_1): Likewise.
1986         (cmp_2): Likewise.
1987         (CMP): Likewise.
1988         (cmp): Remove.
1989         (VCMP_S): Likewise.
1990         (VCMP_U): Likewise.
1991         (V_cmp_result): Add DF, SF modes.
1992         (v_cmp_result): Likewise.
1993         (v): Likewise.
1994         (vmtype): Likewise.
1995         * config/aarch64/predicates.md (aarch64_reg_or_fp_zero): New.
1997 2013-05-14  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
1999         Backport from trunk r198191.
2000         2013-04-23  Sofiane Naci  <sofiane.naci@arm.com>
2002         * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add simd attribute.
2004 2013-05-14  Matthew Gretton-Dann  <matthew.gretton-dann@lianro.org>
2006         Backport from trunk r197838.
2007         2013-04-11   Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
2009         * config/aarch64/aarch64.c (aarch64_select_cc_mode): Allow NEG
2010         code in CC_NZ mode.
2011         * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
2012         pattern.
2014 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
2016         Backport from trunk r198019.
2017         2013-04-16   Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
2019         * config/aarch64/aarch64.md (*adds_mul_imm_<mode>): New pattern.
2020         (*subs_mul_imm_<mode>): New pattern.
2022 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
2024         Backport from trunk r198424-198425.
2025         2013-04-29  Ian Bolton  <ian.bolton@arm.com>
2027         * config/aarch64/aarch64.md (movsi_aarch64): Support LDR/STR
2028         from/to S register.
2029         (movdi_aarch64): Support LDR/STR from/to D register.
2031         2013-04-29  Ian Bolton  <ian.bolton@arm.com>
2033         * common/config/aarch64/aarch64-common.c: Enable REE pass at O2
2034         or higher by default.
2036 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
2038         Backport from trunk r198412.
2039         2013-04-29  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2041         * config/arm/arm.md (store_minmaxsi): Use only when
2042         optimize_insn_for_size_p.
2044 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
2046         Backport from trunk 198394,198396-198400,198402-198404.
2047         2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
2049         * config/aarch64/arm_neon.h
2050         (vcvt<sd>_f<32,64>_s<32,64>): Rewrite in C.
2051         (vcvt<q>_f<32,64>_s<32,64>): Rewrite using builtins.
2052         (vcvt_<high_>_f<32,64>_f<32,64>): Likewise.
2053         (vcvt<qsd>_<su><32,64>_f<32,64>): Likewise.
2054         (vcvta<qsd>_<su><32,64>_f<32,64>): Likewise.
2055         (vcvtm<qsd>_<su><32,64>_f<32,64>): Likewise.
2056         (vcvtn<qsd>_<su><32,64>_f<32,64>): Likewise.
2057         (vcvtp<qsd>_<su><32,64>_f<32,64>): Likewise.
2059         2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
2061         * config/aarch64/aarch64-simd.md
2062         (<optab><VDQF:mode><fcvt_target>2): New, maps to fix, fixuns.
2063         (<fix_trunc_optab><VDQF:mode><fcvt_target>2): New, maps to
2064         fix_trunc, fixuns_trunc.
2065         (ftrunc<VDQF:mode>2): New.
2066         * config/aarch64/iterators.md (optab): Add fix, fixuns.
2067         (fix_trunc_optab): New.
2069         2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
2071         * config/aarch64/aarch64-builtins.c
2072         (aarch64_builtin_vectorized_function): Vectorize over ifloorf,
2073         iceilf, lround, iroundf.
2075         2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
2077         * config/aarch64/aarch64-simd-builtins.def (vec_unpacks_hi_): New.
2078         (float_truncate_hi_): Likewise.
2079         (float_extend_lo_): Likewise.
2080         (float_truncate_lo_): Likewise.
2081         * config/aarch64/aarch64-simd.md (vec_unpacks_lo_v4sf): New.
2082         (aarch64_float_extend_lo_v2df): Likewise.
2083         (vec_unpacks_hi_v4sf): Likewise.
2084         (aarch64_float_truncate_lo_v2sf): Likewise.
2085         (aarch64_float_truncate_hi_v4sf): Likewise.
2086         (vec_pack_trunc_v2df): Likewise.
2087         (vec_pack_trunc_df): Likewise.
2089         2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
2091         * config/aarch64/aarch64-builtins.c
2092         (aarch64_fold_builtin): Fold float conversions.
2093         * config/aarch64/aarch64-simd-builtins.def
2094         (floatv2si, floatv4si, floatv2di): New.
2095         (floatunsv2si, floatunsv4si, floatunsv2di): Likewise.
2096         * config/aarch64/aarch64-simd.md
2097         (<optab><fcvt_target><VDQF:mode>2): New, expands to float and floatuns.
2098         * config/aarch64/iterators.md (FLOATUORS): New.
2099         (optab): Add float, floatuns.
2100         (su_optab): Likewise.
2102         2013-04-29  James Greenhalgh  <james.greenhalgh@arm.com>
2104         * config/aarch64/aarch64-builtins.c
2105         (aarch64_builtin_vectorized_function): Fold to standard pattern names.
2106         * config/aarch64/aarch64-simd-builtins.def (frintn): New.
2107         (frintz): Rename to...
2108         (btrunc): ...this.
2109         (frintp): Rename to...
2110         (ceil): ...this.
2111         (frintm): Rename to...
2112         (floor): ...this.
2113         (frinti): Rename to...
2114         (nearbyint): ...this.
2115         (frintx): Rename to...
2116         (rint): ...this.
2117         (frinta): Rename to...
2118         (round): ...this.
2119         * config/aarch64/aarch64-simd.md
2120         (aarch64_frint<frint_suffix><mode>): Delete.
2121         (<frint_pattern><mode>2): Convert to insn.
2122         * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRINTN.
2123         * config/aarch64/iterators.md (FRINT): Add UNSPEC_FRINTN.
2124         (frint_pattern): Likewise.
2125         (frint_suffix): Likewise.
2127 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
2129         Backport from trunk r198302-198306,198316.
2130         2013-04-25  James Greenhalgh  <james.greenhalgh@arm.com>
2132         * config/aarch64/aarch64-simd.md
2133         (aarch64_simd_bsl<mode>_internal): Rewrite RTL to not use UNSPEC_BSL.
2134         (aarch64_simd_bsl<mode>): Likewise.
2135         * config/aarch64/iterators.md (unspec): Remove UNSPEC_BSL.
2137         2013-04-25  James Greenhalgh  <jame.greenhalgh@arm.com>
2139         * config/aarch64/aarch64-simd.md (neg<mode>2): Use VDQ iterator.
2141         2013-04-25  James Greenhalgh  <james.greenhalgh@arm.com>
2143         * config/aarch64/aarch64-builtins.c
2144         (aarch64_fold_builtin): New.
2145         * config/aarch64/aarch64-protos.h (aarch64_fold_builtin): New.
2146         * config/aarch64/aarch64.c (TARGET_FOLD_BUILTIN): Define.
2147         * config/aarch64/aarch64-simd-builtins.def (abs): New.
2148         * config/aarch64/arm_neon.h
2149         (vabs<q>_<f32, 64>): Implement using __builtin_aarch64_fabs.
2151         2013-04-25  James Greenhalgh  <james.greenhalgh@arm.com>
2152             Tejas Belagod  <tejas.belagod@arm.com>
2154         * config/aarch64/aarch64-builtins.c
2155         (aarch64_gimple_fold_builtin): New.
2156         * config/aarch64/aarch64-protos.h (aarch64_gimple_fold_builtin): New.
2157         * config/aarch64/aarch64-simd-builtins.def (addv): New.
2158         * config/aarch64/aarch64-simd.md (addpv4sf): New.
2159         (addvv4sf): Update.
2160         * config/aarch64/aarch64.c (TARGET_GIMPLE_FOLD_BUILTIN): Define.
2162         2013-04-25  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
2164         * config/aarch64/aarch64.md 
2165         (*cmp_swp_<optab><ALLX:mode>_shft_<GPI:mode>): New pattern.
2167         2013-04-25  Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
2169         * config/aarch64/aarch64.md (*ngc<mode>): New pattern.
2170         (*ngcsi_uxtw): New pattern.
2172 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
2174         Backport from trunk 198298.
2175         2013-04-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2176             Julian Brown  <julian@codesourcery.com>
2178         * config/arm/arm.c (neon_builtin_type_mode): Add T_V4HF.
2179         (TB_DREG): Add T_V4HF.
2180         (v4hf_UP): New macro.
2181         (neon_itype): Add NEON_FLOAT_WIDEN, NEON_FLOAT_NARROW.
2182         (arm_init_neon_builtins): Handle NEON_FLOAT_WIDEN,
2183         NEON_FLOAT_NARROW.
2184         Handle initialisation of V4HF. Adjust initialisation of reinterpret
2185         built-ins.
2186         (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN,
2187         NEON_FLOAT_NARROW.
2188         (arm_vector_mode_supported_p): Handle V4HF.
2189         (arm_mangle_map): Handle V4HFmode.
2190         * config/arm/arm.h (VALID_NEON_DREG_MODE): Add V4HF.
2191         * config/arm/arm_neon_builtins.def: Add entries for
2192         vcvtv4hfv4sf, vcvtv4sfv4hf.
2193         * config/arm/neon.md (neon_vcvtv4sfv4hf): New pattern.
2194         (neon_vcvtv4hfv4sf): Likewise.
2195         * config/arm/neon-gen.ml: Handle half-precision floating point
2196         features.
2197         * config/arm/neon-testgen.ml: Handle Requires_FP_bit feature.
2198         * config/arm/arm_neon.h: Regenerate.
2199         * config/arm/neon.ml (type elts): Add F16.
2200         (type vectype): Add T_float16x4, T_floatHF.
2201         (type vecmode): Add V4HF.
2202         (type features): Add Requires_FP_bit feature.
2203         (elt_width): Handle F16.
2204         (elt_class): Likewise.
2205         (elt_of_class_width): Likewise.
2206         (mode_of_elt): Refactor.
2207         (type_for_elt): Handle F16, fix error messages.
2208         (vectype_size): Handle T_float16x4.
2209         (vcvt_sh): New function.
2210         (ops): Add entries for vcvt_f16_f32, vcvt_f32_f16.
2211         (string_of_vectype): Handle T_floatHF, T_float16, T_float16x4.
2212         (string_of_mode): Handle V4HF.
2213         * doc/arm-neon-intrinsics.texi: Regenerate.
2215 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
2217         Backport from trunk r198136-198137,198142,198176.
2218         2013-04-23  Andreas Schwab  <schwab@linux-m68k.org>
2220         * coretypes.h (gimple_stmt_iterator): Add struct to make
2221         compatible with C.
2223         2013-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
2225         * coretypes.h (gimple_stmt_iterator_d): Forward declare.
2226         (gimple_stmt_iterator): New typedef.
2227         * gimple.h (gimple_stmt_iterator): Rename to...
2228         (gimple_stmt_iterator_d): ... This.
2229         * doc/tm.texi.in (TARGET_FOLD_BUILTIN): Detail restriction that
2230         trees be valid for GIMPLE and GENERIC.
2231         (TARGET_GIMPLE_FOLD_BUILTIN): New.
2232         * gimple-fold.c (gimple_fold_call): Call target hook
2233         gimple_fold_builtin.
2234         * hooks.c (hook_bool_gsiptr_false): New.
2235         * hooks.h (hook_bool_gsiptr_false): New.
2236         * target.def (fold_stmt): New.
2237         * doc/tm.texi: Regenerate.
2239         2013-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
2241         * config/aarch64/aarch64-builtins.c
2242         (CF): Remove.
2243         (CF0, CF1, CF2, CF3, CF4, CF10): New.
2244         (VAR<1-12>): Add MAP parameter.
2245         (BUILTIN_*): Likewise.
2246         * config/aarch64/aarch64-simd-builtins.def: Set MAP parameter.
2247         * config/aarch64/aarch64-simd.md (aarch64_sshl_n<mode>): Remove.
2248         (aarch64_ushl_n<mode>): Likewise.
2249         (aarch64_sshr_n<mode>): Likewise.
2250         (aarch64_ushr_n<mode>): Likewise.
2251         (aarch64_<maxmin><mode>): Likewise.
2252         (aarch64_sqrt<mode>): Likewise.
2253         * config/aarch64/arm_neon.h (vshl<q>_n_*): Use new builtin names.
2254         (vshr<q>_n_*): Likewise.
2256         2013-04-22  James Greenhalgh  <james.greenhalgh@arm.com>
2258         * config/aarch64/aarch64-builtins.c
2259         (aarch64_simd_builtin_type_mode): Handle SF types.
2260         (sf_UP): Define.
2261         (BUILTIN_GPF): Define.
2262         (aarch64_init_simd_builtins): Handle SF types.
2263         * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
2264         (frecps): Likewise.
2265         (frecpx): Likewise.
2266         * config/aarch64/aarch64-simd.md
2267         (simd_types): Update simd_frcp<esx> to simd_frecp<esx>.
2268         (aarch64_frecpe<mode>): New.
2269         (aarch64_frecps<mode>): Likewise.
2270         * config/aarch64/aarch64.md (unspec): Add UNSPEC_FRECP<ESX>.
2271         (v8type): Add frecp<esx>.
2272         (aarch64_frecp<FRECP:frecp_suffix><mode>): New.
2273         (aarch64_frecps<mode>): Likewise.
2274         * config/aarch64/iterators.md (FRECP): New.
2275         (frecp_suffix): Likewise.
2276         * config/aarch64/arm_neon.h
2277         (vrecp<esx><qsd>_<fd><32, 64>): Convert to using builtins.
2279 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
2281         Backport from trunk r198030.
2282         2013-04-17  Greta Yorsh  <Greta.Yorsh at arm.com>
2284         * config/arm/arm.md (movsicc_insn): Convert define_insn into
2285         define_insn_and_split.
2286         (and_scc,ior_scc,negscc): Likewise.
2287         (cmpsi2_addneg, subsi3_compare): Convert to named patterns.
2289 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
2291         Backport from trunk r198020.
2292         2013-04-16   Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
2294         * config/aarch64/aarch64.md (*adds_<optab><mode>_multp2):
2295         New pattern.
2296         (*subs_<optab><mode>_multp2): New pattern.
2297         (*adds_<optab><ALLX:mode>_<GPI:mode>): New pattern.
2298         (*subs_<optab><ALLX:mode>_<GPI:mode>): New pattern.
2300 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
2302         Backport from trunk r198004,198029.
2303         2013-04-17  Greta Yorsh  <Greta.Yorsh at arm.com>
2305         * config/arm/arm.c (use_return_insn): Return 0 for targets that
2306         can benefit from using a sequence of LDRD instructions in epilogue
2307         instead of a single LDM instruction.
2309         2013-04-16  Greta Yorsh  <Greta.Yorsh at arm.com>
2311         * config/arm/arm.c (emit_multi_reg_push): New declaration
2312         for an existing function.
2313         (arm_emit_strd_push): New function.
2314         (arm_expand_prologue): Used here.
2315         (arm_emit_ldrd_pop): New function.
2316         (arm_expand_epilogue): Used here.
2317         (arm_get_frame_offsets): Update condition.
2318         (arm_emit_multi_reg_pop): Add a special case for load of a single
2319         register with writeback.
2321 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
2323         Backport from trunk r197965.
2324         2013-04-15  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2326         * config/arm/arm.c (const_ok_for_dimode_op): Handle AND case.
2327         * config/arm/arm.md (*anddi3_insn): Change to insn_and_split.
2328         * config/arm/constraints.md (De): New constraint.
2329         * config/arm/neon.md (anddi3_neon): Delete.
2330         (neon_vand<mode>): Expand to standard anddi3 pattern.
2331         * config/arm/predicates.md (imm_for_neon_inv_logic_operand):
2332         Move earlier in the file.
2333         (neon_inv_logic_op2): Likewise.
2334         (arm_anddi_operand_neon): New predicate.
2336 2013-05-02  Matthew Gretton-Dann <matthew.gretton-dann@linaro.org>
2338         Backport from trunk r197925.
2339         2013-04-12  Greta Yorsh  <Greta.Yorsh@arm.com>
2341         * config/arm/arm.md (mov_scc,mov_negscc,mov_notscc): Convert
2342         define_insn into define_insn_and_split and emit movsicc patterns.
2344 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
2346         Backport from trunk r197807.
2347         2013-04-11   Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
2349         * config/aarch64/aarch64.h (REVERSIBLE_CC_MODE): Define.
2351 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
2353         Backport from trunk r197642.
2354         2013-04-09  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2356         * config/arm/arm.md (minmax_arithsi_non_canon): New pattern.
2358 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
2360         Backport from trunk r197530,197921.
2361         2013-04-12  Greta Yorsh  <Greta.Yorsh@arm.com>
2363         * config/arm/arm.c (gen_operands_ldrd_strd): Initialize "base".
2365         2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
2367         * config/arm/constraints.md (q): New constraint.
2368         * config/arm/ldrdstrd.md: New file.
2369         * config/arm/arm.md (ldrdstrd.md) New include.
2370         (arm_movdi): Use "q" instead of "r" constraint
2371         for double-word memory access.
2372         (movdf_soft_insn): Likewise.
2373         * config/arm/vfp.md (movdi_vfp): Likewise.
2374         * config/arm/t-arm (MD_INCLUDES): Add ldrdstrd.md.
2375         * config/arm/arm-protos.h (gen_operands_ldrd_strd): New declaration.
2376         * config/arm/arm.c (gen_operands_ldrd_strd): New function.
2377         (mem_ok_for_ldrd_strd): Likewise.
2378         (output_move_double): Update assertion.
2380 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
2382         Backport of trunk r197518-197522,197526-197528.
2383         2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
2385         * config/arm/arm.md (arm_smax_insn): Convert define_insn into
2386         define_insn_and_split.
2387         (arm_smin_insn,arm_umaxsi3,arm_uminsi3): Likewise.
2389         2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
2391         * config/arm/arm.md (arm_ashldi3_1bit): Convert define_insn into
2392         define_insn_and_split.
2393         (arm_ashrdi3_1bit,arm_lshrdi3_1bit): Likewise.
2394         (shiftsi3_compare): New pattern.
2395         (rrx): New pattern.
2396         * config/arm/unspecs.md (UNSPEC_RRX): New.
2398         2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
2400         * config/arm/arm.md (negdi_extendsidi): New pattern.
2401         (negdi_zero_extendsidi): Likewise.
2403         2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
2405         * config/arm/arm.md (andsi_iorsi3_notsi): Convert define_insn into
2406         define_insn_and_split.
2407         (arm_negdi2,arm_abssi2,arm_neg_abssi2): Likewise.
2408         (arm_cmpdi_insn,arm_cmpdi_unsigned): Likewise.
2410         2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
2412         * config/arm/arm.md (arm_subdi3): Convert define_insn into
2413         define_insn_and_split.
2414         (subdi_di_zesidi,subdi_di_sesidi): Likewise.
2415         (subdi_zesidi_di,subdi_sesidi_di,subdi_zesidi_zesidi): Likewise.
2417         2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
2419         * config/arm/arm.md (subsi3_carryin): New pattern.
2420         (subsi3_carryin_const): Likewise.
2421         (subsi3_carryin_compare,subsi3_carryin_compare_const): Likewise.
2422         (subsi3_carryin_shift,rsbsi3_carryin_shift): Likewise.
2424         2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
2426         * config/arm/arm.md (incscc,arm_incscc,decscc,arm_decscc): Delete.
2428         2013-04-05  Greta Yorsh  <Greta.Yorsh@arm.com>
2430         * config/arm/arm.md (addsi3_carryin_<optab>): Set attribute predicable.
2431         (addsi3_carryin_alt2_<optab>,addsi3_carryin_shift_<optab>): Likewise.
2433 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
2435         Backport of trunk r197517.
2436         2013-04-05  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2438         * config/arm/arm.c (arm_expand_builtin): Change fcode
2439         type to unsigned int.
2441 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
2443         Backport of trunk r197513.
2444         2013-04-05  Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2446         * doc/invoke.texi (ARM Options): Document cortex-a53 support.
2448 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
2450         Backport of trunk r197489-197491.
2451         2013-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2453         * config/arm/arm-protos.h (arm_builtin_vectorized_function):
2454         New function prototype.
2455         * config/arm/arm.c (TARGET_VECTORIZE_BUILTINS): Define.
2456         (TARGET_VECTORIZE_BUILTIN_VECTORIZED_FUNCTION): Likewise.
2457         (arm_builtin_vectorized_function): New function.
2459         2013-04-04  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2461         * config/arm/arm_neon_builtins.def: New file.
2462         * config/arm/arm.c (neon_builtin_data): Move contents to
2463         arm_neon_builtins.def.
2464         (enum arm_builtins): Include neon builtin definitions.
2465         (ARM_BUILTIN_NEON_BASE): Move from enum to macro.
2466         * config/arm/t-arm (arm.o): Add dependency on
2467         arm_neon_builtins.def.
2469 2013-05-02  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
2471         Backport of trunk 196795-196797,196957
2472         2013-03-19  Ian Bolton  <ian.bolton@arm.com>
2474         * config/aarch64/aarch64.md (*sub<mode>3_carryin): New pattern.
2475         (*subsi3_carryin_uxtw): Likewise.
2477         2013-03-19  Ian Bolton  <ian.bolton@arm.com>
2479         * config/aarch64/aarch64.md (*ror<mode>3_insn): New pattern.
2480         (*rorsi3_insn_uxtw): Likewise.
2482         2013-03-19  Ian Bolton  <ian.bolton@arm.com>
2484         * config/aarch64/aarch64.md (*extr<mode>5_insn): New pattern.
2485         (*extrsi5_insn_uxtw): Likewise.
2487 2013-04-10  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
2489         * LINARO-VERSION: Bump version number.
2491 2013-04-09  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
2493         * GCC Linaro 4.8-2013.04 released.
2494         
2495         * LINARO-VERSION: New file.
2496         * configure.ac: Add Linaro version string.
2497         * configure: Regenerate.
2499 2013-04-08  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
2501         Backport of trunk r197346.
2502         2013-04-02  Ian Caulfield  <ian.caulfield@arm.com>
2503             Ramana Radhakrishnan  <ramana.radhakrishnan@arm.com>
2505         * config/arm/arm-arches.def (armv8-a): Default to cortex-a53.
2506         * config/arm/t-arm (MD_INCLUDES): Depend on cortex-a53.md.
2507         * config/arm/cortex-a53.md: New file.
2508         * config/arm/bpabi.h (BE8_LINK_SPEC): Handle cortex-a53.
2509         * config/arm/arm.md (generic_sched, generic_vfp): Handle cortex-a53.
2510         * config/arm/arm.c (arm_issue_rate): Likewise.
2511         * config/arm/arm-tune.md: Regenerate
2512         * config/arm/arm-tables.opt: Regenerate.
2513         * config/arm/arm-cores.def: Add cortex-a53.
2515 2013-04-08  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
2517         Backport of trunk r197342.
2518         2013-04-02  Sofiane Naci  <sofiane.naci@arm.com>
2520         * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add variants for
2521         scalar load/store operations using B/H registers.
2522         (*zero_extend<SHORT:mode><GPI:mode>2_aarch64): Likewise.
2524 2013-04-08  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
2526         Backport of trunk r197341.
2527         2013-04-02  Sofiane Naci  <sofiane.naci@arm.com>
2529         * config/aarch64/aarch64.md (*mov<mode>_aarch64): Add alternatives for
2530         scalar move.
2531         * config/aarch64/aarch64.c
2532         (aarch64_simd_scalar_immediate_valid_for_move): New.
2533         * config/aarch64/aarch64-protos.h
2534         (aarch64_simd_scalar_immediate_valid_for_move): New.
2535         * config/aarch64/constraints.md (Dh, Dq): New.
2536         * config/aarch64/iterators.md (hq): New.
2538 2013-04-08  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
2540         Backport from trunk r197207.
2541         2013-03-28   Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
2543         * config/aarch64/aarch64.md (*and<mode>3_compare0): New pattern.
2544         (*andsi3_compare0_uxtw): New pattern.
2545         (*and_<SHIFT:optab><mode>3_compare0): New pattern.
2546         (*and_<SHIFT:optab>si3_compare0_uxtw): New pattern.
2548 2013-04-08  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
2550         Backport from trunk r197153.
2551         2013-03-27  Terry Guo  <terry.guo@arm.com>
2553         * config/arm/arm-cores.def: Added core cortex-r7.
2554         * config/arm/arm-tune.md: Regenerated.
2555         * config/arm/arm-tables.opt: Regenerated.
2556         * doc/invoke.texi: Added entry for core cortex-r7.
2558 2013-04-08  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
2560         Backport from trunk r197052.
2561         2013-03-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2563         * config/arm/arm.md (f_sels, f_seld): New types.
2564         (*cmov<mode>): New pattern.
2565         * config/arm/predicates.md (arm_vsel_comparison_operator): New
2566         predicate.
2568 2013-04-08  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
2570         Backport from trunk r197046.
2571         2013-03-25  Kyrylo Tkachov  <kyrylo.tkachov@arm.com>
2573         * config/arm/arm.c (arm_emit_load_exclusive): Add acq parameter.
2574         Emit load-acquire versions when acq is true.
2575         (arm_emit_store_exclusive): Add rel parameter.
2576         Emit store-release versions when rel is true.
2577         (arm_split_compare_and_swap): Use acquire-release instructions
2578         instead.
2579         of barriers when appropriate.
2580         (arm_split_atomic_op): Likewise.
2581         * config/arm/arm.h (TARGET_HAVE_LDACQ): New macro.
2582         * config/arm/unspecs.md (VUNSPEC_LAX): New unspec.
2583         (VUNSPEC_SLX): Likewise.
2584         (VUNSPEC_LDA): Likewise.
2585         (VUNSPEC_STL): Likewise.
2586         * config/arm/sync.md (atomic_load<mode>): New pattern.
2587         (atomic_store<mode>): Likewise.
2588         (arm_load_acquire_exclusive<mode>): Likewise.
2589         (arm_load_acquire_exclusivesi): Likewise.
2590         (arm_load_acquire_exclusivedi): Likewise.
2591         (arm_store_release_exclusive<mode>): Likewise.
2593 2013-04-08  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
2595         Backport from trunk r196876.
2596         2013-03-21  Christophe Lyon  <christophe.lyon@linaro.org>
2598         * config/arm/arm-protos.h (tune_params): Add
2599         prefer_neon_for_64bits field.
2600         * config/arm/arm.c (prefer_neon_for_64bits): New variable.
2601         (arm_slowmul_tune): Default prefer_neon_for_64bits to false.
2602         (arm_fastmul_tune, arm_strongarm_tune, arm_xscale_tune): Ditto.
2603         (arm_9e_tune, arm_v6t2_tune, arm_cortex_tune): Ditto.
2604         (arm_cortex_a15_tune, arm_cortex_a5_tune): Ditto.
2605         (arm_cortex_a9_tune, arm_v6m_tune, arm_fa726te_tune): Ditto.
2606         (arm_option_override): Handle -mneon-for-64bits new option.
2607         * config/arm/arm.h (TARGET_PREFER_NEON_64BITS): New macro.
2608         (prefer_neon_for_64bits): Declare new variable.
2609         * config/arm/arm.md (arch): Rename neon_onlya8 and neon_nota8 to
2610         avoid_neon_for_64bits and neon_for_64bits. Remove onlya8 and
2611         nota8.
2612         (arch_enabled): Handle new arch types. Remove support for onlya8
2613         and nota8.
2614         (one_cmpldi2): Use new arch names.
2615         * config/arm/arm.opt (mneon-for-64bits): Add option.
2616         * config/arm/neon.md (adddi3_neon, subdi3_neon, iordi3_neon)
2617         (anddi3_neon, xordi3_neon, ashldi3_neon, <shift>di3_neon): Use
2618         neon_for_64bits instead of nota8 and avoid_neon_for_64bits instead
2619         of onlya8.
2620         * doc/invoke.texi (-mneon-for-64bits): Document.
2622 2013-04-08  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
2624         Backport from trunk r196858.
2625         2013-03-21   Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
2627         * config/aarch64/aarch64-simd.md (simd_fabd): New Attribute.
2628         (abd<mode>_3): New pattern.
2629         (aba<mode>_3): New pattern.
2630         (fabd<mode>_3): New pattern.
2632 2013-04-08  Matthew Gretton-Dann  <matthew.gretton-dann@linaro.org>
2634         Backport from trunk r196856.
2635         2013-03-21   Naveen H.S  <Naveen.Hurugalawadi@caviumnetworks.com>
2637         * config/aarch64/aarch64-elf.h (REGISTER_PREFIX): Remove.
2638         * config/aarch64/aarch64.c (aarch64_print_operand): Remove all
2639         occurrence of REGISTER_PREFIX as its empty string.