aboutsummaryrefslogtreecommitdiff
path: root/gcc/ChangeLog.arm
blob: de2cdf4b169971d85dc46727b8a7fff82c20ebc3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
2016-06-13  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	Backport from Mainline
	2015-09-25  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/61578
	* lra-constarints.c (match_reload): Check presence of the input pseudo
	  in the output pseudo.

2016-06-13  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	Backport from Mainline
	2015-09-01  Vladimir Makarov  <vmakarov@redhat.com>

	PR target/61578
	* lra-lives.c (process_bb_lives): Process move pseudos with the
	  same value for copies and preferences
	* lra-constraints.c (match_reload): Create match reload pseudo
	  with the same value from single dying input pseudo.

2016-05-25  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/arm/t-baremetal (MULTILIB_MATCHES): Match ARMv8-M Mainline
	with DSP extensions to ARMv8-M Mainline.

2016-03-30  Andre Vieira        <andre.simoesdiasvieira@arm.com>
	    Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/arm/arm-builtins.c (arm_builtins): Define
	ARM_BUILTIN_CMSE_NONSECURE_CALLER.
	(bdesc_2arg): Add line for cmse_nonsecure_caller.
	(arm_init_builtins): Init for cmse_nonsecure_caller.
	(arm_expand_builtin): Handle cmse_nonsecure_caller.
	* config/arm/arm_cmse.h (cmse_nonsecure_caller): New.

2016-03-30  Andre Vieira        <andre.simoesdiasvieira@arm.com>
	    Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/arm/arm.c (detect_cmse_nonsecure_call): New.
	(cmse_nonsecure_call_clear_caller_saved): New.
	* config/arm/arm-protos.h (detect_cmse_nonsecure_call): New.
	* config/arm/arm.md (call): Handle cmse_nonsecure_entry.
	(call_value): Likewise.
	(nonsecure_call_internal): New.
	(nonsecure_call_value_internal): New.
	* config/arm/thumb1.md (*nonsecure_call_reg_thumb1_v5): New.
	(*nonsecure_call_value_reg_thumb1_v5): New.
	* config/arm/thumb2.md (*nonsecure_call_reg_thumb2): New.
	(*nonsecure_call_value_reg_thumb2): New.
	* config/arm/unspecs.md (UNSPEC_NONSECURE_MEM): New.

2016-03-30  Andre Vieira        <andre.simoesdiasvieira@arm.com>
	    Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/arm/arm.c (gimplify.h): New include.
	(arm_handle_cmse_nonsecure_call): New.
	(arm_attribute_table): Added cmse_nonsecure_call.

2016-03-30  Andre Vieira        <andre.simoesdiasvieira@arm.com>
	    Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/arm/arm.c (output_return_instruction): Clear registers.
	(thumb2_expand_return): Likewise.
	(thumb1_expand_epilogue): Likewise.
	(arm_expand_epilogue): Likewise.
	(cmse_nonsecure_entry_clear_before_return): New.
	* config/arm/thumb1.md (*epilogue_insns): Change length attribute.
	* config/arm/thumb2.md (*thumb2_return): Likewise.

2016-03-30  Andre Vieira        <andre.simoesdiasvieira@arm.com>
	    Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/arm/arm.c (use_return_insn): Change to return with bxns when
	cmse_nonsecure_entry.
	(output_return_instruction): Likewise.
	(arm_output_function_prologue): Likewise.
	(thumb_pop): Likewise.
	(thumb_exit): Likewise.
	(arm_function_ok_for_sibcall): Disable sibcall for entry functions.
	(arm_asm_declare_function_name): New.
	(thumb1_cmse_nonsecure_entry_return): New.
	* config/arm/arm-protos.h (arm_asm_declare_function_name): New.
	* config/arm/elf.h (ASM_DECLARE_FUNCTION_NAME): Redefine to use
	arm_asm_declare_function_name.

2016-03-30  Andre Vieira        <andre.simoesdiasvieira@arm.com>
	    Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/arm/arm.c (arm_handle_cmse_nonsecure_entry): New.
	(arm_attribute_table): Added cmse_nonsecure_entry
	(arm_compute_func_type): Handle cmse_nonsecure_entry.
	(cmse_func_args_or_return_in_stack): New.
	(arm_handle_cmse_nonsecure_entry): New.
	* config/arm/arm.h (ARM_FT_CMSE_ENTRY): New macro define.
	(IS_CMSE_ENTRY): Likewise.

