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