aboutsummaryrefslogtreecommitdiff
path: root/gas/ChangeLog.arm
blob: e265535262226f5f3625a317630e4d867d49d8a7 (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
2016-09-26  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	Backport from mainline
	2016-02-16  Nick Clifton  <nickc@redhat.com>

	* doc/as.texinfo (Section): Fix up texinfo snafus in previous
	update.

2016-09-25  Andre Vieira  <andre.simoesdiasvieira@arm.com>

	Backport from mainline
	2016-02-15  Nick Clifton  <nickc@redhat.com>

	* doc/as.texinfo (.section): Document that numeric values can now
	be used for the flags and type fields of the ELF target's .section
	directive.  Add notes about the restrictions on setting flags and
	types.
	* config/obj-elf.c (obj_elf_change_section): Allow known sections
	to be given processor specific section types.  Allow processor and
	application specific flags of a section to be set after
	definition.
	(obj_elf_parse_section_letters): Handle parsing numeric values.
	(obj_elf_section_type): Handle parsing numeric values.
	(obj_elf_section): Allow numeric type values.
	* config/obj-elf.h (obj_elf_change_section): Update prototype.
	* NEWS: Mention the new feature.

2016-08-26  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	Backport from mainline
	2016-08-26  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/tc-arm.c (v7m_psrs): Add MSPLIM, PSPLIM, MSPLIM_NS,
	PSPLIM_NS, PRIMASK_NS, BASEPRI_NS, FAULTMASK_NS, CONTROL_NS, SP_NS and
	their lowecase counterpart special registers.  Write register
	identifier in hex.
	* testsuite/gas/arm/archv8m-cmse-msr.s: Reorganize tests per
	operation, special register and then case.  Use different register for
	each operation.  Add tests for new special registers.
	* testsuite/gas/arm/archv8m-cmse-msr-base.d: Adapt expected result
	accordingly.
	* testsuite/gas/arm/archv8m-cmse-msr-main.d: Likewise.
	* testsuite/gas/arm/archv8m-main-dsp-4.d: Likewise.

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

	Backport from mainline
	2016-08-25  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/tc-arm.c (v7m_psrs): Remove msp_s, MSP_S, psp_s and PSP_S
	special registers.
	* testsuite/gas/arm/archv8m-cmse-msr.s: Remove test for above special
	registers.
	* testsuite/gas/arm/archv8m-cmse-msr-base.d: Likewise.
	* testsuite/gas/arm/archv8m-cmse-msr-main.d: Likewise.
	* testsuite/gas/arm/archv8m-main-dsp-4.d: Likewise.

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

	* NEWS: Document support for ARMv8-M and its DSP and Security
	Extensions.

2016-03-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/tc-arm.c (arm_adjust_symtab): Use ARM_SET_SYM_BRANCH_TYPE to
	set branch type of a symbol.

2016-03-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/tc-arm.c (arm_ext_dsp): New feature for Thumb DSP
	instructions.
	(arm_extensions): Add dsp extension for ARMv8-M Mainline.
	(aeabi_set_public_attributes): Memorize the feature bits of the
	architecture selected for Tag_CPU_arch.  Use it to set
	Tag_DSP_extension to 1 for ARMv8-M Mainline with DSP extension.
	(arm_convert_symbolic_attribute): Define Tag_DSP_extension.

2016-03-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/tc-arm.c
	(struct arm_option_extension_value_table): Make allowed_archs an array
	with 2 entries.
	(ARM_EXT_OPT): Adapt to only fill the first entry of allowed_archs.
	(ARM_EXT_OPT2): New macro filling the two entries of allowed_archs.
	(arm_extensions): Use separate entries in allowed_archs when several
	archs are allowed to use an extension and change ARCH_ANY in
	ARM_ARCH_NONE in allowed_archs.
	(arm_parse_extension): Check that, for each allowed_archs entry, all
	bits are set in the current architecture, ignoring ARM_ANY entries.
	(s_arm_arch_extension): Likewise.

2016-03-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	* config/tc-arm.c (arm_ext_m): Add feature bit ARM_EXT2_V8M_MAIN.
	(arm_ext_v8m_main): New feature set for bit ARM_EXT2_V8M_MAIN.
	(arm_ext_v8m_m_only): New feature set for instructions in ARMv8-M not
	shared with a non M profile architecture.
	(do_rn): New function.
	(known_t32_only_insn): Check opcode against arm_ext_v8m_m_only rather
	than arm_ext_v8m.
	(v7m_psrs): Add ARMv8-M security extensions new special registers.
	(insns): Add ARMv8-M Security Extensions instructions.
	(aeabi_set_public_attributes): Use arm_ext_v8m_m_only instead of
	arm_ext_v8m_m to decide the profile and the Thumb ISA.

2016-03-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>

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

	* config/tc-arm.c (insns): Add ARMv8-M security extensions
	instructions.

2016-03-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>

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

	* config/tc-arm.c
	(struct arm_option_extension_value_table): Make allowed_archs an array
	with 2 entries.
	(ARM_EXT_OPT): Adapt to only fill the first entry of allowed_archs.
	(ARM_EXT_OPT2): New macro filling the two entries of allowed_archs.
	(arm_extensions): Use separate entries in allowed_archs when several
	archs are allowed to use an extension and change ARCH_ANY in
	ARM_ARCH_NONE in allowed_archs.
	(arm_parse_extension): Check that, for each allowed_archs entry, all
	bits are set in the current architecture, ignoring ARM_ANY entries.
	(s_arm_arch_extension): Likewise.

2016-03-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>

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

	* config/tc-arm.c (arm_ext_dsp): New feature for Thumb DSP
	instructions.
	(arm_extensions): Add dsp extension for ARMv8-M Mainline.
	(aeabi_set_public_attributes): Set Tag_DSP_extension to 1 for ARMv8-M
	Mainline with DSP extension.
	(arm_convert_symbolic_attribute): Define Tag_DSP_extension.

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

	* config/tc-arm.c (arm_cpus): Add cortex-r8.
	* doc/c-arm.texi: Add cortex-r8.

2016-03-29  Thomas Preud'homme  <thomas.preudhomme@arm.com>

	Merge ARMv8-M support code from master as part of merge commit
	2015-12-24  Thomas Preud'homme  <thomas.preudhomme@arm.com>

        * config/tc-arm.c (non_v6t2_wide_only_insn): Rename into ...
	(t1_isa_t32_only_insn): This.  Clarify what instructions are catched by
	the first conditional block.
	(wide_insn_ok): Rename into ...
	(t32_insn_ok): This.
	(aeabi_set_public_attributes): Use TAG_CPU_ARCH_V7 instead of 10,
	TAG_CPU_ARCH_V7E_M instead of 13, TAG_CPU_ARCH_V8 instead of 14,
	TAG_CPU_ARCH_V8M_BASE instead of 16 and TAG_CPU_ARCH_V8M_MAIN instead
	of 17.

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

	* config/tc-arm.c (arm_ext_dsp): New feature for Thumb DSP
	instructions.
	(arm_extensions): Add dsp extension for ARMv8-M Mainline.
	(aeabi_set_public_attributes): Set Tag_DSP_extension to 1 for ARMv8-M
	Mainline with DSP extension.
	(arm_convert_symbolic_attribute): Define Tag_DSP_extension.

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

	* config/tc-arm.c
	(struct arm_option_extension_value_table): Make allowed_archs an array
	with 2 entries.
	(ARM_EXT_OPT): Adapt to only fill the first entry of allowed_archs.
	(ARM_EXT_OPT2): New macro filling the two entries of allowed_archs.
	(arm_extensions): Use separate entries in allowed_archs when several
	archs are allowed to use an extension and change ARCH_ANY in
	ARM_ARCH_NONE in allowed_archs.
	(arm_parse_extension): Check that, for each allowed_archs entry, all
	bits are set in the current architecture, ignoring ARM_ANY entries.
	(s_arm_arch_extension): Likewise.

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

	* config/tc-arm.c (insns): Add ARMv8-M security extensions
	instructions.

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

	* config/tc-arm.c (arm_ext_v6t2_v8m): New feature for instructions
	shared between ARMv6T2 and ARMv8-M.
	(move_or_literal_pool): Check mov.w/mvn and movw availability against
	arm_ext_v6t2 and arm_ext_v6t2_v8m respectively instead of checking
	arm_arch_t2.
	(do_t_branch): Error out for wide conditional branch instructions if
	targetting ARMv8-M Baseline.
	(non_v6t2_wide_only_insn): Add the logic for new wide-only instructions
	in ARMv8-M Baseline.
	(wide_insn_ok): New function.
	(md_assemble): Use wide_insn_ok instead of non_v6t2_wide_only_insn and
	adapt error message for unsupported wide instruction to ARMv8-M
	Baseline.
	(insns): Reorganize instructions shared by ARMv8-M Baseline and
	ARMv6t2 architecture.
	(arm_cpus): Set feature bit ARM_EXT2_V6T2_V8M for marvell-pj4 and
	marvell-whitney cores.
	(arm_archs): Define armv8-m.base architecture.
	(cpu_arch_ver): Define ARM_ARCH_V8M_BASE architecture version.
	(aeabi_set_public_attributes): Add logic to set Tag_CPU_arch to 17 for
	ARMv8-M Mainline.  Set Tag_DIV_use for ARMv8-M Baseline as well.

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

	* config/tc-arm.c (arm_ext_m): Include ARMv8-M.
	(arm_ext_v8m): New feature for ARMv8-M.
	(arm_ext_atomics): New feature for ARMv8 atomics.
	(do_tt): New encoding function for TT* instructions.
	(insns): Add new entries for ARMv8-M specific instructions and
	reorganize the ones shared by ARMv8-M Mainline and ARMv8-A.
	(arm_archs): Define armv8-m.main architecture.
	(cpu_arch_ver): Define ARM_ARCH_V8M_MAIN architecture version and
	clarify the ordering rule.
	(aeabi_set_public_attributes): Add logic to keep setting Tag_CPU_arch
	to ARMv8-A for -march=all.  Also set Tag_CPU_arch_profile to 'A' if
	extension bit for atomic instructions is set, unless it is ARMv8-M.
	Set Tag_THUMB_ISA_use to 3 for ARMv8-M.  Set Tag_DIV_use to 0 for
	ARMv8-M Mainline.

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

	* config/tc-arm.c (move_or_literal_pool): Check mov.w, mvm and movw
	availability against arm_ext_v6t2 instead of checking arm_arch_t2,
	fixing comments along the way.
	(handle_it_state): Check arm_ext_v6t2 instead of arm_arch_t2 to
	generate IT instruction.
	(non_v6t2_wide_only_insn): New function.
	(md_assemble): Use above new function to check for invalid wide
	instruction for CPU Thumb ISA and to determine what Thumb extension
	bit is necessary for that instruction.
	(md_apply_fix): Use arm_ext_v6t2 instead of arm_arch_t2 to decide if
	branch is out of range.