2016-03-30  Andre Vieira  <andre.simoesdiasvieira@arm.com>
	    Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config.gcc (extra_headers): Added arm_cmse.h.
	* config/arm/arm-arches.def (armv8-m.base): Add FL_CMSE.
	(armv8-m.main): Likewise.
	(armv8-m.main+dsp): Likewise.
	* config/arm/arm-protos.h (arm_is_constant_pool_ref): Define
	FL_CMSE.
	* config/arm.c (arm_arch_cmse): New.
	(arm_option_override): New error for unsupported cmse target.
	* config/arm/arm.h (arm_arch_cmse): New.
	(arm_cpu_builtins): Added __ARM_FEATURE_CMSE macro.
	* config/arm/arm.opt (mcmse): New.
	* doc/invoke.texi (ARM Options): Add -mcmse.
	* doc/extend.texi (ACLE): Add CMSE.
	* config/arm/arm_cmse.h: New file.

2016-03-30  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	Avoiding target_header_dir=yes for --with-headers=yes.

	2015-10-12  Ulrich Weigand  <uweigand@de.ibm.com>
	* configure.ac: Dont set target_header_dir to "yes" if with_headers is
	passed the value "yes".

2016-03-10  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	* gcc/config/arm/t-baremetal: Add cortex-r8.

2016-03-07  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	* config/arm/arm-cores.def (cortex-r8): New.
	* config/arm/arm-tables.opt (cortex-r8): Regenerate.
	* config/arm/arm-tune.md: Likewise.
	* gcc/doc/invoke.texi: Add cortex-r8 to list of cpu values.

2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* Makefile.in (with_multilib_list): New variables substituted by
	configure.
	* config.gcc: Handle bare-metal multilibs in --with-multilib-list
	option.
	* config/arm/t-baremetal: New file.
	* configure.ac (with_multilib_list): New AC_SUBST.
	* configure: Regenerate.
	* doc/install.texi (--with-multilib-list): Update description for
	arm*-*-* targets to mention bare-metal multilibs.

2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config.gcc: Error out when conflicting multilib is detected.  Do not
	loop over multilibs since no combination is legal.

2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* doc/install.texi (--with-multilib-list): Describe the meaning of the
	option for arm*-*-* targets.

2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/arm/arm.c (arm_print_operand_punct_valid_p): Make %? valid
	for Thumb-1.
	* config/arm/arm.h (TARGET_HAVE_CBZ): Define.
	(TARGET_IDIV): Set for all Thumb targets provided they have hardware
	divide feature.
	* config/arm/thumb1.md (thumb1_cbz): New insn.

2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/arm/arm.h (TARGET_HAVE_MOVT): Include ARMv8-M as having MOVT.
	* config/arm/arm.c (arm_arch_name): (const_ok_for_op): Check MOVT/MOVW
	availability with TARGET_HAVE_MOVT.
	(thumb_legitimate_constant_p): Legalize high part of a label_ref as a
	constant.
	(thumb1_rtx_costs): Also return 0 if setting a half word constant and
	movw is available.
	(thumb1_size_rtx_costs): Make set of half word constant also cost 1
	extra instruction if MOVW is available.  Make constant with bottom half
	word zero cost 2 instruction if MOVW is available.
	* config/arm/arm.md (define_attr "arch"): Add v8mb.
	(define_attr "arch_enabled"): Set to yes if arch value is v8mb and
	target is ARMv8-M Baseline.
	* config/arm/thumb1.md (thumb1_movdi_insn): Add ARMv8-M Baseline only
	alternative for constants satisfying j constraint.
	(thumb1_movsi_insn): Likewise.
	(movsi splitter for K alternative): Tighten condition to not trigger
	if movt is available and j constraint is satisfied.
	(Pe immediate splitter): Likewise.
	(thumb1_movhi_insn): Add ARMv8-M Baseline only alternative for
	constant fitting in an halfword to use movw.
	* doc/sourcebuild.texi (arm_thumb1_movt_ko): Document new ARM
	effective target.

