3 * config/tc-ppc.c (mapping): Make @got give a real GOT relocation,
4 and xgot give the old toc16 relocation.
5 (md_apply_fix3): Support all GOT relocations.
9 * config/tc-mips.c (load_address): Correctly handle a constant in
14 * config/tc-sh.c (parse_reg): Recognize SH3 registers.
15 (get_specific): Handle A_SSR, A_SPC and A_REG_B.
16 (build_Mbytes): Handle REG_B.
20 * ecoff.c (ecoff_build_aux): Use new bfd_big_endian macro.
24 * mpw-make.sed: If linking, edit ALL_CFLAGS to CFLAGS.
28 * config/obj-coff.c (write_object_file): Set the s_align field to
29 the number of bytes, rather than to the power of 2.
33 * Makefile.in (DISTCLEAN_HERE): New variable.
35 (maintainer-clean): Depend upon clean-here rather than clean,
36 distclean, and clean-info. Run make maintainer-clean in doc.
37 Remove files listed in DISTCLEAN_HERE.
38 * doc/Makefile.in (maintainer-clean realclean): Split out from
39 distclean. Depend upon clean-info and distclean.
43 * mac-as.r: Fix copyright and version strings.
44 (cfrg): Use PROG_NAME instead of literal name.
48 * read.c (read_a_source_file): If tc_unrecognized_line is defined,
50 * config/tc-a29k.h (tc_unrecognized_line): Define.
51 * config/tc-a29k.c (a29k_unrecognized_line): New function.
52 (md_operand): Handle a29k style local dollar labels.
56 * config/obj-multi.h: If OBJ_MAYBE_ELF, define OBJ_SYMFIELD_TYPE.
60 * read.c (s_fill): If md_flush_pending_output is defined, call
65 * config/obj-coff.c (size_section, fill_section, fixup_mdeps):
66 Treat rs_align_code like rs_align.
70 * config/tc-arm.c (cp_address_required_here): Set pre_inc when
71 converting an absolute address into a PC-relative one.
75 * mpw-config.in: Don't always use te-generic.h for emulation.
76 (powerpc-apple-macos): Use emulation te-macos.h.
78 (mips-gm-magic): New configuration.
80 * mpw-make.sed (install, install-only): Edit in Mac-specific
85 * configure.in: Improve message about unsupported ELF targets.
88 * config/tc-m88k.c (m88k_do_align): Correct check for whether fill
89 pattern is zero. From Manfred Hollstein.
93 * config/tc-ppc.c (ppc_pe_section): To get the alignment right for
94 the various idata sections, we check the name on the .section pseudo.
98 * config/obj-coff.c (fixup_segment): If TC_M88K is defined, do not
99 add section's paddr to add_number; compatibility to native as and
104 * configure.in: Treat m68k-sysv4 like m68k-elf, not m68k-sysv3.
106 * hash.c (struct hash_entry): Moved here...
107 * hash.h (struct hash_entry): ...from here.
109 * config/obj-elf.c (elf_frob_symbol): Don't free and clear sy_obj
110 if it's already known to be null.
114 * config/tc-ppc.c (md_apply_fix3): Don't adjust the value for 32
115 bit relocs converted to PC relative relocs. This turned out to
116 add the offset from the beginning of .text twice.
120 * stabs.c (s_stab_generic): In 's' case, free string from
123 * config/obj-elf.h (ELF_TARGET_SYMBOL_FIELDS): Remove unused field
125 * config/obj-multi.h (ELF_TARGET_SYMBOL_FIELDS) [OBJ_MAYBE_ELF]:
128 * subsegs.h (segment_info_type): Make bitfields unsigned.
130 * expr.h (struct expressionS): Make X_op and X_unsigned bitfields,
131 and move them together. On most systems this will reduce the
132 structure size by one word.
133 (operatorT): Define O_max.
134 * expr.c (expr_begin): Verify that X_op is wide enough to hold
137 * read.c (pop_insert): Print error returned by hash table
140 * as.c (dump_statistics): Split out from main; dump some hash
141 table stats and target-specific stats.
142 (start_time): No longer automatic to main.
143 (main): Set file-level start_time and call dump_statistics at
144 exit. Exit by calling xexit.
145 (show_usage): Make --statistics description less specific.
146 * subsegs.c (subsegs_print_statistics): New function.
147 * write.c (write_print_statistics): New function.
148 (n_fixups): New static variable.
149 (fix_new_internal): Increment it.
150 * read.c (read_print_statistics): New function.
151 * read.h (read_print_statistics): Declare.
152 * symbol.c (symbol_print_statistics): New function.
153 * symbol.h (symbol_print_statistics): Declare.
154 * hash.c (hash_print_statistics): New function.
155 * hash.h (hash_print_statistics): Declare.
156 * config/tc-i386.c (i386_print_statistics): New function.
157 * config/tc-i386.h (i386_print_statistics): Declare.
158 (tc_print_statistics): New macro.
159 * messages.c (as_fatal, as_assert, as_abort): Use xexit, not
162 * hash.c (DELETED): Rewrite to use a valid but unique address.
163 (START_POWER): Reduce to 10.
164 (enum stat_enum): New enumerator, replacing STAT_* index macros.
165 Add new values for counting strcmp calls.
166 (GROW_FACTOR): New macro.
167 (hash_grow): Use GROW_FACTOR. Rewrite for quick returns instead
169 (FULL_VALUE): New macro. Use 1/4 of table size instead of 1/2.
170 (hash_new): Use FULL_VALUE.
171 (struct hash_control): Definition moved here.
172 (hash_code): Don't mask to low bits.
173 (hash_ask): Mask returned hash code here. Check hash value before
174 calling strcmp; count strcmp calls.
175 * hash.h (struct hash_control): Declare, don't define, here.
176 (HASH_STATLENGTH): Deleted.
177 (struct hash_entry): Add field for hash code.
178 (hash_say, hash_apply): Don't declare.
180 * hash.c (destroy): Return void.
182 (main): Fix declarations.
183 (hash_apply): Return void. Argument `function' returns void. Put
184 inside "#ifdef TEST".
185 (hash_say): Define only if TEST is defined.
186 * hash.h (hash_apply, hash_say): Declarations deleted.
190 * configure: Rebuild with autoconf 2.7.
194 * aclocal.m4 (AC_PROG_CC): Remove local definition.
195 * configure: Rebuild with autoconf 2.6.
199 * config/tc-ppc.c (ppc_debug_name_section_size): Remove.
200 (ppc_stabx): Don't increment ppc_debug_name_section_size.
202 (ppc_frob_file): Remove.
203 * config/tc-ppc.h (tc_frob_file): Don't define.
204 (ppc_frob_file): Don't declare.
208 * Makefile.in (TARG_CPU_DEP_alpha): Mention alpha-opcode.h.
209 * config/alpha-opcode.h: Include one-operand variants of jmp and
212 * config/te-delt88.h: Renamed from te-delta88.h, to avoid conflict
213 with te-delta.h in 8.3 file systems.
214 * configure.in: Adjusted.
218 * config/tc-mips.c (s_err): Remove; just use the one in read.c.
220 * config/m68k-parse.y (yylex): In MRI mode, '@' can start an octal
222 * expr.c (operand): Handle MRI suffixes after unadorned 0.
226 Version 2.6 released.
227 * Makefile.in (VERSION): Updated to 2.6.
229 * config/obj-coff.c (write_object_file): Change use of md_do_align
230 to pass a pointer rather than a fill value, to match other uses.
234 * config/tc-ns32k.h (TC_FIX_TYPE): Add missing semicolon.
236 * as.c (main): Move md_end call to just after call to
237 perform_an_assembly_pass. Delete cpu-specific code here.
238 * config/tc-i960.h (md_end): New macro, calls brtab_emit.
240 * config/tc-rce.c (md_end): Deleted.
241 * config/tc-rce.h (md_end): New macro, calls dump_literals.
243 * config/tc-arm.c (md_end): Unused function deleted.
244 * config/tc-ns32k.c (md_end): Ditto.
246 * config/tc-i386.c (i386_align_code): New function, moved here
247 from HANDLE_ALIGN macro.
248 * config/tc-i386.h (HANDLE_ALIGN): Call it.
252 * config/tc-i386.h (md_do_align): cast fill and 0x90 to char
257 * config/tc-i386.h (md_do_align): Make ".align n,0x90" generate
258 multi-byte nops to avoid changing gcc. The necessary gcc change
259 might break old assemblers.
263 * config/tc-i386.h (md_do_align, HANDLE_ALIGN): Add macros to
264 generate optimal multi-byte nop instructions for ".align n"
265 ".align n,0x90", and aligns requiring more than 15 bytes of
266 padding still generate multiple 0x90's as before.
270 * config/tc-m68k.c (s_mri_until): Call pop_mri_control.
274 * configure.in (ppc-*-macos*, ppc-*-mpw*): New configurations.
276 * mpw-make.sed: Reorder commands to make sed happier.
277 * config/te-macos.h: New file.
278 * config/tc-ppc.h (TARGET_FORMAT): Set correctly for PowerMac.
282 * config/tc-hppa.c (pa_ip): Fix off-by-2 bug in length check for
283 conditional branches.
284 (md_apply_fix): Likewise.
288 * config/tc-a29k.c (md_apply_fix): Warn if an attempt is made to
289 generate a reloc which the linker will not handle correctly. Fix
290 overflow checking--R_IREL is 18 bits, not 17.
294 * config/obj-coff.c (fixup_segment): Don't subtract md_pcrel_from
295 from a PC relative reloc if TC_A29K.
297 * config/tc-a29k.c (line_separator_chars): Restore '@'. Existing
298 code depends upon it.
300 * config/tc-a29k.c (md_operand): Handle $float, $double, and
301 $extend. Based on code from Eric Freudenthal
303 * config/tc-a29k.h (LEX_DOLLAR): Define.
304 * read.c (LEX_DOLLAR): Define if not defined.
305 (lex_type): Use LEX_DOLLAR.
309 * configure.in (a29k-nyu-sym1): New target, just like other a29k
314 * config/obj-coff.c (c_dot_file_symbol): Cast xmalloc return.
318 * config/tc-ppc.c (md_apply_fix3): Added BFD_RELOC_RVA. Currently
319 used only by "dlltool.c".
323 * config/tc-alpha.c: Undefine inline if not __GNUC__.
324 (md_pseudo_table): Don't define "extern".
328 * config/tc-ppc.c (ppc_biei): Force symbol into text_section.
330 * config/tc-ppc.c (md_show_usage): Put backslash at end of line.
334 * macro.c (macro_expand_body): Don't warn about == with a
335 nonexistent parameter, in case it is in a comment field.
337 * as.c (main): On TC_A29K, call macro_init with macro_alternate
339 * macro.c (get_any_string): Don't keep quotes if macro_strip_at is
340 set, even if macro_alternate is set.
341 (get_apost_token): If macro_strip_at, only skip kind if it is '@'.
342 (sub_actual): If macro_strip_at, and kind is '@', don't look up
343 the token unless it ended in '@'.
344 * config/tc-a29k.c (line_separator_chars): Remove '@'.
345 * doc/c-a29k.texi: Document macro usage on A29K.
349 * config/tc-m68k.c (m68k_ip): Handle new 'W' place, meaning a
351 (install_operand): Likewise.
353 * config/obj-elf.c (ecoff_debug_pseudo_table): Add "extern".
357 * configure.in (m88k-motorola-sysv*): New target.
358 * configure: Rebuild.
359 * config/te-delta88.h: New file.
360 * config/obj-coff.c (write_object_file): Use md_do_align if it is
362 * config/tc-m88k.h (SUB_SEGMENT_ALIGN): Define.
363 (md_do_align): Define.
364 * config/tc-m88k.c: Include "subsegs.h".
365 (m88k_do_align): New function.
367 * config/te-delta.h (STRIP_UNDERSCORE): Don't define.
368 (COFF_NOLOAD_PROBLEM): Define.
369 (LOCAL_LABELS_DOLLAR, LOCAL_LABELS_FB): Define.
373 * config/tc-i386.c (md_assemble): For a jump instruction with
374 non-constant target, require 7 available bytes in the current
379 * config/obj-elf.h: Include bfd/elf-bfd.h rather than
384 * configure.in (alpha-*-linux*): Use ecoff.
385 * configure: Rebuild.
386 * ecoff.c (ecoff_directive_extern): New function.
387 (ecoff_directive_weakext): New function.
388 (ecoff_build_symbols): Handle weak symbols.
389 (ecoff_setup_ext): Likewise.
390 (ecoff_frob_symbol): Warn about weak common symbols.
391 * ecoff.h (ecoff_directive_extern): Declare.
392 (ecoff_directive_weakext): Declare.
393 * symbols.c (S_IS_WEAK): New function.
394 * symbols.h (S_IS_WEAK): Declare.
395 * config/obj-ecoff.c (obj_pseudo_table): Add "extern" and
397 * config/tc-mips.c (mips_pseudo_table): Remove "extern".
402 * config/tc-ppc.c (ppc_lglobl): Do the right thing.
404 * config/tc-ppc.c (ppc_bb): Call SF_SET_PROCESS.
405 (ppc_eb): Likewise. Set the storage class to C_BLOCK, not C_FCN.
406 (ppc_frob_symbol): Don't change C_BLOCK symbols to C_HIDEXT.
407 * config/obj-coff.c (coff_frob_symbol): Don't call
408 SA_SET_SYM_ENDNDX with the current symbol; call it with the next
409 one. If OBJ_XCOFF, try to figure out whether the symbol is going
412 * config/tc-ppc.c (md_pseudo_table): Add "bc" and "ec".
413 (ppc_stab_symbol): New static variable.
414 (ppc_change_csect): Check that ppc_toc_csect is not NULL.
415 (ppc_stabx): Set ppc_stab_symbol around call to symbol_make. Set
416 sy_tc.real_name to the stab string.
417 (ppc_bc, ppc_ec): New static functions.
418 (ppc_canonicalize_symbol_name): If ppc_stab_symbol is set, don't
420 (ppc_symbol_new_hook): If ppc_stab_symbol is set, don't look for a
422 (ppc_frob_symbol): Set BSF_NOT_AT_END for symbols with csect aux
425 * input-scrub.c (input_scrub_push): Reset sb_index.
429 * listing.c (listing_newline): Don't create a frag in the absolute
434 * config/tc-ppc.c (md_pseudo_table): Add "data" and "text".
435 (ppc_csect): Move most of the code to ppc_change_csect, and call
437 (ppc_change_csect): New static function, taken from ppc_csect.
438 (ppc_section): New static function.
439 (ppc_saw_abs): New static varable.
440 (ppc_frob_symbol): Create aux entry for absolute symbols. Warn if
441 a symbol has no csect.
442 (ppc_adjust_symtab): New function.
443 * config/tc-ppc.h (tc_adjust_symtab): Define if OBJ_XCOFF.
444 (ppc_adjust_symtab): Declare if OBJ_XCOFF.
446 * write.c (write_object_file): If tc_adjust_symtab is defined,
447 call it just before the call to obj_adjust_symtab.
449 * symbols.c (symbol_find_or_make): Change name to be const.
450 * symbols.h (symbol_find_or_make): Update declaration.
454 * doc/as.texinfo (Align): Mention SH.
455 * doc/c-m68k.texi (M68K-Directives, .even): Describe behavior, not
457 * doc/c-z8k.texi (Z8000 Directives, global): Fix minor typo.
458 (Z8000 Directives, even): Don't give numeric align value, instead
463 * tc-arm.c (do_ldst): Assemble ldr/str r0, [r1] as a pre-increment
468 * Makefile.in (diststuff): Also make info.
469 (maintainer-clean realclean): Also make clean-info.
473 * config/tc-hppa.c (md_pseudo_table): Add new ".nsubspa" opcode.
474 (pa_subspace): For ".nsubspa", always create a new subspace
475 with the given attributes, even if one already exists with the
480 * config/tc-ppc.h (TC_FORCE_RELOCATION_SECTION): Rename from
481 TC_FORCE_RELOCATION, taking an additional section argument. If
482 the section of the target symbol is not the same as the current
483 section, always force the relocation to be used.
484 (MD_PCREL_FROM_SECTION): New macro to call md_pcrel_from_section.
486 * config/tc-ppc.c (md_pcrel_from_section): Rename from the
487 md_pcrel_from function, taking an additional section argument.
488 Invoke TC_FORCE_RELOCATION_SECTION instead of TC_FORCE_RELOCATION.
490 * write.c (TC_FORCE_RELOCATION_SECTION): Define in terms of the
491 older TC_FORCE_RELOCATION if not defined.
492 (MD_PCREL_FROM_SECTION): If not defined, invoke md_pcrel_from.
493 (fixup_segment): Use MD_PCREL_FROM_SECTION instead of
494 md_pcrel_from, and TC_FORCE_RELOCATION_SECTION instead of
499 * input-scrub.c (as_where): Set name to null pointer if we don't
501 * messages.c (identify): Only print filename if non-null.
502 (as_show_where): Ditto, for line number too.
503 (as_warn_internal, as_bad_internal): Ditto.
505 * input-file.c (input_file_open): If the input file can't be
506 opened, consider it an error.
510 * config/tc-mips.c: Added mips_4100 control, and support for
511 accepting the 4100 as a MIPS architecture variant (md_begin,
512 macro_build, mips_ip, md_parse_option). Adding suitable
513 command-line OPTIONs, and updating the help text (md_show_usage).
517 * subsegs.c (subseg_begin): Only set absolute_frchain.fix_* when
518 BFD_ASSEMBLER is defined.
520 * Use one active frag and one obstack per frag chain:
521 * frags.c (frags): Variable deleted.
522 (frag_alloc): New function.
523 (frag_grow, frag_more, frag_variant, frag_now_fix,
524 frag_append_1_char): Refer to frchain_now->frch_obstack instead of
526 (frag_new): Ditto. Verify that frch_last and frag_now match on
527 entry and exit, and that old frag_now has non-zero type. Replace
528 "know" uses with "assert". Use frag_alloc instead of mucking with
530 * frags.h (frags): Declaration deleted.
531 * subsegs.h (struct frchain): Add new field frch_frag_now.
532 * subsegs.c (frchains, dummy_frag, absolute_frchain): New static
534 (subsegs_begin): Initialize frchains obstack. Under gcc, don't
535 give it any stricter alignment than frchainS structures need. Do
536 not initialize frags obstack. Set frag_now to point to
537 dummy_obstack. Initialize absolute_frchain.
538 (subseg_set_rest): Save and restore frag_now in frch_frag_now
539 field of frchainS. Don't create new frags on section switch, and
540 use frag_alloc when creating a new frag chain. For absolute
541 section, set frchain_now to absolute_frchain. Verify that
542 frch_last and frag_now match on entry and exit. Initialize
543 per-chain obstack, and under gcc, set required alignment to that
544 needed by fragS structure.
546 * write.c (chain_frchains_together_1): Verify fr_type is nonzero.
548 * stabs.c (get_stab_string_offset): Only copy input string if a
549 fresh copy is needed, not if the section already exists.
550 (s_stab_generic): Cache stab section name to bypass lookups, since
551 usually it will match. Could be made faster still by changing the
552 memory allocation rules.
553 (s_xstab): Cache section name to bypass repeated string
556 * frags.c (frag_new): Deleted register declarations.
558 * listing.c (frag_now): Don't declare.
560 * as.c (chunksize): New variable.
561 (debug_memory): New variable.
562 (main): If debug_memory is set, reduce chunksize and
564 * as.h (chunksize): Declare it.
565 * read.c (read_begin): Use it.
567 * config/tc-alpha.c (md_shortopts): Include 'g'.
568 (md_parse_option): Ignore it.
570 * Makefile.in (distclean): Remove Makefile and config.status from
572 (clean-here): Don't delete testsuite. Instead, delete only the
573 files within it that would be generated by running tests.
575 * config/tc-hppa.c (hppa_elf_mark_end_of_function): Call
576 frag_now_fix instead of accessing obstack info directly.
577 * config/tc-arm.c (s_ltorg): Ditto.
578 (md_assemble): Ditto.
580 * config/tc-i386.c (md_assemble): Call frag_grow instead of
585 * stabs.c (aout_process_stab): Insert debug symbol into symbol
586 chain after parsing value expression, if any, to avoid separating
587 continued .stabs lines.
591 * config/tc-mips.c (mips_elf_pseudo_table): Remove.
592 (mips_pop_insert): Don't call pop_insert on mips_elf_pseudo_table.
596 * config/tc-ppc.c (md_begin): Use new flags PPC_OPCODE_COMMON for
597 -mcom support and PPC_OPCODE_ANY for -many.
598 (md_parse_option): Ditto.
600 (md_begin): For duplicate instructions, print all duplicates
605 * config/tc-ppc.c (md_parse_option): Support for -mcom to turn on
606 common mode operation.
607 (md_show_usage): Add -mcom to usage message.
611 * expr.c (op_rank): Add O_symbol_rva.
612 * expr.h (operatorT): Add O_symbol_rva.
613 * read.c (cons_worker): Set O_symbol_rva when necessary.
614 * write.c (fix_new_exp): Understand O_symbol_rva.
618 * config/tc-mips.c: Correct s_cons arguments. From Michael
623 * config/tc-ppc.c (ppc_macro): Make count unsigned.
624 (ppc_biei): Set segment to now_seg and value to coff_n_line_nos.
625 (ppc_frob_symbol): Handle C_BINCL and C_EINCL symbols by setting
627 * config/obj-coff.c (coff_n_line_nos): Rename from n_line_nos, and
628 make non-static. Change all users.
629 * config/obj-coff.h (coff_n_line_nos): Declare.
635 * configure.in (AC_ARG_WITH(bfd-assembler)): Fix help message.
637 * config/obj-elf.c (obj_elf_common): Convert specified byte
638 alignment to power of two. Set size of local bss symbol.
640 * config/tc-m68k.c (tc_gen_reloc): Fix typo in variable name.
644 * sb.c, macro.c: Decide whether to include <string.h> or
645 <strings.h> just as as.h does.
649 * Makefile.in (site.exp): Fix setting of $srcdir.
651 * config/tc-arm.c (md_atof): Fix little-endian output.
652 * config/tc-arm.h (ARM_BI_ENDIAN): Move definition so defined for
657 * doc/as.texinfo: Split out the NS32k family documentation,
658 despite its being commented out for now.
659 * doc/c-ns32k.texi: New file.
661 * sb.c, macro.c: Include string.h.
663 * Makefile.in (comparison): Only check *.o; we don't care if
664 timestamps inserted by the native linker differ.
666 * config/tc-alpha.c (alpha_align): Only fill with a no-op pattern
667 if alignment stricter than 4 bytes is requested; in that case,
668 align to a 4-byte boundary first.
672 * config/obj-vms.c (VMS_RSYM_Parse): eliminate "might be used
673 uninitialized" warning for `Max_Source_Offset'.
677 * config/tc-ppc.c (parse_toc_entry): New function to parse [toc]
678 qualifiers and detect errors if present.
679 (md_assemble): Add call to parse_toc_entry. Also added some support
680 for the [tocv] qualifier.
681 (ppc_pe_tocd): New function to support data in the toc section.
685 * config/tc-ppc.c (ppc_frob_symbol): Don't create an aux entry for
690 * config/tc-m68k.c (isword): Accept all values from -65536 to
691 +65535, so ~VAL will not be rejected.
693 * cond.c (s_endif): Call demand_empty_rest_of_line. In MRI mode,
694 skip characters after the pseudo-op.
696 * read.c (get_line_sb): Don't look past buffer_limit.
697 (s_include): In MRI mode, skip characters after the file name.
701 * config/m68k-parse.y (m68k_reg_parse): In MRI mode, permit
702 periods in register names.
704 For older changes see ChangeLog.1.