1 2015-01-11 Yvan Roux <yvan.roux@linaro.org>
3 Backport from trunk r217362, r217546.
4 2014-11-14 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
7 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Split out
8 numerical immediate handling to...
9 (aarch64_internal_mov_immediate): ...this. New.
10 (aarch64_rtx_costs): Use aarch64_internal_mov_immediate.
11 (aarch64_mov_operand_p): Relax predicate.
12 * config/aarch64/aarch64.md (mov<mode>:GPI): Do not expand CONST_INTs.
13 (*movsi_aarch64): Turn into define_insn_and_split and new alternative
15 (*movdi_aarch64): Likewise.
17 2014-11-11 James Greenhalgh <james.greenhalgh@arm.com>
19 * config/aarch64/aarch64-simd.md
20 (aarch64_simd_bsl<mode>_internal): Remove float cases, canonicalize.
21 (aarch64_simd_bsl<mode>): Add gen_lowpart expressions where we
22 are punning between float vectors and integer vectors.
24 2014-12-11 Yvan Roux <yvan.roux@linaro.org>
26 * LINARO-VERSION: Bump version.
28 2014-12-11 Yvan Roux <yvan.roux@linaro.org>
30 GCC Linaro 4.9-2014.12 released.
31 * LINARO-VERSION: Update.
33 2014-12-04 Yvan Roux <yvan.roux@linaro.org>
35 Backport from trunk r217079, r217080.
36 2014-11-04 Alan Lawrence <alan.lawrence@arm.com>
38 config/arm/neon.md (reduc_smin_<mode> *2): Rename to...
39 (reduc_smin_scal_<mode> *2): ...this; extract scalar result.
40 (reduc_smax_<mode> *2): Rename to...
41 (reduc_smax_scal_<mode> *2): ...this; extract scalar result.
42 (reduc_umin_<mode> *2): Rename to...
43 (reduc_umin_scal_<mode> *2): ...this; extract scalar result.
44 (reduc_umax_<mode> *2): Rename to...
45 (reduc_umax_scal_<mode> *2): ...this; extract scalar result.
47 2014-11-04 Alan Lawrence <alan.lawrence@arm.com>
49 config/arm/neon.md (reduc_plus_*): Rename to...
50 (reduc_plus_scal_*): ...this; reduce to temp and extract scalar result.
52 2014-12-04 Yvan Roux <yvan.roux@linaro.org>
54 Fix Backport from trunk r216524 (committed at r218379).
55 Add missing file: config/aarch64/aarch64-cost-tables.h
57 * config/aarch64/aarch64-cost-tables.h: New file.
59 2014-12-04 Yvan Roux <yvan.roux@linaro.org>
61 Backport from trunk r217076.
62 2014-11-04 Michael Collison <michael.collison@linaro.org>
64 * config/aarch64/iterators.md (lconst_atomic): New mode attribute
65 to support constraints for CONST_INT in atomic operations.
66 * config/aarch64/atomics.md
67 (atomic_<atomic_optab><mode>): Use lconst_atomic constraint.
68 (atomic_nand<mode>): Likewise.
69 (atomic_fetch_<atomic_optab><mode>): Likewise.
70 (atomic_fetch_nand<mode>): Likewise.
71 (atomic_<atomic_optab>_fetch<mode>): Likewise.
72 (atomic_nand_fetch<mode>): Likewise.
74 2014-12-04 Yvan Roux <yvan.roux@linaro.org>
76 Backport from trunk r217026.
77 2014-11-03 Zhenqiang Chen <zhenqiang.chen@arm.com>
79 * ifcvt.c (noce_emit_cmove, noce_get_alt_condition, noce_get_condition):
80 Allow CC mode if HAVE_cbranchcc4.
82 2014-12-04 Yvan Roux <yvan.roux@linaro.org>
84 Backport from trunk r217014.
85 2014-11-02 Michael Collison <michael.collison@linaro.org>
87 * config/arm/arm.h (CLZ_DEFINED_VALUE_AT_ZERO) : Update
88 to support vector modes.
89 (CTZ_DEFINED_VALUE_AT_ZERO): Ditto.
91 2014-12-04 Yvan Roux <yvan.roux@linaro.org>
93 Backport from trunk r216996, r216998, r216999, r217001, r217002, r217003,
95 2014-11-18 James Greenhalgh <james.greenhalgh@arm.com>
98 * target.def (use_by_pieces_infrastructure_p): Take unsigned
99 HOST_WIDE_INT as the size parameter.
100 * targhooks.c (default_use_by_pieces_infrastructure_p): Likewise.
101 * targhooks.h (default_use_by_pieces_infrastructure_p): Likewise.
102 * config/arc/arc.c (arc_use_by_pieces_infrastructure_p)): Likewise.
103 * config/mips/mips.c (mips_use_by_pieces_infrastructure_p)): Likewise.
104 * config/s390/s390.c (s390_use_by_pieces_infrastructure_p)): Likewise.
105 * config/sh/sh.c (sh_use_by_pieces_infrastructure_p)): Likewise.
106 * config/aarch64/aarch64.c
107 (aarch64_use_by_pieces_infrastructure_p)): Likewise.
108 * doc/tm.texi: Regenerate.
110 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
112 * doc/tm.texi.in (MOVE_BY_PIECES_P): Remove.
113 (CLEAR_BY_PIECES_P): Likewise.
114 (SET_BY_PIECES_P): Likewise.
115 (STORE_BY_PIECES_P): Likewise.
116 * doc/tm.texi: Regenerate.
117 * system.h: Poison MOVE_BY_PIECES_P, CLEAR_BY_PIECES_P,
118 SET_BY_PIECES_P, STORE_BY_PIECES_P.
119 * expr.c (MOVE_BY_PIECES_P): Remove.
120 (CLEAR_BY_PIECES_P): Likewise.
121 (SET_BY_PIECES_P): Likewise.
122 (STORE_BY_PIECES_P): Likewise.
123 (can_move_by_pieces): Rewrite in terms of
124 targetm.use_by_pieces_infrastructure_p.
125 (emit_block_move_hints): Likewise.
126 (can_store_by_pieces): Likewise.
127 (store_by_pieces): Likewise.
128 (clear_storage_hints): Likewise.
129 (emit_push_insn): Likewise.
130 (expand_constructor): Likewise.
132 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
134 * config/aarch64/aarch64.c
135 (aarch64_use_by_pieces_infrastructre_p): New.
136 (TARGET_USE_BY_PIECES_INFRASTRUCTURE): Likewise.
137 * config/aarch64/aarch64.h (STORE_BY_PIECES_P): Delete.
139 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
141 * config/mips/mips.h (MOVE_BY_PIECES_P): Remove.
142 (STORE_BY_PIECES_P): Likewise.
143 * config/mips/mips.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
144 (mips_move_by_pieces_p): Rename to...
145 (mips_use_by_pieces_infrastructure_p): ...this, use new hook
146 parameters, use the default hook implementation as a
149 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
151 * config/sh/sh.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
152 (sh_use_by_pieces_infrastructure_p): Likewise.
153 * config/sh/sh.h (MOVE_BY_PIECES_P): Remove.
154 (STORE_BY_PIECES_P): Likewise.
155 (SET_BY_PIECES_P): Likewise.
157 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
159 * config/arc/arc.c (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): New.
160 (arc_use_by_pieces_infrastructure_p): Likewise.
161 * confir/arc/arc.h (MOVE_BY_PIECES_P): Delete.
162 (CAN_MOVE_BY_PIECES): Likewise.
164 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
166 * config/s390/s390.c (s390_use_by_pieces_infrastructure_p): New.
167 (TARGET_USE_BY_PIECES_INFRASTRUCTURE_P): Likewise.
168 * config/s390/s390.h (MOVE_BY_PIECES_P): Remove.
169 (CLEAR_BY_PIECES): Likewise.
170 (SET_BY_PIECES): Likewise.
171 (STORE_BY_PIECES): Likewise.
173 2014-11-01 James Greenhalgh <james.greenhalgh@arm.com>
175 * target.def (use_by_pieces_infrastructure_p): New.
176 * doc/tm.texi.in (MOVE_BY_PIECES_P): Describe that this macro
178 (STORE_BY_PIECES_P): Likewise.
179 (CLEAR_BY_PIECES_P): Likewise.
180 (SET_BY_PIECES_P): Likewise.
181 (TARGET_MOVE_BY_PIECES_PROFITABLE_P): Add hook.
182 * doc/tm.texi: Regenerate.
183 * expr.c (MOVE_BY_PIECES_P): Rewrite in terms of
184 TARGET_USE_BY_PIECES_INFRASTRUCTURE_P.
185 (STORE_BY_PIECES_P): Likewise.
186 (CLEAR_BY_PIECES_P): Likewise.
187 (SET_BY_PIECES_P): Likewise.
188 (STORE_MAX_PIECES): Move to...
189 * defaults.h (STORE_MAX_PIECES): ...here.
190 * targhooks.c (get_move_ratio): New.
191 (default_use_by_pieces_infrastructure_p): Likewise.
192 * targhooks.h (default_use_by_pieces_infrastructure_p): New.
193 * target.h (by_pieces_operation): New.
195 2014-12-04 Yvan Roux <yvan.roux@linaro.org>
197 Backport from trunk r216765.
198 2014-10-27 Jiong Wang <jiong.wang@arm.com>
201 * optabs.c (prepare_cmp_insn): Use "ret_mode" instead of "word_mode".
203 2014-12-04 Yvan Roux <yvan.roux@linaro.org>
205 Backport from trunk r216630.
206 2014-10-24 Felix Yang <felix.yang@huawei.com>
207 Jiji Jiang <jiangjiji@huawei.com>
210 * config/aarch64/arm_neon.h (__LD2R_FUNC): Remove macro.
211 (__LD3R_FUNC): Ditto.
212 (__LD4R_FUNC): Ditto.
213 (vld2_dup_s8, vld2_dup_s16, vld2_dup_s32, vld2_dup_f32, vld2_dup_f64,
214 vld2_dup_u8, vld2_dup_u16, vld2_dup_u32, vld2_dup_p8, vld2_dup_p16
215 vld2_dup_s64, vld2_dup_u64, vld2q_dup_s8, vld2q_dup_p8,
216 vld2q_dup_s16, vld2q_dup_p16, vld2q_dup_s32, vld2q_dup_s64,
217 vld2q_dup_u8, vld2q_dup_u16, vld2q_dup_u32, vld2q_dup_u64
218 vld2q_dup_f32, vld2q_dup_f64): Rewrite using builtin functions.
219 (vld3_dup_s64, vld3_dup_u64, vld3_dup_f64, vld3_dup_s8
220 vld3_dup_p8, vld3_dup_s16, vld3_dup_p16, vld3_dup_s32
221 vld3_dup_u8, vld3_dup_u16, vld3_dup_u32, vld3_dup_f32
222 vld3q_dup_s8, vld3q_dup_p8, vld3q_dup_s16, vld3q_dup_p16
223 vld3q_dup_s32, vld3q_dup_s64, vld3q_dup_u8, vld3q_dup_u16
224 vld3q_dup_u32, vld3q_dup_u64, vld3q_dup_f32, vld3q_dup_f64): Likewise.
225 (vld4_dup_s64, vld4_dup_u64, vld4_dup_f64, vld4_dup_s8
226 vld4_dup_p8, vld4_dup_s16, vld4_dup_p16, vld4_dup_s32
227 vld4_dup_u8, vld4_dup_u16, vld4_dup_u32, vld4_dup_f32
228 vld4q_dup_s8, vld4q_dup_p8, vld4q_dup_s16, vld4q_dup_p16
229 vld4q_dup_s32, vld4q_dup_s64, vld4q_dup_u8, vld4q_dup_u16
230 vld4q_dup_u32, vld4q_dup_u64, vld4q_dup_f32, vld4q_dup_f64): Likewise.
231 * config/aarch64/aarch64.md (define_c_enum "unspec"): Add
232 UNSPEC_LD2_DUP, UNSPEC_LD3_DUP, UNSPEC_LD4_DUP.
233 * config/aarch64/aarch64-simd-builtins.def (ld2r, ld3r, ld4r): New
235 * config/aarch64/aarch64-simd.md (aarch64_simd_ld2r<mode>): New pattern.
236 (aarch64_simd_ld3r<mode>): Likewise.
237 (aarch64_simd_ld4r<mode>): Likewise.
238 (aarch64_ld2r<mode>): New expand.
239 (aarch64_ld3r<mode>): Likewise.
240 (aarch64_ld4r<mode>): Likewise.
242 2014-12-04 Yvan Roux <yvan.roux@linaro.org>
244 Backport from trunk r217971.
245 2014-11-22 Uros Bizjak <ubizjak@gmail.com>
247 * params.def (PARAM_MAX_COMPLETELY_PEELED_INSNS): Increase to 200.
248 * config/i386/i386.c (ix86_option_override_internal): Do not increase
249 PARAM_MAX_COMPLETELY_PEELED_INSNS.
251 2014-12-04 Yvan Roux <yvan.roux@linaro.org>
253 Backport from trunk r216524.
254 2014-10-21 Andrew Pinski <apinski@cavium.com>
256 * doc/invoke.texi (AARCH64/mtune): Document thunderx as an
257 available option also.
258 * config/aarch64/aarch64-cost-tables.h: New file.
259 * config/aarch64/aarch64-cores.def (thunderx): New core.
260 * config/aarch64/aarch64-tune.md: Regenerate.
261 * config/aarch64/aarch64.c: Include aarch64-cost-tables.h instead
262 of config/arm/aarch-cost-tables.h.
263 (thunderx_regmove_cost): New variable.
264 (thunderx_tunings): New variable.
266 2014-12-04 Yvan Roux <yvan.roux@linaro.org>
268 Backport from trunk r216336.
269 2014-10-16 Richard Earnshaw <rearnsha@arm.com>
271 * config/aarch64/aarch64.c (aarch64_legitimize_address): New function.
272 (TARGET_LEGITIMIZE_ADDRESS): Redefine.
274 2014-12-04 Yvan Roux <yvan.roux@linaro.org>
276 Backport from trunk r216253.
277 2014-10-15 Renlin Li <renlin.li@arm.com>
279 * config/aarch64/aarch64.h (ARM_DEFAULT_PCS, arm_pcs_variant): Delete.
281 2014-12-04 Yvan Roux <yvan.roux@linaro.org>
283 Backport from trunk r215711.
284 2014-09-30 Terry Guo <terry.guo@arm.com>
286 * config/arm/arm-cores.def (cortex-m7): New core name.
287 * config/arm/arm-fpus.def (fpv5-sp-d16): New fpu name.
289 * config/arm/arm-tables.opt: Regenerated.
290 * config/arm/arm-tune.md: Regenerated.
291 * config/arm/arm.h (TARGET_VFP5): New macro.
292 * config/arm/bpabi.h (BE8_LINK_SPEC): Include cortex-m7.
293 * config/arm/vfp.md (<vrint_pattern><SDF:mode>2,
294 smax<mode>3, smin<mode>3): Enabled for FPU FPv5.
295 * doc/invoke.texi: Document new cpu and fpu names.
297 2014-12-04 Yvan Roux <yvan.roux@linaro.org>
299 Backport from trunk r215707, r215842.
300 2014-10-03 David Sherwood <david.sherwood@arm.com>
302 * ira-int.h (ira_allocno): Mark hard_regno as signed.
304 2014-09-30 David Sherwood <david.sherwood@arm.com>
306 * ira-int.h (ira_allocno): Add "wmode" field.
307 * ira-build.c (create_insn_allocnos): Add new "parent" function
309 * ira-conflicts.c (ira_build_conflicts): Add conflicts for registers
310 that cannot be accessed in wmode.
312 2014-12-04 Yvan Roux <yvan.roux@linaro.org>
314 Backport from trunk r215540.
315 2014-09-24 Zhenqiang Chen <zhenqiang.chen@arm.com>
317 PR rtl-optimization/63210
318 * ira-color.c (assign_hard_reg): Ignore conflict cost if the
319 HARD_REGNO is not available for CONFLICT_A.
321 2014-12-04 Yvan Roux <yvan.roux@linaro.org>
323 Backport from trunk r215046.
324 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
327 * config/aarch64/aarch64-builtins.c (aarch64_types_quadop_qualifiers):
328 Use qualifier_immediate for last operand. Rename to...
329 (aarch64_types_ternop_lane_qualifiers): ... This.
330 (TYPES_QUADOP): Rename to...
331 (TYPES_TERNOP_LANE): ... This.
332 (aarch64_simd_expand_args): Return const0_rtx when encountering user
333 error. Change return of 0 to return of NULL_RTX.
334 (aarch64_crc32_expand_builtin): Likewise.
335 (aarch64_expand_builtin): Return NULL_RTX instead of 0.
336 ICE when expanding unknown builtin.
337 * config/aarch64/aarch64-simd-builtins.def (sqdmlal_lane): Use
338 TERNOP_LANE qualifiers.
339 (sqdmlsl_lane): Likewise.
340 (sqdmlal_laneq): Likewise.
341 (sqdmlsl_laneq): Likewise.
342 (sqdmlal2_lane): Likewise.
343 (sqdmlsl2_lane): Likewise.
344 (sqdmlal2_laneq): Likewise.
345 (sqdmlsl2_laneq): Likewise.
347 2014-12-04 Yvan Roux <yvan.roux@linaro.org>
349 Backport from trunk r215013.
350 2014-09-08 Joseph Myers <joseph@codesourcery.com>
352 * defaults.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
354 * doc/tm.texi.in (ROUND_TOWARDS_ZERO, LARGEST_EXPONENT_IS_NORMAL):
356 * doc/tm.texi: Regenerate.
357 * system.h (LARGEST_EXPONENT_IS_NORMAL, ROUND_TOWARDS_ZERO):
359 * config/arm/arm.h (LARGEST_EXPONENT_IS_NORMAL): Remove.
360 * config/cris/cris.h (__make_dp): Remove.
362 2014-12-04 Yvan Roux <yvan.roux@linaro.org>
364 Backport from trunk r214952.
365 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
367 * config/aarch64/arm_neon.h (__GET_HIGH): New macro.
368 (vget_high_f32, vget_high_f64, vget_high_p8, vget_high_p16,
369 vget_high_s8, vget_high_s16, vget_high_s32, vget_high_s64,
370 vget_high_u8, vget_high_u16, vget_high_u32, vget_high_u64):
371 Remove temporary __asm__ and reimplement.
373 2014-12-04 Yvan Roux <yvan.roux@linaro.org>
375 Backport from trunk r214948, r214949.
376 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
378 * config/aarch64/aarch64-builtins.c (aarch64_fold_builtin): Remove code
379 handling cmge, cmgt, cmeq, cmtst.
381 * config/aarch64/aarch64-simd-builtins.def (cmeq, cmge, cmgt, cmle,
382 cmlt, cmgeu, cmgtu, cmtst): Remove.
384 * config/aarch64/arm_neon.h (vceq_*, vceqq_*, vceqz_*, vceqzq_*,
385 vcge_*, vcgeq_*, vcgez_*, vcgezq_*, vcgt_*, vcgtq_*, vcgtz_*,
386 vcgtzq_*, vcle_*, vcleq_*, vclez_*, vclezq_*, vclt_*, vcltq_*,
387 vcltz_*, vcltzq_*, vtst_*, vtstq_*): Use gcc vector extensions.
389 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
391 * config/aarch64/aarch64-builtins.c (aarch64_types_cmtst_qualifiers,
393 (aarch64_fold_builtin): Update pattern for cmtst.
395 * config/aarch64/aarch64-protos.h (aarch64_const_vec_all_same_int_p):
398 * config/aarch64/aarch64-simd-builtins.def (cmtst): Update qualifiers.
400 * config/aarch64/aarch64-simd.md (aarch64_vcond_internal<mode><mode>):
401 Switch operands, separate out more cases, refactor.
403 (aarch64_cmtst<mode>): Rewrite pattern to match (plus ... -1).
405 * config/aarch64.c (aarch64_const_vec_all_same_int_p): Take single
406 argument; rename old version to...
407 (aarch64_const_vec_all_same_in_range_p): ...this.
408 (aarch64_print_operand, aarch64_simd_shift_imm_p): Follow renaming.
410 * config/aarch64/predicates.md (aarch64_simd_imm_minus_one): Define.
412 2014-12-04 Yvan Roux <yvan.roux@linaro.org>
414 Backport from trunk r214008.
415 2014-08-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
417 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate): Move
418 one_match > zero_match case to just before simple_sequence.
420 2014-12-04 Yvan Roux <yvan.roux@linaro.org>
422 Backport from trunk r213382.
423 2014-07-31 James Greenhalgh <james.greenhalgh@arm.com>
425 * config/aarch64/arm_neon.h (vpadd_<suf><8,16,32,64>): Move to
426 correct alphabetical position.
427 (vpaddd_f64): Rewrite using builtins.
428 (vpaddd_s64): Move to correct alphabetical position.
431 2014-12-04 Yvan Roux <yvan.roux@linaro.org>
433 Backport from trunk r210735, r215206, r215207, r215208.
434 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
436 * gcc/config/aarch64/aarch64.c (cortexa57_regmove_cost): New cost table
438 (cortexa53_regmove_cost): New cost table for A53. Increase GP2FP/FP2GP
439 cost to spilling from integer to FP registers.
441 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
443 * config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register
445 (generic_regmove_cost): Undo raised FP2FP move cost as Q register moves
446 are now handled correctly.
448 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
450 * config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost
451 handling of CALLER_SAVE_REGS and POINTER_REGS.
453 2014-05-22 Kugan Vivekanandarajah <kuganv@linaro.org>
455 * config/aarch64/aarch64.c (aarch64_regno_regclass) : Change CORE_REGS
457 (aarch64_secondary_reload) : LikeWise.
458 (aarch64_class_max_nregs) : Remove CORE_REGS.
459 * config/aarch64/aarch64.h (enum reg_class) : Remove CORE_REGS.
460 (REG_CLASS_NAMES) : Likewise.
461 (REG_CLASS_CONTENTS) : LikeWise.
462 (INDEX_REG_CLASS) : Change CORE_REGS to GENERAL_REGS.
464 2014-11-14 Yvan Roux <yvan.roux@linaro.org>
466 * LINARO-VERSION: Bump version.
468 2014-11-14 Yvan Roux <yvan.roux@linaro.org>
470 GCC Linaro 4.9-2014.11 released.
471 * LINARO-VERSION: Update.
473 2014-11-14 Yvan Roux <yvan.roux@linaro.org>
475 Add Linaro release macros (Linaro only patch.)
477 * Makefile.in (LINAROVER, LINAROVER_C, LINAROVER_S): Define.
478 (CFLAGS-cppbuiltin.o): Add LINAROVER macro definition.
479 (cppbuiltin.o): Depend on $(LINAROVER).
480 * cppbuiltin.c (parse_linarover): New.
481 (define_GNUC__): Define __LINARO_RELEASE__ and __LINARO_SPIN__ macros.
483 2014-11-13 Yvan Roux <yvan.roux@linaro.org>
485 Backport from trunk r216229, r216230.
486 2014-10-14 Andrew Pinski <apinski@cavium.com>
488 * explow.c (convert_memory_address_addr_space): Rename to ...
489 (convert_memory_address_addr_space_1): This. Add in_const argument.
490 Inside a CONST RTL, permute the conversion and addition of constant
491 for zero and sign extended pointers.
492 (convert_memory_address_addr_space): New function.
494 2014-10-14 Andrew Pinski <apinski@cavium.com>
497 2011-08-19 H.J. Lu <hongjiu.lu@intel.com>
500 * explow.c (convert_memory_address_addr_space): Also permute the
501 conversion and addition of constant for zero-extend.
503 2014-10-24 Yvan Roux <yvan.roux@linaro.org>
505 * LINARO-VERSION: Bump version.
507 2014-10-24 Yvan Roux <yvan.roux@linaro.org>
509 GCC Linaro 4.9-2014.10-1 released.
510 * LINARO-VERSION: Update.
512 2014-10-17 Yvan Roux <yvan.roux@linaro.org>
514 * LINARO-VERSION: Bump version.
516 2014-10-17 Yvan Roux <yvan.roux@linaro.org>
518 GCC Linaro 4.9-2014.10 released.
519 * LINARO-VERSION: Update.
521 2014-10-10 Yvan Roux <yvan.roux@linaro.org>
524 2014-10-08 Yvan Roux <yvan.roux@linaro.org>
526 Backport from trunk r215206, r215207, r215208.
527 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
529 * gcc/config/aarch64/aarch64.c (cortexa57_regmove_cost): New cost table
531 (cortexa53_regmove_cost): New cost table for A53. Increase GP2FP/FP2GP
532 cost to spilling from integer to FP registers.
534 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
536 * config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register
538 (generic_regmove_cost): Undo raised FP2FP move cost as Q register moves
539 are now handled correctly.
541 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
543 * config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost
544 handling of CALLER_SAVE_REGS and POINTER_REGS.
546 2014-10-08 Yvan Roux <yvan.roux@linaro.org>
548 Backport from trunk r214825, r214826.
549 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
553 (neon_vcvt<NEON_VCVT:nvrint_variant><su_optab><VCVTF:mode>
554 <v_cmp_result>): New pattern.
555 * config/arm/iterators.md (NEON_VCVT): New int iterator.
556 * config/arm/arm_neon_builtins.def (vcvtav2sf, vcvtav4sf, vcvtauv2sf,
557 vcvtauv4sf, vcvtpv2sf, vcvtpv4sf, vcvtpuv2sf, vcvtpuv4sf, vcvtmv2sf,
558 vcvtmv4sf, vcvtmuv2sf, vcvtmuv4sf): New builtin definitions.
559 * config/arm/arm.c (arm_builtin_vectorized_function): Handle
560 BUILT_IN_LROUNDF, BUILT_IN_LFLOORF, BUILT_IN_LCEILF.
562 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
565 * config/arm/iterators.md (FIXUORS): New code iterator.
566 (VCVT): New int iterator.
567 (su_optab): New code attribute.
569 * config/arm/vfp.md (l<vrint_pattern><su_optab><mode>si2): New pattern.
571 2014-10-08 Yvan Roux <yvan.roux@linaro.org>
573 Backport from trunk r215471.
574 2014-09-22 James Greenhalgh <james.greenhalgh@arm.com>
576 * config/aarch64/geniterators.sh: New.
577 * config/aarch64/iterators.md (VDQF_DF): New.
578 * config/aarch64/t-aarch64: Generate aarch64-builtin-iterators.h.
579 * config/aarch64/aarch64-builtins.c (BUILTIN_*) Remove.
581 2014-10-08 Yvan Roux <yvan.roux@linaro.org>
583 Backport from trunk r215206, r215207, r215208.
584 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
586 * gcc/config/aarch64/aarch64.c (cortexa57_regmove_cost): New cost table
588 (cortexa53_regmove_cost): New cost table for A53. Increase GP2FP/FP2GP
589 cost to spilling from integer to FP registers.
591 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
593 * config/aarch64/aarch64.c (aarch64_register_move_cost): Fix Q register
595 (generic_regmove_cost): Undo raised FP2FP move cost as Q register moves
596 are now handled correctly.
598 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
600 * config/aarch64/aarch64.c (aarch64_register_move_cost): Add cost
601 handling of CALLER_SAVE_REGS and POINTER_REGS.
603 2014-10-07 Yvan Roux <yvan.roux@linaro.org>
605 Backport from trunk r214824.
606 2014-09-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
608 * config/aarch64/predicates.md (aarch64_comparison_operation):
609 New special predicate.
610 * config/aarch64/aarch64.md (*csinc2<mode>_insn): Use
611 aarch64_comparison_operation instead of matching an operator.
612 Update operand numbers.
613 (csinc3<mode>_insn): Likewise.
614 (*csinv3<mode>_insn): Likewise.
615 (*csneg3<mode>_insn): Likewise.
616 (ffs<mode>2): Update gen_csinc3<mode>_insn callsite.
617 * config/aarch64/aarch64.c (aarch64_get_condition_code):
618 Return -1 instead of aborting on invalid condition codes.
619 (aarch64_print_operand): Update aarch64_get_condition_code callsites
620 to assert that the returned condition code is valid.
621 * config/aarch64/aarch64-protos.h (aarch64_get_condition_code): Export.
623 2014-10-07 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
625 Backport from trunk r209643, r211881.
626 2014-06-22 Richard Henderson <rth@redhat.com>
629 * compare-elim.c (struct comparison): Add eh_note.
630 (find_comparison_dom_walker::before_dom_children): Don't eliminate
631 a redundant comparison in a different EH region. Purge EH edges if
634 2014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
636 * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
638 2014-10-06 Charles Baylis <charles.baylis@linaro.org>
640 Backport from trunk r214945.
641 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
643 * config/aarch64/aarch64-builtins.c (aarch64_simd_expand_args): Replace
644 varargs with pointer parameter.
645 (aarch64_simd_expand_builtin): pass pointer into previous.
647 2014-10-06 Kugan Vivekanandarajah <kugan.vivekanandarajah@linaro.org>
649 Backport from trunk r214944.
650 2014-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
652 * config/arm/cortex-a53.md (cortex_a53_alu_shift): Add alu_ext,
655 2014-10-06 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
657 Backport from trunk r214943.
658 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
660 * config/aarch64/aarch64-simd.md (aarch64_rbit<mode>): New pattern.
661 * config/aarch64/aarch64-simd-builtins.def (rbit): New builtin.
662 * config/aarch64/arm_neon.h (vrbit_s8, vrbit_u8, vrbitq_s8, vrbitq_u8):
663 Replace temporary asm with call to builtin.
664 (vrbit_p8, vrbitq_p8): New functions.
666 2014-10-06 Michael Collison <michael.collison@linaro.org>
668 Backport from trunk r214886.
669 2014-09-03 Richard Henderson <rth@redhat.com>
671 * config/aarch64/aarch64.c (aarch64_popwb_single_reg): Remove.
672 (aarch64_popwb_pair_reg): Remove.
673 (aarch64_set_frame_expr): Remove.
674 (aarch64_restore_callee_saves): Add CFI_OPS argument; fill it with
675 the restore ops performed by the insns generated.
676 (aarch64_expand_epilogue): Attach CFI_OPS to the stack deallocation
677 insn. Perform the calls_eh_return addition later; do not attempt to
678 preserve the CFA in that case. Don't use aarch64_set_frame_expr.
679 (aarch64_expand_prologue): Use REG_CFA_ADJUST_CFA directly, or no
680 special markup at all. Load cfun->machine->frame.hard_fp_offset
681 into a local variable.
682 (aarch64_frame_pointer_required): Don't check calls_alloca.
684 2014-10-06 Yvan Roux <yvan.roux@linaro.org>
686 Backport from trunk r215385.
687 2014-09-19 James Greenhalgh <james.greenhalgh@arm.com>
689 * config/aarch64/aarch64.md (stack_protect_test_<mode>): Mark
690 scratch register as written.
692 2014-10-06 Yvan Roux <yvan.roux@linaro.org>
694 Backport from trunk r215346.
695 2014-09-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
697 * config/arm/neon.md (*movmisalign<mode>_neon_load): Change type
698 to neon_load1_1reg<q>.
700 2014-10-06 Yvan Roux <yvan.roux@linaro.org>
702 Backport from trunk r215321.
703 2014-09-17 Andrew Stubbs <ams@codesourcery.com>
705 * config/arm/arm.c (arm_option_override): Reject -mfpu=neon
706 when architecture is older than ARMv7.
708 2014-10-06 Yvan Roux <yvan.roux@linaro.org>
710 Backport from trunk r215260.
711 2014-09-14 David Sherwood <david.sherwood@arm.com>
713 * gcc.target/aarch64/vdup_lane_2.c (force_simd): Emit simd mov.
715 2014-10-06 Yvan Roux <yvan.roux@linaro.org>
717 Backport from trunk r215205.
718 2014-09-12 Wilco Dijkstra <wilco.dijkstra@arm.com>
720 * gcc/ree.c (combine_reaching_defs): Ensure inserted copy don't change
721 the number of hard registers.
723 2014-10-06 Yvan Roux <yvan.roux@linaro.org>
725 Backport from trunk r215136.
726 2014-09-10 Xinliang David Li <davidxl@google.com>
729 * config/arm/arm.md (movcond_addsi): Handle case where source
730 and target operands are the same.
732 2014-10-06 Yvan Roux <yvan.roux@linaro.org>
734 Backport from trunk r215086.
735 2014-09-09 Marcus Shawcroft <marcus.shawcroft@arm.com>
736 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
738 * config/aarch64/aarch64-elf-raw.h (ENDFILE_SPEC): Add crtfastmath.o.
739 * config/aarch64/aarch64-linux.h (GNU_USER_TARGET_MATH_ENDFILE_SPEC):
741 (ENDFILE_SPEC): Define and use GNU_USER_TARGET_MATH_ENDFILE_SPEC.
743 2014-10-06 Yvan Roux <yvan.roux@linaro.org>
745 Backport from trunk r215067.
746 2014-09-09 Jiong Wang <jiong.wang@arm.com>
748 * config/arm/arm.c (NEON_COPYSIGNF): New enum.
749 (arm_init_neon_builtins): Support NEON_COPYSIGNF.
750 (arm_builtin_vectorized_function): Likewise.
751 * config/arm/arm_neon_builtins.def: New macro for copysignf.
752 * config/arm/neon.md (neon_copysignf<mode>): New pattern for vector
755 2014-10-03 Yvan Roux <yvan.roux@linaro.org>
757 Backport from trunk r215050, r215051, r215052, r215053, r215054,
759 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
761 * config/arm/arm.md (vfp_pop_multiple_with_writeback): Use vldm
762 mnemonic instead of fldmfdd.
763 * config/arm/arm.c (vfp_output_fstmd): Rename to...
764 (vfp_output_vstmd): ... This. Convert output to UAL syntax.
765 Output vpush when address register is SP.
766 * config/arm/arm-protos.h (vfp_output_fstmd): Rename to...
767 (vfp_output_vstmd): ... This.
768 * config/arm/vfp.md (push_multi_vfp): Update call to
771 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
773 * config/arm/vfp.md (*movcc_vfp): Use UAL syntax.
775 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
777 * config/arm/vfp.md (*sqrtsf2_vfp): Use UAL assembly syntax.
778 (*sqrtdf2_vfp): Likewise.
779 (*cmpsf_vfp): Likewise.
780 (*cmpsf_trap_vfp): Likewise.
781 (*cmpdf_vfp): Likewise.
782 (*cmpdf_trap_vfp): Likewise.
784 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
786 * config/arm/vfp.md (*extendsfdf2_vfp): Use UAL assembly syntax.
787 (*truncdfsf2_vfp): Likewise.
788 (*truncsisf2_vfp): Likewise.
789 (*truncsidf2_vfp): Likewise.
790 (fixuns_truncsfsi2): Likewise.
791 (fixuns_truncdfsi2): Likewise.
792 (*floatsisf2_vfp): Likewise.
793 (*floatsidf2_vfp): Likewise.
794 (floatunssisf2): Likewise.
795 (floatunssidf2): Likewise.
797 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
799 * config/arm/vfp.md (*mulsf3_vfp): Use UAL assembly syntax.
800 (*muldf3_vfp): Likewise.
801 (*mulsf3negsf_vfp): Likewise.
802 (*muldf3negdf_vfp): Likewise.
803 (*mulsf3addsf_vfp): Likewise.
804 (*muldf3adddf_vfp): Likewise.
805 (*mulsf3subsf_vfp): Likewise.
806 (*muldf3subdf_vfp): Likewise.
807 (*mulsf3negsfaddsf_vfp): Likewise.
808 (*fmuldf3negdfadddf_vfp): Likewise.
809 (*mulsf3negsfsubsf_vfp): Likewise.
810 (*muldf3negdfsubdf_vfp): Likewise.
812 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
814 * config/arm/vfp.md (*abssf2_vfp): Use UAL assembly syntax.
815 (*absdf2_vfp): Likewise.
816 (*negsf2_vfp): Likewise.
817 (*negdf2_vfp): Likewise.
818 (*addsf3_vfp): Likewise.
819 (*adddf3_vfp): Likewise.
820 (*subsf3_vfp): Likewise.
821 (*subdf3_vfp): Likewise.
822 (*divsf3_vfp): Likewise.
823 (*divdf3_vfp): Likewise.
825 2014-09-09 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
827 * config/arm/arm.c (output_move_vfp): Use UAL syntax for load/store
829 (arm_print_operand): Don't convert real values to decimal
830 representation in default case.
831 (fp_immediate_constant): Delete.
832 * config/arm/arm-protos.h (fp_immediate_constant): Likewise.
833 * config/arm/vfp.md (*arm_movsi_vfp): Convert to VFP moves to UAL
835 (*thumb2_movsi_vfp): Likewise.
836 (*movdi_vfp): Likewise.
837 (*movdi_vfp_cortexa8): Likewise.
838 (*movhf_vfp_neon): Likewise.
839 (*movhf_vfp): Likewise.
840 (*movsf_vfp): Likewise.
841 (*thumb2_movsf_vfp): Likewise.
842 (*movdf_vfp): Likewise.
843 (*thumb2_movdf_vfp): Likewise.
844 (*movsfcc_vfp): Likewise.
845 (*thumb2_movsfcc_vfp): Likewise.
846 (*movdfcc_vfp): Likewise.
847 (*thumb2_movdfcc_vfp): Likewise.
849 2014-10-03 Yvan Roux <yvan.roux@linaro.org>
851 Backport from trunk r214959.
852 2014-09-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
854 * config/arm/cortex-a53.md (cortex_a53_fpalu): Add f_rints, f_rintd,
855 f_minmaxs, f_minmaxd types.
857 2014-10-03 Yvan Roux <yvan.roux@linaro.org>
859 Backport from trunk r214947.
860 2014-09-05 Alan Lawrence <alan.lawrence@arm.com>
862 * config/aarch64/aarch64-builtins.c (enum aarch64_type_qualifiers):
863 Remove qualifier_const_pointer, update comment.
865 2014-10-03 Yvan Roux <yvan.roux@linaro.org>
867 Backport from trunk r214940.
868 2014-09-05 James Greenhalgh <james.greenhalgh@arm.com>
870 * config/aarch64/aarch64.md (sibcall_value_insn): Give operand 1
873 2014-10-03 Yvan Roux <yvan.roux@linaro.org>
875 Backport from trunk r213090.
876 2014-07-26 Andrew Pinski <apinski@cavium.com>
878 * config/aarch64/aarch64.md (*extr_insv_lower_reg<mode>): Remove +
879 from the read only register.
881 2014-09-11 Yvan Roux <yvan.roux@linaro.org>
883 * LINARO-VERSION: Bump version.
885 2014-09-10 Yvan Roux <yvan.roux@linaro.org>
887 GCC Linaro 4.9-2014.09 released.
888 * LINARO-VERSION: Update.
890 2014-09-09 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
892 Backport from trunk r215004.
893 2014-09-07 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
896 * config/aarch64/aarch64.md (stack_protect_test_<mode>) Add register
897 constraint for operand0 and remove write only modifier from operand3.
899 2014-09-09 Michael Collison <michael.collison@linaro.org>
901 Backport from trunk r212178
902 2014-06-30 Joseph Myers <joseph@codesourcery.com>
904 * var-tracking.c (add_stores): Return instead of asserting if old
905 and new values for conditional store are the same.
907 2014-09-03 Yvan Roux <yvan.roux@linaro.org>
910 2014-09-03 Yvan Roux <yvan.roux@linaro.org>
912 Backport from trunk r213712.
913 2014-08-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
915 * config/aarch64/aarch64.md (absdi2): Set simd attribute.
916 (aarch64_reload_mov<mode>): Predicate on TARGET_FLOAT.
917 (aarch64_movdi_<mode>high): Likewise.
918 (aarch64_mov<mode>high_di): Likewise.
919 (aarch64_movdi_<mode>low): Likewise.
920 (aarch64_mov<mode>low_di): Likewise.
921 (aarch64_movtilow_tilow): Likewise.
922 Add comment explaining usage of fp,simd attributes and of
923 TARGET_FLOAT and TARGET_SIMD.
925 2014-09-03 Yvan Roux <yvan.roux@linaro.org>
927 Backport from trunk r213712.
928 2014-08-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
930 * config/aarch64/aarch64.md (absdi2): Set simd attribute.
931 (aarch64_reload_mov<mode>): Predicate on TARGET_FLOAT.
932 (aarch64_movdi_<mode>high): Likewise.
933 (aarch64_mov<mode>high_di): Likewise.
934 (aarch64_movdi_<mode>low): Likewise.
935 (aarch64_mov<mode>low_di): Likewise.
936 (aarch64_movtilow_tilow): Likewise.
937 Add comment explaining usage of fp,simd attributes and of
938 TARGET_FLOAT and TARGET_SIMD.
940 2014-09-03 Yvan Roux <yvan.roux@linaro.org>
942 Backport from trunk r214526.
943 2014-08-26 Joseph Myers <joseph@codesourcery.com>
947 * varasm.c (make_decl_rtl): Clear DECL_ASSEMBLER_NAME and
948 DECL_HARD_REGISTER and return for invalid register specifications.
949 * cfgexpand.c (expand_one_var): If expand_one_hard_reg_var clears
950 DECL_HARD_REGISTER, call expand_one_error_var.
951 * config/arm/arm.c (arm_hard_regno_mode_ok): Do not allow
952 CC_REGNUM with non-MODE_CC modes.
953 (arm_regno_class): Return NO_REGS for PC_REGNUM.
955 2014-09-03 Yvan Roux <yvan.roux@linaro.org>
957 Backport from trunk r214503.
958 2014-08-26 Evandro Menezes <e.menezes@samsung.com>
960 * config/arm/aarch64/aarch64.c (generic_addrcost_table): Delete
961 qi cost; add di cost.
962 (cortexa57_addrcost_table): Likewise.
964 2014-09-03 Yvan Roux <yvan.roux@linaro.org>
966 Backport from trunk r213659.
967 2014-08-06 Alan Lawrence <alan.lawrence@arm.com>
969 * config/aarch64/aarch64.c (aarch64_evpc_dup): Enable for bigendian.
970 (aarch64_expand_vec_perm_const): Check for dup before zip.
972 2014-09-02 Yvan Roux <yvan.roux@linaro.org>
974 Backport from trunk r213651.
975 2014-08-06 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
977 * config/aarch64/aarch64.c (aarch64_classify_address): Use REG_P and
978 CONST_INT_P instead of GET_CODE and compare.
979 (aarch64_select_cc_mode): Likewise.
980 (aarch64_print_operand): Likewise.
981 (aarch64_rtx_costs): Likewise.
982 (aarch64_simd_valid_immediate): Likewise.
983 (aarch64_simd_check_vect_par_cnst_half): Likewise.
984 (aarch64_simd_emit_pair_result_insn): Likewise.
986 2014-08-29 Yvan Roux <yvan.roux@linaro.org>
988 Backport from trunk r212978.
989 2014-07-24 Andreas Schwab <schwab@suse.de>
991 * lib/target-supports.exp (check_effective_target_arm_nothumb):
992 Also check for __arm__.
994 2014-08-29 Christophe Lyon <christophe.lyon@linaro.org>
996 Fix backport from trunk 211440:
997 * config.gcc (aarch64*-*-*): Restore need_64bit_hwint=yes.
999 This is necessary to build aarch64* compilers on i686 host.
1001 2014-08-26 Yvan Roux <yvan.roux@linaro.org>
1003 Backport from trunk r213627.
1004 2014-08-05 James Greenhalgh <james.greenhalgh@arm.com>
1006 * config/aarch64/aarch64-builtins.c
1007 (aarch64_simd_builtin_type_mode): Delete.
1008 (v8qi_UP): Remap to V8QImode.
1009 (v4hi_UP): Remap to V4HImode.
1010 (v2si_UP): Remap to V2SImode.
1011 (v2sf_UP): Remap to V2SFmode.
1012 (v1df_UP): Remap to V1DFmode.
1013 (di_UP): Remap to DImode.
1014 (df_UP): Remap to DFmode.
1015 (v16qi_UP):V16QImode.
1016 (v8hi_UP): Remap to V8HImode.
1017 (v4si_UP): Remap to V4SImode.
1018 (v4sf_UP): Remap to V4SFmode.
1019 (v2di_UP): Remap to V2DImode.
1020 (v2df_UP): Remap to V2DFmode.
1021 (ti_UP): Remap to TImode.
1022 (ei_UP): Remap to EImode.
1023 (oi_UP): Remap to OImode.
1024 (ci_UP): Map to CImode.
1025 (xi_UP): Remap to XImode.
1026 (si_UP): Remap to SImode.
1027 (sf_UP): Remap to SFmode.
1028 (hi_UP): Remap to HImode.
1029 (qi_UP): Remap to QImode.
1030 (aarch64_simd_builtin_datum): Make mode a machine_mode.
1031 (VAR1): Build builtin name.
1032 (aarch64_init_simd_builtins): Remove dead code.
1034 2014-08-26 Yvan Roux <yvan.roux@linaro.org>
1036 Backport from trunk r213713.
1037 2014-08-07 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1039 * config/arm/arm.md (*cmov<mode>): Set type attribute to fcsel.
1040 * config/arm/types.md (f_sels, f_seld): Delete.
1042 2014-08-26 Yvan Roux <yvan.roux@linaro.org>
1044 Backport from trunk r213711.
1045 2014-08-07 Ian Bolton <ian.bolton@arm.com>
1046 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1048 * config/aarch64/aarch64.c (aarch64_expand_mov_immediate):
1049 Use MOVN when one of the half-words is 0xffff.
1051 2014-08-26 Yvan Roux <yvan.roux@linaro.org>
1053 Backport from trunk r213632.
1054 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1056 * config/arm/cortex-a15.md (cortex_a15_alu_shift): Add crc type
1058 * config/arm/cortex-a53.md (cortex_a53_alu_shift): Likewise.
1060 2014-08-26 Yvan Roux <yvan.roux@linaro.org>
1062 Backport from trunk r213630.
1063 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1065 * config/arm/arm.md (clzsi2): Set predicable_short_it attr to no.
1066 (rbitsi2): Likewise.
1067 (*arm_rev): Set predicable and predicable_short_it attributes.
1069 2014-08-26 Yvan Roux <yvan.roux@linaro.org>
1071 Backport from trunk r213557.
1072 2014-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1073 James Greenhalgh <james.greenhalgh@arm.com>
1075 * doc/md.texi (clrsb): Document.
1076 (clz): Change reference to x into operand 1.
1078 (popcount): Likewise.
1080 2014-08-26 Yvan Roux <yvan.roux@linaro.org>
1082 Backport from trunk r213551, r213556.
1083 2014-08-04 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1084 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1086 * sched-deps.c (try_group_insn): Generalise macro fusion hook usage
1087 to any two insns. Update comment. Rename to sched_macro_fuse_insns.
1088 (sched_analyze_insn): Update use of try_group_insn to
1089 sched_macro_fuse_insns.
1090 * config/i386/i386.c (ix86_macro_fusion_pair_p): Reject 2nd
1091 arguments that are not conditional jumps.
1093 2014-08-26 Yvan Roux <yvan.roux@linaro.org>
1095 Backport from trunk r213490.
1096 2014-08-01 Alan Lawrence <alan.lawrence@arm.com>
1098 * config/aarch64/aarch64-simd-builtins.def (dup_lane, get_lane): Delete.
1100 2014-08-26 Yvan Roux <yvan.roux@linaro.org>
1102 Backport from trunk r213488.
1103 2014-08-01 Jiong Wang <jiong.wang@arm.com>
1105 * config/aarch64/aarch64.c (aarch64_classify_address): Accept all offset
1106 for frame access when strict_p is false.
1108 2014-08-26 Yvan Roux <yvan.roux@linaro.org>
1110 Backport from trunk r213485, r213486, r213487.
1111 2014-08-01 Renlin Li <renlin.li@arm.com>
1112 Jiong Wang <jiong.wang@arm.com>
1114 * config/aarch64/aarch64.c (offset_7bit_signed_scaled_p): Rename to
1115 aarch64_offset_7bit_signed_scaled_p, remove static and use it.
1116 * config/aarch64/aarch64-protos.h (aarch64_offset_7bit_signed_scaled_p):
1118 * config/aarch64/predicates.md (aarch64_mem_pair_offset): Define new
1120 * config/aarch64/aarch64.md (loadwb_pair, storewb_pair): Use
1121 aarch64_mem_pair_offset.
1123 2014-08-01 Jiong Wang <jiong.wang@arm.com>
1125 * config/aarch64/aarch64.md (loadwb_pair<GPI:mode>_<P:mode>): Fix
1127 (loadwb_pair<GPI:mode>_<P:mode>): Likewise.
1128 * config/aarch64/aarch64.c (aarch64_gen_loadwb_pair): Likewise.
1130 2014-08-26 Yvan Roux <yvan.roux@linaro.org>
1132 Backport from trunk r213379.
1133 2014-07-31 James Greenhalgh <james.greenhalgh@arm.com>
1135 * config/aarch64/aarch64-builtins.c
1136 (aarch64_gimple_fold_builtin): Don't fold reduction operations for
1139 2014-08-26 Yvan Roux <yvan.roux@linaro.org>
1141 Backport from trunk r213378.
1142 2014-07-31 James Greenhalgh <james.greenhalgh@arm.com>
1144 * config/aarch64/aarch64.c (aarch64_simd_vect_par_cnst_half): Vary
1145 the generated mask based on BYTES_BIG_ENDIAN.
1146 (aarch64_simd_check_vect_par_cnst_half): New.
1147 * config/aarch64/aarch64-protos.h
1148 (aarch64_simd_check_vect_par_cnst_half): New.
1149 * config/aarch64/predicates.md (vect_par_cnst_hi_half): Refactor
1150 the check out to aarch64_simd_check_vect_par_cnst_half.
1151 (vect_par_cnst_lo_half): Likewise.
1152 * config/aarch64/aarch64-simd.md
1153 (aarch64_simd_move_hi_quad_<mode>): Always use vec_par_cnst_lo_half.
1154 (move_hi_quad_<mode>): Always generate a low mask.
1156 2014-08-22 Yvan Roux <yvan.roux@linaro.org>
1158 Backport from trunk r212927, r213304.
1159 2014-07-30 Jiong Wang <jiong.wang@arm.com>
1161 * config/arm/arm.c (arm_get_frame_offsets): Adjust condition for
1164 2014-07-23 Jiong Wang <jiong.wang@arm.com>
1166 * config/arm/arm.c (arm_get_frame_offsets): If both r3 and other
1167 callee-saved registers are available for padding purpose
1168 and r3 is not mandatory, then prefer use those callee-saved
1171 2014-08-22 Yvan Roux <yvan.roux@linaro.org>
1173 Backport from trunk r211717, r213692.
1174 2014-08-07 Kugan Vivekanandarajah <kuganv@linaro.org>
1176 * config/arm/arm.c (bdesc_2arg): Fix typo.
1177 (arm_atomic_assign_expand_fenv): Remove The default implementation.
1179 2014-06-17 Kugan Vivekanandarajah <kuganv@linaro.org>
1181 * config/arm/arm.c (arm_atomic_assign_expand_fenv): call
1182 default_atomic_assign_expand_fenv for !TARGET_HARD_FLOAT.
1183 (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
1184 __builtins_arm_get_fpscr only when TARGET_HARD_FLOAT.
1185 * config/arm/vfp.md (set_fpscr): Make pattern conditional on
1187 (get_fpscr) : Likewise.
1189 2014-08-22 Yvan Roux <yvan.roux@linaro.org>
1191 Backport from trunk r212989, r213628.
1192 2014-08-05 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1194 * convert.c (convert_to_integer): Guard transformation to lrint by
1197 2014-07-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1200 * convert.c (convert_to_integer): Do not convert BUILT_IN_ROUND and cast
1201 when flag_errno_math is on.
1203 2014-08-15 Yvan Roux <yvan.roux@linaro.org>
1205 * LINARO-VERSION: Bump version.
1207 2014-08-14 Yvan Roux <yvan.roux@linaro.org>
1209 GCC Linaro 4.9-2014.08 released.
1210 * LINARO-VERSION: Update.
1212 2014-08-11 Yvan Roux <yvan.roux@linaro.org>
1214 Backport from trunk r212912, r212913.
1215 2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1217 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle CLRSB, CLZ.
1218 (case UNSPEC): Handle UNSPEC_RBIT.
1220 2014-07-22 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1222 * config/aarch64/aarch64.md: Delete UNSPEC_CLS.
1223 (clrsb<mode>2): Use clrsb RTL code instead of UNSPEC_CLS.
1225 2014-08-11 Yvan Roux <yvan.roux@linaro.org>
1227 Backport from trunk r213555.
1228 2014-08-04 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1231 * gcc/optabs.c (expand_atomic_test_and_set): Do not try to emit
1232 move to subtarget in serial version if result is ignored.
1234 2014-08-11 Yvan Roux <yvan.roux@linaro.org>
1236 Backport from trunk r213376.
1237 2014-07-31 Charles Baylis <charles.baylis@linaro.org>
1240 * config/arm/neon.md (ashldi3_neon): Don't emit arm_ashldi3_1bit unless
1241 constraints are satisfied.
1242 (<shift>di3_neon): Likewise.
1244 2014-08-11 Yvan Roux <yvan.roux@linaro.org>
1246 Backport from trunk r211270, r211271, r211273, r211275, r212943,
1247 r212945, r212946, r212947, r212949, r212950, r212951, r212952, r212954,
1248 r212955, r212956, r212957, r212958, r212976, r212996, r212997, r212999,
1250 2014-07-24 Jiong Wang <jiong.wang@arm.com>
1252 * config/aarch64/aarch64.c (aarch64_popwb_single_reg): New function.
1253 (aarch64_expand_epilogue): Optimize epilogue when !frame_pointer_needed.
1255 2014-07-24 Jiong Wang <jiong.wang@arm.com>
1257 * config/aarch64/aarch64.c (aarch64_pushwb_single_reg): New function.
1258 (aarch64_expand_prologue): Optimize prologue when !frame_pointer_needed.
1260 2014-07-24 Jiong Wang <jiong.wang@arm.com>
1262 * config/aarch64/aarch64.c (aarch64_restore_callee_saves)
1263 (aarch64_save_callee_saves): New parameter "skip_wb".
1264 (aarch64_expand_prologue, aarch64_expand_epilogue): Update call site.
1266 2014-07-24 Jiong Wang <jiong.wang@arm.com>
1268 * config/aarch64/aarch64.h (frame): New fields "wb_candidate1" and
1270 * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize above.
1272 2014-07-24 Jiong Wang <jiong.wang@arm.com>
1274 * config/aarch64/aarch64.c (aarch64_expand_epilogue): Don't
1275 subtract outgoing area size when restoring stack_pointer_rtx.
1277 2014-07-23 Jiong Wang <jiong.wang@arm.com>
1279 * config/aarch64/aarch64.c (aarch64_popwb_pair_reg)
1280 (aarch64_gen_loadwb_pair): New helper function.
1281 (aarch64_expand_epilogue): Simplify code using new helper functions.
1282 * config/aarch64/aarch64.md (loadwb_pair<GPF:mode>_<P:mode>): Define.
1284 2014-07-23 Jiong Wang <jiong.wang@arm.com>
1286 * config/aarch64/aarch64.c (aarch64_pushwb_pair_reg)
1287 (aarch64_gen_storewb_pair): New helper function.
1288 (aarch64_expand_prologue): Simplify code using new helper functions.
1289 * config/aarch64/aarch64.md (storewb_pair<GPF:mode>_<P:mode>): Define.
1291 2014-07-23 Jiong Wang <jiong.wang@arm.com>
1293 * config/aarch64/aarch64.md: (aarch64_save_or_restore_callee_saves):
1294 Rename to aarch64_save_callee_saves, remove restore code.
1295 (aarch64_restore_callee_saves): New function.
1297 2014-07-23 Jiong Wang <jiong.wang@arm.com>
1299 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Deleted.
1300 (aarch64_save_callee_saves): New function to handle reg save
1301 for both core and vectore regs.
1303 2014-07-23 Jiong Wang <jiong.wang@arm.com>
1305 * config/aarch64/aarch64.c (aarch64_gen_load_pair)
1306 (aarch64_gen_store_pair): New helper function.
1307 (aarch64_save_or_restore_callee_save_registers)
1308 (aarch64_save_or_restore_fprs): Use new helper functions.
1310 2014-07-23 Jiong Wang <jiong.wang@arm.com>
1312 * config/aarch64/aarch64.c (aarch64_next_callee_save): New function.
1313 (aarch64_save_or_restore_callee_save_registers)
1314 (aarch64_save_or_restore_fprs): Use aarch64_next_callee_save.
1316 2014-07-23 Jiong Wang <jiong.wang@arm.com>
1318 * config/aarch64/aarch64.c
1319 (aarch64_save_or_restore_callee_save_registers)
1320 (aarch64_save_or_restore_fprs): Hoist calculation of register rtx.
1322 2014-07-23 Jiong Wang <jiong.wang@arm.com>
1324 * config/aarch64/aarch64.c
1325 (aarch64_save_or_restore_callee_save_registers)
1326 (aarch64_save_or_restore_fprs): Remove 'increment'.
1328 2014-07-23 Jiong Wang <jiong.wang@arm.com>
1330 * config/aarch64/aarch64.c
1331 (aarch64_save_or_restore_callee_save_registers)
1332 (aarch64_save_or_restore_fprs): Use register offset in
1333 cfun->machine->frame.reg_offset.
1335 2014-07-23 Jiong Wang <jiong.wang@arm.com>
1337 * config/aarch64/aarch64.c
1338 (aarch64_save_or_restore_callee_save_registers)
1339 (aarch64_save_or_restore_fprs): Remove base_rtx.
1341 2014-07-23 Jiong Wang <jiong.wang@arm.com>
1343 * config/aarch64/aarch64.c
1344 (aarch64_save_or_restore_callee_save_registers): Rename 'offset'
1345 to 'start_offset'. Remove local variable 'start_offset'.
1347 2014-07-23 Jiong Wang <jiong.wang@arm.com>
1349 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Change
1350 type to HOST_WIDE_INT.
1352 2014-07-23 Jiong Wang <jiong.wang@arm.com>
1354 * config/aarch64/aarch64.c (aarch64_expand_prologue)
1355 (aarch64_save_or_restore_fprs)
1356 (aarch64_save_or_restore_callee_save_registers): GNU-Stylize code.
1358 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
1360 * config/aarch64/aarch64.h (aarch64_frame): Add hard_fp_offset and
1362 * config/aarch64/aarch64.c (aarch64_layout_frame): Initialize
1363 aarch64_frame hard_fp_offset and frame_size.
1364 (aarch64_expand_prologue): Use aarch64_frame hard_fp_offset and
1365 frame_size; remove original_frame_size.
1366 (aarch64_expand_epilogue, aarch64_final_eh_return_addr): Likewise.
1367 (aarch64_initial_elimination_offset): Remove frame_size and
1368 offset. Use aarch64_frame frame_size.
1370 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
1371 Jiong Wang <jiong.wang@arm.com>
1373 * config/aarch64/aarch64.c (aarch64_layout_frame): Correct
1374 initialization of R30 offset. Update offset. Iterate core
1375 regisers upto X30. Remove X29, X30 specific code.
1377 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
1378 Jiong Wang <jiong.wang@arm.com>
1380 * config/aarch64/aarch64.c (SLOT_NOT_REQUIRED, SLOT_REQUIRED): Define.
1381 (aarch64_layout_frame): Use SLOT_NOT_REQUIRED and SLOT_REQUIRED.
1382 (aarch64_register_saved_on_entry): Adjust test.
1384 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
1386 * config/aarch64/aarch64.h (machine_function): Move
1387 saved_varargs_size from here...
1388 (aarch64_frameGTY): ... to here.
1390 * config/aarch64/aarch64.c (aarch64_expand_prologue)
1391 (aarch64_expand_epilogue, aarch64_final_eh_return_addr)
1392 (aarch64_initial_elimination_offset)
1393 (aarch64_setup_incoming_varargs): Adjust location of
1396 2014-08-11 Yvan Roux <yvan.roux@linaro.org>
1398 Backport from trunk r212753.
1399 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1401 * config/aarch64/aarch64.c (aarch64_frint_unspec_p): New function.
1402 (aarch64_rtx_costs): Handle FIX, UNSIGNED_FIX, UNSPEC.
1404 2014-08-11 Yvan Roux <yvan.roux@linaro.org>
1406 Backport from trunk r212752.
1407 2014-07-17 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1409 * config/aarch64/arm_neon.h (vmlal_high_lane_s16): Fix type.
1410 (vmlal_high_lane_s32): Likewise.
1411 (vmlal_high_lane_u16): Likewise.
1412 (vmlal_high_lane_u32): Likewise.
1413 (vmlsl_high_lane_s16): Likewise.
1414 (vmlsl_high_lane_s32): Likewise.
1415 (vmlsl_high_lane_u16): Likewise.
1416 (vmlsl_high_lane_u32): Likewise.
1418 2014-08-11 Yvan Roux <yvan.roux@linaro.org>
1420 Backport from trunk r212512.
1421 2014-07-14 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1423 * config/arm/cortex-a15.md (cortex_a15_alu): Handle clz, rbit.
1424 * config/arm/cortex-a5.md (cortex_a5_alu): Likewise.
1425 * config/arm/cortex-a53.md (cortex_a53_alu): Likewise.
1426 * config/arm/cortex-a7.md (cortex_a7_alu_reg): Likewise.
1427 * config/arm/cortex-a9.md (cortex_a9_dp): Likewise.
1428 * config/arm/cortex-m4.md (cortex_m4_alu): Likewise.
1429 * config/arm/cortex-r4.md (cortex_r4_alu): Likewise.
1431 2014-08-11 Yvan Roux <yvan.roux@linaro.org>
1433 Backport from trunk r212358.
1434 2014-07-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1436 * config/arm/arm.c (cortexa5_extra_costs): New table.
1437 (arm_cortex_a5_tune): Use cortexa5_extra_costs.
1439 2014-08-11 Yvan Roux <yvan.roux@linaro.org>
1441 Backport from trunk r212296.
1442 2014-07-04 Tom de Vries <tom@codesourcery.com>
1444 * config/aarch64/aarch64-simd.md
1445 (define_insn "vec_unpack_trunc_<mode>"): Fix constraint.
1447 2014-08-10 Yvan Roux <yvan.roux@linaro.org>
1449 Backport from trunk r212142, r212225.
1450 2014-07-02 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1452 * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Delete unused
1455 2014-06-30 Alan Lawrence <alan.lawrence@arm.com>
1457 * config/aarch64/aarch64-simd.md (vec_perm): Enable for bigendian.
1458 * config/aarch64/aarch64.c (aarch64_expand_vec_perm): Remove assert
1459 against bigendian and adjust indices.
1461 2014-08-10 Yvan Roux <yvan.roux@linaro.org>
1463 Backport from trunk r211779.
1464 2014-06-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1466 * config/arm/arm_neon.h (vadd_f32): Change #ifdef to __FAST_MATH.
1468 2014-07-30 Yvan Roux <yvan.roux@linaro.org>
1470 Backport from trunk r211503.
1471 2014-06-12 Alan Lawrence <alan.lawrence@arm.com>
1473 * config/aarch64/arm_neon.h (vmlaq_n_f64, vmlsq_n_f64, vrsrtsq_f64,
1474 vcge_p8, vcgeq_p8, vcgez_p8, vcgez_u8, vcgez_u16, vcgez_u32, vcgez_u64,
1475 vcgezq_p8, vcgezq_u8, vcgezq_u16, vcgezq_u32, vcgezq_u64, vcgezd_u64,
1476 vcgt_p8, vcgtq_p8, vcgtz_p8, vcgtz_u8, vcgtz_u16, vcgtz_u32, vcgtz_u64,
1477 vcgtzq_p8, vcgtzq_u8, vcgtzq_u16, vcgtzq_u32, vcgtzq_u64, vcgtzd_u64,
1478 vcle_p8, vcleq_p8, vclez_p8, vclez_u64, vclezq_p8, vclezd_u64, vclt_p8,
1479 vcltq_p8, vcltz_p8, vcltzq_p8, vcltzd_u64): Remove functions as they are
1482 2014-07-30 Yvan Roux <yvan.roux@linaro.org>
1484 Backport from trunk r211140.
1485 2014-06-02 Marcus Shawcroft <marcus.shawcroft@arm.com>
1487 * config/aarch64/aarch64.md (set_fpcr): Drop ISB after FPCR write.
1489 2014-07-29 Yvan Roux <yvan.roux@linaro.org>
1491 * LINARO-VERSION: Bump version.
1493 2014-07-24 Yvan Roux <yvan.roux@linaro.org>
1495 GCC Linaro 4.9-2014.07-1 released.
1496 * LINARO-VERSION: Update.
1498 2014-07-20 Yvan Roux <yvan.roux@linaro.org>
1501 2014-07-16 Yvan Roux <yvan.roux@linaro.org>
1503 Backport from trunk r211129.
1504 2014-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1507 * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
1508 * config/arm/arm.md (mov64 splitter): Replace const_double_operand
1509 with immediate_operand.
1511 2014-07-19 Yvan Roux <yvan.roux@linaro.org>
1513 * LINARO-VERSION: Bump version.
1515 2014-07-17 Yvan Roux <yvan.roux@linaro.org>
1517 GCC Linaro 4.9-2014.07 released.
1518 * LINARO-VERSION: Update.
1520 2014-07-17 Yvan Roux <yvan.roux@linaro.org>
1522 Backport from trunk r211887, r211899.
1523 2014-06-23 James Greenhalgh <james.greenhalgh@arm.com>
1525 * config/aarch64/aarch64.md (addsi3_aarch64): Set "simd" attr to
1528 2014-06-23 James Greenhalgh <james.greenhalgh@arm.com>
1530 * config/aarch64/aarch64.md (*addsi3_aarch64): Add alternative in
1533 2014-07-17 Yvan Roux <yvan.roux@linaro.org>
1535 Backport from trunk r211440.
1536 2014-06-11 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1538 * config.gcc (aarch64*-*-*): Add arm_acle.h to extra headers.
1539 * Makefile.in (TEXI_GCC_FILES): Add aarch64-acle-intrinsics.texi to
1541 * config/aarch64/aarch64-builtins.c (AARCH64_CRC32_BUILTINS): Define.
1542 (aarch64_crc_builtin_datum): New struct.
1543 (aarch64_crc_builtin_data): New.
1544 (aarch64_init_crc32_builtins): New function.
1545 (aarch64_init_builtins): Initialise CRC32 builtins when appropriate.
1546 (aarch64_crc32_expand_builtin): New.
1547 (aarch64_expand_builtin): Add CRC32 builtin expansion case.
1548 * config/aarch64/aarch64.h (TARGET_CPU_CPP_BUILTINS): Define
1549 __ARM_FEATURE_CRC32 when appropriate.
1550 (TARGET_CRC32): Define.
1551 * config/aarch64/aarch64.md (UNSPEC_CRC32B, UNSPEC_CRC32H,
1552 UNSPEC_CRC32W, UNSPEC_CRC32X, UNSPEC_CRC32CB, UNSPEC_CRC32CH,
1553 UNSPEC_CRC32CW, UNSPEC_CRC32CX): New unspec values.
1554 (aarch64_<crc_variant>): New pattern.
1555 * config/aarch64/arm_acle.h: New file.
1556 * config/aarch64/iterators.md (CRC): New int iterator.
1557 (crc_variant, crc_mode): New int attributes.
1558 * doc/aarch64-acle-intrinsics.texi: New file.
1559 * doc/extend.texi (aarch64): Document aarch64 ACLE intrinsics.
1560 Include aarch64-acle-intrinsics.texi.
1562 2014-07-17 Yvan Roux <yvan.roux@linaro.org>
1564 Backport from trunk r211174.
1565 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
1567 * config/aarch64/aarch64-simd.md (aarch64_rev<REVERSE:rev-op><mode>):
1569 * config/aarch64/aarch64.c (aarch64_evpc_rev): New function.
1570 (aarch64_expand_vec_perm_const_1): Add call to aarch64_evpc_rev.
1571 * config/aarch64/iterators.md (REVERSE): New iterator.
1572 (UNSPEC_REV64, UNSPEC_REV32, UNSPEC_REV16): New enum elements.
1573 (rev_op): New int_attribute.
1574 * config/aarch64/arm_neon.h (vrev16_p8, vrev16_s8, vrev16_u8,
1575 vrev16q_p8, vrev16q_s8, vrev16q_u8, vrev32_p8, vrev32_p16, vrev32_s8,
1576 vrev32_s16, vrev32_u8, vrev32_u16, vrev32q_p8, vrev32q_p16, vrev32q_s8,
1577 vrev32q_s16, vrev32q_u8, vrev32q_u16, vrev64_f32, vrev64_p8,
1578 vrev64_p16, vrev64_s8, vrev64_s16, vrev64_s32, vrev64_u8, vrev64_u16,
1579 vrev64_u32, vrev64q_f32, vrev64q_p8, vrev64q_p16, vrev64q_s8,
1580 vrev64q_s16, vrev64q_s32, vrev64q_u8, vrev64q_u16, vrev64q_u32):
1581 Replace temporary __asm__ with __builtin_shuffle.
1583 2014-07-17 Yvan Roux <yvan.roux@linaro.org>
1585 Backport from trunk r210216, r210218, r210219.
1586 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1588 * config/arm/arm_neon.h: Update comment.
1589 * config/arm/neon-docgen.ml: Delete.
1590 * config/arm/neon-gen.ml: Delete.
1591 * doc/arm-neon-intrinsics.texi: Update comment.
1593 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1595 * config/arm/arm_neon_builtins.def (vadd, vsub): Only define the v2sf
1597 (vand, vorr, veor, vorn, vbic): Remove.
1598 * config/arm/neon.md (neon_vadd, neon_vsub, neon_vadd_unspec): Adjust
1600 (neon_vsub_unspec): Likewise.
1601 (neon_vorr, neon_vand, neon_vbic, neon_veor, neon_vorn): Remove.
1603 2014-05-08 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1605 * config/arm/arm_neon.h (vadd_s8): GNU C implementation
1606 (vadd_s16): Likewise.
1607 (vadd_s32): Likewise.
1608 (vadd_f32): Likewise.
1609 (vadd_u8): Likewise.
1610 (vadd_u16): Likewise.
1611 (vadd_u32): Likewise.
1612 (vadd_s64): Likewise.
1613 (vadd_u64): Likewise.
1614 (vaddq_s8): Likewise.
1615 (vaddq_s16): Likewise.
1616 (vaddq_s32): Likewise.
1617 (vaddq_s64): Likewise.
1618 (vaddq_f32): Likewise.
1619 (vaddq_u8): Likewise.
1620 (vaddq_u16): Likewise.
1621 (vaddq_u32): Likewise.
1622 (vaddq_u64): Likewise.
1623 (vmul_s8): Likewise.
1624 (vmul_s16): Likewise.
1625 (vmul_s32): Likewise.
1626 (vmul_f32): Likewise.
1627 (vmul_u8): Likewise.
1628 (vmul_u16): Likewise.
1629 (vmul_u32): Likewise.
1630 (vmul_p8): Likewise.
1631 (vmulq_s8): Likewise.
1632 (vmulq_s16): Likewise.
1633 (vmulq_s32): Likewise.
1634 (vmulq_f32): Likewise.
1635 (vmulq_u8): Likewise.
1636 (vmulq_u16): Likewise.
1637 (vmulq_u32): Likewise.
1638 (vsub_s8): Likewise.
1639 (vsub_s16): Likewise.
1640 (vsub_s32): Likewise.
1641 (vsub_f32): Likewise.
1642 (vsub_u8): Likewise.
1643 (vsub_u16): Likewise.
1644 (vsub_u32): Likewise.
1645 (vsub_s64): Likewise.
1646 (vsub_u64): Likewise.
1647 (vsubq_s8): Likewise.
1648 (vsubq_s16): Likewise.
1649 (vsubq_s32): Likewise.
1650 (vsubq_s64): Likewise.
1651 (vsubq_f32): Likewise.
1652 (vsubq_u8): Likewise.
1653 (vsubq_u16): Likewise.
1654 (vsubq_u32): Likewise.
1655 (vsubq_u64): Likewise.
1656 (vand_s8): Likewise.
1657 (vand_s16): Likewise.
1658 (vand_s32): Likewise.
1659 (vand_u8): Likewise.
1660 (vand_u16): Likewise.
1661 (vand_u32): Likewise.
1662 (vand_s64): Likewise.
1663 (vand_u64): Likewise.
1664 (vandq_s8): Likewise.
1665 (vandq_s16): Likewise.
1666 (vandq_s32): Likewise.
1667 (vandq_s64): Likewise.
1668 (vandq_u8): Likewise.
1669 (vandq_u16): Likewise.
1670 (vandq_u32): Likewise.
1671 (vandq_u64): Likewise.
1672 (vorr_s8): Likewise.
1673 (vorr_s16): Likewise.
1674 (vorr_s32): Likewise.
1675 (vorr_u8): Likewise.
1676 (vorr_u16): Likewise.
1677 (vorr_u32): Likewise.
1678 (vorr_s64): Likewise.
1679 (vorr_u64): Likewise.
1680 (vorrq_s8): Likewise.
1681 (vorrq_s16): Likewise.
1682 (vorrq_s32): Likewise.
1683 (vorrq_s64): Likewise.
1684 (vorrq_u8): Likewise.
1685 (vorrq_u16): Likewise.
1686 (vorrq_u32): Likewise.
1687 (vorrq_u64): Likewise.
1688 (veor_s8): Likewise.
1689 (veor_s16): Likewise.
1690 (veor_s32): Likewise.
1691 (veor_u8): Likewise.
1692 (veor_u16): Likewise.
1693 (veor_u32): Likewise.
1694 (veor_s64): Likewise.
1695 (veor_u64): Likewise.
1696 (veorq_s8): Likewise.
1697 (veorq_s16): Likewise.
1698 (veorq_s32): Likewise.
1699 (veorq_s64): Likewise.
1700 (veorq_u8): Likewise.
1701 (veorq_u16): Likewise.
1702 (veorq_u32): Likewise.
1703 (veorq_u64): Likewise.
1704 (vbic_s8): Likewise.
1705 (vbic_s16): Likewise.
1706 (vbic_s32): Likewise.
1707 (vbic_u8): Likewise.
1708 (vbic_u16): Likewise.
1709 (vbic_u32): Likewise.
1710 (vbic_s64): Likewise.
1711 (vbic_u64): Likewise.
1712 (vbicq_s8): Likewise.
1713 (vbicq_s16): Likewise.
1714 (vbicq_s32): Likewise.
1715 (vbicq_s64): Likewise.
1716 (vbicq_u8): Likewise.
1717 (vbicq_u16): Likewise.
1718 (vbicq_u32): Likewise.
1719 (vbicq_u64): Likewise.
1720 (vorn_s8): Likewise.
1721 (vorn_s16): Likewise.
1722 (vorn_s32): Likewise.
1723 (vorn_u8): Likewise.
1724 (vorn_u16): Likewise.
1725 (vorn_u32): Likewise.
1726 (vorn_s64): Likewise.
1727 (vorn_u64): Likewise.
1728 (vornq_s8): Likewise.
1729 (vornq_s16): Likewise.
1730 (vornq_s32): Likewise.
1731 (vornq_s64): Likewise.
1732 (vornq_u8): Likewise.
1733 (vornq_u16): Likewise.
1734 (vornq_u32): Likewise.
1735 (vornq_u64): Likewise.
1737 2014-07-16 Yvan Roux <yvan.roux@linaro.org>
1739 Backport from trunk r210151.
1740 2014-05-07 Alan Lawrence <alan.lawrence@arm.com>
1742 * config/aarch64/arm_neon.h (vtrn1_f32, vtrn1_p8, vtrn1_p16, vtrn1_s8,
1743 vtrn1_s16, vtrn1_s32, vtrn1_u8, vtrn1_u16, vtrn1_u32, vtrn1q_f32,
1744 vtrn1q_f64, vtrn1q_p8, vtrn1q_p16, vtrn1q_s8, vtrn1q_s16, vtrn1q_s32,
1745 vtrn1q_s64, vtrn1q_u8, vtrn1q_u16, vtrn1q_u32, vtrn1q_u64, vtrn2_f32,
1746 vtrn2_p8, vtrn2_p16, vtrn2_s8, vtrn2_s16, vtrn2_s32, vtrn2_u8,
1747 vtrn2_u16, vtrn2_u32, vtrn2q_f32, vtrn2q_f64, vtrn2q_p8, vtrn2q_p16,
1748 vtrn2q_s8, vtrn2q_s16, vtrn2q_s32, vtrn2q_s64, vtrn2q_u8, vtrn2q_u16,
1749 vtrn2q_u32, vtrn2q_u64): Replace temporary asm with __builtin_shuffle.
1751 2014-07-16 Yvan Roux <yvan.roux@linaro.org>
1753 Backport from trunk r209794.
1754 2014-04-25 Marek Polacek <polacek@redhat.com>
1757 * c-parser.c (c_parser_initelt): Pass input_location to
1758 process_init_element.
1759 (c_parser_initval): Pass loc to process_init_element.
1760 * c-tree.h (process_init_element): Adjust declaration.
1761 * c-typeck.c (push_init_level): Pass input_location to
1762 process_init_element.
1763 (pop_init_level): Likewise.
1764 (set_designator): Likewise.
1765 (output_init_element): Add location_t parameter. Pass loc to
1767 (output_pending_init_elements): Pass input_location to
1768 output_init_element.
1769 (process_init_element): Add location_t parameter. Pass loc to
1770 output_init_element.
1772 2014-07-16 Yvan Roux <yvan.roux@linaro.org>
1774 Backport from trunk r211771.
1775 2014-06-18 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1777 * genattrtab.c (n_bypassed): New variable.
1778 (process_bypasses): Initialise n_bypassed.
1779 Count number of bypassed reservations.
1780 (make_automaton_attrs): Allocate space for bypassed reservations
1781 rather than number of bypasses.
1783 2014-07-16 Yvan Roux <yvan.roux@linaro.org>
1785 Backport from trunk r210861.
1786 2014-05-23 Jiong Wang <jiong.wang@arm.com>
1788 * config/aarch64/predicates.md (aarch64_call_insn_operand): New
1790 * config/aarch64/constraints.md ("Ucs", "Usf"): New constraints.
1791 * config/aarch64/aarch64.md (*sibcall_insn, *sibcall_value_insn):
1792 Adjust for tailcalling through registers.
1793 * config/aarch64/aarch64.h (enum reg_class): New caller save
1795 (REG_CLASS_NAMES): Likewise.
1796 (REG_CLASS_CONTENTS): Likewise.
1797 * config/aarch64/aarch64.c (aarch64_function_ok_for_sibcall):
1798 Allow tailcalling without decls.
1800 2014-07-16 Yvan Roux <yvan.roux@linaro.org>
1802 Backport from trunk r211314.
1803 2014-06-06 James Greenhalgh <james.greenhalgh@arm.com>
1805 * config/aarch64/aarch64-protos.h (aarch64_expand_movmem): New.
1806 * config/aarch64/aarch64.c (aarch64_move_pointer): New.
1807 (aarch64_progress_pointer): Likewise.
1808 (aarch64_copy_one_part_and_move_pointers): Likewise.
1809 (aarch64_expand_movmen): Likewise.
1810 * config/aarch64/aarch64.h (MOVE_RATIO): Set low.
1811 * config/aarch64/aarch64.md (movmem<mode>): New.
1813 2014-07-16 Yvan Roux <yvan.roux@linaro.org>
1815 Backport from trunk r211185, 211186.
1816 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
1818 * gcc/config/aarch64/aarch64-builtins.c
1819 (aarch64_types_binop_uus_qualifiers,
1820 aarch64_types_shift_to_unsigned_qualifiers,
1821 aarch64_types_unsigned_shiftacc_qualifiers): Define.
1822 * gcc/config/aarch64/aarch64-simd-builtins.def (uqshl, uqrshl, uqadd,
1823 uqsub, usqadd, usra_n, ursra_n, uqshrn_n, uqrshrn_n, usri_n, usli_n,
1824 sqshlu_n, uqshl_n): Update qualifiers.
1825 * gcc/config/aarch64/arm_neon.h (vqadd_u8, vqadd_u16, vqadd_u32,
1826 vqadd_u64, vqaddq_u8, vqaddq_u16, vqaddq_u32, vqaddq_u64, vqsub_u8,
1827 vqsub_u16, vqsub_u32, vqsub_u64, vqsubq_u8, vqsubq_u16, vqsubq_u32,
1828 vqsubq_u64, vqaddb_u8, vqaddh_u16, vqadds_u32, vqaddd_u64, vqrshl_u8,
1829 vqrshl_u16, vqrshl_u32, vqrshl_u64, vqrshlq_u8, vqrshlq_u16,
1830 vqrshlq_u32, vqrshlq_u64, vqrshlb_u8, vqrshlh_u16, vqrshls_u32,
1831 vqrshld_u64, vqrshrn_n_u16, vqrshrn_n_u32, vqrshrn_n_u64,
1832 vqrshrnh_n_u16, vqrshrns_n_u32, vqrshrnd_n_u64, vqshl_u8, vqshl_u16,
1833 vqshl_u32, vqshl_u64, vqshlq_u8, vqshlq_u16, vqshlq_u32, vqshlq_u64,
1834 vqshlb_u8, vqshlh_u16, vqshls_u32, vqshld_u64, vqshl_n_u8, vqshl_n_u16,
1835 vqshl_n_u32, vqshl_n_u64, vqshlq_n_u8, vqshlq_n_u16, vqshlq_n_u32,
1836 vqshlq_n_u64, vqshlb_n_u8, vqshlh_n_u16, vqshls_n_u32, vqshld_n_u64,
1837 vqshlu_n_s8, vqshlu_n_s16, vqshlu_n_s32, vqshlu_n_s64, vqshluq_n_s8,
1838 vqshluq_n_s16, vqshluq_n_s32, vqshluq_n_s64, vqshlub_n_s8,
1839 vqshluh_n_s16, vqshlus_n_s32, vqshlud_n_s64, vqshrn_n_u16,
1840 vqshrn_n_u32, vqshrn_n_u64, vqshrnh_n_u16, vqshrns_n_u32,
1841 vqshrnd_n_u64, vqsubb_u8, vqsubh_u16, vqsubs_u32, vqsubd_u64,
1842 vrsra_n_u8, vrsra_n_u16, vrsra_n_u32, vrsra_n_u64, vrsraq_n_u8,
1843 vrsraq_n_u16, vrsraq_n_u32, vrsraq_n_u64, vrsrad_n_u64, vsli_n_u8,
1844 vsli_n_u16, vsli_n_u32,vsli_n_u64, vsliq_n_u8, vsliq_n_u16,
1845 vsliq_n_u32, vsliq_n_u64, vslid_n_u64, vsqadd_u8, vsqadd_u16,
1846 vsqadd_u32, vsqadd_u64, vsqaddq_u8, vsqaddq_u16, vsqaddq_u32,
1847 vsqaddq_u64, vsqaddb_u8, vsqaddh_u16, vsqadds_u32, vsqaddd_u64,
1848 vsra_n_u8, vsra_n_u16, vsra_n_u32, vsra_n_u64, vsraq_n_u8,
1849 vsraq_n_u16, vsraq_n_u32, vsraq_n_u64, vsrad_n_u64, vsri_n_u8,
1850 vsri_n_u16, vsri_n_u32, vsri_n_u64, vsriq_n_u8, vsriq_n_u16,
1851 vsriq_n_u32, vsriq_n_u64, vsrid_n_u64): Remove casts.
1853 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
1855 * gcc/config/aarch64/aarch64-builtins.c
1856 (aarch64_types_binop_ssu_qualifiers): New static data.
1857 (TYPES_BINOP_SSU): Define.
1858 * gcc/config/aarch64/aarch64-simd-builtins.def (suqadd, ushl, urshl,
1859 urshr_n, ushll_n): Use appropriate unsigned qualifiers. 47
1860 * gcc/config/aarch64/arm_neon.h (vrshl_u8, vrshl_u16, vrshl_u32,
1861 vrshl_u64, vrshlq_u8, vrshlq_u16, vrshlq_u32, vrshlq_u64, vrshld_u64,
1862 vrshr_n_u8, vrshr_n_u16, vrshr_n_u32, vrshr_n_u64, vrshrq_n_u8, 50
1863 vrshrq_n_u16, vrshrq_n_u32, vrshrq_n_u64, vrshrd_n_u64, vshll_n_u8,
1864 vshll_n_u16, vshll_n_u32, vuqadd_s8, vuqadd_s16, vuqadd_s32, 52
1865 vuqadd_s64, vuqaddq_s8, vuqaddq_s16, vuqaddq_s32, vuqaddq_s64, 53
1866 vuqaddb_s8, vuqaddh_s16, vuqadds_s32, vuqaddd_s64): Add signedness
1867 suffix to builtin function name, remove cast. 55
1868 (vshl_s8, vshl_s16, vshl_s32, vshl_s64, vshl_u8, vshl_u16, vshl_u32,
1869 vshl_u64, vshlq_s8, vshlq_s16, vshlq_s32, vshlq_s64, vshlq_u8, 57
1870 vshlq_u16, vshlq_u32, vshlq_u64, vshld_s64, vshld_u64): Remove cast.
1872 2014-07-16 Yvan Roux <yvan.roux@linaro.org>
1874 Backport from trunk r211408, 211416.
1875 2014-06-10 Marcus Shawcroft <marcus.shawcroft@arm.com>
1877 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs): Fix
1878 REG_CFA_RESTORE mode.
1880 2014-06-10 Jiong Wang <jiong.wang@arm.com>
1882 * config/aarch64/aarch64.c (aarch64_save_or_restore_fprs)
1883 (aarch64_save_or_restore_callee_save_registers): Fix layout.
1885 2014-07-16 Yvan Roux <yvan.roux@linaro.org>
1887 Backport from trunk r211418.
1888 2014-06-10 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1890 * config/aarch64/aarch64-simd.md (move_lo_quad_<mode>):
1891 Change second alternative type to f_mcr.
1892 * config/aarch64/aarch64.md (*movsi_aarch64): Change 11th
1893 and 12th alternatives' types to f_mcr and f_mrc.
1894 (*movdi_aarch64): Same for 12th and 13th alternatives.
1895 (*movsf_aarch64): Change 9th alternatives' type to mov_reg.
1896 (aarch64_movtilow_tilow): Change type to fmov.
1898 2014-07-16 Yvan Roux <yvan.roux@linaro.org>
1900 Backport from trunk r211371.
1901 2014-06-09 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1903 * config/arm/arm-modes.def: Remove XFmode.
1905 2014-07-16 Yvan Roux <yvan.roux@linaro.org>
1907 Backport from trunk r211268.
1908 2014-06-05 Marcus Shawcroft <marcus.shawcroft@arm.com>
1910 * config/aarch64/aarch64.c (aarch64_expand_prologue): Update stack
1913 2014-07-16 Yvan Roux <yvan.roux@linaro.org>
1915 Backport from trunk r211129.
1916 2014-06-02 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
1919 * config/arm/arm.h (TARGET_SUPPORTS_WIDE_INT): Define.
1920 * config/arm/arm.md (mov64 splitter): Replace const_double_operand
1921 with immediate_operand.
1923 2014-07-16 Yvan Roux <yvan.roux@linaro.org>
1925 Backport from trunk r211073.
1926 2014-05-30 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1928 * config/arm/thumb2.md (*thumb2_movhi_insn): Set type of movw
1930 * config/arm/vfp.md (*thumb2_movsi_vfp): Likewise.
1932 2014-07-16 Yvan Roux <yvan.roux@linaro.org>
1934 Backport from trunk r211050.
1935 2014-05-29 Richard Earnshaw <rearnsha@arm.com>
1936 Richard Sandiford <rdsandiford@googlemail.com>
1938 * arm/iterators.md (shiftable_ops): New code iterator.
1939 (t2_binop0, arith_shift_insn): New code attributes.
1940 * arm/predicates.md (shift_nomul_operator): New predicate.
1941 * arm/arm.md (insn_enabled): Delete.
1942 (enabled): Remove insn_enabled test.
1943 (*arith_shiftsi): Delete. Replace with ...
1944 (*<arith_shift_insn>_multsi): ... new pattern.
1945 (*<arith_shift_insn>_shiftsi): ... new pattern.
1946 * config/arm/arm.c (arm_print_operand): Handle operand format 'b'.
1948 2014-07-16 Yvan Roux <yvan.roux@linaro.org>
1950 Backport from trunk r210996.
1951 2014-05-27 Andrew Pinski <apinski@cavium.com>
1953 * config/aarch64/aarch64.md (stack_protect_set_<mode>):
1954 Use <w> for the register in assembly template.
1955 (stack_protect_test): Use the mode of operands[0] for the
1957 (stack_protect_test_<mode>): Use <w> for the register
1958 in assembly template.
1960 2014-07-16 Yvan Roux <yvan.roux@linaro.org>
1962 Backport from trunk r210967.
1963 2014-05-27 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1965 * config/arm/neon.md (neon_bswap<mode>): New pattern.
1966 * config/arm/arm.c (neon_itype): Add NEON_BSWAP.
1967 (arm_init_neon_builtins): Handle NEON_BSWAP.
1968 Define required type nodes.
1969 (arm_expand_neon_builtin): Handle NEON_BSWAP.
1970 (arm_builtin_vectorized_function): Handle BUILTIN_BSWAP builtins.
1971 * config/arm/arm_neon_builtins.def (bswap): Define builtins.
1972 * config/arm/iterators.md (VDQHSD): New mode iterator.
1974 2014-07-16 Yvan Roux <yvan.roux@linaro.org>
1976 Backport from trunk r210471.
1977 2014-05-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1979 * config/arm/arm.c (arm_option_override): Use the SCHED_PRESSURE_MODEL
1980 enum name for PARAM_SCHED_PRESSURE_ALGORITHM.
1982 2014-07-16 Yvan Roux <yvan.roux@linaro.org>
1984 Backport from trunk r210369.
1985 2014-05-13 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
1987 * config/arm/arm.c (neon_itype): Remove NEON_RESULTPAIR.
1988 (arm_init_neon_builtins): Remove handling of NEON_RESULTPAIR.
1989 Remove associated type declarations and initialisations.
1990 (arm_expand_neon_builtin): Likewise.
1991 (neon_emit_pair_result_insn): Delete.
1992 * config/arm/arm_neon_builtins (vtrn, vzip, vuzp): Delete.
1993 * config/arm/neon.md (neon_vtrn<mode>): Delete.
1994 (neon_vzip<mode>): Likewise.
1995 (neon_vuzp<mode>): Likewise.
1997 2014-07-16 Yvan Roux <yvan.roux@linaro.org>
1999 Backport from trunk r211058, 211177.
2000 2014-05-29 Alan Lawrence <alan.lawrence@arm.com>
2002 * config/aarch64/aarch64-builtins.c (aarch64_types_binopv_qualifiers,
2003 TYPES_BINOPV): New static data.
2004 * config/aarch64/aarch64-simd-builtins.def (im_lane_bound): New builtin.
2005 * config/aarch64/aarch64-simd.md (aarch64_ext, aarch64_im_lane_boundsi):
2007 * config/aarch64/aarch64.c (aarch64_expand_vec_perm_const_1): Match
2009 (aarch64_evpc_ext): New function.
2011 * config/aarch64/iterators.md (UNSPEC_EXT): New enum element.
2013 * config/aarch64/arm_neon.h (vext_f32, vext_f64, vext_p8, vext_p16,
2014 vext_s8, vext_s16, vext_s32, vext_s64, vext_u8, vext_u16, vext_u32,
2015 vext_u64, vextq_f32, vextq_f64, vextq_p8, vextq_p16, vextq_s8,
2016 vextq_s16, vextq_s32, vextq_s64, vextq_u8, vextq_u16, vextq_u32,
2017 vextq_u64): Replace __asm with __builtin_shuffle and im_lane_boundsi.
2019 2014-06-03 Alan Lawrence <alan.lawrence@arm.com>
2021 * config/aarch64/aarch64.c (aarch64_evpc_ext): allow and handle
2024 2014-07-16 Yvan Roux <yvan.roux@linaro.org>
2026 Backport from trunk r209797.
2027 2014-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2029 * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p):
2030 Use HOST_WIDE_INT_C for mask literal.
2031 (aarch_rev16_shleft_mask_imm_p): Likewise.
2033 2014-07-16 Yvan Roux <yvan.roux@linaro.org>
2035 Backport from trunk r211148.
2036 2014-06-02 Andrew Pinski <apinski@cavium.com>
2038 * config/aarch64/aarch64-linux.h (GLIBC_DYNAMIC_LINKER):
2039 /lib/ld-linux32-aarch64.so.1 is used for ILP32.
2040 (LINUX_TARGET_LINK_SPEC): Update linker script for ILP32.
2041 file whose name depends on -mabi= and -mbig-endian.
2042 * config/aarch64/t-aarch64-linux (MULTILIB_OSDIRNAMES): Handle LP64
2043 better and handle ilp32 too.
2044 (MULTILIB_OPTIONS): Delete.
2045 (MULTILIB_DIRNAMES): Delete.
2047 2014-07-16 Yvan Roux <yvan.roux@linaro.org>
2049 Backport from trunk r210828, r211103.
2050 2014-05-31 Kugan Vivekanandarajah <kuganv@linaro.org>
2052 * config/arm/arm.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New define.
2053 (arm_builtins) : Add ARM_BUILTIN_GET_FPSCR and ARM_BUILTIN_SET_FPSCR.
2054 (bdesc_2arg) : Add description for builtins __builtins_arm_set_fpscr
2055 and __builtins_arm_get_fpscr.
2056 (arm_init_builtins) : Initialize builtins __builtins_arm_set_fpscr and
2057 __builtins_arm_get_fpscr.
2058 (arm_expand_builtin) : Expand builtins __builtins_arm_set_fpscr and
2059 __builtins_arm_ldfpscr.
2060 (arm_atomic_assign_expand_fenv): New function.
2061 * config/arm/vfp.md (set_fpscr): New pattern.
2062 (get_fpscr) : Likewise.
2063 * config/arm/unspecs.md (unspecv): Add VUNSPEC_GET_FPSCR and
2065 * doc/extend.texi (AARCH64 Built-in Functions) : Document
2066 __builtins_arm_set_fpscr, __builtins_arm_get_fpscr.
2068 2014-05-23 Kugan Vivekanandarajah <kuganv@linaro.org>
2070 * config/aarch64/aarch64.c (TARGET_ATOMIC_ASSIGN_EXPAND_FENV): New
2072 * config/aarch64/aarch64-protos.h (aarch64_atomic_assign_expand_fenv):
2073 New function declaration.
2074 * config/aarch64/aarch64-builtins.c (aarch64_builtins) : Add
2075 AARCH64_BUILTIN_GET_FPCR, AARCH64_BUILTIN_SET_FPCR.
2076 AARCH64_BUILTIN_GET_FPSR and AARCH64_BUILTIN_SET_FPSR.
2077 (aarch64_init_builtins) : Initialize builtins
2078 __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
2079 __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
2080 (aarch64_expand_builtin) : Expand builtins __builtins_aarch64_set_fpcr
2081 __builtins_aarch64_get_fpcr, __builtins_aarch64_get_fpsr,
2082 and __builtins_aarch64_set_fpsr.
2083 (aarch64_atomic_assign_expand_fenv): New function.
2084 * config/aarch64/aarch64.md (set_fpcr): New pattern.
2085 (get_fpcr) : Likewise.
2086 (set_fpsr) : Likewise.
2087 (get_fpsr) : Likewise.
2088 (unspecv): Add UNSPECV_GET_FPCR and UNSPECV_SET_FPCR, UNSPECV_GET_FPSR
2089 and UNSPECV_SET_FPSR.
2090 * doc/extend.texi (AARCH64 Built-in Functions) : Document
2091 __builtins_aarch64_set_fpcr, __builtins_aarch64_get_fpcr.
2092 __builtins_aarch64_set_fpsr and __builtins_aarch64_get_fpsr.
2094 2014-07-16 Yvan Roux <yvan.roux@linaro.org>
2096 Backport from trunk r210355.
2097 2014-05-13 Ian Bolton <ian.bolton@arm.com>
2099 * config/aarch64/aarch64-protos.h
2100 (aarch64_hard_regno_caller_save_mode): New prototype.
2101 * config/aarch64/aarch64.c (aarch64_hard_regno_caller_save_mode):
2103 * config/aarch64/aarch64.h (HARD_REGNO_CALLER_SAVE_MODE): New macro.
2105 2014-07-16 Yvan Roux <yvan.roux@linaro.org>
2107 Backport from trunk r209943.
2108 2014-04-30 Alan Lawrence <alan.lawrence@arm.com>
2110 * config/aarch64/arm_neon.h (vuzp1_f32, vuzp1_p8, vuzp1_p16, vuzp1_s8,
2111 vuzp1_s16, vuzp1_s32, vuzp1_u8, vuzp1_u16, vuzp1_u32, vuzp1q_f32,
2112 vuzp1q_f64, vuzp1q_p8, vuzp1q_p16, vuzp1q_s8, vuzp1q_s16, vuzp1q_s32,
2113 vuzp1q_s64, vuzp1q_u8, vuzp1q_u16, vuzp1q_u32, vuzp1q_u64, vuzp2_f32,
2114 vuzp2_p8, vuzp2_p16, vuzp2_s8, vuzp2_s16, vuzp2_s32, vuzp2_u8,
2115 vuzp2_u16, vuzp2_u32, vuzp2q_f32, vuzp2q_f64, vuzp2q_p8, vuzp2q_p16,
2116 vuzp2q_s8, vuzp2q_s16, vuzp2q_s32, vuzp2q_s64, vuzp2q_u8, vuzp2q_u16,
2117 vuzp2q_u32, vuzp2q_u64): Replace temporary asm with __builtin_shuffle.
2119 2014-06-26 Yvan Roux <yvan.roux@linaro.org>
2121 * LINARO-VERSION: Bump version.
2123 2014-06-25 Yvan Roux <yvan.roux@linaro.org>
2125 GCC Linaro 4.9-2014.06-1 released.
2126 * LINARO-VERSION: Update.
2128 2014-06-24 Yvan Roux <yvan.roux@linaro.org>
2131 2014-05-23 Yvan Roux <yvan.roux@linaro.org>
2133 Backport from trunk r209643.
2134 2014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2136 * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
2138 2014-06-13 Yvan Roux <yvan.roux@linaro.org>
2140 Backport from trunk r210493, 210494, 210495, 210496, 210497, 210498,
2141 210499, 210500, 210501, 210502, 210503, 210504, 210505, 210506, 210507,
2142 210508, 210509, 210510, 210512, 211205, 211206.
2143 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
2145 * config/aarch64/aarch64-protos.h (scale_addr_mode_cost): New.
2146 (cpu_addrcost_table): Use it.
2147 * config/aarch64/aarch64.c (generic_addrcost_table): Initialize it.
2148 (aarch64_address_cost): Rewrite using aarch64_classify_address,
2151 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
2153 * config/aarch64/aarch64.c (cortexa57_addrcost_table): New.
2154 (cortexa57_vector_cost): Likewise.
2155 (cortexa57_tunings): Use them.
2157 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
2159 * config/aarch64/aarch64.c (aarch64_rtx_costs_wrapper): New.
2160 (TARGET_RTX_COSTS): Call it.
2162 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
2163 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
2165 * config/aarch64/aarch64.c (aarch64_build_constant): Conditionally
2166 emit instructions, return number of instructions which would
2168 (aarch64_add_constant): Update call to aarch64_build_constant.
2169 (aarch64_output_mi_thunk): Likewise.
2170 (aarch64_rtx_costs): Estimate cost of a CONST_INT, cost
2173 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
2174 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
2176 * config/aarch64/aarch64.c (aarch64_strip_shift_or_extend): Rename
2178 (aarch64_strip_extend): ...this, don't strip shifts, check RTX is
2180 (aarch64_rtx_mult_cost): New.
2181 (aarch64_rtx_costs): Use it, refactor as appropriate.
2183 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
2185 * config/aarch64/aarch64.c (aarch64_rtx_costs): Set default costs.
2187 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
2188 Philip Tomsich <philipp.tomsich@theobroma-systems.com>
2190 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costing
2193 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
2194 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
2196 * config/aarch64/aarch64.c (aarch64_rtx_costs): Use address
2197 costs when costing loads and stores to memory.
2199 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
2200 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
2202 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve cost for
2205 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
2206 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
2208 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost
2209 ZERO_EXTEND and SIGN_EXTEND better.
2211 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
2212 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
2214 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
2217 2014-03-16 James Greenhalgh <james.greenhalgh@arm.com>
2218 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
2220 * config/aarch64/aarch64.c (aarch64_rtx_arith_op_extract_p): New.
2221 (aarch64_rtx_costs): Improve costs for SIGN/ZERO_EXTRACT.
2223 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
2224 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
2226 * config/aarch64/aarch64.c (aarch64_rtx_costs): Improve costs for
2229 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
2230 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
2232 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost comparison
2235 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
2236 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
2238 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost FMA,
2239 FLOAT_EXTEND, FLOAT_TRUNCATE, ABS, SMAX, and SMIN.
2241 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
2242 Philipp Tomsich <philipp.tomsich@theobroma-systems.com>
2244 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost TRUNCATE.
2246 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
2248 * config/aarch64/aarch64.c (aarch64_rtx_costs): Cost SYMBOL_REF,
2251 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
2253 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle the case
2254 where we were unable to cost an RTX.
2256 2014-05-16 James Greenhalgh <james.greenhalgh@arm.com>
2258 * config/aarch64/aarch64.c (aarch64_rtx_mult_cost): Fix FNMUL case.
2260 2014-06-03 Andrew Pinski <apinski@cavium.com>
2262 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): New function.
2263 (aarch64_rtx_costs): Use aarch64_if_then_else_costs.
2265 2014-06-03 Andrew Pinski <apinski@cavium.com>
2267 * config/aarch64/aarch64.c (aarch64_if_then_else_costs): Allow non
2268 comparisons for OP0.
2270 2014-06-13 Yvan Roux <yvan.roux@linaro.org>
2272 * LINARO-VERSION: Bump version.
2274 2014-06-12 Yvan Roux <yvan.roux@linaro.org>
2276 GCC Linaro 4.9-2014.06 released.
2277 * LINARO-VERSION: Update.
2279 2014-06-04 Yvan Roux <yvan.roux@linaro.org>
2281 Backport from trunk r211211.
2282 2014-06-04 Bin Cheng <bin.cheng@arm.com>
2284 * config/aarch64/aarch64.c (aarch64_classify_address)
2285 (aarch64_legitimize_reload_address): Support full addressing modes
2287 * config/aarch64/aarch64.md (mov<mode>, movmisalign<mode>)
2288 (*aarch64_simd_mov<mode>, *aarch64_simd_mov<mode>): Relax predicates.
2290 2014-05-25 Yvan Roux <yvan.roux@linaro.org>
2292 Backport from trunk r209906.
2293 2014-04-29 Alan Lawrence <alan.lawrence@arm.com>
2295 * config/aarch64/arm_neon.h (vzip1_f32, vzip1_p8, vzip1_p16, vzip1_s8,
2296 vzip1_s16, vzip1_s32, vzip1_u8, vzip1_u16, vzip1_u32, vzip1q_f32,
2297 vzip1q_f64, vzip1q_p8, vzip1q_p16, vzip1q_s8, vzip1q_s16, vzip1q_s32,
2298 vzip1q_s64, vzip1q_u8, vzip1q_u16, vzip1q_u32, vzip1q_u64, vzip2_f32,
2299 vzip2_p8, vzip2_p16, vzip2_s8, vzip2_s16, vzip2_s32, vzip2_u8,
2300 vzip2_u16, vzip2_u32, vzip2q_f32, vzip2q_f64, vzip2q_p8, vzip2q_p16,
2301 vzip2q_s8, vzip2q_s16, vzip2q_s32, vzip2q_s64, vzip2q_u8, vzip2q_u16,
2302 vzip2q_u32, vzip2q_u64): Replace inline __asm__ with __builtin_shuffle.
2304 2014-05-25 Yvan Roux <yvan.roux@linaro.org>
2306 Backport from trunk r209897.
2307 2014-04-29 James Greenhalgh <james.greenhalgh@arm.com>
2309 * calls.c (initialize_argument_information): Always treat
2310 PUSH_ARGS_REVERSED as 1, simplify code accordingly.
2311 (expand_call): Likewise.
2312 (emit_library_call_calue_1): Likewise.
2313 * expr.c (PUSH_ARGS_REVERSED): Do not define.
2314 (emit_push_insn): Always treat PUSH_ARGS_REVERSED as 1, simplify
2317 2014-05-25 Yvan Roux <yvan.roux@linaro.org>
2319 Backport from trunk r209880.
2320 2014-04-28 James Greenhalgh <james.greenhalgh@arm.com>
2322 * config/aarch64/aarch64-builtins.c
2323 (aarch64_types_storestruct_lane_qualifiers): New.
2324 (TYPES_STORESTRUCT_LANE): Likewise.
2325 * config/aarch64/aarch64-simd-builtins.def (st2_lane): New.
2326 (st3_lane): Likewise.
2327 (st4_lane): Likewise.
2328 * config/aarch64/aarch64-simd.md (vec_store_lanesoi_lane<mode>): New.
2329 (vec_store_lanesci_lane<mode>): Likewise.
2330 (vec_store_lanesxi_lane<mode>): Likewise.
2331 (aarch64_st2_lane<VQ:mode>): Likewise.
2332 (aarch64_st3_lane<VQ:mode>): Likewise.
2333 (aarch64_st4_lane<VQ:mode>): Likewise.
2334 * config/aarch64/aarch64.md (unspec): Add UNSPEC_ST{2,3,4}_LANE.
2335 * config/aarch64/arm_neon.h
2336 (__ST2_LANE_FUNC): Rewrite using builtins, update use points to
2337 use new macro arguments.
2338 (__ST3_LANE_FUNC): Likewise.
2339 (__ST4_LANE_FUNC): Likewise.
2340 * config/aarch64/iterators.md (V_TWO_ELEM): New.
2341 (V_THREE_ELEM): Likewise.
2342 (V_FOUR_ELEM): Likewise.
2344 2014-05-25 Yvan Roux <yvan.roux@linaro.org>
2346 Backport from trunk r209878.
2347 2014-04-28 James Greenhalgh <james.greenhalgh@arm.com>
2349 * config/aarch64/aarch64-protos.h (aarch64_modes_tieable_p): New.
2350 * config/aarch64/aarch64.c
2351 (aarch64_cannot_change_mode_class): Weaken conditions.
2352 (aarch64_modes_tieable_p): New.
2353 * config/aarch64/aarch64.h (MODES_TIEABLE_P): Use it.
2355 2014-05-25 Yvan Roux <yvan.roux@linaro.org>
2357 Backport from trunk r209808.
2358 2014-04-25 Jiong Wang <jiong.wang@arm.com>
2360 * config/arm/predicates.md (call_insn_operand): Add long_call check.
2361 * config/arm/arm.md (sibcall, sibcall_value): Force the address to
2363 * config/arm/arm.c (arm_function_ok_for_sibcall): Remove long_call
2366 2014-05-25 Yvan Roux <yvan.roux@linaro.org>
2368 Backport from trunk r209806.
2369 2014-04-25 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2371 * config/arm/arm.c (arm_cortex_a8_tune): Initialise
2374 2014-05-25 Yvan Roux <yvan.roux@linaro.org>
2376 Backport from trunk r209742, 209749.
2377 2014-04-24 Alan Lawrence <alan.lawrence@arm.com>
2379 * config/aarch64/aarch64.c (aarch64_evpc_tbl): Enable for bigendian.
2381 2014-04-24 Tejas Belagod <tejas.belagod@arm.com>
2383 * config/aarch64/aarch64.c (aarch64_evpc_tbl): Reverse order of elements
2386 2014-05-23 Yvan Roux <yvan.roux@linaro.org>
2388 Backport from trunk r209736.
2389 2014-04-24 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2391 * config/aarch64/aarch64-builtins.c
2392 (aarch64_builtin_vectorized_function): Handle BUILT_IN_BSWAP16,
2393 BUILT_IN_BSWAP32, BUILT_IN_BSWAP64.
2394 * config/aarch64/aarch64-simd.md (bswap<mode>): New pattern.
2395 * config/aarch64/aarch64-simd-builtins.def: Define vector bswap
2397 * config/aarch64/iterator.md (VDQHSD): New mode iterator.
2398 (Vrevsuff): New mode attribute.
2400 2014-05-23 Yvan Roux <yvan.roux@linaro.org>
2402 Backport from trunk r209712.
2403 2014-04-23 Venkataramanan Kumar <venkataramanan.kumar@linaro.org>
2405 * config/aarch64/aarch64.md (stack_protect_set, stack_protect_test)
2406 (stack_protect_set_<mode>, stack_protect_test_<mode>): Add
2407 machine descriptions for Stack Smashing Protector.
2409 2014-05-23 Yvan Roux <yvan.roux@linaro.org>
2411 Backport from trunk r209711.
2412 2014-04-23 Richard Earnshaw <rearnsha@arm.com>
2414 * aarch64.md (<optab>_rol<mode>3): New pattern.
2415 (<optab>_rolsi3_uxtw): Likewise.
2416 * aarch64.c (aarch64_strip_shift): Handle ROTATE and ROTATERT.
2418 2014-05-23 Yvan Roux <yvan.roux@linaro.org>
2420 Backport from trunk r209710.
2421 2014-04-23 James Greenhalgh <james.greenhalgh@arm.com>
2423 * config/arm/arm.c (arm_cortex_a57_tune): Initialize all fields.
2424 (arm_cortex_a12_tune): Likewise.
2426 2014-05-23 Yvan Roux <yvan.roux@linaro.org>
2428 Backport from trunk r209706.
2429 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2431 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle BSWAP.
2433 2014-05-23 Yvan Roux <yvan.roux@linaro.org>
2435 Backport from trunk r209701, 209702, 209703, 209704, 209705.
2436 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2438 * config/arm/arm.md (arm_rev16si2): New pattern.
2439 (arm_rev16si2_alt): Likewise.
2440 * config/arm/arm.c (arm_new_rtx_costs): Handle rev16 case.
2442 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2443 * config/aarch64/aarch64.md (rev16<mode>2): New pattern.
2444 (rev16<mode>2_alt): Likewise.
2445 * config/aarch64/aarch64.c (aarch64_rtx_costs): Handle rev16 case.
2446 * config/arm/aarch-common.c (aarch_rev16_shright_mask_imm_p): New.
2447 (aarch_rev16_shleft_mask_imm_p): Likewise.
2448 (aarch_rev16_p_1): Likewise.
2449 (aarch_rev16_p): Likewise.
2450 * config/arm/aarch-common-protos.h (aarch_rev16_p): Declare extern.
2451 (aarch_rev16_shright_mask_imm_p): Likewise.
2452 (aarch_rev16_shleft_mask_imm_p): Likewise.
2454 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2456 * config/arm/aarch-common-protos.h (alu_cost_table): Add rev field.
2457 * config/arm/aarch-cost-tables.h (generic_extra_costs): Specify
2459 (cortex_a53_extra_costs): Likewise.
2460 (cortex_a57_extra_costs): Likewise.
2461 * config/arm/arm.c (cortexa9_extra_costs): Likewise.
2462 (cortexa7_extra_costs): Likewise.
2463 (cortexa8_extra_costs): Likewise.
2464 (cortexa12_extra_costs): Likewise.
2465 (cortexa15_extra_costs): Likewise.
2466 (v7m_extra_costs): Likewise.
2467 (arm_new_rtx_costs): Handle BSWAP.
2469 2013-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2471 * config/arm/arm.c (cortexa8_extra_costs): New table.
2472 (arm_cortex_a8_tune): New tuning struct.
2473 * config/arm/arm-cores.def (cortex-a8): Use cortex_a8 tuning struct.
2475 2014-04-23 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2477 * config/arm/arm.c (arm_new_rtx_costs): Handle FMA.
2479 2014-05-23 Yvan Roux <yvan.roux@linaro.org>
2481 Backport from trunk r209659.
2482 2014-04-22 Richard Henderson <rth@redhat.com>
2484 * config/aarch64/aarch64 (addti3, subti3): New expanders.
2485 (add<GPI>3_compare0): Remove leading * from name.
2486 (add<GPI>3_carryin): Likewise.
2487 (sub<GPI>3_compare0): Likewise.
2488 (sub<GPI>3_carryin): Likewise.
2489 (<su_optab>mulditi3): New expander.
2490 (multi3): New expander.
2491 (madd<GPI>): Remove leading * from name.
2493 2014-05-23 Yvan Roux <yvan.roux@linaro.org>
2495 Backport from trunk r209645.
2496 2014-04-22 Andrew Pinski <apinski@cavium.com>
2498 * config/aarch64/aarch64.c (aarch64_load_symref_appropriately):
2499 Handle TLS for ILP32.
2500 * config/aarch64/aarch64.md (tlsie_small): Rename to ...
2501 (tlsie_small_<mode>): this and handle PTR.
2502 (tlsie_small_sidi): New pattern.
2503 (tlsle_small): Change to an expand to handle ILP32.
2504 (tlsle_small_<mode>): New pattern.
2505 (tlsdesc_small): Rename to ...
2506 (tlsdesc_small_<mode>): this and handle PTR.
2508 2014-05-23 Yvan Roux <yvan.roux@linaro.org>
2510 Backport from trunk r209643.
2511 2014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2513 * config/aarch64/aarch64.c (TARGET_FLAGS_REGNUM): Define.
2515 2014-05-23 Yvan Roux <yvan.roux@linaro.org>
2517 Backport from trunk r209641, 209642.
2518 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
2520 * config/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
2521 (aarch64_types_signed_unsigned_qualifiers): Qualifier added.
2522 (aarch64_types_signed_poly_qualifiers): Likewise.
2523 (aarch64_types_unsigned_signed_qualifiers): Likewise.
2524 (aarch64_types_poly_signed_qualifiers): Likewise.
2525 (TYPES_REINTERP_SS): Type macro added.
2526 (TYPES_REINTERP_SU): Likewise.
2527 (TYPES_REINTERP_SP): Likewise.
2528 (TYPES_REINTERP_US): Likewise.
2529 (TYPES_REINTERP_PS): Likewise.
2530 (aarch64_fold_builtin): New expression folding added.
2531 * config/aarch64/aarch64-simd-builtins.def (REINTERP):
2532 Declarations removed.
2533 (REINTERP_SS): Declarations added.
2534 (REINTERP_US): Likewise.
2535 (REINTERP_PS): Likewise.
2536 (REINTERP_SU): Likewise.
2537 (REINTERP_SP): Likewise.
2538 * config/aarch64/arm_neon.h (vreinterpret_p8_f64): Implemented.
2539 (vreinterpretq_p8_f64): Likewise.
2540 (vreinterpret_p16_f64): Likewise.
2541 (vreinterpretq_p16_f64): Likewise.
2542 (vreinterpret_f32_f64): Likewise.
2543 (vreinterpretq_f32_f64): Likewise.
2544 (vreinterpret_f64_f32): Likewise.
2545 (vreinterpret_f64_p8): Likewise.
2546 (vreinterpret_f64_p16): Likewise.
2547 (vreinterpret_f64_s8): Likewise.
2548 (vreinterpret_f64_s16): Likewise.
2549 (vreinterpret_f64_s32): Likewise.
2550 (vreinterpret_f64_s64): Likewise.
2551 (vreinterpret_f64_u8): Likewise.
2552 (vreinterpret_f64_u16): Likewise.
2553 (vreinterpret_f64_u32): Likewise.
2554 (vreinterpret_f64_u64): Likewise.
2555 (vreinterpretq_f64_f32): Likewise.
2556 (vreinterpretq_f64_p8): Likewise.
2557 (vreinterpretq_f64_p16): Likewise.
2558 (vreinterpretq_f64_s8): Likewise.
2559 (vreinterpretq_f64_s16): Likewise.
2560 (vreinterpretq_f64_s32): Likewise.
2561 (vreinterpretq_f64_s64): Likewise.
2562 (vreinterpretq_f64_u8): Likewise.
2563 (vreinterpretq_f64_u16): Likewise.
2564 (vreinterpretq_f64_u32): Likewise.
2565 (vreinterpretq_f64_u64): Likewise.
2566 (vreinterpret_s64_f64): Likewise.
2567 (vreinterpretq_s64_f64): Likewise.
2568 (vreinterpret_u64_f64): Likewise.
2569 (vreinterpretq_u64_f64): Likewise.
2570 (vreinterpret_s8_f64): Likewise.
2571 (vreinterpretq_s8_f64): Likewise.
2572 (vreinterpret_s16_f64): Likewise.
2573 (vreinterpretq_s16_f64): Likewise.
2574 (vreinterpret_s32_f64): Likewise.
2575 (vreinterpretq_s32_f64): Likewise.
2576 (vreinterpret_u8_f64): Likewise.
2577 (vreinterpretq_u8_f64): Likewise.
2578 (vreinterpret_u16_f64): Likewise.
2579 (vreinterpretq_u16_f64): Likewise.
2580 (vreinterpret_u32_f64): Likewise.
2581 (vreinterpretq_u32_f64): Likewise.
2583 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
2585 * config/aarch64/aarch64/aarch64-builtins.c (TYPES_REINTERP): Removed.
2586 * config/aarch64/aarch64/aarch64-simd-builtins.def (REINTERP): Removed.
2587 (vreinterpret_p8_s8): Likewise.
2588 * config/aarch64/aarch64/arm_neon.h (vreinterpret_p8_s8): Uses cast.
2589 (vreinterpret_p8_s16): Likewise.
2590 (vreinterpret_p8_s32): Likewise.
2591 (vreinterpret_p8_s64): Likewise.
2592 (vreinterpret_p8_f32): Likewise.
2593 (vreinterpret_p8_u8): Likewise.
2594 (vreinterpret_p8_u16): Likewise.
2595 (vreinterpret_p8_u32): Likewise.
2596 (vreinterpret_p8_u64): Likewise.
2597 (vreinterpret_p8_p16): Likewise.
2598 (vreinterpretq_p8_s8): Likewise.
2599 (vreinterpretq_p8_s16): Likewise.
2600 (vreinterpretq_p8_s32): Likewise.
2601 (vreinterpretq_p8_s64): Likewise.
2602 (vreinterpretq_p8_f32): Likewise.
2603 (vreinterpretq_p8_u8): Likewise.
2604 (vreinterpretq_p8_u16): Likewise.
2605 (vreinterpretq_p8_u32): Likewise.
2606 (vreinterpretq_p8_u64): Likewise.
2607 (vreinterpretq_p8_p16): Likewise.
2608 (vreinterpret_p16_s8): Likewise.
2609 (vreinterpret_p16_s16): Likewise.
2610 (vreinterpret_p16_s32): Likewise.
2611 (vreinterpret_p16_s64): Likewise.
2612 (vreinterpret_p16_f32): Likewise.
2613 (vreinterpret_p16_u8): Likewise.
2614 (vreinterpret_p16_u16): Likewise.
2615 (vreinterpret_p16_u32): Likewise.
2616 (vreinterpret_p16_u64): Likewise.
2617 (vreinterpret_p16_p8): Likewise.
2618 (vreinterpretq_p16_s8): Likewise.
2619 (vreinterpretq_p16_s16): Likewise.
2620 (vreinterpretq_p16_s32): Likewise.
2621 (vreinterpretq_p16_s64): Likewise.
2622 (vreinterpretq_p16_f32): Likewise.
2623 (vreinterpretq_p16_u8): Likewise.
2624 (vreinterpretq_p16_u16): Likewise.
2625 (vreinterpretq_p16_u32): Likewise.
2626 (vreinterpretq_p16_u64): Likewise.
2627 (vreinterpretq_p16_p8): Likewise.
2628 (vreinterpret_f32_s8): Likewise.
2629 (vreinterpret_f32_s16): Likewise.
2630 (vreinterpret_f32_s32): Likewise.
2631 (vreinterpret_f32_s64): Likewise.
2632 (vreinterpret_f32_u8): Likewise.
2633 (vreinterpret_f32_u16): Likewise.
2634 (vreinterpret_f32_u32): Likewise.
2635 (vreinterpret_f32_u64): Likewise.
2636 (vreinterpret_f32_p8): Likewise.
2637 (vreinterpret_f32_p16): Likewise.
2638 (vreinterpretq_f32_s8): Likewise.
2639 (vreinterpretq_f32_s16): Likewise.
2640 (vreinterpretq_f32_s32): Likewise.
2641 (vreinterpretq_f32_s64): Likewise.
2642 (vreinterpretq_f32_u8): Likewise.
2643 (vreinterpretq_f32_u16): Likewise.
2644 (vreinterpretq_f32_u32): Likewise.
2645 (vreinterpretq_f32_u64): Likewise.
2646 (vreinterpretq_f32_p8): Likewise.
2647 (vreinterpretq_f32_p16): Likewise.
2648 (vreinterpret_s64_s8): Likewise.
2649 (vreinterpret_s64_s16): Likewise.
2650 (vreinterpret_s64_s32): Likewise.
2651 (vreinterpret_s64_f32): Likewise.
2652 (vreinterpret_s64_u8): Likewise.
2653 (vreinterpret_s64_u16): Likewise.
2654 (vreinterpret_s64_u32): Likewise.
2655 (vreinterpret_s64_u64): Likewise.
2656 (vreinterpret_s64_p8): Likewise.
2657 (vreinterpret_s64_p16): Likewise.
2658 (vreinterpretq_s64_s8): Likewise.
2659 (vreinterpretq_s64_s16): Likewise.
2660 (vreinterpretq_s64_s32): Likewise.
2661 (vreinterpretq_s64_f32): Likewise.
2662 (vreinterpretq_s64_u8): Likewise.
2663 (vreinterpretq_s64_u16): Likewise.
2664 (vreinterpretq_s64_u32): Likewise.
2665 (vreinterpretq_s64_u64): Likewise.
2666 (vreinterpretq_s64_p8): Likewise.
2667 (vreinterpretq_s64_p16): Likewise.
2668 (vreinterpret_u64_s8): Likewise.
2669 (vreinterpret_u64_s16): Likewise.
2670 (vreinterpret_u64_s32): Likewise.
2671 (vreinterpret_u64_s64): Likewise.
2672 (vreinterpret_u64_f32): Likewise.
2673 (vreinterpret_u64_u8): Likewise.
2674 (vreinterpret_u64_u16): Likewise.
2675 (vreinterpret_u64_u32): Likewise.
2676 (vreinterpret_u64_p8): Likewise.
2677 (vreinterpret_u64_p16): Likewise.
2678 (vreinterpretq_u64_s8): Likewise.
2679 (vreinterpretq_u64_s16): Likewise.
2680 (vreinterpretq_u64_s32): Likewise.
2681 (vreinterpretq_u64_s64): Likewise.
2682 (vreinterpretq_u64_f32): Likewise.
2683 (vreinterpretq_u64_u8): Likewise.
2684 (vreinterpretq_u64_u16): Likewise.
2685 (vreinterpretq_u64_u32): Likewise.
2686 (vreinterpretq_u64_p8): Likewise.
2687 (vreinterpretq_u64_p16): Likewise.
2688 (vreinterpret_s8_s16): Likewise.
2689 (vreinterpret_s8_s32): Likewise.
2690 (vreinterpret_s8_s64): Likewise.
2691 (vreinterpret_s8_f32): Likewise.
2692 (vreinterpret_s8_u8): Likewise.
2693 (vreinterpret_s8_u16): Likewise.
2694 (vreinterpret_s8_u32): Likewise.
2695 (vreinterpret_s8_u64): Likewise.
2696 (vreinterpret_s8_p8): Likewise.
2697 (vreinterpret_s8_p16): Likewise.
2698 (vreinterpretq_s8_s16): Likewise.
2699 (vreinterpretq_s8_s32): Likewise.
2700 (vreinterpretq_s8_s64): Likewise.
2701 (vreinterpretq_s8_f32): Likewise.
2702 (vreinterpretq_s8_u8): Likewise.
2703 (vreinterpretq_s8_u16): Likewise.
2704 (vreinterpretq_s8_u32): Likewise.
2705 (vreinterpretq_s8_u64): Likewise.
2706 (vreinterpretq_s8_p8): Likewise.
2707 (vreinterpretq_s8_p16): Likewise.
2708 (vreinterpret_s16_s8): Likewise.
2709 (vreinterpret_s16_s32): Likewise.
2710 (vreinterpret_s16_s64): Likewise.
2711 (vreinterpret_s16_f32): Likewise.
2712 (vreinterpret_s16_u8): Likewise.
2713 (vreinterpret_s16_u16): Likewise.
2714 (vreinterpret_s16_u32): Likewise.
2715 (vreinterpret_s16_u64): Likewise.
2716 (vreinterpret_s16_p8): Likewise.
2717 (vreinterpret_s16_p16): Likewise.
2718 (vreinterpretq_s16_s8): Likewise.
2719 (vreinterpretq_s16_s32): Likewise.
2720 (vreinterpretq_s16_s64): Likewise.
2721 (vreinterpretq_s16_f32): Likewise.
2722 (vreinterpretq_s16_u8): Likewise.
2723 (vreinterpretq_s16_u16): Likewise.
2724 (vreinterpretq_s16_u32): Likewise.
2725 (vreinterpretq_s16_u64): Likewise.
2726 (vreinterpretq_s16_p8): Likewise.
2727 (vreinterpretq_s16_p16): Likewise.
2728 (vreinterpret_s32_s8): Likewise.
2729 (vreinterpret_s32_s16): Likewise.
2730 (vreinterpret_s32_s64): Likewise.
2731 (vreinterpret_s32_f32): Likewise.
2732 (vreinterpret_s32_u8): Likewise.
2733 (vreinterpret_s32_u16): Likewise.
2734 (vreinterpret_s32_u32): Likewise.
2735 (vreinterpret_s32_u64): Likewise.
2736 (vreinterpret_s32_p8): Likewise.
2737 (vreinterpret_s32_p16): Likewise.
2738 (vreinterpretq_s32_s8): Likewise.
2739 (vreinterpretq_s32_s16): Likewise.
2740 (vreinterpretq_s32_s64): Likewise.
2741 (vreinterpretq_s32_f32): Likewise.
2742 (vreinterpretq_s32_u8): Likewise.
2743 (vreinterpretq_s32_u16): Likewise.
2744 (vreinterpretq_s32_u32): Likewise.
2745 (vreinterpretq_s32_u64): Likewise.
2746 (vreinterpretq_s32_p8): Likewise.
2747 (vreinterpretq_s32_p16): Likewise.
2748 (vreinterpret_u8_s8): Likewise.
2749 (vreinterpret_u8_s16): Likewise.
2750 (vreinterpret_u8_s32): Likewise.
2751 (vreinterpret_u8_s64): Likewise.
2752 (vreinterpret_u8_f32): Likewise.
2753 (vreinterpret_u8_u16): Likewise.
2754 (vreinterpret_u8_u32): Likewise.
2755 (vreinterpret_u8_u64): Likewise.
2756 (vreinterpret_u8_p8): Likewise.
2757 (vreinterpret_u8_p16): Likewise.
2758 (vreinterpretq_u8_s8): Likewise.
2759 (vreinterpretq_u8_s16): Likewise.
2760 (vreinterpretq_u8_s32): Likewise.
2761 (vreinterpretq_u8_s64): Likewise.
2762 (vreinterpretq_u8_f32): Likewise.
2763 (vreinterpretq_u8_u16): Likewise.
2764 (vreinterpretq_u8_u32): Likewise.
2765 (vreinterpretq_u8_u64): Likewise.
2766 (vreinterpretq_u8_p8): Likewise.
2767 (vreinterpretq_u8_p16): Likewise.
2768 (vreinterpret_u16_s8): Likewise.
2769 (vreinterpret_u16_s16): Likewise.
2770 (vreinterpret_u16_s32): Likewise.
2771 (vreinterpret_u16_s64): Likewise.
2772 (vreinterpret_u16_f32): Likewise.
2773 (vreinterpret_u16_u8): Likewise.
2774 (vreinterpret_u16_u32): Likewise.
2775 (vreinterpret_u16_u64): Likewise.
2776 (vreinterpret_u16_p8): Likewise.
2777 (vreinterpret_u16_p16): Likewise.
2778 (vreinterpretq_u16_s8): Likewise.
2779 (vreinterpretq_u16_s16): Likewise.
2780 (vreinterpretq_u16_s32): Likewise.
2781 (vreinterpretq_u16_s64): Likewise.
2782 (vreinterpretq_u16_f32): Likewise.
2783 (vreinterpretq_u16_u8): Likewise.
2784 (vreinterpretq_u16_u32): Likewise.
2785 (vreinterpretq_u16_u64): Likewise.
2786 (vreinterpretq_u16_p8): Likewise.
2787 (vreinterpretq_u16_p16): Likewise.
2788 (vreinterpret_u32_s8): Likewise.
2789 (vreinterpret_u32_s16): Likewise.
2790 (vreinterpret_u32_s32): Likewise.
2791 (vreinterpret_u32_s64): Likewise.
2792 (vreinterpret_u32_f32): Likewise.
2793 (vreinterpret_u32_u8): Likewise.
2794 (vreinterpret_u32_u16): Likewise.
2795 (vreinterpret_u32_u64): Likewise.
2796 (vreinterpret_u32_p8): Likewise.
2797 (vreinterpret_u32_p16): Likewise.
2798 (vreinterpretq_u32_s8): Likewise.
2799 (vreinterpretq_u32_s16): Likewise.
2800 (vreinterpretq_u32_s32): Likewise.
2801 (vreinterpretq_u32_s64): Likewise.
2802 (vreinterpretq_u32_f32): Likewise.
2803 (vreinterpretq_u32_u8): Likewise.
2804 (vreinterpretq_u32_u16): Likewise.
2805 (vreinterpretq_u32_u64): Likewise.
2806 (vreinterpretq_u32_p8): Likewise.
2807 (vreinterpretq_u32_p16): Likewise.
2809 2014-05-23 Yvan Roux <yvan.roux@linaro.org>
2811 Backport from trunk r209640.
2812 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
2814 * gcc/config/aarch64/aarch64-simd.md (aarch64_s<optab><mode>):
2816 * config/aarch64/aarch64-simd-builtins.def (sqneg): Iterator
2819 * config/aarch64/arm_neon.h (vqneg_s64): New intrinsic.
2820 (vqnegd_s64): Likewise.
2821 (vqabs_s64): Likewise.
2822 (vqabsd_s64): Likewise.
2824 2014-05-23 Yvan Roux <yvan.roux@linaro.org>
2826 Backport from trunk r209627, 209636.
2827 2014-04-22 Renlin <renlin.li@arm.com>
2828 Jiong Wang <jiong.wang@arm.com>
2830 * config/aarch64/aarch64.h (aarch64_frame): Delete "fp_lr_offset".
2831 * config/aarch64/aarch64.c (aarch64_layout_frame)
2832 (aarch64_initial_elimination_offset): Likewise.
2834 2014-04-22 Marcus Shawcroft <marcus.shawcroft@arm.com>
2836 * config/aarch64/aarch64.c (aarch64_initial_elimination_offset):
2839 2014-05-23 Yvan Roux <yvan.roux@linaro.org>
2841 Backport from trunk r209618.
2842 2014-04-22 Renlin Li <Renlin.Li@arm.com>
2844 * config/aarch64/aarch64.c (aarch64_print_operand_address): Adjust
2845 the output asm format.
2847 2014-05-23 Yvan Roux <yvan.roux@linaro.org>
2849 Backport from trunk r209617.
2850 2014-04-22 James Greenhalgh <james.greenhalgh@arm.com>
2852 * config/aarch64/aarch64-simd.md
2853 (aarch64_cm<optab>di): Always split.
2854 (*aarch64_cm<optab>di): New.
2855 (aarch64_cmtstdi): Always split.
2856 (*aarch64_cmtstdi): New.
2858 2014-05-23 Yvan Roux <yvan.roux@linaro.org>
2860 Backport from trunk r209615.
2861 2014-04-22 Ramana Radhakrishnan <ramana.radhakrishnan@arm.com>
2863 * config/arm/arm.c (arm_hard_regno_mode_ok): Loosen
2864 restrictions on core registers for DImode values in Thumb2.
2866 2014-05-23 Yvan Roux <yvan.roux@linaro.org>
2868 Backport from trunk r209613, r209614.
2869 2014-04-22 Ian Bolton <ian.bolton@arm.com>
2871 * config/arm/arm.md (*anddi_notdi_zesidi): New pattern.
2872 * config/arm/thumb2.md (*iordi_notdi_zesidi): New pattern.
2874 2014-04-22 Ian Bolton <ian.bolton@arm.com>
2876 * config/arm/thumb2.md (*iordi_notdi_di): New pattern.
2877 (*iordi_notzesidi_di): Likewise.
2878 (*iordi_notsesidi_di): Likewise.
2880 2014-05-23 Yvan Roux <yvan.roux@linaro.org>
2882 Backport from trunk r209561.
2883 2014-04-22 Ian Bolton <ian.bolton@arm.com>
2885 * config/arm/arm-protos.h (tune_params): New struct members.
2886 * config/arm/arm.c: Initialise tune_params per processor.
2887 (thumb2_reorg): Suppress conversion from t32 to t16 when optimizing
2888 for speed, based on new tune_params.
2890 2014-05-23 Yvan Roux <yvan.roux@linaro.org>
2892 Backport from trunk r209559.
2893 2014-04-22 Alex Velenko <Alex.Velenko@arm.com>
2895 * config/aarch64/aarch64-builtins.c (BUILTIN_VDQF_DF): Macro
2897 * config/aarch64/aarch64-simd-builtins.def (frintn): Use added
2899 * config/aarch64/aarch64-simd.md (<frint_pattern>): Comment
2901 * config/aarch64/aarch64.md (<frint_pattern>): Likewise.
2902 * config/aarch64/arm_neon.h (vrnd_f64): Added.
2903 (vrnda_f64): Likewise.
2904 (vrndi_f64): Likewise.
2905 (vrndm_f64): Likewise.
2906 (vrndn_f64): Likewise.
2907 (vrndp_f64): Likewise.
2908 (vrndx_f64): Likewise.
2910 2014-05-23 Yvan Roux <yvan.roux@linaro.org>
2912 Backport from trunk r209419.
2913 2014-04-15 Kyrylo Tkachov <kyrylo.tkachov@arm.com>
2915 PR rtl-optimization/60663
2916 * config/arm/arm.c (arm_new_rtx_costs): Improve ASM_OPERANDS case,
2919 2014-05-23 Yvan Roux <yvan.roux@linaro.org>
2921 Backport from trunk r209457.
2922 2014-04-16 Andrew Pinski <apinski@cavium.com>
2924 * config/host-linux.c (TRY_EMPTY_VM_SPACE): Change aarch64 ilp32
2927 2014-05-19 Yvan Roux <yvan.roux@linaro.org>
2929 * LINARO-VERSION: Bump version.
2931 2014-05-14 Yvan Roux <yvan.roux@linaro.org>
2933 GCC Linaro 4.9-2014.05 released.
2934 * LINARO-VERSION: Update.
2936 2014-05-13 Yvan Roux <yvan.roux@linaro.org>
2938 Backport from trunk r209889.
2939 2014-04-29 Zhenqiang Chen <zhenqiang.chen@linaro.org>
2941 * config/aarch64/aarch64.md (mov<mode>cc): New for GPF.
2943 2014-05-13 Yvan Roux <yvan.roux@linaro.org>
2945 Backport from trunk r209556.
2946 2014-04-22 Zhenqiang Chen <zhenqiang.chen@linaro.org>
2948 * config/arm/arm.c (arm_print_operand, thumb_exit): Make sure
2949 GET_MODE_SIZE argument is enum machine_mode.
2951 2014-04-28 Yvan Roux <yvan.roux@linaro.org>
2953 * LINARO-VERSION: Bump version.
2955 2014-04-22 Yvan Roux <yvan.roux@linaro.org>
2957 GCC Linaro 4.9-2014.04 released.
2958 * LINARO-VERSION: New file.
2959 * configure.ac: Add Linaro version string.