2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/arm/arm.h (TARGET_USE_MOVT): Check MOVT/MOVW availability
	with TARGET_HAVE_MOVT.
	(TARGET_HAVE_MOVT): Define.
	* config/arm/arm.c (const_ok_for_op): Check MOVT/MOVW
	availability with TARGET_HAVE_MOVT.
	* config/arm/arm.md (arm_movt): Use TARGET_HAVE_MOVT to check movt
	availability.
	(addsi splitter): Use TARGET_USE_MOVT to check whether to use
	movt + movw.
	(symbol_refs movsi splitter): Remove TARGET_32BIT check.
	(arm_movtas_ze): Use TARGET_HAVE_MOVT to check movt availability.
	* config/arm/constraints.md (define_constraint "j"): Use
	TARGET_HAVE_MOVT to check movt availability.

2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/arm/arm-protos.h: Reindent FL_FOR_* macro definitions.

2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/arm/arm-arches.def (armv8-m.base): Define new architecture.
	(armv8-m.main): Likewise.
	(armv8-m.main+dsp): Likewise
	* config/arm/arm-protos.h (FL_FOR_ARCH8M_BASE): Define.
	(FL_FOR_ARCH8M_MAIN): Likewise.
	* config/arm/arm-tables.opt: Regenerate.
	* config/arm/bpabi.h: Add armv8-m.base, armv8-m.main and
	armv8-m.main+dsp to BE8_LINK_SPEC.
	* config/arm/arm.h (TARGET_HAVE_LDACQ): Exclude ARMv8-M Baseline.
	(enum base_architecture): Add BASE_ARCH_8M_BASE and BASE_ARCH_8M_MAIN.
	(TARGET_ARM_V8M): Define.
	* config/arm/arm.c (arm_arch_name): Increase size to work with ARMv8-M
	Baseline and Mainline.
	(arm_option_override_internal): Also disable arm_restrict_it when
	!arm_arch_notm.
	(arm_file_start): Increase architecture buffer size.
	* doc/invoke.texi: Document architectures armv8-m.base, armv8-m.main
	and armv8-m.main+dsp.
	(mno-unaligned-access): Clarify that this is disabled by default for
	ARMv8-M Baseline architecture as well.

2015-12-17  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/arm/elf.h: Use __ARM_ARCH_ISA_THUMB and __ARM_ARCH_ISA_ARM to
	decide whether to prevent some libgcc routines being included for some
	multilibs rather than __ARM_ARCH_6M__ and add comment to indicate the
	link between this condition and the one in
	libgcc/config/arm/lib1func.S.
	* config/arm/arm.h (TARGET_ARM_V6M): Add check to TARGET_ARM_ARCH.
	(TARGET_ARM_V7M): Likewise.

2015-12-16  Tejas Belagod  <tejas.belagod@arm.com>

	Backport from Mainline
	2015-11-25  Jan Hubicka  <jh@suse.cz>

	* ipa-visibility.c (cgraph_externally_visible_p,
	varpool_node::externally_visible_p): When doing incremental linking,
	hidden symbols may be still used later.
	(update_visibility_by_resolution_info): Do not drop weak during
	incremental link.
	(function_and_variable_visibility): Fix formating.
	* flag-types.h (lto_linker_output): Declare.
	* common.opt 9flag_incremental_link): New flag.


2015-12-10  Tejas Belagod  <tejas.belagod@arm.com>

	Backport from Mainline
	2015-04-22  Hale Wang  <hale.wang@arm.com>
		    Terry Guo  <terry.guo@arm.com>

	PR rtl-optimization/64818
	* combine.c (can_combine_p): Don't combine user-specified
	register if it is in an asm input.

2015-12-04  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	Backport from mainline:

	2015-10-09  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	* match.pd: ((X inner_op C0) outer_op C1) New pattern.
	((X & C2) << C1): Expand to...
	(X {&,^,|} C2 << C1): ...This.
	((X & C2) >> C1): Expand to...
	(X {&,^,|} C2 >> C1): ...This.

	2015-07-07  Richard Biener  <rguenther@suse.de>

	* fold-const.c (fold_binary_loc): Move
	(X & C2) << C1 -> (X << C1) & (C2 << C1) simplification ...
	* match.pd: ... here.