From fee13acdd89f77a81a63711534f1d0737b965d1d Mon Sep 17 00:00:00 2001 From: Andreas Schwab Date: Mon, 10 Oct 2016 12:16:00 +0000 Subject: [PATCH] re PR target/77738 (Invalid initialisation of ar.lc register) PR target/77738 * config/ia64/ia64.md ("doloop_end"): Reject if mode of loop pseudo is not DImode. From-SVN: r240918 --- gcc/ChangeLog | 18 ++++++++++++------ gcc/config/ia64/ia64.md | 3 +++ 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 6810f199dc0..6d27102a8d7 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2016-10-10 Andreas Schwab + + PR target/77738 + * config/ia64/ia64.md ("doloop_end"): Reject if mode of loop + pseudo is not DImode. + 2016-10-10 Claudiu Zissulescu * common/config/arc/arc-common.c (arc_option_optimization_table): @@ -8,7 +14,7 @@ 2016-10-09 Aaron Sawdey - * config/rs6000/rs6000.h (TARGET_EFFICIENT_OVERLAPPING_UNALIGNED): + * config/rs6000/rs6000.h (TARGET_EFFICIENT_OVERLAPPING_UNALIGNED): Add macro to say we can efficiently handle overlapping unaligned loads. * config/rs6000/rs6000.c (expand_block_compare): Avoid generating @@ -207,7 +213,7 @@ (write_ipcp_transformation_info): Remove streaming for alignment propagation summary. (read_ipcp_transformation_info): Remove reading of alignment - propagation summary. + propagation summary. (ipcp_update_alignments): Remove. (ipcp_update_bits): Adjust to set alignment for parameters of pointer type. @@ -215,7 +221,7 @@ and remove assignment to (*ipcp_transformations)[node->uid].alignments. * ipa-prop.h (ipa_alignment): Remove. (ipa_jump_func): Remove field alignment. - (ipcp_transformation_summary): Remove field alignments. + (ipcp_transformation_summary): Remove field alignments. * doc/invoke.texi: Mark fipa-cp-alignment as obsolete. * opts.c (default_options_table): Remove entry for fipa-cp-alignment. (enable_fdo_optimizations): Remove checking for fipa-cp-alignment. @@ -491,7 +497,7 @@ which is not safe. 2016-10-06 James Clarke - Eric Botcazou + Eric Botcazou PR target/77759 * config/sparc/sparc.c (classify_data_t): Remove int_regs field. @@ -3397,7 +3403,7 @@ 2016-09-02 Prathamesh Kulkarni * cfg.c (free_original_copy_tables): Replace second assignment of - bb_copy = NULL by bb_original = NULL. + bb_copy = NULL by bb_original = NULL. 2016-09-02 Jakub Jelinek @@ -19189,7 +19195,7 @@ Tweak the pipeline model for Exynos M1 - * config/aarch64/aarch64.c (exynosm1_tunings): Enable weak prefetching + * config/aarch64/aarch64.c (exynosm1_tunings): Enable weak prefetching model. 2016-03-17 David Malcolm diff --git a/gcc/config/ia64/ia64.md b/gcc/config/ia64/ia64.md index 7bc21fd8ca4..afde75aa74d 100644 --- a/gcc/config/ia64/ia64.md +++ b/gcc/config/ia64/ia64.md @@ -3959,6 +3959,9 @@ (use (match_operand 1 "" ""))] ; label "" { + if (GET_MODE (operands[0]) != DImode) + FAIL; + emit_jump_insn (gen_doloop_end_internal (gen_rtx_REG (DImode, AR_LC_REGNUM), operands[1])); DONE;