2006-09-19 Mark Shinwell <shinwell@codesourcery.com>
[external/binutils.git] / ChangeLog.csl
1 2006-09-19  Mark Shinwell  <shinwell@codesourcery.com>
2             Joseph Myers  <joseph@codesourcery.com>
3             Ian Lance Taylor  <ian@wasabisystems.com>
4             Ben Elliston  <bje@wasabisystems.com>
5
6         bfd/
7         * archures.c: Add definition for bfd_mach_arm_iWMMXt2.
8         * cpu-arm.c (processors): Add bfd_mach_arm_iWMMXt2.
9         (arch_info_struct, bfd_arm_update_notes): Likewise.
10         (architectures): Likewise.
11         (bfd_arm_merge_machines): Check for iWMMXt2.
12         * bfd-in2.h: Rebuild.
13
14         gas/
15         * config/tc-arm.c (enum operand_parse_code): New code OP_RIWR_I32z.
16         (parse_operands): Handle OP_RIWR_I32z.
17         (do_iwmmxt_wmerge): New function.
18         (do_iwmmxt_wldstd): Handle iwmmxt2 case where second operand is
19         a register.
20         (do_iwmmxt_wrwrwr_or_imm5): New function.
21         (insns): Mark instructions as RIWR_I32z as appropriate.
22         Also add torvsc<b,h,w>, wabs<b,h,w>, wabsdiff<b,h,w>,
23         waddbhus<l,m>, waddhc, waddwc, waddsubhx, wavg4{r}, wmaddu{x,n},
24         wmadds{x,n}, wmerge, wmiaxy{n}, wmiawxy{n}, wmul<sm,um>{r},
25         wmulw<um,sm,l>{r}, wqmiaxy{n}, wqmulm{r}, wqmulwm{r}, wsubaddhx.
26         (md_begin): Handle IWMMXT2.
27         (arm_cpus): Add iwmmxt2.
28         (arm_extensions): Likewise.
29         (arm_archs): Likewise.
30
31         gas/testsuite/
32         * gas/arm/iwmmxt2.s: New file.
33         * gas/arm/iwmmxt2.d: New file.
34
35         opcodes/
36         * arm-dis.c (coprocessor_opcodes): The X-qualifier to WMADD may
37         only be used with the default multiply-add operation, so if N is
38         set, don't bother printing X.  Add new iwmmxt instructions.
39         (IWMMXT_INSN_COUNT): Update.
40         (iwmmxt_wwssnames): Qualify "wwss" names at index 2, 6, 10 and 14
41         with a 'c' suffix.
42         (print_insn_coprocessor): Check for iWMMXt2.  Handle format
43         specifiers 'r', 'i'.
44
45 2006-09-18  Paul Brook  <paul@codesourcery.com>
46
47         gas/
48         * config/tc-arm.c (parse_immediate_maybe_bounded): Rename back...
49         (parse_immediate): ... to this.  Revert earlier changes.
50         (parse_immediate_bounded): Remove.
51         (parse_immediate_unbounded): Remove.
52         (parse_address_main): Revert earlier changes.
53         (parse_ror): Ditto.
54         (po_imm_unb_or_fail): Remove.
55         (neon_cmode_for_logic_imm): Try smaller element sizes.
56         (neon_cmode_for_move_imm): Ditto.
57         (do_neon_logic): Handle .i64 pseudo-op.
58
59         gas/testsuite/
60         * testsuite/gas/arm/neon-cov.s: Test pseudo-instruction forms of
61         vmov, vmvn and logic immediate instructions.
62         * testsuite/gas/arm/neon-cov.d: ditto.
63
64 2006-09-16  Paul Brook  <paul@codesourcery.com>
65
66         gas/testsuite/
67         * gas/arm/unwind.s: Test two argument form of .movsp.
68         * gas/arm/unwind.d: Update expected output.
69         * gas/arm/unwind_vxworks.d: Ditto.
70
71 2006-09-14  Paul Brook  <paul@codesourcery.com>
72
73         gas/
74         * config/tc-arm.c (s_arm_unwind_movsp): Add offset argument.
75         * doc/c-arm.texi (movsp): Document offset argument.
76
77 2006-09-14  Paul Brook  <paul@codesourcery.com>
78
79         * config/tc-arm.c (thumb32_negate_data_op): Consistently use
80         unsigned int to avoid 64-bit host problems.
81
82 2006-09-14  Julian Brown  <julian@codesourcery.com>
83
84         gas/
85         * config/tc-arm.c (parse_immediate): Add BOUNDED parameter, rename
86         to...
87         (parse_immediate_maybe_bounded): This. Only bounds-check if BOUNDED
88         is true.
89         (parse_immediate_bounded): New function, with same arguments and
90         semantics as previous parse_immediate.
91         (parse_immediate_unbounded): New function. Parse an unbounded
92         integer (with sizeof (exp.X_add_number)).
93         (parse_big_immediate): Allow for 64-bit exp.X_add_number when
94         parsing 64-bit immediates.
95         (parse_address_main): Use parse_immediate_bounded not
96         parse_immediate.
97         (parse_ror): Likewise.
98         (parse_operands): Likewise. For Neon immediates, use
99         parse_immediate_unbounded. Add new local po_imm_unb_or_fail macro.
100
101 2006-09-14  Paul Brook  <paul@codesourcery.com>
102
103         ld/
104         * Makefile.in: Regenerate.
105
106 2006-09-11  Nathan Sidwell  <nathan@codesourcery.com>
107
108         gas/
109         * config/tc-m68k.c (m68k_register_mcf5210a_ctrl): New.
110         (m68k_cpus): Add 5210a & 5211a.
111
112 2006-09-10  Nathan Sidwell  <nathan@codesourcery.com>
113
114         bfd/
115         * Makefile.am (VERSUFFIX_s): Remove.
116         (bfdver.h): Replace bfd_version_suffix with bfd_version_package.
117         * configure.in: Replace --with-versuffix with --with-pkgversion.
118         * version.h: Remove BFD_VERSION_SUFFIX. Update BFD_VERSION_STRING.
119         * Makefile.in: Rebuilt.
120         * configure: Rebuilt.
121
122         binutils/
123         * Makefile.am (REPORT_BUGS_TO_s): Replace with ...
124         (REPORT_BUGS_TO): ... this.
125         (INCLUDES): Update.
126         * Makefile.in: Rebuilt.
127
128         gas/
129         * Makefile.am (REPORT_BUGS_TO_s): Replace with ...
130         (REPORT_BUGS_TO): ... this.
131         (INCLUDES, DEP_INCLUDES): Update.
132         * Makefile.in: Rebuilt.
133
134         gprof/
135         * Makefile.am (REPORT_BUGS_TO_s): Replace with ...
136         (REPORT_BUGS_TO): ... this.
137         (VERSUFFIX_s): Remove.
138         (INCLUDES): Update.
139         * configure.in: Replace --with-versuffix with --with-pkgversion.
140         * gprof.c (main): Update version printing.
141         * Makefile.in: Rebuilt.
142         * configure: Rebuilt.
143
144         ld/
145         * Makefile.am (REPORT_BUGS_TO_s): Replace with ...
146         (REPORT_BUGS_TO): ... this.
147         (INCLUDES): Update.
148         * Makefile.in: Rebuilt.
149
150 2006-09-08  Paul Brook  <paul@codesourcery.com>
151
152         gas/
153         * config/tc-arm.c (object_arch): New variable.
154         (s_arm_object_arch): New function.
155         (md_pseudo_table): Add object_arch.
156         (aeabi_set_public_attributes): Obey object_arch.
157         * doc/c-arm.texi: Document .object_arch.
158
159 2006-09-08  Kazu Hirata  <kazu@codesourcery.com>
160
161         gas/testsuite/
162         Backport
163         2006-09-08  Kazu Hirata  <kazu@codesourcery.com>
164
165         * lib/gas-dg.exp (gas-dg-test): Treat $dir as a literal.
166
167 2006-09-07  Mark Mitchell  <mark@codesourcery.com>
168             Nathan Sidwell  <nathan@codesourcery.com>
169             Vladimir Prus  <vladimir@codesourcery.com>
170
171         * configure.in (TOPLEVEL_CONFIGURE_ARGUMENTS, baseargs): Fix
172         quoting.
173         * configure: Regenerated.
174
175 2006-09-07  Paul Brook  <paul@codesourcery.com>
176
177         gas/
178         * config/tc-arm.c (insns): Allow ARM IT pseudo-insn on all cores.
179
180         gas/testsuite/
181         * gas/arm/arm-it.s: New test.
182         * gas/arm/arm-it.d: New test.
183
184 2006-09-06  Paul Brook  <paul@codesourcery.com>
185
186         gas/
187         * config/tc-arm.c (parse_operands): Mark operand as present.
188
189         gas/testsuite/
190         * gas/arm/neon-omit.s: Test three-argument variants.
191         * gas/arm/neon-omit.d: Update expected output.
192
193 2006-09-05  Julian Brown  <julian@codesourcery.com>
194
195         gas/
196         * config/tc-arm.c (parse_qfloat_immediate): Fix hex immediates,
197         handle 0.0 and -0.0 specially.
198
199         gas/testsuite/
200         * gas/arm/neon-const.s: Use FP syntax for 0/-0.
201         * gas/arm/vfp-neon-syntax-inc.s: Likewise, for 1.
202
203 2006-09-05  Vladimir Prus  <vladimir@codesourcery.com>
204
205         bfd/
206         * elf32-arm.c (elf32_arm_swap_symbol_out): Remove
207         unconditionall setting of low bit for Thumb symbol
208         mistakenly left behind after check for external
209         symbols was added.
210
211         ld/testsuite/
212         * ld-arm/use-thumb-lib.sym: Use regexps instead of
213         absolute addresses, for robustness.
214
215 2006-09-05  Julian Brown  <julian@codesourcery.com>
216
217         gas/
218         * config/tc-arm.c (parse_qfloat_immediate): Disallow integer syntax for
219         floating-point immediates.
220
221 2006-09-04  Paul Brook  <paul@codesourcery.com>
222
223         gas/
224         * config/tc-arm.c (do_neon_dyadic_if_i): Remove.
225         (do_neon_dyadic_if_i_d): Avoid setting U bit.
226         (do_neon_mac_maybe_scalar): Ditto.
227         (do_neon_dyadic_narrow): Force operand type to NT_integer.
228         (insns): Remove out of date comments.
229
230         gas/testsuite/
231         * gas/arm/neon-cov.s: Test .u and .s aliases for .i suffixes.
232         * gas/arm/neon-cov.d: Adjust expected output.
233
234         opcodes/
235         * arm-dis.c (neon_opcode): Fix suffix on VMOVN.
236
237 2006-09-01  Mark Shinwell  <shinwell@codesourcery.com>
238
239         bfd/
240         * elf32-arm.c (elf32_arm_howto_table_1): Correct masks for
241         R_ARM_THM_PC12 relocation.
242
243 2006-09-01  Nathan Sidwell  <nathan@codesourcery.com>
244
245         ld/testsuite/
246         * ld-elf/loadaddr.s: Copy from mainline.
247
248 2006-08-31  Mark Shinwell  <shinwell@codesourcery.com>
249
250         bfd/
251         * elf32-arm.c (elf32_arm_howto_table_1): Adjust entries for
252         R_ARM_THM_ALU_PREL_11_0 and R_ARM_THM_PC12 relocations.
253         (elf32_arm_final_link_relocate): Handle R_ARM_THM_ALU_PREL_11_0
254         and R_ARM_THM_PC12 relocations.
255
256 2006-08-31  Joseph Myers  <joseph@codesourcery.com>
257
258         ld/testsuite/
259         * ld-scripts/crossref.exp: XFAIL third test on mips*-*-linux*.
260
261 2006-08-30  Mark Shinwell  <shinwell@codesourcery.com>
262
263         bfd/
264         * elf32-arm.c (elf32_arm_final_link_relocate): Add support for
265         R_ARM_MOVW_BREL_NC, R_ARM_MOVW_BREL, R_ARM_MOVT_BREL,
266         R_ARM_THM_MOVW_BREL_NC, R_ARM_THM_MOVW_BREL and
267         R_ARM_THM_MOVT_BREL relocations.
268
269 2006-08-29  Nathan Sidwell  <nathan@codesourcery.com>
270
271         ld/
272         * ldlang.c (walk_wild): Allow * to glob '/' in wildcarded match.
273
274 2006-08-29  Nathan Sidwell  <nathan@codesourcery.com>
275
276         ld/
277         Backport 2006-08-28  Alan Modra  <amodra@bigpond.net.au>
278         * scripttempl/elf.sc: Ensure that crtbegin and crtend entries will
279         not match random object files in a path containing "crtbegin" or
280         "crtend" as part of a directory name.
281         * scripttempl/armbpabi.sc: Likewise.
282         * scripttempl/crisaout.sc: Likewise.
283         * scripttempl/elf32crx.sc: Likewise.
284         * scripttempl/elf32sh-symbian.sc: Likewise.
285         * scripttempl/elf_chaos.sc: Likewise.
286         * scripttempl/elfd10v.sc: Likewise.
287         * scripttempl/elfd30v.sc: Likewise.
288         * scripttempl/elfxtensa.sc: Likewise.
289         * scripttempl/iq2000.sc: Likewise.
290         * scripttempl/mmo.sc: Likewise.
291         * scripttempl/xstormy16.sc: Likewise.
292
293 2006-08-29  Nathan Sidwell  <nathan@codesourcery.com>
294
295         ld/
296         This is fixed differently (and more intrusively) upstream.
297         * ldexp.c (fold_name): Loadaddrs of sections with an lma_region
298         are absolute.
299
300         ld/testsuite/
301         * ld-elf/loadaddr3.t: New.
302         * ld-elf/loadaddr3a.d: New.
303         * ld-elf/loadaddr3b.d: New.
304
305 2006-08-24  Mark Shinwell  <shinwell@codesourcery.com>
306
307         bfd/
308         * elf32-arm.c (elf32_arm_howto_table_1): Change offset for
309         R_THM_CALL to 25 and remove FIXME comment.
310         (using_thumb2): New function.
311         (elf32_arm_final_link_relocate): Cope with Thumb-2 BL encoding.
312
313         ld/testsuite/
314         * arm-elf.exp: Add thumb1-bl, thumb2-bl, thumb2-bl-as-thumb1-bad
315         and thumb2-bl-bad tests.
316         * thumb1-bl.d: New.
317         * thumb1-bl.s: New.
318         * thumb2-bl-as-thumb1-bad.d: New.
319         * thumb2-bl-as-thumb1-bad.s: New.
320         * thumb2-bl-bad.d: New.
321         * thumb2-bl-bad.s: New.
322         * thumb2-bl.d: New.
323         * thumb2-bl.s: New.
324
325 2006-08-24  Mark Shinwell  <shinwell@codesourcery.com>
326
327         bfd/
328         * elf32-arm.c (elf32_arm_final_link_relocate): Add cases
329         for R_ARM_ABS32_NOI and R_ARM_REL32_NOI.
330         (elf32_arm_gc_sweep_hook): Likewise.
331         (elf32_arm_check_relocs): Likewise.
332         (allocate_dynrelocs): Likewise.
333
334 2006-08-22  Joseph Myers  <joseph@codesourcery.com>
335
336         Merge changes between binutils-csl-2_17-branchpoint and
337         binutils-2_17, except for the addition of generated files to CVS.
338
339 2006-08-21  Mark Shinwell  <shinwell@codesourcery.com>
340
341         bfd/
342         * elf32-arm.c (elf32_arm_link_hash_table): Correct typo in
343         comment for target1_is_rel.
344
345 2006-08-19  Joseph Myers  <joseph@codesourcery.com>
346
347         gas/
348         * config/tc-arm.c (s_arm_unwind_save_mmxwr): Correct condition for
349         merging with previous long opcode.
350
351         gas/testsuite/
352         * gas/arm/unwind.s: Test not merging iWMMXt register save with
353         previous long opcode.
354         * gas/arm/unwind.d, gas/arm/unwind_vxworks.d: Update.
355
356 2006-08-18  Paul Brook  <paul@codesourcery.com>
357
358         Backport from mainline.
359         bfd/
360         * elf32-arm.c (elf32_arm_link_hash_entry): Add export_glue.
361         (elf32_arm_link_hash_newfunc): Initialize export_glue.
362         (record_arm_to_thumb_glue): Return stub symbol.
363         (elf32_arm_create_thumb_stub): New function.
364         (elf32_arm_to_thumb_stub): Use it.
365         (elf32_arm_to_thumb_export_stub): New function.
366         (elf32_arm_begin_write_processing): New function.
367         (allocate_dynrelocs): Allocate Arm stubs.
368         (elf_backend_begin_write_processing): Define.
369         (elf32_arm_symbian_begin_write_processing): Remove ATTRIBUTE_UNUSED.
370         Call elf32_arm_begin_write_processing.
371
372         ld/
373         * emultempl/armelf.em (arm_elf_before_allocation): Call
374         gld${EMULATION_NAME}_before_allocation after setting interworking bfd.
375
376         ld/testsuite/
377         * ld-arm/arm-elf.exp (armelftests): Add armthumb-lib.so.  Add
378         -use-blx to mixed-lib.so
379         * ld-arm/armthumb-lib.d: New file.
380         * ld-arm/armthumb-lib.sym: New file.
381
382 2006-08-18  Julian Brown  <julian@codesourcery.com>
383
384         libiberty/
385         * floatformat.c (get_field): Fix segfault with little-endian word
386         order on 64-bit hosts.
387         (put_field): Likewise.
388         (min): Move definition.
389
390 2006-08-18  Julian Brown  <julian@codesourcery.com>
391
392         opcodes/
393         * arm-dis.c (print_insn_neon): Disassemble 32-bit immediates as
394         signed on 64-bit hosts.
395
396 2006-08-16  Julian Brown  <julian@codesourcery.com>
397
398         gas/
399         * config/tc-arm.c (md_assemble): Improve diagnostic when attempting
400         to use ARM instructions on non-ARM-supporting cores.
401         (autoselect_thumb_from_cpu_variant): New function. Switch on Thumb
402         mode automatically based on cpu variant.
403         (md_begin): Call above function.
404
405         gas/testsuite/
406         * gas/arm/noarm.s: Add test for disabled ARM insns.
407         * gas/arm/noarm.d: Drive test for above.
408         * gas/arm/noarm.l: Expected error output.
409
410 2006-08-16  Julian Brown  <julian@codesourcery.com>
411
412         gas/
413         * config/tc-arm.c (opcode_lookup): Allow Neon type suffixes to be
414         recognized in non-unified syntax mode.
415
416 2006-08-15  Mark Shinwell  <shinwell@codesourcery.com>
417
418         gas/
419         * config/tc-arm.c (s_arm_unwind_save_vfp_armv6): New.  Parse
420         a directive saving VFP registers for ARMv6 or later.
421         (s_arm_unwind_save): Add parameter arch_v6 and call
422         s_arm_unwind_save_vfp or s_arm_unwind_save_vfp_armv6 as
423         appropriate.
424         (md_pseudo_table): Add entry for new "vsave" directive.
425         * doc/c-arm.texi: Correct error in example for "save"
426         directive (fstmdf -> fstmdx).  Also document "vsave" directive.
427
428 2006-08-03  Joseph Myers  <joseph@codesourcery.com>
429
430         Backport from mainline.
431
432         gas/
433         * config/tc-arm.c (parse_operands): Handle invalid register name
434         for OP_RIWR_RIWC. 
435
436         gas/testsuite/
437         * gas/arm/iwmmxt-bad.s: Test invalid register names for wldrw and
438         wstrw.
439         * gas/arm/iwmmxt-bad.l: Update.
440
441         gas/
442         * config/tc-arm.c (enum operand_parse_code): Add OP_RIWC_RIWG.
443         (parse_operands): Handle it.
444         (insns): Use it for tmcr and tmrc.
445
446         gas/testsuite/
447         * gas/arm/iwmmxt.s: Test tmcr and tmrc with wcgr registers.
448         * gas/arm/iwmmxt.d: Update.
449
450 2006-07-27  Carlos O'Donell  <carlos@codesourcery.com>
451
452         bfd/
453         * elfxx-mips.c (_bfd_mips_elf_print_private_bfd_data):
454         Print EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, EF_MIPS_XGOT
455         and EF_MIPS_UCODE.
456
457 2006-07-26  Vladimir Prus  <vladimir@codesourcery.com>
458         
459         bfd/
460         * Makefile.am: (VERSUFFIX_s): New. Pass it to compiler
461         via -D.
462         * Makefile.in: Regenerated.
463         * configure: Regenerated.
464         * configure.in: Add --with-versuffix option.
465         * version.h: Add BFD_VERSION_SUFFIX, use it 
466         in BFD_VERSION_STRING.
467         
468         binutils/
469         * Makefile.am: (REPORT_BUGS_TO_s): New. Pass it to compiler
470         via -D.
471         * Makefile.in: Regenerated.
472         * configure: Regenerated.
473         * configure.in: Add --with-bugurl option.
474
475         gas/
476         * Makefile.am: (REPORT_BUGS_TO_s): New. Pass it to compiler
477         via -D.
478         * Makefile.in: Regenerated.
479         * configure: Regenerated.
480         * configure.in: Add --with-bugurl option.
481
482         gprof/
483         * Makefile.am: (VERSUFFIX_s, REPORT_BUGS_TO_s): New. Pass 
484         them to compiler via -D.
485         * Makefile.in: Regenerated.
486         * configure: Regenerated.
487         * configure.in: Add --with-versuffix and --with-bugurl option.
488         * gprof.c: Print version suffix.
489
490         ld/
491         * Makefile.am: (REPORT_BUGS_TO_s): New. Pass it to compiler
492         via -D.
493         * Makefile.in: Regenerated.
494         * configure: Regenerated.
495         * configure.in: Add --with-bugurl option.
496
497 2006-07-26  Richard Sandiford  <richard@codesourcery.com>
498
499         opcodes/
500         * m68k-opc.c (m68k_opcodes): Fix operand specifier in the Coldfire
501         "fdaddl" entry.
502
503         gas/testsuite/
504         * gas/m68k/mcf-fpu.s: Add tests for all addressing modes.
505         * gas/m68k/mcf-fpu.d: Update accordingly.
506
507 2006-07-20  Julian Brown  <julian@codesourcery.com>
508
509         Backport from mainline.
510
511         opcodes/
512         * arm-dis.c (coprocessor): Alter fmsrr disassembly syntax.
513
514         gas/testsuite/
515         * gas/arm/vfp-neon-syntax.d: Tweak expected fmsrr syntax.
516         * gas/arm/vfp-neon-syntax_t2.d: Likewise.
517         * gas/arm/vfp2.d: Likewise.
518         * gas/arm/vfp2_t2.d: Likewise.
519
520 2006-07-19  Paul Brook  <paul@codesourcery.com>
521
522         Backport from mainline.
523         gas/
524         * config/tc-arm.c (insns): Fix rbit Arm opcode.
525         gas/testsuite/
526         * gas/arm/archv6t2.d: Adjust expected output for rbit.
527         opcodes/
528         * armd-dis.c (arm_opcodes): Fix rbit opcode.
529
530 2006-07-18  Paul Brook  <paul@codesourcery.com>
531
532         Backport from mainline.
533         bfd/
534         * bfd-in2.h: Regenerate.
535         * libbfd.h: Regenerate.
536         * reloc.c: Add BFD_RELOC_ARM_T32_ADD_IMM.
537
538         gas/
539         * tc-arm.c (do_t_add_sub): Use addw/subw when source is PC.
540         (md_convert_frag): Use correct reloc for add_pc.  Use
541         BFD_RELOC_ARM_T32_ADD_IMM for normal add/sum.
542         (md_apply_fix): Handle BFD_RELOC_ARM_T32_ADD_IMM.
543         (arm_force_relocation): Handle BFD_RELOC_ARM_T32_ADD_IMM.
544
545         gas/testsuite/
546         * gas/arm/thumb2_add.d: New test.
547         * gas/arm/thumb2_add.s: New test.
548
549 2006-07-14  Nathan Sidwell  <nathan@codesourcery.com>
550
551         bfd/
552         * config.bfd (sh-*-uclinux, sh[12]-*-uclinux): New stanza.
553
554         gas/
555         * configure.tgt (sh-*-uclinux, sh[12]-*-uclinux): Specify as elf.
556
557         ld/
558         * Makefile.am (ALL_EMULATIONS): Add eshelf_uclinux.o
559         (eshelf_uclinux.c): New target.
560         * Makefile.in: Rebuilt.
561         * configure.tgt (sh-*-uclinux* | sh[12]-*-uclinux*): New stanza.
562         * emulparams/shelf_uclinux.sh: New.
563
564 2006-07-12  Richard Sandiford  <richard@codesourcery.com>
565
566         Backport from mainline:
567
568         bfd/
569         2006-07-12  Matthew R. Dempsky  <mrd@alkemio.org>
570
571         * cpu-m68k.c (bfd_m68k_compatible): Handle CPU32.
572
573         ld/testsuite/
574         2006-07-12  Richard Sandiford  <richard@codesourcery.com>
575
576         * ld-m68k/merge-ok-1c.d: New test.
577         * ld-m68k/m68k.exp: Run it.
578
579 2006-06-22  Richard Sandiford  <richard@codesourcery.com>
580
581         binutils/
582         * objcopy.c (localize_hidden): New variable.
583         (OPTION_LOCALIZE_HIDDEN): New command_line_switch value.
584         (copy_options): Add --localize-hidden.
585         (copy_usage): Mention --localize-hidden.
586         (is_hidden_symbol): New function.
587         (filter_symbols): Handle localize_hidden.
588         (copy_object): Call filter_symbols if localize_hidden.
589         (copy_main): Handle OPTION_LOCALIZE_HIDDEN.
590         * doc/binutils.texi (--localize-hidden): Document new option.
591
592         binutils/testsuite/
593         * binutils-all/localize-hidden-1.s,
594         * binutils-all/localize-hidden-1.d,
595         * binutils-all/localize-hidden-2.s,
596         * binutils-all/localize-hidden-2.d: New tests.
597         * binutils-all/objcopy.exp: Run them.
598
599 2006-06-22  Richard Sandiford  <richard@codesourcery.com>
600
601         Backport from mainline:
602
603         binutils/testsuite/
604         2006-04-26  H.J. Lu  <hongjiu.lu@intel.com>
605
606         * lib/utils-lib.exp (run_dump_test): New.
607         (slurp_options): Likewise.
608         (regexp_diff): Likewise.
609         (file_contents): Likewise.
610         (verbose_eval): Likewise.
611
612 2006-06-21  Mark Shinwell  <shinwell@codesourcery.com>
613
614         ld/
615         * ldlang.c (lang_insert_orphan): Correctly handle the case where
616         the section is to end up after the section currently at the end
617         of the list in output_bfd.
618
619 2006-06-19  Vladimir Prus  <vladimir@codesourcery.com>
620
621         bfd/
622         * elf32-arm.c (elf32_arm_swap_symbol_out): Don't set low
623         bit for undefined symbols.
624
625         ld/testsuite
626         * ld-arm/arm-elf.exp: New test.
627         * ld-arm/use-thumb-lib.s: New file.
628         * ld-arm/use-thumb-lib.sym: New file.
629
630 2006-06-15  Mark Shinwell  <shinwell@codesourcery.com>
631
632         * include/elf/arm.h: Correct names of R_ARM_LDC_G{0,1,2}
633         to R_ARM_LDC_SB_G{0,1,2} respectively.
634
635         bfd/
636         * bfd-in2.h: Regenerate.
637         * elf32-arm.c (R_ARM_ALU_PC_G0_NC, R_ARM_ALU_PC_G0,
638         R_ARM_ALU_PC_G1_NC, R_ARM_ALU_PC_G1, R_ARM_ALU_PC_G2,
639         R_ARM_LDR_PC_G1, R_ARM_LDR_PC_G2, R_ARM_LDRS_PC_G0,
640         R_ARM_LDRS_PC_G1, R_ARM_LDRS_PC_G2, R_ARM_LDC_PC_G0,
641         R_ARM_LDC_PC_G1, R_ARM_LDC_PC_G2, R_ARM_ALU_SB_G0_NC,
642         R_ARM_ALU_SB_G0, R_ARM_ALU_SB_G1_NC, R_ARM_ALU_SB_G1,
643         R_ARM_ALU_SB_G2, R_ARM_LDR_SB_G0, R_ARM_LDR_SB_G1,
644         R_ARM_LDR_SB_G2, R_ARM_LDRS_SB_G0, R_ARM_LDRS_SB_G1,
645         R_ARM_LDRS_SB_G2, R_ARM_LDC_SB_G0, R_ARM_LDC_SB_G1,
646         R_ARM_LDC_SB_G2): New relocation types.
647         (R_ARM_PC13): Rename to AAELF name R_ARM_LDR_PC_G0 and
648         adjust HOWTO entry to be consistent with R_ARM_LDR_PC_G1
649         and friends.
650         (elf32_arm_howto_table_3): Delete; contents merged into
651         elf32_arm_howto_table_2.
652         (elf32_arm_howto_from_type): Adjust correspondingly.
653         (elf32_arm_reloc_map): Extend with the above relocations.
654         (calculate_group_reloc_mask): New function.
655         (identify_add_or_sub): New function.
656         (elf32_arm_final_link_relocate): Support for the above
657         relocations.
658         * reloc.c: Add enumeration entries for BFD_RELOC_ARM_...
659         codes to correspond to the above relocations.
660
661         gas/
662         * config/tc-arm.c (enum parse_operand_result): New.
663         (struct group_reloc_table_entry): New.
664         (enum group_reloc_type): New.
665         (group_reloc_table): New array.
666         (find_group_reloc_table_entry): New function.
667         (parse_shifter_operand_group_reloc): New function.
668         (parse_address_main): New function, incorporating code
669         from the old parse_address function.  To be used via...
670         (parse_address): wrapper for parse_address_main; and
671         (parse_address_group_reloc): new function, likewise.
672         (enum operand_parse_code): New codes OP_SHG, OP_ADDRGLDR,
673         OP_ADDRGLDRS, OP_ADDRGLDC.
674         (parse_operands): Support for these new operand codes.
675         New macro po_misc_or_fail_no_backtrack.
676         (encode_arm_cp_address): Preserve group relocations.
677         (insns): Modify to use the above operand codes where group
678         relocations are permitted.
679         (md_apply_fix): Handle the group relocations
680         ALU_PC_G0_NC through LDC_SB_G2.
681         (tc_gen_reloc): Likewise.
682         (arm_force_relocation): Leave group relocations for the linker.
683         (arm_fix_adjustable): Likewise.
684
685         gas/testsuite/
686         * gas/arm/group-reloc-alu.d: New test.
687         * gas/arm/group-reloc-alu-encoding-bad.d: New test.
688         * gas/arm/group-reloc-alu-encoding-bad.l: New test.
689         * gas/arm/group-reloc-alu-encoding-bad.s: New test.
690         * gas/arm/group-reloc-alu-parsing-bad.d: New test.
691         * gas/arm/group-reloc-alu-parsing-bad.l: New test.
692         * gas/arm/group-reloc-alu-parsing-bad.s: New test.
693         * gas/arm/group-reloc-alu.s: New test.
694         * gas/arm/group-reloc-ldc.d: New test.
695         * gas/arm/group-reloc-ldc-encoding-bad.d: New test.
696         * gas/arm/group-reloc-ldc-encoding-bad.l: New test.
697         * gas/arm/group-reloc-ldc-encoding-bad.s: New test.
698         * gas/arm/group-reloc-ldc-parsing-bad.d: New test.
699         * gas/arm/group-reloc-ldc-parsing-bad.l: New test.
700         * gas/arm/group-reloc-ldc-parsing-bad.s: New test.
701         * gas/arm/group-reloc-ldc.s: New test.
702         * gas/arm/group-reloc-ldr.d: New test.
703         * gas/arm/group-reloc-ldr-encoding-bad.d: New test.
704         * gas/arm/group-reloc-ldr-encoding-bad.l: New test.
705         * gas/arm/group-reloc-ldr-encoding-bad.s: New test.
706         * gas/arm/group-reloc-ldr-parsing-bad.d: New test.
707         * gas/arm/group-reloc-ldr-parsing-bad.l: New test.
708         * gas/arm/group-reloc-ldr-parsing-bad.s: New test.
709         * gas/arm/group-reloc-ldr.s: New test.
710         * gas/arm/group-reloc-ldrs.d: New test.
711         * gas/arm/group-reloc-ldrs-encoding-bad.d: New test.
712         * gas/arm/group-reloc-ldrs-encoding-bad.l: New test.
713         * gas/arm/group-reloc-ldrs-encoding-bad.s: New test.
714         * gas/arm/group-reloc-ldrs-parsing-bad.d: New test.
715         * gas/arm/group-reloc-ldrs-parsing-bad.l: New test.
716         * gas/arm/group-reloc-ldrs-parsing-bad.s: New test.
717         * gas/arm/group-reloc-ldrs.s: New test.
718
719         ld/testsuite/
720         * ld-arm/group-relocs-alu-bad.d: New test.
721         * ld-arm/group-relocs-alu-bad.s: New test.
722         * ld-arm/group-relocs.d: New test.
723         * ld-arm/group-relocs-ldc-bad.d: New test.
724         * ld-arm/group-relocs-ldc-bad.s: New test.
725         * ld-arm/group-relocs-ldr-bad.d: New test.
726         * ld-arm/group-relocs-ldr-bad.s: New test.
727         * ld-arm/group-relocs-ldrs-bad.d: New test.
728         * ld-arm/group-relocs-ldrs-bad.s: New test.
729         * ld-arm/group-relocs.s: New test.
730         * ld-arm/arm-elf.exp: Wire in new tests.
731
732 2006-06-15  Julian Brown  <julian@codesourcery.com>
733
734         gas/
735         * config/tc-arm.c (do_vfp_nsyn_ldr_str): Remove, fold into...
736         (do_neon_ldr_str): Always defer to VFP encoding routines, which handle
737         relocs properly.
738
739 2006-05-25  Alan Modra  <amodra@bigpond.net.au>
740
741         * bfd/elf.c (sym_is_global): Return a bfd_boolean.
742         (ignore_section_sym): New function.
743         (elf_map_symbols): Use ignore_section_sym to discard some syms.
744         (_bfd_elf_symbol_from_bfd_symbol): Ensure section belongs to
745         bfd before using elf_section_syms.
746
747 2006-05-25  Nathan Sidwell  <nathan@codesourcery.com>
748
749         * gas/config/tc-m68k.c (mcf52235_ctrl, mcf5225_ctrl): New.
750         (m68k_cpus): Add 52230, 52233, 52234, 52235, 5224, 5225.
751
752 2006-05-24  Paul Brook  <paul@codesourcery.com>
753
754         Backport from mainline.
755         * bfd/elf-bfd.h (elf_backend_data): Add
756         elf_backend_output_arch_local_syms
757         * bfd/elf32-arm.c (output_arch_syminfo): Define.
758         (elf32_arm_ouput_plt_map_sym, elf32_arm_output_plt_map,
759         elf32_arm_output_arch_local_syms): New functions.
760         (elf_backend_output_arch_local_syms): Define.
761         * bfd/elflink.c (bfd_elf_final_link): Call
762         elf_backend_output_arch_local_syms.
763         * bfd/elfxx-target.h (elf_backend_output_arch_local_syms): Provide
764         default definition.
765         (elfNN_bed): Add elf_backend_output_arch_local_syms.
766         * ld/testsuite/ld-arm/arm-app-abs32.d: Update expected output.
767         * ld/testsuite/ld-arm/arm-app.d: Ditto.
768         * ld/testsuite/ld-arm/arm-lib-plt32.d: Ditto.
769         * ld/testsuite/ld-arm/arm-lib.d: Ditto.
770         * ld/testsuite/ld-arm/mixed-app-v5.d: Ditto.
771         * ld/testsuite/ld-arm/mixed-app.d: Ditto.
772         * ld/testsuite/ld-arm/mixed-lib.d: Ditto.
773
774 2006-05-24  Paul Brook  <paul@codesourcery.com>
775
776         Backport from mainline.
777         * bfd/elf32-arm.c (put_arm_insn, put_thumb_insn): New functions.
778         (elf32_thumb_to_arm_stub, elf32_arm_to_thumb_stub,
779         elf32_arm_finish_dynamic_symbol): Use them.
780
781 2006-05-22  Richard Sandiford  <richard@codesourcery.com>
782
783         opcodes/
784         * m68k-dis.c (m68k_scan_mask): Add missing return.
785
786 2006-05-20  Nathan Sidwell  <nathan@codesourcery.com>
787
788         * binutils/testsuite/binutils-all/objcopy.exp: Skip for uclinux
789         targets.
790
791 2006-05-15  Paul Brook  <paul@codesourcery.com>
792
793         Backport from mainline.
794         * bfd/cpu-arm.c (bfd_is_arm_mapping_symbol_name): Rename ...
795         (bfd_is_arm_special_symbol_name): ... to this.  Add type argument.
796         Check symbol name is of specified type.
797         * bfd/elf32-arm.c (elf32_arm_is_target_special_symbol,
798         arm_elf_find_function, elf32_arm_output_symbol_hook): Use
799         bfd_is_arm_special_symbol_name.
800         * bfd/bfd-in.h (BFD_ARM_SPECIAL_SYM_TYPE_MAP,
801         BFD_ARM_SPECIAL_SYM_TYPE_TAG, BFD_ARM_SPECIAL_SYM_TYPE_OTHER,
802         BFD_ARM_SPECIAL_SYM_TYPE_ANY): Define.
803         (bfd_is_arm_mapping_symbol_name): Remove prototype.
804         (bfd_is_arm_special_symbol_name): Add prototype.
805         * bfd/bfd-in2.h: Regenerate.
806         * gas/config/tc-arm.c (arm_adjust_symtab): Use
807         bfd_is_arm_special_symbol_name.
808         * ld/testsuite/ld-arm/arm-be8.d: New test.
809         * ld/testsuite/ld-arm/arm-be8.s: New test.
810         * ld/testsuite/ld-arm/arm-elf.exp: Add arm-be8.
811
812 2006-05-12  Carlos O'Donell  <carlos@codesourcery.com>
813
814         * binutils/doc/binutils.texi: Rename "Index" to "Binutils Index"
815
816 2006-05-11  Carlos O'Donell  <carlos@codesourcery.com>
817
818         * bfd/doc/bfd.texinfo: Rename "Index" to "BFD Index"
819         * ld/ld.texinfo: Rename "Index" to "LD Index"
820         * gas/doc/as.texinfo: Rename "Index" to "AS Index"
821         Rename "ABORT" to "ABORT (COFF)"
822
823 2006-05-06  Joseph S. Myers  <joseph@codesourcery.com>
824
825         Backport:
826         2006-03-30  Jakub Jelinek  <jakub@redhat.com>
827         * ldmisc.c (vfinfo): Revert 2005-10-05 changes.  If
828         bfd_find_nearest_line succeeded for %C or %D, but filename
829         is NULL, print section+offset at the end.
830
831 2006-05-05  Julian Brown  <julian@codesourcery.com>
832
833         * gas/config/tc-arm.c (stdarg.h): include.
834         (arm_it): Add uncond_value field. Add isvec and issingle to operand
835         array.
836         (arm_reg_type): Add REG_TYPE_VFSD (single or double VFP reg) and
837         REG_TYPE_NSDQ (single, double or quad vector reg).
838         (reg_expected_msgs): Update.
839         (BAD_FPU): Add macro for unsupported FPU instruction error.
840         (parse_neon_type): Support 'd' as an alias for .f64.
841         (parse_typed_reg_or_scalar): Support REG_TYPE_VFSD, REG_TYPE_NSDQ
842         sets of registers.
843         (parse_vfp_reg_list): Don't update first arg on error.
844         (parse_neon_mov): Support extra syntax for VFP moves.
845         (operand_parse_code): Add OP_RVSD, OP_RNSDQ, OP_VRSDLST, OP_RVSD_IO,
846         OP_RNSDQ_RNSC, OP_RVC_PSR, OP_APSR_RR, OP_oRNSDQ.
847         (parse_operands): Support isvec, issingle operands fields, new parse
848         codes above.
849         (do_vfp_nsyn_mrs, do_vfp_nsyn_msr): New functions. Support VFP mrs,
850         msr variants.
851         (do_mrs, do_msr, do_t_mrs, do_t_msr): Add support for above.
852         (NEON_ENC_TAB): Add vnmul, vnmla, vnmls, vcmp, vcmpz, vcmpe, vcmpez.
853         (NEON_ENC_SINGLE, NEON_ENC_DOUBLE): Define macros.
854         (NEON_SHAPE_DEF): New macro. Define table of possible instruction
855         shapes.
856         (neon_shape): Redefine in terms of above.
857         (neon_shape_class): New enumeration, table of shape classes.
858         (neon_shape_el): New enumeration. One element of a shape.
859         (neon_shape_el_size): Register widths of above, where appropriate.
860         (neon_shape_info): New struct. Info for shape table.
861         (neon_shape_tab): New array.
862         (neon_type_mask): Add N_F64, N_VFP. Update N_MAX_NONSPECIAL.
863         (neon_check_shape): Rewrite as...
864         (neon_select_shape): New function to classify instruction shapes,
865         driven by new table neon_shape_tab array.
866         (neon_quad): New function. Return 1 if shape should set Q flag in
867         instructions (or equivalent), 0 otherwise.
868         (type_chk_of_el_type): Support F64.
869         (el_type_of_type_chk): Likewise.
870         (neon_check_type): Add support for VFP type checking (VFP data
871         elements fill their containing registers).
872         (do_vfp_cond_or_thumb): Fill in condition field in ARM mode, or 0xE
873         in thumb mode for VFP instructions.
874         (do_vfp_nsyn_opcode): New function. Look up the opcode in argument,
875         and encode the current instruction as if it were that opcode.
876         (try_vfp_nsyn): New. If this looks like a VFP instruction with ARGS
877         arguments, call function in PFN.
878         (do_vfp_nsyn_add_sub, do_vfp_nsyn_mla_mls, do_vfp_nsyn_mul)
879         (do_vfp_nsyn_abs_neg, do_vfp_nsyn_ldm_stm, do_vfp_nsyn_ldr_str)
880         (do_vfp_nsyn_sqrt, do_vfp_nsyn_div, do_vfp_nsyn_nmul)
881         (do_vfp_nsyn_cmp, nsyn_insert_sp, do_vfp_nsyn_push)
882         (do_vfp_nsyn_pop, do_vfp_nsyn_cvt, do_vfp_nsyn_cvtz): New functions.
883         Redirect Neon-syntax VFP instructions to VFP instruction handlers.
884         (do_neon_dyadic_i_su, do_neon_dyadic_i64_su, do_neon_shl_imm)
885         (do_neon_qshl_imm, do_neon_logic, do_neon_bitfield)
886         (neon_dyadic_misc, neon_compare, do_neon_tst, do_neon_qdmulh)
887         (do_neon_fcmp_absolute, do_neon_step, do_neon_sli, do_neon_sri)
888         (do_neon_qshlu_imm, neon_move_immediate, do_neon_mvn, do_neon_ext)
889         (do_neon_rev, do_neon_dup, do_neon_rshift_round_imm, do_neon_trn)
890         (do_neon_zip_uzp, do_neon_sat_abs_neg, do_neon_pair_long)
891         (do_neon_recip_est, do_neon_cls, do_neon_clz, do_neon_cnt)
892         (do_neon_swp): Use neon_select_shape not neon_check_shape. Use
893         neon_quad.
894         (vfp_or_neon_is_neon): New function. Call if a mnemonic shared
895         between VFP and Neon turns out to belong to Neon. Perform
896         architecture check and fill in condition field if appropriate.
897         (do_neon_addsub_if_i, do_neon_mac_maybe_scalar, do_neon_abs_neg)
898         (do_neon_cvt): Add support for VFP variants of instructions.
899         (neon_cvt_flavour): Extend to cover VFP conversions.
900         (do_neon_mov): Rewrite to use neon_select_shape. Add support for VFP
901         vmov variants.
902         (do_neon_ldr_str): Handle single-precision VFP load/store.
903         (do_neon_ld_st_interleave, do_neon_ld_st_lane, do_neon_ld_dup): Use
904         NS_NULL not NS_IGNORE.
905         (opcode_tag): Add OT_csuffixF for operands which either take a
906         conditional suffix, or have 0xF in the condition field.
907         (md_assemble): Add support for OT_csuffixF.
908         (NCE): Replace macro with...
909         (NCE_tag, NCE, NCEF): New macros.
910         (nCE): Replace macro with...
911         (nCE_tag, nCE, nCEF): New macros.
912         (insns): Add support for VFP insns or VFP versions of insns msr, mrs,
913         vsqrt, vdiv, vnmul, vnmla, vnmls, vcmp, vcmpe, vpush, vpop, vcvtz,
914         vmul, vmla, vmls, vadd, vsub, vabs, vneg, vldm, vldmia, vldbdb, vstm,
915         vstmia, vstmdb, vldr, vstr, vcvt, vmov. Group shared VFP/Neon insns
916         together.
917
918         * gas/testsuite/gas/arm/itblock.s: New file. Helper macro for making
919         all-true IT blocks.
920         * gas/testsuite/gas/arm/neon-cond-bad-inc.s: New test. Make sure
921         unconditional Neon instructions are rejected...
922         * gas/testsuite/gas/arm/neon-cond-bad.s: In ARM mode, and...
923         * gas/testsuite/gas/arm/neon-cond-bad_t2.s: Accepted in Thumb mode
924         (with IT).
925         * gas/testsuite/gas/arm/neon-cond-bad.l: Expected error output in ARM
926         mode.
927         * gas/testsuite/gas/arm/neon-cond-bad.d: Control ARM mode test.
928         * gas/testsuite/gas/arm/neon-cond-bad_t2.d: Expected output in Thumb
929         mode.
930         * gas/testsuite/gas/arm/vfp-neon-syntax-inc.s: Test VFP Neon-style
931         syntax.
932         * gas/testsuite/gas/arm/vfp-neon-syntax.s: ...in ARM mode.
933         * gas/testsuite/gas/arm/vfp-neon-syntax_t2.s: ...and Thumb mode.
934         * gas/testsuite/gas/arm/vfp-neon-syntax.d: Expected output in ARM mode.
935         * gas/testsuite/gas/arm/vfp-neon-syntax_t2.d: Expected output in Thumb
936         mode.
937
938 2006-05-05  Mark Shinwell  <shinwell@codesourcery.com>
939
940         * configure: Regenerate.
941         * configure.in: Enable gprof for cross builds.
942
943 2006-05-03  Julian Brown  <julian@codesourcery.com>
944
945         * gas/doc/c-arm.texi: Add documentation for .dn/.qn directives.
946
947 2006-05-03  Paul Brook  <paul@codesourcery.com>
948
949         * bfd/elf32-arm.c (elf32_arm_reloc_map): Add MOVW and MOVT relocs.
950         (elf32_arm_final_link_relocate): Handle MOVW and MOVT relocs.
951         (elf32_arm_gc_sweep_hook, elf32_arm_check_relocs): Ditto.
952         * bfd/reloc.c: Ditto.
953         * bfd/bfd-in2.h: Regenerate.
954         * bfd/libbfd.h: Regenerate.
955         * bfd/libcoff.h: Regenerate.
956         * gas/config/tc-arm.c (parse_half): New function.
957         (operand_parse_code): Remove OP_Iffff.  Add OP_HALF.
958         (parse_operands): Ditto.
959         (do_mov16): Reject invalid relocations.
960         (do_t_mov16): Ditto.  Use Thumb reloc numbers.
961         (insns): Replace Iffff with HALF.
962         (md_apply_fix): Add MOVW and MOVT relocs.
963         (tc_gen_reloc): Ditto.
964         * gas/doc/c-arm.texi: Document relocation operators
965         * ld/testsuite/ld-arm/arm-elf.exp: Add arm-movwt.
966         * ld/testsuite/ld-arm/arm-movwt.d: New test.
967         * ld/testsuite/ld-arm/arm-movwt.s: New test.
968         * ld/testsuite/ld-arm/arm.ld: Add .far.
969
970 2006-05-02  Joseph Myers  <joseph@codesourcery.com>
971
972         * gas/config/tc-arm.c (do_iwmmxt_wldstbh): Don't multiply offset
973         by 4 here.
974         (md_apply_fix3): Multiply offset by 4 here for
975         BFD_RELOC_ARM_CP_OFF_IMM_S2 and BFD_RELOC_ARM_T32_CP_OFF_IMM_S2.
976         * gas/testsuite/gas/arm/iwmmxt.s: Increase offsets for wstrb and
977         wstrh.
978         * gas/testsuite/gas/arm/iwmmxt.d: Update expected results.
979         * gas/testsuite/gas/arm/iwmmxt-bad2.s: Test wstrb, wstrh, wldrb
980         and wldrh.
981         * gas/testsuite/gas/arm/iwmmxt-bad2.l: Update expected error
982         messages.
983
984 2006-05-01  Paul Brook  <paul@codesourcery.com>
985
986         * bfd/elf32-arm.c (elf32_arm_final_link_relocate): Set thumb funciton
987         bit for R_ARM_REL32.
988         * gas/config/tc-arm.c (arm_optimize_expr): New function.
989         * gas/config/tc-arm.h (md_optimize_expr): Define
990         (arm_optimize_expr): Add prototype.
991         (TC_FORCE_RELOCATION_SUB_SAME): Define.
992         * ld/testsuite/ld-arm/arm-elf.exp: Add thumb-rel32.
993         * ld/testsuite/ld-arm/thumb-rel32.d: New test.
994         * ld/testsuite/ld-arm/thumb-rel32.s: New test.
995
996 2006-04-29  Paul Brook  <paul@codesourcery.com>
997
998         * opcodes/arm-dis.c (coprocessor_opcodes): Add %c to unconditional
999         arm instructions.
1000         (neon_opcodes): Add conditional execution specifiers.
1001         (thumb_opcodes): Ditto.
1002         (thumb32_opcodes): Ditto.
1003         (arm_conditional): Change 0xe to "al" and add "" to end.
1004         (ifthen_state, ifthen_next_state, ifthen_address): New.
1005         (IFTHEN_COND): Define.
1006         (print_insn_coprocessor, print_insn_neon): Print thumb conditions.
1007         (print_insn_arm): Change %c to use new values of arm_conditional.
1008         (print_insn_thumb16): Print thumb conditions.  Add %I.
1009         (print_insn_thumb32): Print thumb conditions.
1010         (find_ifthen_state): New function.
1011         (print_insn): Track IT block state.
1012         * gas/testsuite/gas/arm/thumb2_bcond.d: Update expected output.
1013         * gas/testsuite/gas/arm/thumb32.d: Ditto.
1014         * gas/testsuite/gas/arm/vfp1_t2.d: Ditto.
1015         * gas/testsuite/gas/arm/vfp1xD_t2.d: Ditto.
1016         * binutils/testsuite/binutils-all/arm/objdump.exp: New file.
1017         * binutils/testsuite/binutils-all/arm/thumb2-cond.s: New test.
1018
1019 2006-04-28  Mark Mitchell  <mark@codesourcery.com>
1020
1021         * doc/as.texinfo: Mention that some .type syntaxes are not
1022         supported on all architectures.
1023
1024 2006-04-27  Richard Sandiford  <richard@codesourcery.com>
1025
1026         include/opcodes/
1027         * m68k.h (mcf_mask): Define.
1028
1029         opcodes/
1030         * m68k-opc.c (m68k_opcodes): Fix the masks of the Coldfire fmovemd
1031         and fmovem entries.  Put register list entries before immediate
1032         mask entries.  Use "l" rather than "L" in the fmovem entries.
1033         * m68k-dis.c (match_insn_m68k): Remove the PRIV argument and work it
1034         out from INFO.
1035         (m68k_scan_mask): New function, split out from...
1036         (print_insn_m68k): ...here.  If no architecture has been set,
1037         first try printing an m680x0 instruction, then try a Coldfire one.
1038
1039 2006-04-27  Richard Sandiford  <richard@codesourcery.com>
1040
1041         bfd/
1042         * elf32-m68k.c (elf_m68k_pcrel_insn): New structure.
1043         (elf_m68k_plt_info): Likewise.
1044         (elf_m68k_plt_info): New table.
1045         (CFV4E_PLT_ENTRY_SIZE): Rename to...
1046         (ISAB_PLT_ENTRY_SIZE): ...this.
1047         (CFV4E_FLAG): Delete.
1048         (elf_cfv4e_plt0_entry): Rename to...
1049         (elf_isab_plt0_entry): ...this.  Adjust comments.  Use (-6,%pc,%d0)
1050         for the second instruction too.
1051         (elf_cfv4e_plt_entry): Rename to...
1052         (elf_isab_plt_entry): ...this.  Adjust comments and use (-6,%pc,%d0).
1053         (elf_isab_plt_info): New table.
1054         (CPU32_FLAG): Delete.
1055         (PLT_CPU32_ENTRY_SIZE): Rename to...
1056         (CPU32_PLT_ENTRY_SIZE): ...this.
1057         (elf_cpu32_plt0_entry): Update bounds accordingly.
1058         (elf_cpu32_plt_entry): Likewise.
1059         (elf_cpu32_plt_info): New table.
1060         (elf_m68k_link_hash_table): Add a plt_info field.
1061         (elf_m68k_link_hash_table_create): Initialize it.
1062         (elf_m68k_get_plt_info): New function.
1063         (elf_m68k_always_size_sections): Likewise.
1064         (elf_m68k_adjust_dynamic_symbol): Use the plt_info hash table field.
1065         (elf_m68k_install_pcrel_field): New function.
1066         (elf_m68k_finish_dynamic_symbol): Factor code using plt_info and
1067         elf_m68k_install_pcrel_field.
1068         (elf_m68k_finish_dynamic_sections): Likewise.
1069         (elf_m68k_plt_sym_val): Use elf_m68k_get_plt_info.
1070         (elf_backend_always_size_sections): Define.
1071
1072 2006-04-26  Julian Brown  <julian@codesourcery.com>
1073
1074         * gas/config/tc-arm.c (parse_vfp_reg_list): Improve register bounds
1075         checking.
1076         (do_neon_mov): Enable several VMOV variants for VFP. Add suitable
1077         architecture version checks.
1078         (insns): Allow overlapping instructions to be used in VFP mode.
1079
1080         * gas/testsuite/gas/arm/vfp-neon-overlap.s: New test. Overlapping
1081         VFP/Neon instructions.
1082         * gas/testsuite/gas/arm/vfp-neon-overlap.d: Expected output of above.
1083         * gas/testsuite/gas/arm/vfp1xD.d: Test for fldmx/fstmx.
1084         * gas/testsuite/gas/arm/vfp1xD_t2.d: Likewise.
1085         * gas/testsuite/gas/arm/vfpv3-32drs.d: Likewise.
1086
1087         * opcodes/arm-dis.c (coprocessor_opcodes): Don't interpret fldmx/fstmx
1088         as vldm/vstm.
1089
1090 2006-04-26  Julian Brown  <julian@codesourcery.com>
1091
1092         * gas/config/tc-arm.c (neon_is_quarter_float): Move, and rename to...
1093         (is_quarter_float): Rename from above. Simplify slightly.
1094         (parse_qfloat_immediate): Parse a "quarter precision" floating-point
1095         number.
1096         (parse_neon_mov): Parse floating-point constants.
1097         (neon_qfloat_bits): Fix encoding.
1098         (neon_cmode_for_move_imm): Tweak to use floating-point encoding in
1099         preference to integer encoding when using the F32 type.
1100
1101         * gas/testsuite/gas/arm/neon-const.s: New testcase. Neon floating-point
1102         constants.
1103         * gas/testsuite/gas/arm/neon-const.d: Expected output of above.
1104         * gas/testsuite/gas/arm/neon-cov.d: Expect floating-point disassembly
1105         for VMOV.F32.
1106
1107         * opcodes/arm-dis.c (print_insn_neon): Disassemble floating-point
1108         constant VMOV.
1109
1110 2006-04-24  Julian Brown  <julian@codesourcery.com>
1111
1112         * libiberty/floatformat.c (floatformat_to_double): Fix (biased)
1113         exponent=0 case.
1114
1115 2006-04-12  Carlos O'Donell  <carlos@codesourcery.com>
1116
1117         * Makefile.tpl: Add install-html to install target deps.
1118         * Makefile.in: Regenerate.
1119
1120 2006-04-07  Julian Brown  <julian@codesourcery.com>
1121
1122         * gas/config/tc-arm.c (neon_el_type): Make NT_invtype be the zero (so
1123         zero-initialising structures containing it will lead to invalid
1124         types).
1125         (arm_it): Add vectype to each operand.
1126         (NTA_HASTYPE, NTA_HASINDEX): Constants used in neon_typed_alias
1127         defined field.
1128         (neon_typed_alias): New structure. Extra information for typed
1129         register aliases.
1130         (reg_entry): Add neon type info field.
1131         (arm_reg_parse): Remove RTYPE argument (revert to previous arguments).
1132         Break out alternative syntax for coprocessor registers, etc. into...
1133         (arm_reg_alt_syntax): New function. Alternate syntax handling broken
1134         out from arm_reg_parse.
1135         (parse_neon_type): Move. Return SUCCESS/FAIL.
1136         (first_error): New function. Call to ensure first error which occurs
1137         is reported.
1138         (parse_neon_operand_type): Parse exactly one type.
1139         (NEON_ALL_LANES, NEON_INTERLEAVE_LANES): Move.
1140         (parse_typed_reg_or_scalar): New function. Handle core of both
1141         arm_typed_reg_parse and parse_scalar.
1142         (arm_typed_reg_parse): Parse a register with an optional type.
1143         (NEON_SCALAR_REG, NEON_SCALAR_INDEX): Extract parts of parse_scalar
1144         result.
1145         (parse_scalar): Parse a Neon scalar with optional type.
1146         (parse_reg_list): Use first_error.
1147         (parse_vfp_reg_list): Use arm_typed_reg_parse instead of arm_reg_parse.
1148         (neon_alias_types_same): New function. Return true if two (alias) types
1149         are the same.
1150         (parse_neon_el_struct_list): Use parse_typed_reg_or_scalar. Return type
1151         of elements.
1152         (insert_reg_alias): Return new reg_entry not void.
1153         (insert_neon_reg_alias): New function. Insert type/index information as
1154         well as register for alias.
1155         (create_neon_reg_alias): New function. Parse .dn/.qn directives and
1156         make typed register aliases accordingly.
1157         (s_dn, s_qn): New functions. Handle incorrectly used .dn/.qn at start
1158         of line.
1159         (s_unreq): Delete type information if present.
1160         (s_arm_unwind_save_mmxwr): Remove arg 3 from arm_reg_parse calls.
1161         (s_arm_unwind_save_mmxwcg): Likewise.
1162         (s_arm_unwind_movsp): Likewise.
1163         (s_arm_unwind_setfp): Likewise.
1164         (parse_shift): Likewise.
1165         (parse_shifter_operand): Likewise.
1166         (parse_address): Likewise.
1167         (parse_tb): Likewise.
1168         (tc_arm_regname_to_dw2regnum): Likewise.
1169         (md_pseudo_table): Add dn, qn.
1170         (parse_neon_mov): Handle typed operands.
1171         (parse_operands): Likewise.
1172         (neon_type_mask): Add N_SIZ.
1173         (N_ALLMODS): New macro.
1174         (neon_check_shape): Fix typo in NS_DDD_QQQ case. Use first_error.
1175         (el_type_of_type_chk): Add some safeguards.
1176         (modify_types_allowed): Fix logic bug.
1177         (neon_check_type): Handle operands with types.
1178         (neon_three_same): Remove redundant optional arg handling.
1179         (do_neon_dyadic_i64_su, do_neon_shl_imm, do_neon_qshl_imm)
1180         (do_neon_logic, do_neon_qdmulh, do_neon_fcmp_absolute)
1181         (do_neon_step): Adjust accordingly.
1182         (neon_cmode_for_logic_imm): Use first_error.
1183         (do_neon_bitfield): Call neon_check_type.
1184         (neon_dyadic): Rename to...
1185         (neon_dyadic_misc): ...this. New name for neon_dyadic. Add bitfield to
1186         allow modification of type of the destination.
1187         (do_neon_dyadic_if_su, do_neon_dyadic_if_i, do_neon_dyadic_if_i_d)
1188         (do_neon_addsub_if_i, do_neon_mul): Adjust accordingly.
1189         (do_neon_compare): Make destination be an untyped bitfield.
1190         (neon_scalar_for_mul): Use NEON_SCALAR_REG, NEON_SCALAR_INDEX.
1191         (neon_mul_mac): Return early in case of errors.
1192         (neon_move_immediate): Use first_error.
1193         (neon_mac_reg_scalar_long): Fix type to include scalar.
1194         (do_neon_dup): Likewise.
1195         (do_neon_mov): Likewise (in several places).
1196         (do_neon_tbl_tbx): Fix type.
1197         (do_neon_ld_st_interleave, neon_alignment_bit, do_neon_ld_st_lane)
1198         (do_neon_ld_dup): Exit early in case of errors and/or use first_error.
1199         (opcode_lookup): Update for parse_neon_type returning SUCCESS/FAIL.
1200         Handle .dn/.qn directives.
1201         (REGDEF): Add zero for reg_entry neon field.
1202
1203         * gas/testsuite/gas/arm/neon-psyn.s: Basic test of programmers syntax.
1204         * gas/testsuite/gas/arm/neon-psyn.d: Expected output of above.
1205
1206 2006-04-03  Carlos O'Donell  <carlos@codesourcery.com>
1207
1208         * Makefile.tpl: Add install-html target.
1209         * Makefile.def: Add install-html target.
1210         * Makefile.in: Regenerate.
1211         * configure.in: Add --with-datarootdir, --with-docdir,
1212         and --with-htmldir options.
1213         * configure: Regenerate.
1214         * opcodes/Makefile.am: Add install-html target.
1215         * opcodes/Makefile.in: Regenerate.
1216         * libiberty/Makefile.in: Add install-html, install-html-am, and
1217         install-html-recursive targets. Define mkdir_p and 
1218         NORMAL_INSTALL. 
1219         * libiberty/configure.ac: AC_SUBST datarootdir, docdir, htmldir.
1220         * libiberty/configure: Regenerate.
1221         * libiberty/testsuite/Makefile.in: Add install-html and html targets.
1222         * ld/Makefile.am: Add install-html, install-html-am, and
1223         install-html-recursive targets.
1224         * ld/Makefile.in: Regenerate.
1225         * ld/configure.in: AC_SUBST datarootdir, docdir, htmldir.
1226         * ld/configure: Regenerate.
1227         * ld/po/Make-in: Add install-html target.
1228         * intl/Makefile.in: Add html info and dvi and install-html to .PHONY
1229         Add install-html target.
1230         * gprof/po/Make-in: Add install-html target.
1231         * gprof/Makefile.am: Add install-html, install-html-am and 
1232         install-html-recursive targets. 
1233         * gprof/Makefile.in: Regenerate.
1234         * gprof/configure.in: AC_SUBST datarootdir, docdir, htmldir.
1235         * gprof/configure: Regenerate.
1236         * gas/po/Make-in: Add install-html target.
1237         * gas/Makefile.am: Add install-html and install-html-recursive targets.
1238         * gas/Makefile.in: Regenerate.
1239         * gas/configure.in: AC_SUBST datarootdir, docdir, htmldir.
1240         * gas/configure: Regenerate.
1241         * gas/doc/Makefile.am: Add install-html and install-html-am targets.
1242         * gas/doc/Makefile.in: Regenerate.
1243         * binutils/po/Make-in: Add install-html target.
1244         * binutils/Makefile.am: Add install-html and install-html-recursive targets.
1245         * binutils/Makefile.in: Regenerate.
1246         * binutils/configure.in: AC_SUBST datarootdir, docdir and htmldir.
1247         * binutils/configure: Regenerate.
1248         * binutils/doc/Makefile.am: Add install-html and install-html-am targets.
1249         * binutils/doc/Makefile.in: Regenerate.
1250         * bfd/po/Make-in: Add install-html target.
1251         * bfd/Makefile.am: Rename docdir to bfddocdir. Add datarootdir, docdir
1252         htmldir. Add install-html and install-html-recursive targets.
1253         * bfd/Makefile.in: Regenerate.
1254         * bfd/configure.in: AC_SUBST for datarootdir, docdir and htmldir.
1255         * bfd/configure: Regenerate.
1256         * bfd/doc/Makefile.am: Add install-html and install-html-am targets. 
1257         Define datarootdir, docdir and htmldir.
1258         * bfd/doc/Makefile.in: Regenerate.
1259         * etc/Makefile.in: Add install-html target. Add htmldir,
1260         docdir and datarootdir.
1261         * etc/configure.texi: Document install-html target.
1262         * etc/configure.in: AC_SUBST datarootdir, docdir, htmldir.
1263         * etc/configure: Regenerate.
1264
1265 2005-04-03  Julian Brown  <julian@codesourcery.com>
1266             Nathan Sidwell  <nathan@codesourcery.com>
1267
1268         * binutils/readelf.c (arm_attr_tag_VFP_arch): Add VFPv3.
1269     
1270         * gas/config/tc-arm.c (limits.h): Include.
1271         (fpu_arch_vfp_v3, fpu_vfp_ext_v3, fpu_neon_ext_v1)
1272         (fpu_vfp_v3_or_neon_ext): Declare constants.
1273         (neon_el_type): New enumeration of types for Neon vector elements.
1274         (neon_type_el): New struct. Define type and size of a vector element.
1275         (NEON_MAX_TYPE_ELS): Define constant. The maximum number of types per
1276         instruction.
1277         (neon_type): Define struct. The type of an instruction.
1278         (arm_it): Add 'vectype' for the current instruction.
1279         (isscalar, immisalign, regisimm, isquad): New predicates for operands.
1280         (vfp_sp_reg_pos): Rename to...
1281         (vfp_reg_pos): ...this, and add VFP_REG_Dd, VFP_REG_Dm, VFP_REG_Dn
1282         tags.
1283         (arm_reg_type): Add REG_TYPE_NQ (Neon Q register) and REG_TYPE_NDQ
1284         (Neon D or Q register).
1285         (reg_expected_msgs): Sync with above. Allow VFD to mean VFP or Neon
1286         D register.
1287         (GE_OPT_PREFIX_BIG): Define constant, for use in...
1288         (my_get_expression): Allow above constant as argument to accept
1289         64-bit constants with optional prefix.
1290         (arm_reg_parse): Add extra argument to return the specific type of
1291         register in when either a D or Q register (REG_TYPE_NDQ) is requested.
1292         Can be NULL.
1293         (parse_scalar): New function. Parse Neon scalar (vector reg and index).
1294         (parse_reg_list): Update for new arm_reg_parse args.
1295         (parse_vfp_reg_list): Allow parsing of Neon D/Q register lists.
1296         (parse_neon_el_struct_list): New function. Parse element/structure
1297         register lists for VLD<n>/VST<n> instructions.
1298         (s_arm_unwind_save_vfp): Update for new parse_vfp_reg_list args.
1299         (s_arm_unwind_save_mmxwr): Likewise.
1300         (s_arm_unwind_save_mmxwcg): Likewise.
1301         (s_arm_unwind_movsp): Likewise.
1302         (s_arm_unwind_setfp): Likewise.
1303         (parse_big_immediate): New function. Parse an immediate, which may
1304         be 64 bits wide. Put results in inst.operands[i].
1305         (parse_shift): Update for new arm_reg_parse args.
1306         (parse_address): Likewise. Add parsing of alignment specifiers.
1307         (parse_neon_mov): Parse the operands of a VMOV instruction.
1308         (operand_parse_code): Add OP_RND, OP_RNQ, OP_RNDQ, OP_RNSC,
1309         OP_NRDLST, OP_NSTRLST, OP_NILO, OP_RNDQ_I0, OP_RR_RNSC,
1310         OP_RNDQ_RNSC, OP_RND_RNSC, OP_VMOV, OP_RNDQ_IMVNb, OP_RNDQ_I63b,
1311         OP_I0, OP_I16z, OP_I32z, OP_I64, OP_I64z, OP_oI32b, OP_oRND,
1312         OP_oRNQ, OP_oRNDQ.
1313         (parse_operands): Handle new codes above.
1314         (encode_arm_vfp_sp_reg): Rename to...
1315         (encode_arm_vfp_reg): ...this. Handle D regs (0-31) too. Complain if
1316         selected VFP version only supports D0-D15.
1317         (do_vfp_sp_monadic, do_vfp_sp_dyadic, do_vfp_sp_compare_z)
1318         (do_vfp_dp_sp_cvt, do_vfp_reg_from_sp, do_vfp_reg2_from_sp2)
1319         (do_vfp_sp_from_reg, do_vfp_sp2_from_reg2, do_vfp_sp_ldst)
1320         (do_vfp_dp_ldst, vfp_sp_ldstm, vfp_dp_ldstm): Update for new
1321         encode_arm_vfp_reg name, and allow 32 D regs.
1322         (do_vfp_dp_rd_rm, do_vfp_dp_rn_rd, do_vfp_dp_rd_rn)
1323         (do_vfp_dp_rd_rn_rm, do_vfp_rm_rd_rn): New functions to encode VFP
1324         insns allowing 32 D regs.
1325         (do_vfp_sp_const, do_vfp_dp_const, vfp_conv, do_vfp_sp_conv_16)
1326         (do_vfp_dp_conv_16, do_vfp_sp_conv_32, do_vfp_dp_conv_32): Handle
1327         constant-load and conversion insns introduced with VFPv3.
1328         (neon_tab_entry): New struct.
1329         (NEON_ENC_TAB): Bit patterns for overloaded Neon instructions, and
1330         those which are the targets of pseudo-instructions.
1331         (neon_opc): Enumerate opcodes, use as indices into...
1332         (neon_enc_tab): ...this. Hold data from NEON_ENC_TAB.
1333         (NEON_ENC_INTEGER, NEON_ENC_ARMREG, NEON_ENC_POLY, NEON_ENC_FLOAT)
1334         (NEON_ENC_SCALAR, NEON_ENC_IMMED, NEON_ENC_INTERLV, NEON_ENC_LANE)
1335         (NEON_ENC_DUP): Define meaningful helper macros to look up values in
1336         neon_enc_tab.
1337         (neon_shape): Enumerate shapes (permitted register widths, etc.) for
1338         Neon instructions.
1339         (neon_type_mask): New. Compact type representation for type
1340         checking.
1341         (N_SU_ALL, N_SU_32, N_SU_16_64, N_SUF_32, N_I_ALL, N_IF_32): Common
1342         permitted type combinations.
1343         (N_IGNORE_TYPE): New macro.
1344         (neon_check_shape): New function. Check an instruction shape for
1345         multiple alternatives. Return the specific shape for the current
1346         instruction.
1347         (neon_modify_type_size): New function. Modify a vector type and
1348         size, depending on the bit mask in argument 1.
1349         (neon_type_promote): New function. Convert a given "key" type (of an
1350         operand) into the correct type for a different operand, based on a bit
1351         mask.
1352         (type_chk_of_el_type): New function. Convert a type and size into the
1353         compact representation used for type checking.
1354         (el_type_of_type_ckh): New function. Reverse of above (only when a
1355         single bit is set in the bit mask).
1356         (modify_types_allowed): New function. Alter a mask of allowed types
1357         based on a bit mask of modifications.
1358         (neon_check_type): New function. Check the type of the current
1359         instruction against the variable argument list. The "key" type of the
1360         instruction is returned.
1361         (neon_dp_fixup): New function. Fill in and modify instruction bits for
1362         a Neon data-processing instruction depending on whether we're in ARM
1363         mode or Thumb-2 mode.
1364         (neon_logbits): New function.
1365         (neon_three_same, neon_two_same, do_neon_dyadic_i_su)
1366         (do_neon_dyadic_i64_su, neon_imm_shift, do_neon_shl_imm)
1367         (do_neon_qshl_imm, neon_cmode_for_logic_imm)
1368         (neon_bits_same_in_bytes, neon_squash_bits, neon_is_quarter_float)
1369         (neon_qfloat_bits, neon_cmode_for_move_imm, neon_write_immbits)
1370         (neon_invert_size, do_neon_logic, do_neon_bitfield, neon_dyadic)
1371         (do_neon_dyadic_if_su, do_neon_dyadic_if_su_d, do_neon_dyadic_if_i)
1372         (do_neon_dyadic_if_i_d, do_neon_addsub_if_i, neon_exchange_operands)
1373         (neon_compare, do_neon_cmp, do_neon_cmp_inv, do_neon_ceq)
1374         (neon_scalar_for_mul, neon_mul_mac, do_neon_mac_maybe_scalar)
1375         (do_neon_tst, do_neon_mul, do_neon_qdmulh, do_neon_fcmp_absolute)
1376         (do_neon_fcmp_absolute_inv, do_neon_step, do_neon_abs_neg)
1377         (do_neon_sli, do_neon_sri, do_neon_qshlu_imm, do_neon_qmovn)
1378         (do_neon_qmovun, do_neon_rshift_sat_narrow)
1379         (do_neon_rshift_sat_narrow_u, do_neon_movn, do_neon_rshift_narrow)
1380         (do_neon_shll, neon_cvt_flavour, do_neon_cvt, neon_move_immediate)
1381         (do_neon_mvn, neon_mixed_length, do_neon_dyadic_long, do_neon_abal)
1382         (neon_mac_reg_scalar_long, do_neon_mac_maybe_scalar_long)
1383         (do_neon_dyadic_wide, do_neon_vmull, do_neon_ext, do_neon_rev)
1384         (do_neon_dup, do_neon_mov, do_neon_rshift_round_imm, do_neon_movl)
1385         (do_neon_trn, do_neon_zip_uzp, do_neon_sat_abs_neg)
1386         (do_neon_pair_long, do_neon_recip_est, do_neon_cls, do_neon_clz)
1387         (do_neon_cnt, do_neon_swp, do_neon_tbl_tbx, do_neon_ldm_stm)
1388         (do_neon_ldr_str, do_neon_ld_st_interleave, neon_alignment_bit)
1389         (do_neon_ld_st_lane, do_neon_ld_dup, do_neon_ldx_stx): New
1390         functions. Neon bit encoding and encoding helpers.
1391         (parse_neon_type): New function. Parse Neon type specifier.
1392         (opcode_lookup): Allow parsing of Neon type specifiers.
1393         (REGNUM2, REGSETH, REGSET2): New macros.
1394         (reg_names): Add new VFPv3 and Neon registers.
1395         (NUF, nUF, NCE, nCE): New macros for opcode table.
1396         (insns): More VFP registers allowed in fcpyd, fmdhr, fmdlr, fmrdh,
1397         fmrdl, fabsd, fnegd, fsqrtd, faddd, fsubd, fmuld, fdivd, fmacd,
1398         fmscd, fnmuld, fnmacd, fnmscd, fcmpd, fcmpzd, fcmped, fcmpezd,
1399         fmdrr, fmrrd. Add Neon instructions vaba, vhadd, vrhadd, vhsub,
1400         vqadd, vqsub, vrshl, vqrshl, vshl, vqshl{u}, vand, vbic, vorr, vorn,
1401         veor, vbsl, vbit, vbif, vabd, vmax, vmin, vcge, vcgt, vclt, vcle,
1402         vceq, vpmax, vpmin, vmla, vmls, vpadd, vadd, vsub, vtst, vmul,
1403         vqdmulh, vqrdmulh, vacge, vacgt, vaclt, vacle, vrecps, vrsqrts,
1404         vabs, vneg, v{r}shr,  v{r}sra, vsli, vsri, vqshrn, vq{r}shr{u}n,
1405         v{r}shrn, vshll, vcvt, vmov, vmvn, vabal, vabdl, vaddl, vsubl,
1406         vmlal, vmlsl, vaddw, vsubw, v{r}addhn, v{r}subhn, vqdmlal, vqdmlsl,
1407         vqdmull, vmull, vext, vrev64, vrev32, vrev16, vdup, vmovl, v{q}movn,
1408         vzip, vuzp, vqabs, vqneg, vpadal, vpaddl, vrecpe, vrsqrte, vcls,
1409         vclz, vcnt, vswp, vtrn, vtbl, vtbx, vldm, vstm, vldr, vstr,
1410         vld[1234], vst[1234], fconst[sd], f[us][lh]to[sd], fto[us][lh][sd].
1411         (tc_arm_regname_to_dw2regnum): Update for arm_reg_parse args.
1412         (arm_cpu_option_table): Add Neon and VFPv3 to Cortex-A8.
1413         (arm_option_cpu_value): Add vfp3 and neon.
1414         (aeabi_set_public_attributes): Support VFPv3 and NEON attributes.
1415         Fix VFPv1 attribute.
1416
1417         * gas/testsuite/gas/arm/copro.s: Avoid ldcl which encodes as a bad Neon
1418         instruction.
1419         * gas/testsuite/gas/arm/copro.d: Update accordingly.
1420         * gas/testsuite/gas/arm/neon-cond.s: New test. Conditional Neon opcodes
1421         in ARM mode.
1422         * gas/testsuite/gas/arm/neon-cond.d: Expected results of above.
1423         * gas/testsuite/gas/arm/neon-cov.s: New test. Coverage of Neon
1424         instructions.
1425         * gas/testsuite/gas/arm/neon-cov.d: Expected results of above.
1426         * gas/testsuite/gas/arm/neon-ldst-es.s: New test. Element and structure
1427         loads and stores.
1428         * gas/testsuite/gas/arm/neon-ldst-es.d: Expected results of above.
1429         * gas/testsuite/gas/arm/neon-ldst-rm.s: New test. Single and multiple
1430         register loads and stores.
1431         * gas/testsuite/gas/arm/neon-ldst-rm.d: Expected results of above.
1432         * gas/testsuite/gas/arm/neon-omit.s: New test. Omission of optional
1433         operands.
1434         * gas/testsuite/gas/arm/neon-omit.d: Expected results of above.
1435         * gas/testsuite/gas/arm/vfp1.d: Expect Neon syntax for some VFP
1436         instructions.
1437         * gas/testsuite/gas/arm/vfp1_t2.d: Likewise.
1438         * gas/testsuite/gas/arm/vfp1xD.d: Likewise.
1439         * gas/testsuite/gas/arm/vfp1xD_t2.d: Likewise.
1440         * gas/testsuite/gas/arm/vfp2.d: Likewise.
1441         * gas/testsuite/gas/arm/vfp2_t2.d: Likewise.
1442         * gas/testsuite/gas/arm/vfp3-32drs.s: New test. Extended D register
1443         range for VFP instructions.
1444         * gas/testsuite/gas/arm/vfp3-32drs.d: Expected results of above.
1445         * gas/testsuite/gas/arm/vfp3-const-conv.s: New test. VFPv3
1446         constant-load and conversion instructions.
1447         * gas/testsuite/gas/arm/vfp3-const-conv.d: Expected results of above.
1448
1449         * include/opcode/arm.h (FPU_VFP_EXT_V3): Define constant.
1450         (FPU_NEON_EXT_V1): Likewise.
1451         (FPU_VFP_HARD): Update.
1452         (FPU_VFP_V3): Define macro.
1453         (FPU_ARCH_VFP_V3, FPU_ARCH_VFP_V3_PLUS_NEON_V1): Define macros.
1454
1455         * opcodes/arm-dis.c (coprocessor_opcodes): Add %A, %B, %k,
1456         convert %<code>[zy] into %[zy]<code>.  Expand meaning of
1457         %<bitfield>['`?].
1458         Add unified load/store instruction names.
1459         (neon_opcode_table): New.
1460         (arm_opcodes): Expand meaning of %<bitfield>['`?].
1461         (arm_decode_bitfield): New.
1462         (print_insn_coprocessor): Add pc argument. Add %A & %B specifiers.
1463         Use arm_decode_bitfield and adjust numeric specifiers.
1464         Adjust %z & %y.
1465         (print_insn_neon): New.
1466         (print_insn_arm): Adjust print_insn_coprocessor call. Call
1467         print_insn_neon. Use arm_decode_bitfield and adjust numeric specifiers.
1468         (print_insn_thumb32): Likewise.
1469
1470 2005-04-01  Paul Brook  <paul@codesourcery.com>
1471
1472         * config/tc-arm.c (arm_fix_adjustable): Return 0 for function symbols.
1473
1474 2006-03-30  Mark Mitchell <mark@codesourcery.com>
1475
1476         * libiberty/configure.ac: Add cygpath for mingw hosts.
1477         * libiberty.configure: Rebuilt.
1478         * libiberty/Makefile.in: Add cygpath.
1479         * libiberty/cygpath.c: New.
1480
1481 2006-03-30  Jim Blandy  <jimb@codesourcery.com>
1482
1483         * include/libiberty.h (pex_write_input): New declaration.
1484
1485         * libiberty/pex-common.c (pex_write_input): New function.
1486         * libiberty/pexecute.txh (pex_write_input): Document it.
1487         * libiberty/pex-common.h (struct pex_funcs): New function ptr fdopenw.
1488         * libiberty/pex-unix.c (pex_unix_fdopenw): New function.
1489         (funcs): List it as our fdopenw function.
1490         * libiberty/pex-win32.c (pex_win32_fdopenw): New function.
1491         (funcs): List it as our fdopenw function.
1492         * libiberty/pex-djgpp.c (funcs): Leave fdopenw null.
1493         * libiberty/pex-msdos (funcs): Same.
1494         * libiberty/functions.texi: Regenerated.
1495
1496         * libiberty/pex-common.h (struct pex_obj): Doc fixes.
1497
1498         * libiberty/functions.texi: Regenerate.
1499
1500 2006-03-27  Mark Mitchell  <mark@codesourcery.com>
1501
1502         * libiberty/pex-win32.c (pex_win32_exec_child): Close stdout/stderr
1503         in parent.
1504
1505 2006-03-26  Nathan Sidwell  <nathan@codesourcery.com>
1506
1507         * gas/config/tc-m68k.c (m68k_init_arch): Move checking of
1508         cfloat/m68881 to correct architecture before using it.
1509
1510 2006-03-21  Paul Brook  <paul@codesourcery.com>
1511
1512         * gas/config/tc-arm.c (md_apply_fix): Fix typo in offset mask.
1513
1514 2006-03-21  Nathan Sidwell  <nathan@codesourcery.com>
1515
1516         * gas/config/tc-m68k.c (find_cf_chip): Merge into ...
1517         (m68k_ip): ... here.  Use for all chips.  Protect against buffer
1518         overrun and avoid excessive copying.
1519
1520         * gcc/config/tc-m68k.c (m68000_control_regs, m68010_control_regs,
1521         m68020_control_regs, m68040_control_regs, m68060_control_regs,
1522         mcf_control_regs, mcf5208_control_regs, mcf5213_control_regs,
1523         mcf5329_control_regs, mcf5249_control_regs, mcf528x_control_regs,
1524         mcfv4e_control_regs, m68010_control_regs): Rename and reorder to ...
1525         (m68000_ctrl, m68010_ctrl, m68020_ctrl, m68040_ctrl, m68060_ctrl,
1526         mcf_ctrl, mcf5208_ctrl, mcf5213_ctrl, mcf5235_ctrl, mcf5249_ctrl, 
1527         mcf5216_ctrl, mcf5250_ctrl, mcf5271_ctrl, mcf5272_ctrl,
1528         mcf5282_ctrl, mcfv4e_ctrl): ... these.
1529         (mcf5275_ctrl, mcf5329_ctrl, mcf5373_ctrl): New.
1530         (struct m68k_cpu): Change chip field to control_regs.
1531         (current_chip): Remove.
1532         (control_regs): New.
1533         (m68k_archs, m68k_extensions): Adjust.
1534         (m68k_cpus): Reorder to be in cpu number order.  Adjust.
1535         (CPU_ALLOW_MC, CPU_ALLOW_NEGATION): Remove.
1536         (find_cf_chip): Reimplement for new organization of cpu table.
1537         (select_control_regs): Remove.
1538         (mri_chip): Adjust.
1539         (struct save_opts): Save control regs, not chip.
1540         (s_save, s_restore): Adjust.
1541         (m68k_lookup_cpu): Give deprecated warning when necessary.
1542         (m68k_init_arch): Adjust.
1543         (md_show_usage): Adjust for new cpu table organization.
1544         * include/opcode/m68k.h (cpu_m68k, cpu_cf, cpu_m68000, cpu_m68008,
1545         cpu_m68010, cpu_m68020, cpu_m68ec030, cpu_m68040, cpu_m68060,
1546         cpu_m68851, cpu_m68881, cpu_m68882, cpu_cpu32, cpu_cf5200, cpu_cf5206e,
1547         cpu_cf5208, cpu_cf521x, cpu_cf5213, cpu_cf5249, cpu_cf528x,
1548         cpu_cf5307, cpu_cf5329, cpu_cf5407, cpu_cf547x, cpu_cf548x): Remove.
1549
1550 2006-03-20  Mark Mitchell  <mark@codesourcery.com>
1551
1552         * libiberty/pex-win32.c (<errno.h>): Include.
1553         (fix_argv): Remove.
1554         (argv_to_cmdline): New function.
1555         (std_suffixes): New variable.
1556         (no_suffixes): Likewise.
1557         (find_executable): New function.
1558         (win32_spawn): Likewise.
1559         (spawn_script): Use win32_spawn instead of _spawnv[p].
1560         (pex_win32_exec_child): Replace MSVCRT calls with Win32 API calls.
1561         (pex_win32_wait): Likewise.
1562
1563 2006-03-21  Richard Sandiford  <richard@codesourcery.com>
1564
1565         * bfd/cpu-m68k.c (bfd_m68k_compatible): Treat ISA A+ and ISA B code as
1566         incompatible.  Likewise MAC and EMAC code.
1567         * bfd/elf32-m68k.c (elf32_m68k_merge_private_bfd_data): Use
1568         bfd_get_compatible to set the new bfd architecture.  Rely on it
1569         to detect incompatibilities.
1570         * gas/config/tc-m68k.c (m68k_cpus): Change cpu_cf5208 entries to use
1571         mcfemac instead of mcfmac.
1572         * ld/testsuite/ld-m68k/merge-error-1a.s,
1573         * ld/testsuite/ld-m68k/merge-error-1b.s,
1574         * ld/testsuite/ld-m68k/merge-error-1a.d,
1575         * ld/testsuite/ld-m68k/merge-error-1b.d,
1576         * ld/testsuite/ld-m68k/merge-error-1c.d,
1577         * ld/testsuite/ld-m68k/merge-error-1d.d,
1578         * ld/testsuite/ld-m68k/merge-error-1e.d,
1579         * ld/testsuite/ld-m68k/merge-ok-1a.d,
1580         * ld/testsuite/ld-m68k/merge-ok-1b.d: New tests.
1581         * ld/testsuite/ld-m68k/m68k.exp: Run them.
1582
1583 2006-03-20  Paul Brook  <paul@codesourcery.com>
1584
1585         * gas/config/tc-arm.c (insns): Correct opcodes for ldrbt and strbt.
1586         * gas/testsuite/gas/arm/thumb32.d: Correct expected output.
1587
1588 2006-03-20  Paul Brook  <paul@codesourcery.com>
1589
1590         * gas/config/tc-arm.c (parse_operands): Set default error message.
1591
1592 2006-03-20  Paul Brook  <paul@codesourcery.com>
1593
1594         * gas/config/tc-arm.c (parse_tb): Set inst.error before returning FAIL.
1595
1596 2006-03-20  Paul Brook  <paul@codesourcery.com>
1597
1598         * gas/config/tc-arm.c (md_apply_fix): Set H bit on blx instruction.
1599
1600         * gas/testsuite/gas/arm/blx-local.d: New test.
1601         * gas/testsuite/gas/arm/blx-local.d: New test.
1602
1603 2006-03-20  Paul Brook  <paul@codesourcery.com>
1604
1605         * gas/config/tc-arm.c (THUMB2_LOAD_BIT): Define.
1606         (move_or_literal_pool): Handle Thumb-2 instructions.
1607         (do_t_ldst): Call move_or_literal_pool for =N addressing modes.
1608
1609         * gas/testsuite/gas/arm/thumb2_pool.d: New test.
1610         * gas/testsuite/gas/arm/thumb2_pool.s: New test.