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
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
|
2006-06-02 Joseph Myers <joseph@codesourcery.com>
* gas/doc/c-arc.texi: Fix typo.
2006-04-28 Joseph Myers <joseph@codesourcery.com>
* gas/config/tc-arm.c (do_iwmmxt_wldstbh): Don't multiply offset
by 4 here.
(md_apply_fix3): Multiply offset by 4 here for
BFD_RELOC_ARM_CP_OFF_IMM_S2.
* gas/testsuite/gas/arm/arm.exp: Run iwmmxt-bad2.
* gas/testsuite/gas/arm/iwmmxt.s: Increase offsets for wstrb and
wstrh.
* gas/testsuite/gas/arm/iwmmxt.d: Update expected results.
* gas/testsuite/gas/arm/iwmmxt-bad2.s: Test wstrb, wstrh, wldrb
and wldrh.
* gas/testsuite/gas/arm/iwmmxt-bad2.l: Update expected error
messages.
2006-01-16 Joseph Myers <joseph@codesourcery.com>
Backport:
2005-08-02 Khem Raj <kraj@mvista.com>
* config/tc-arm.c (do_iwmmxt_wldstd): Correct the offset range for
WLDRD/WSTRD instruction.
2005-08-03 Nick Clifton <nickc@redhat.com>
* gas/arm/iwmmxt-bad2.s: New file: Check for error messages about
erroneous offsets in iwmmxt instructions. Cannot be part of
iwmmxt-bad.s because the errors there stop the assembler before it
gets to check the offsets in instructions.
* gas/arm/iwmmxt-bad2.d: New file.
* gas/arm/iwmmxt-bad2.l: New file: Expected error messages.
2005-08-02 Khem Raj <kraj@mvista.com>
* gas/arm/iwmmxt.s: Change the offset values of the WLDRD, WSTRD
and WSTRW instructions to be larger than +/-255.
* gas/arm/iwmmxt.d: Fix the expected results for these
instructions.
2005-04-13 Mark Mitchell <mark@codesourcery.com>
* doc/binutils.info: Remove.
2005-05-01 Paul Brook <paul@codesourcery.com>
* bfd/elflink.c (_bfd_elf_merge_symbol): Skip weak definitions if a
strong definition has already been seen.
2005-05-01 Paul Brook <paul@codesourcery.com>
* bfd/elf32-arm.c (bfd_elf32_arm_process_before_allocation): Treat
R_ARM_PLT32 the same as R_ARM_PC24.
(arm_add_to_rel): Ditto.
2005-05-01 Zack Weinberg <zack@codesourcery.com>
* gas/config/tc-arm.c (thumb32_mode): Rename unified_syntax.
All uses changed to match.
(COND_ALWAYS): Don't offset.
(COND_MASK): Delete.
(struct arm_it): Add cond field.
(struct asm_opcode): Add tag field. Change some fields to
unsigned int and/or to bitfields.
(my_get_expression): If unified_syntax, always treat the
prefix as optional.
(s_thumb32, s_thumb32_func): Delete.
(opcode_select, s_force_thumb): Don't set thumb32_mode.
(s_syntax): New function.
(md_pseudo_table): Update to match.
(do_blx, do_iwmmxt_wldstw): Look at inst.cond, not
inst.instruction, for the condition.
(do_it): New function.
(do_t_branch): Get the condition from inst.cond and patch it
into the appropriate place.
(output_inst): If inst.size == 0, output nothing, but do issue
a diagnostic if any.
(enum opcode_tag): New set of constants.
(opcode_lookup): New function.
(md_assemble): Use opcode_lookup. Restructure a little.
(conds, OPS0): Adjust comment.
(TxCE, TxCM, TUE, TUF): Rewrite.
(TCC): Delete.
(TxC3, TC3, tC3, TxCM_, C3, C3E): New notational macros.
(insns): Use TC3, tC3, or C3, as appropriate, for all
instructions where the conditional infix appears after the
third letter of the mnemonic. Use TCE for 'b'. Use C3E for
'cmfe' and 'cnfe'. Change 'czbne' to 'cbnz', 'czbeq' to 'cbz'.
Use TUE, with a dummy ARM opcode, for all variants of 'it'.
* opcodes/arm-dis.c: Change 'czbne' to 'cbnz', 'czbeq' to 'cbz'.
* gas/testsuite/gas/arm/thumb.d: bal.n is no longer
distinguishable from b.n.
* gas/testsuite/gas/arm/thumb32.d: Likewise. Change 'czbne'
to 'cbnz', 'czbeq' to 'cbz'.
* gas/testsuite/gas/arm/thumb32.s: Use .syntax unified.
Change 'czbne' to 'cbnz', 'czbeq' to 'cbz'.
2005-05-01 Zack Weinberg <zack@codesourcery.com>
* gas/config/tc-arm.c (encode_thumb32_addr_mode): Set inst.reloc.pc_rel
if is_pc.
(T16_32_TAB): Delete unused entry for BLX.
(do_t_ldst): Don't offset inst.reloc.exp.X_add_number for PC-relative
addressing.
(md_pcrel_from): Report the adjusted PC for
BFD_RELOC_ARM_THUMB_OFFSET and BFD_RELOC_ARM_T32_OFFSET_IMM.
(md_apply_fix3): Correct bitmasks for BFD_RELOC_ARM_T32_OFFSET_IMM.
Do not round up value for PC-relative BFD_RELOC_ARM_THUMB_OFFSET.
* gas/testsuite/gas/arm/thumb.s: Test PC-relative ldr more thoroughly.
* gas/testsuite/gas/arm/thumb.d: Update to match.
* gas/testsuite/gas/arm/thumb32.s: Properly align labels that
will be targeted by blx instructions.
* gas/testsuite/gas/arm/thumb32.d: Update to match. Correct
expected dissassembly of PC-relative ldr.
* gas/testsuite/gas/arm/macro1.s: Add leading label and
trailing padding for a.out compatibility.
* gas/testsuite/gas/arm/macro1.d: Update to match.
* gas/testsuite/gas/arm/tcompat2.s: Add trailing padding for a.out
compatibility.
* gas/testsuite/gas/arm/tcompat2.d: Update to match.
* opcodes/arm-dis.c (print_insn_thumb32): Reorganize %a and %A
handling. Call info->print_address_func when %a/%A are applied
to a PC-relative instruction.
2005-04-29 Zack Weinberg <zack@codesourcery.com>
* gas/sb.c: Include as.h.
(sb_to_scrub, scrub_position, scrub_from_sb): New statics.
(sb_scrub_and_add_sb): New interface.
* gas/sb.h: Declare sb_scrub_and_add_sb.
* gas/input-scrub.c (input_scrub_include_sb): Use it.
* gas/config/tc-arm.c (do_t_arit3c): Correct typo in expression.
(do_t_mul): Allow dest to equal either source1 or source2 in
16-bit form; do not complain about dest == source1 in any
case.
* gas/testsuite/gas/arm/tcompat2.s: Test both dest==source1 and
dest==source2 for commutative arithmetic instructions.
* gas/testsuite/gas/arm/tcompat2.d: Update to match.
* gas/testsuite/gas/arm/t16-bad.l: Adjust expected diagnostic.
* gas/testsuite/gas/arm/macro1.s, gas/arm/macro1.d: New test pair.
* gas/testsuite/gas/arm/arm.exp: Run it.
2005-04-25 Zack Weinberg <zack@codesourcery.com>
Thumb32 assembler.
* include/elf/arm.h: Import full set of relocation names from
latest AAELF. Make the primary name of all relocations be the one
AAELF specifies. Provide aliases under the traditional names.
Kill FIRST_INVALID_RELOC_* and LAST_INVALID_RELOC_*.
* bfd/reloc.c: Reorganize ARM relocations. Remove ARM relocations
that are never generated. Document more of the relocations. Add
relocations for Thumb32.
* bfd/libbfd.h, bfd/bfd-in2.h: Regenerate.
* bfd/elf32-arm.c: Reorganize howto tables. Implement Thumb32
relocations.
* ld/testsuite/ld-arm/mixed-app.d: Adjust expectations for
renamed relocations.
* gas/hash.c (hash_find_n): New interface.
* gas/hash.h: Prototype it.
* gas/config/tc-arm.c: Rewrite and reorganize. Implement 32-bit
Thumb instructions.
* gas/testsuite/gas/arm: Convert all "gas_test" style tests to
"run_dump_test" style tests, for more thorough testing. Make
adjustments to expectations where necessary.
* gas/testsuite/gas/arm/t16-bad.s, gas/testsuite/gas/arm/tcompat.s
* gas/testsuite/gas/arm/tcompat2.s, gas/testsuite/gas/arm/thumb32.s:
New test cases.
* opcodes/arm-dis.c: Add support for Thumb32 instructions and
16-bit V6T2 instructions.
2005-04-13 Paul Brook <paul@codesourcery.com>
Backport from mainline.
2005-04-11 Alan Modra <amodra@bigpond.net.au>
* emultempl/elf32.em (gld${EMULATION_NAME}_stat_needed): Ignore
as_needed libs that were not needed.
(gld${EMULATION_NAME}_check_needed): Likewise.
2005-04-08 Mark Mitchell <mark@codesourcery.com>
* ld/configure.tgt (arm-wrs-linux-gnueabi*): Support both big- and
little-endian.
2005-04-08 Paul Brook <paul@codesourcery.com>
* elf32-arm.c (ARM2THUMB_GLUE_SIZE): Rename...
(ARM2THUMB_STATIC_GLUE_SIZE): ... to this.
(ARM2THUMB_PIC_GLUE_SIZE): Define.
(a2t1p_ldr_insn, a2t2p_add_pc_insn, a2t3p_bx_r12_insn): Add.
(elf32_arm_to_thumb_stub): Create PIC stubs.
(record_arm_to_thumb_glue): Use different stub size for relocatable
images.
2005-03-29 Julian Brown <julian@codesourcery.com>
* elf32-arm.c (elf32_arm_final_link_relocate): Use blx to get to
symbian plt entries from thumb mode.
2005-03-28 Daniel Jacobowitz <dan@codesourcery.com>
Phil Blundell <philb@gnu.org>
* bfd/bfd-in2.h, libbfd.h: Regenerated.
* bfd/reloc.c: Add ARM TLS relocations.
* bfd/elf32-arm.c (elf32_arm_howto_table): Add dynamic TLS
relocations.
(elf32_arm_tls_gd32_howto, elf32_arm_tls_ldo32_howto)
(elf32_arm_tls_ldm32_howto, elf32_arm_tls_le32_howto)
(elf32_arm_tls_ie32_howto): New.
(elf32_arm_howto_from_type): Support TLS relocations.
(elf32_arm_reloc_map): Likewise.
(elf32_arm_reloc_type_lookup): Likewise.
(TCB_SIZE): Define.
(struct elf32_arm_obj_tdata): New.
(elf32_arm_tdata, elf32_arm_local_got_tls_type): Define.
(elf32_arm_mkobject): New function.
(struct elf32_arm_relocs_copied): Add pc_count.
(elf32_arm_hash_entry, GOT_UNKNOWN, GOT_NORMAL, GOT_TLS_GD)
(GOT_TLS_IE): Define.
(struct elf32_arm_link_hash_table): Add tls_ldm_got.
(elf32_arm_link_hash_newfunc): Initialize tls_type.
(elf32_arm_copy_indirect_symbol): Copy pc_count and tls_type.
(elf32_arm_link_hash_table_create): Initialize tls_ldm_got.
(dtpoff_base, tpoff): New functions.
(elf32_arm_final_link_relocate): Handle TLS relocations.
(IS_ARM_TLS_RELOC): Define.
(elf32_arm_relocate_section): Warn about TLS mismatches.
(elf32_arm_gc_sweep_hook): Handle TLS relocations and pc_count.
(elf32_arm_check_relocs): Detect invalid symbol indexes. Handle
TLS relocations and pc_count.
(elf32_arm_adjust_dynamic_symbol): Check non_got_ref.
(allocate_dynrelocs): Handle TLS. Bind REL32 relocs to local
calls.
(elf32_arm_size_dynamic_sections): Handle TLS.
(elf32_arm_finish_dynamic_symbol): Likewise.
(bfd_elf32_mkobject): Define.
* gas/config/tc-arm.c (arm_parse_reloc): Add TLS relocations.
(md_apply_fix3): Mark TLS symbols.
(tc_gen_reloc): Handle TLS relocations.
(arm_fix_adjustable): Ignore TLS relocations.
(s_arm_elf_cons): Support expressions after decorated symbols.
* gas/testsuite/gas/arm/tls.s, gas/testsuite/gas/arm/tls.d: New files.
* gas/testsuite/gas/arm/arm.exp: Run TLS test.
* include/elf/arm.h: Add TLS relocations.
* ld/testsuite/ld-arm/tls-lib.s, ld/testsuite/ld-arm/tls-lib.d,
ld/testsuite/ld-arm/tls-lib.r, ld/testsuite/ld-arm/tls-app.s,
ld/testsuite/ld-arm/tls-app.d, ld/testsuite/ld-arm/tls-app.r: New files.
* ld/testsuite/ld-arm/arm-lib.ld, ld/testsuite/ld-arm/arm-dyn.ld:
Increase data segment alignment.
* ld/testsuite/ld-arm/arm-elf.exp: Run TLS tests.
2005-03-28 Daniel Jacobowitz <dan@codesourcery.com>
* bfd/elf32-arm.c (elf32_arm_check_relocs): Increment count for all
relocation types. Don't count relocations which will use a PLT.
2005-03-23 Jim Blandy <jimb@redhat.com>
* config/tc-arm.c (arm_adjust_symtab): Fetch elf_sym's binding
attributes properly.
2005-03-21 Nick Clifton <nickc@redhat.com>
* gas/testsuite/gas/arm/iwmmxt.s: Update instructions that use the "never" value
in the conditional field to use "le" instead. This is so that the
disassembler will disassemble them.
* gas/testsuite/gas/arm/iwmmxt.d: Update expected disassemblies.
2005-03-18 Julian Brown <julian@codesourcery.com>
* ld/scripttempl/armbpapi.sc (.rel.dyn): Add .rel.init_array,
.rel.fini_array.
(.rela.dyn): Add .rela.init_array, .rela.fini_array.
(SECTIONS): Add .rel.other, .rela.other, .reli.other after PLT relocs.
2005-03-16 Daniel Jacobowitz <dan@codesourcery.com>
* gas/configure.tgt: Set emulation for arm-*-eabi*.
* gas/config/tc-arm.c (meabi_flags): Check EABI_DEFAULT.
* gas/config/te-armeabi.h: New file.
* gas/config/te-armlinuxeabi.h (EABI_DEFAULT): Define.
* gas/config/te-symbian.h: Include "te-armeabi.h".
2005-03-15 Zack Weinberg <zack@codesourcery.com>
* gas/config/tc-arm.c (do_mla): Rename to do_mlas, take second
is_mls parameter; do not diagnose Rm==Rd when is_mls.
(do_mla, do_mls, five_bit_unsigned_immediate, bfci_lsb_and_width)
(do_bfc, do_bfi, do_bfx, do_rbit, do_mov16, do_ldsttv4): New functions.
(insns): Add ARMv6T2 instructions:
bfc bfi mls movw movt rbit sbfx ubfx ldrht ldrsht ldrsbt strht.
(arm_archs): Add V6T2 variants.
2005-03-12 Zack Weinberg <zack@codesourcery.com>
* gas/config/tc-arm.c (tinsns): Add ARMv6K instructions sev, wfe,
wfi, yield.
* opcodes/arm-dis.c (thumb_opcodes): Add ARMv6K instructions nop, sev,
wfe, wfi, yield.
* gas/testsuite/gas/arm/thumbv6k.d, gas/arm/thumbv6k.s: New dump test.
* gas/testsuite/gas/arm/arm.exp: Run it.
2005-03-12 Zack Weinberg <zack@codesourcery.com>
* opcodes/arm-dis.c (arm_opcodes): Document %E and %V.
Add entries for v6T2 ARM instructions:
bfc bfi mls strht ldrht ldrsht ldrsbt movw movt rbit ubfx sbfx.
(print_insn_arm): Add support for %E and %V.
* include/opcode/arm.h: Adjust comments for ARM_EXT_V4T and ARM_EXT_V5T.
Add ARM_EXT_V6T2, ARM_ARCH_V6T2, ARM_ARCH_V6KT2, ARM_ARCH_V6ZT2,
and ARM_ARCH_V6ZKT2.
|