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):
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
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
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
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
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
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
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
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>
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.
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
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
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.
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
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
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
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
349 (cortex_a53_alu_shift): Likewise.
350 * config/arm/cortex-a7.md (cortex_a7_alu_imm): Update for attribute
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.
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.
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):
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.
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.
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
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
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
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>
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>
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>
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>
627 * config/arm/arm.h (MALLOC_ABI_ALIGNMENT): Define.
629 2013-09-03 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
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.
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>
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
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.
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.
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.
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
820 * config/arm/arm.md: ... here. Update instruction classification
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.
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
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.
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.
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.
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
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
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.
985 (gtuv8qi3): Likewise.
986 (gtuv4hi3): Likewise.
987 (gtuv2si3): 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
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
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
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>
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
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
1233 2013-05-16 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1236 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
1239 2013-05-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
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>
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
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.
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
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.
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
1314 2013-06-29 Yufeng Zhang <yufeng.zhang@arm.com>
1316 * config/aarch64/aarch64.c: Remove junk from the beginning of the
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
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>
1385 * config/arm/arm.c (gen_movmem_ldrd_strd): Fix unaligned load/store
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>
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>
1406 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
1409 2013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
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
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
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
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"
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>):
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
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>
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):
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>):
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
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):
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
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):
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>
1667 * config/arm/arm.c (arm_dwarf_register_span): Do not use dbx number.
1669 2013-06-03 Christophe Lyon <christophe.lyon@linaro.org>
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>
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>
1764 * config/arm/arm.c (arm_function_ok_for_sibcall): Add check
1767 2013-05-15 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
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
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
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.
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
1846 (reduc_smin_): Likewise.
1847 (reduc_umax_): Likewise.
1848 (reduc_umin_): Likewise.
1849 (reduc_smax_nan_): Likewise.
1850 (reduc_smin_nan_): Likewise.
1853 (smax): Update for V2SF, V4SF and V2DF modes.
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
1867 (vmin<q>_f<32,64>): Likewise.
1868 * config/iterators.md (unspec): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
1870 (su): Add mappings for smax, smin, umax, umin.
1872 (FMAXMINV): Add UNSPEC_FMAXNMV, UNSPEC_FMINNMV.
1873 (FMAXMIN): Rename as...
1874 (FMAXMIN_UNS): ...This.
1876 (fmaxminv): Likewise.
1877 (fmaxmin): Likewise.
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.
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...
1970 (cmhi): Rename to...
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
1980 (unspec): Remove UNSPEC_CM<EQ, LE, LT, GE, GT, HS, HI, TST>.
1982 (UCOMPARISONS): Likewise.
1983 (optab): Add missing comparisons.
1991 (V_cmp_result): Add DF, SF modes.
1992 (v_cmp_result): 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
2011 * config/aarch64/aarch64.md (*neg_<shift><mode>3_compare0): New
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
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...
2109 (frintp): Rename to...
2111 (frintm): Rename to...
2113 (frinti): Rename to...
2114 (nearbyint): ...this.
2115 (frintx): Rename to...
2117 (frinta): Rename to...
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.
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,
2184 Handle initialisation of V4HF. Adjust initialisation of reinterpret
2186 (arm_expand_neon_builtin): Handle NEON_FLOAT_WIDEN,
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
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
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
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.
2261 (BUILTIN_GPF): Define.
2262 (aarch64_init_simd_builtins): Handle SF types.
2263 * config/aarch64/aarch64-simd-builtins.def (frecpe): Add support.
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):
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.
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.
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
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
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
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
2612 (arch_enabled): Handle new arch types. Remove support for onlya8
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
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.