3 * config/obj-coff.c (fixup_segment): If TC_M88K is defined, do not
4 add section's paddr to add_number; compatibility to native as and
9 * configure.in: Treat m68k-sysv4 like m68k-elf, not m68k-sysv3.
11 * hash.c (struct hash_entry): Moved here...
12 * hash.h (struct hash_entry): ...from here.
14 * config/obj-elf.c (elf_frob_symbol): Don't free and clear sy_obj
15 if it's already known to be null.
19 * config/tc-ppc.c (md_apply_fix3): Don't adjust the value for 32
20 bit relocs converted to PC relative relocs. This turned out to
21 add the offset from the beginning of .text twice.
25 * stabs.c (s_stab_generic): In 's' case, free string from
28 * config/obj-elf.h (ELF_TARGET_SYMBOL_FIELDS): Remove unused field
30 * config/obj-multi.h (ELF_TARGET_SYMBOL_FIELDS) [OBJ_MAYBE_ELF]:
33 * subsegs.h (segment_info_type): Make bitfields unsigned.
35 * expr.h (struct expressionS): Make X_op and X_unsigned bitfields,
36 and move them together. On most systems this will reduce the
37 structure size by one word.
38 (operatorT): Define O_max.
39 * expr.c (expr_begin): Verify that X_op is wide enough to hold
42 * read.c (pop_insert): Print error returned by hash table
45 * as.c (dump_statistics): Split out from main; dump some hash
46 table stats and target-specific stats.
47 (start_time): No longer automatic to main.
48 (main): Set file-level start_time and call dump_statistics at
49 exit. Exit by calling xexit.
50 (show_usage): Make --statistics description less specific.
51 * subsegs.c (subsegs_print_statistics): New function.
52 * write.c (write_print_statistics): New function.
53 (n_fixups): New static variable.
54 (fix_new_internal): Increment it.
55 * read.c (read_print_statistics): New function.
56 * read.h (read_print_statistics): Declare.
57 * symbol.c (symbol_print_statistics): New function.
58 * symbol.h (symbol_print_statistics): Declare.
59 * hash.c (hash_print_statistics): New function.
60 * hash.h (hash_print_statistics): Declare.
61 * config/tc-i386.c (i386_print_statistics): New function.
62 * config/tc-i386.h (i386_print_statistics): Declare.
63 (tc_print_statistics): New macro.
64 * messages.c (as_fatal, as_assert, as_abort): Use xexit, not
67 * hash.c (DELETED): Rewrite to use a valid but unique address.
68 (START_POWER): Reduce to 10.
69 (enum stat_enum): New enumerator, replacing STAT_* index macros.
70 Add new values for counting strcmp calls.
71 (GROW_FACTOR): New macro.
72 (hash_grow): Use GROW_FACTOR. Rewrite for quick returns instead
74 (FULL_VALUE): New macro. Use 1/4 of table size instead of 1/2.
75 (hash_new): Use FULL_VALUE.
76 (struct hash_control): Definition moved here.
77 (hash_code): Don't mask to low bits.
78 (hash_ask): Mask returned hash code here. Check hash value before
79 calling strcmp; count strcmp calls.
80 * hash.h (struct hash_control): Declare, don't define, here.
81 (HASH_STATLENGTH): Deleted.
82 (struct hash_entry): Add field for hash code.
83 (hash_say, hash_apply): Don't declare.
85 * hash.c (destroy): Return void.
87 (main): Fix declarations.
88 (hash_apply): Return void. Argument `function' returns void. Put
90 (hash_say): Define only if TEST is defined.
91 * hash.h (hash_apply, hash_say): Declarations deleted.
95 * configure: Rebuild with autoconf 2.7.
99 * aclocal.m4 (AC_PROG_CC): Remove local definition.
100 * configure: Rebuild with autoconf 2.6.
104 * config/tc-ppc.c (ppc_debug_name_section_size): Remove.
105 (ppc_stabx): Don't increment ppc_debug_name_section_size.
107 (ppc_frob_file): Remove.
108 * config/tc-ppc.h (tc_frob_file): Don't define.
109 (ppc_frob_file): Don't declare.
113 * Makefile.in (TARG_CPU_DEP_alpha): Mention alpha-opcode.h.
114 * config/alpha-opcode.h: Include one-operand variants of jmp and
117 * config/te-delt88.h: Renamed from te-delta88.h, to avoid conflict
118 with te-delta.h in 8.3 file systems.
119 * configure.in: Adjusted.
123 * config/tc-mips.c (s_err): Remove; just use the one in read.c.
125 * config/m68k-parse.y (yylex): In MRI mode, '@' can start an octal
127 * expr.c (operand): Handle MRI suffixes after unadorned 0.
131 Version 2.6 released.
132 * Makefile.in (VERSION): Updated to 2.6.
134 * config/obj-coff.c (write_object_file): Change use of md_do_align
135 to pass a pointer rather than a fill value, to match other uses.
139 * config/tc-ns32k.h (TC_FIX_TYPE): Add missing semicolon.
141 * as.c (main): Move md_end call to just after call to
142 perform_an_assembly_pass. Delete cpu-specific code here.
143 * config/tc-i960.h (md_end): New macro, calls brtab_emit.
145 * config/tc-rce.c (md_end): Deleted.
146 * config/tc-rce.h (md_end): New macro, calls dump_literals.
148 * config/tc-arm.c (md_end): Unused function deleted.
149 * config/tc-ns32k.c (md_end): Ditto.
151 * config/tc-i386.c (i386_align_code): New function, moved here
152 from HANDLE_ALIGN macro.
153 * config/tc-i386.h (HANDLE_ALIGN): Call it.
157 * config/tc-i386.h (md_do_align): cast fill and 0x90 to char
162 * config/tc-i386.h (md_do_align): Make ".align n,0x90" generate
163 multi-byte nops to avoid changing gcc. The necessary gcc change
164 might break old assemblers.
168 * config/tc-i386.h (md_do_align, HANDLE_ALIGN): Add macros to
169 generate optimal multi-byte nop instructions for ".align n"
170 ".align n,0x90", and aligns requiring more than 15 bytes of
171 padding still generate multiple 0x90's as before.
175 * config/tc-m68k.c (s_mri_until): Call pop_mri_control.
179 * configure.in (ppc-*-macos*, ppc-*-mpw*): New configurations.
181 * mpw-make.sed: Reorder commands to make sed happier.
182 * config/te-macos.h: New file.
183 * config/tc-ppc.h (TARGET_FORMAT): Set correctly for PowerMac.
187 * config/tc-hppa.c (pa_ip): Fix off-by-2 bug in length check for
188 conditional branches.
189 (md_apply_fix): Likewise.
193 * config/tc-a29k.c (md_apply_fix): Warn if an attempt is made to
194 generate a reloc which the linker will not handle correctly. Fix
195 overflow checking--R_IREL is 18 bits, not 17.
199 * config/obj-coff.c (fixup_segment): Don't subtract md_pcrel_from
200 from a PC relative reloc if TC_A29K.
202 * config/tc-a29k.c (line_separator_chars): Restore '@'. Existing
203 code depends upon it.
205 * config/tc-a29k.c (md_operand): Handle $float, $double, and
206 $extend. Based on code from Eric Freudenthal
208 * config/tc-a29k.h (LEX_DOLLAR): Define.
209 * read.c (LEX_DOLLAR): Define if not defined.
210 (lex_type): Use LEX_DOLLAR.
214 * configure.in (a29k-nyu-sym1): New target, just like other a29k
219 * config/obj-coff.c (c_dot_file_symbol): Cast xmalloc return.
223 * config/tc-ppc.c (md_apply_fix3): Added BFD_RELOC_RVA. Currently
224 used only by "dlltool.c".
228 * config/tc-alpha.c: Undefine inline if not __GNUC__.
229 (md_pseudo_table): Don't define "extern".
233 * config/tc-ppc.c (ppc_biei): Force symbol into text_section.
235 * config/tc-ppc.c (md_show_usage): Put backslash at end of line.
239 * macro.c (macro_expand_body): Don't warn about == with a
240 nonexistent parameter, in case it is in a comment field.
242 * as.c (main): On TC_A29K, call macro_init with macro_alternate
244 * macro.c (get_any_string): Don't keep quotes if macro_strip_at is
245 set, even if macro_alternate is set.
246 (get_apost_token): If macro_strip_at, only skip kind if it is '@'.
247 (sub_actual): If macro_strip_at, and kind is '@', don't look up
248 the token unless it ended in '@'.
249 * config/tc-a29k.c (line_separator_chars): Remove '@'.
250 * doc/c-a29k.texi: Document macro usage on A29K.
254 * config/tc-m68k.c (m68k_ip): Handle new 'W' place, meaning a
256 (install_operand): Likewise.
258 * config/obj-elf.c (ecoff_debug_pseudo_table): Add "extern".
262 * configure.in (m88k-motorola-sysv*): New target.
263 * configure: Rebuild.
264 * config/te-delta88.h: New file.
265 * config/obj-coff.c (write_object_file): Use md_do_align if it is
267 * config/tc-m88k.h (SUB_SEGMENT_ALIGN): Define.
268 (md_do_align): Define.
269 * config/tc-m88k.c: Include "subsegs.h".
270 (m88k_do_align): New function.
272 * config/te-delta.h (STRIP_UNDERSCORE): Don't define.
273 (COFF_NOLOAD_PROBLEM): Define.
274 (LOCAL_LABELS_DOLLAR, LOCAL_LABELS_FB): Define.
278 * config/tc-i386.c (md_assemble): For a jump instruction with
279 non-constant target, require 7 available bytes in the current
284 * config/obj-elf.h: Include bfd/elf-bfd.h rather than
289 * configure.in (alpha-*-linux*): Use ecoff.
290 * configure: Rebuild.
291 * ecoff.c (ecoff_directive_extern): New function.
292 (ecoff_directive_weakext): New function.
293 (ecoff_build_symbols): Handle weak symbols.
294 (ecoff_setup_ext): Likewise.
295 (ecoff_frob_symbol): Warn about weak common symbols.
296 * ecoff.h (ecoff_directive_extern): Declare.
297 (ecoff_directive_weakext): Declare.
298 * symbols.c (S_IS_WEAK): New function.
299 * symbols.h (S_IS_WEAK): Declare.
300 * config/obj-ecoff.c (obj_pseudo_table): Add "extern" and
302 * config/tc-mips.c (mips_pseudo_table): Remove "extern".
307 * config/tc-ppc.c (ppc_lglobl): Do the right thing.
309 * config/tc-ppc.c (ppc_bb): Call SF_SET_PROCESS.
310 (ppc_eb): Likewise. Set the storage class to C_BLOCK, not C_FCN.
311 (ppc_frob_symbol): Don't change C_BLOCK symbols to C_HIDEXT.
312 * config/obj-coff.c (coff_frob_symbol): Don't call
313 SA_SET_SYM_ENDNDX with the current symbol; call it with the next
314 one. If OBJ_XCOFF, try to figure out whether the symbol is going
317 * config/tc-ppc.c (md_pseudo_table): Add "bc" and "ec".
318 (ppc_stab_symbol): New static variable.
319 (ppc_change_csect): Check that ppc_toc_csect is not NULL.
320 (ppc_stabx): Set ppc_stab_symbol around call to symbol_make. Set
321 sy_tc.real_name to the stab string.
322 (ppc_bc, ppc_ec): New static functions.
323 (ppc_canonicalize_symbol_name): If ppc_stab_symbol is set, don't
325 (ppc_symbol_new_hook): If ppc_stab_symbol is set, don't look for a
327 (ppc_frob_symbol): Set BSF_NOT_AT_END for symbols with csect aux
330 * input-scrub.c (input_scrub_push): Reset sb_index.
334 * listing.c (listing_newline): Don't create a frag in the absolute
339 * config/tc-ppc.c (md_pseudo_table): Add "data" and "text".
340 (ppc_csect): Move most of the code to ppc_change_csect, and call
342 (ppc_change_csect): New static function, taken from ppc_csect.
343 (ppc_section): New static function.
344 (ppc_saw_abs): New static varable.
345 (ppc_frob_symbol): Create aux entry for absolute symbols. Warn if
346 a symbol has no csect.
347 (ppc_adjust_symtab): New function.
348 * config/tc-ppc.h (tc_adjust_symtab): Define if OBJ_XCOFF.
349 (ppc_adjust_symtab): Declare if OBJ_XCOFF.
351 * write.c (write_object_file): If tc_adjust_symtab is defined,
352 call it just before the call to obj_adjust_symtab.
354 * symbols.c (symbol_find_or_make): Change name to be const.
355 * symbols.h (symbol_find_or_make): Update declaration.
359 * doc/as.texinfo (Align): Mention SH.
360 * doc/c-m68k.texi (M68K-Directives, .even): Describe behavior, not
362 * doc/c-z8k.texi (Z8000 Directives, global): Fix minor typo.
363 (Z8000 Directives, even): Don't give numeric align value, instead
368 * tc-arm.c (do_ldst): Assemble ldr/str r0, [r1] as a pre-increment
373 * Makefile.in (diststuff): Also make info.
374 (maintainer-clean realclean): Also make clean-info.
378 * config/tc-hppa.c (md_pseudo_table): Add new ".nsubspa" opcode.
379 (pa_subspace): For ".nsubspa", always create a new subspace
380 with the given attributes, even if one already exists with the
385 * config/tc-ppc.h (TC_FORCE_RELOCATION_SECTION): Rename from
386 TC_FORCE_RELOCATION, taking an additional section argument. If
387 the section of the target symbol is not the same as the current
388 section, always force the relocation to be used.
389 (MD_PCREL_FROM_SECTION): New macro to call md_pcrel_from_section.
391 * config/tc-ppc.c (md_pcrel_from_section): Rename from the
392 md_pcrel_from function, taking an additional section argument.
393 Invoke TC_FORCE_RELOCATION_SECTION instead of TC_FORCE_RELOCATION.
395 * write.c (TC_FORCE_RELOCATION_SECTION): Define in terms of the
396 older TC_FORCE_RELOCATION if not defined.
397 (MD_PCREL_FROM_SECTION): If not defined, invoke md_pcrel_from.
398 (fixup_segment): Use MD_PCREL_FROM_SECTION instead of
399 md_pcrel_from, and TC_FORCE_RELOCATION_SECTION instead of
404 * input-scrub.c (as_where): Set name to null pointer if we don't
406 * messages.c (identify): Only print filename if non-null.
407 (as_show_where): Ditto, for line number too.
408 (as_warn_internal, as_bad_internal): Ditto.
410 * input-file.c (input_file_open): If the input file can't be
411 opened, consider it an error.
415 * config/tc-mips.c: Added mips_4100 control, and support for
416 accepting the 4100 as a MIPS architecture variant (md_begin,
417 macro_build, mips_ip, md_parse_option). Adding suitable
418 command-line OPTIONs, and updating the help text (md_show_usage).
422 * subsegs.c (subseg_begin): Only set absolute_frchain.fix_* when
423 BFD_ASSEMBLER is defined.
425 * Use one active frag and one obstack per frag chain:
426 * frags.c (frags): Variable deleted.
427 (frag_alloc): New function.
428 (frag_grow, frag_more, frag_variant, frag_now_fix,
429 frag_append_1_char): Refer to frchain_now->frch_obstack instead of
431 (frag_new): Ditto. Verify that frch_last and frag_now match on
432 entry and exit, and that old frag_now has non-zero type. Replace
433 "know" uses with "assert". Use frag_alloc instead of mucking with
435 * frags.h (frags): Declaration deleted.
436 * subsegs.h (struct frchain): Add new field frch_frag_now.
437 * subsegs.c (frchains, dummy_frag, absolute_frchain): New static
439 (subsegs_begin): Initialize frchains obstack. Under gcc, don't
440 give it any stricter alignment than frchainS structures need. Do
441 not initialize frags obstack. Set frag_now to point to
442 dummy_obstack. Initialize absolute_frchain.
443 (subseg_set_rest): Save and restore frag_now in frch_frag_now
444 field of frchainS. Don't create new frags on section switch, and
445 use frag_alloc when creating a new frag chain. For absolute
446 section, set frchain_now to absolute_frchain. Verify that
447 frch_last and frag_now match on entry and exit. Initialize
448 per-chain obstack, and under gcc, set required alignment to that
449 needed by fragS structure.
451 * write.c (chain_frchains_together_1): Verify fr_type is nonzero.
453 * stabs.c (get_stab_string_offset): Only copy input string if a
454 fresh copy is needed, not if the section already exists.
455 (s_stab_generic): Cache stab section name to bypass lookups, since
456 usually it will match. Could be made faster still by changing the
457 memory allocation rules.
458 (s_xstab): Cache section name to bypass repeated string
461 * frags.c (frag_new): Deleted register declarations.
463 * listing.c (frag_now): Don't declare.
465 * as.c (chunksize): New variable.
466 (debug_memory): New variable.
467 (main): If debug_memory is set, reduce chunksize and
469 * as.h (chunksize): Declare it.
470 * read.c (read_begin): Use it.
472 * config/tc-alpha.c (md_shortopts): Include 'g'.
473 (md_parse_option): Ignore it.
475 * Makefile.in (distclean): Remove Makefile and config.status from
477 (clean-here): Don't delete testsuite. Instead, delete only the
478 files within it that would be generated by running tests.
480 * config/tc-hppa.c (hppa_elf_mark_end_of_function): Call
481 frag_now_fix instead of accessing obstack info directly.
482 * config/tc-arm.c (s_ltorg): Ditto.
483 (md_assemble): Ditto.
485 * config/tc-i386.c (md_assemble): Call frag_grow instead of
490 * stabs.c (aout_process_stab): Insert debug symbol into symbol
491 chain after parsing value expression, if any, to avoid separating
492 continued .stabs lines.
496 * config/tc-mips.c (mips_elf_pseudo_table): Remove.
497 (mips_pop_insert): Don't call pop_insert on mips_elf_pseudo_table.
501 * config/tc-ppc.c (md_begin): Use new flags PPC_OPCODE_COMMON for
502 -mcom support and PPC_OPCODE_ANY for -many.
503 (md_parse_option): Ditto.
505 (md_begin): For duplicate instructions, print all duplicates
510 * config/tc-ppc.c (md_parse_option): Support for -mcom to turn on
511 common mode operation.
512 (md_show_usage): Add -mcom to usage message.
516 * expr.c (op_rank): Add O_symbol_rva.
517 * expr.h (operatorT): Add O_symbol_rva.
518 * read.c (cons_worker): Set O_symbol_rva when necessary.
519 * write.c (fix_new_exp): Understand O_symbol_rva.
523 * config/tc-mips.c: Correct s_cons arguments. From Michael
528 * config/tc-ppc.c (ppc_macro): Make count unsigned.
529 (ppc_biei): Set segment to now_seg and value to coff_n_line_nos.
530 (ppc_frob_symbol): Handle C_BINCL and C_EINCL symbols by setting
532 * config/obj-coff.c (coff_n_line_nos): Rename from n_line_nos, and
533 make non-static. Change all users.
534 * config/obj-coff.h (coff_n_line_nos): Declare.
540 * configure.in (AC_ARG_WITH(bfd-assembler)): Fix help message.
542 * config/obj-elf.c (obj_elf_common): Convert specified byte
543 alignment to power of two. Set size of local bss symbol.
545 * config/tc-m68k.c (tc_gen_reloc): Fix typo in variable name.
549 * sb.c, macro.c: Decide whether to include <string.h> or
550 <strings.h> just as as.h does.
554 * Makefile.in (site.exp): Fix setting of $srcdir.
556 * config/tc-arm.c (md_atof): Fix little-endian output.
557 * config/tc-arm.h (ARM_BI_ENDIAN): Move definition so defined for
562 * doc/as.texinfo: Split out the NS32k family documentation,
563 despite its being commented out for now.
564 * doc/c-ns32k.texi: New file.
566 * sb.c, macro.c: Include string.h.
568 * Makefile.in (comparison): Only check *.o; we don't care if
569 timestamps inserted by the native linker differ.
571 * config/tc-alpha.c (alpha_align): Only fill with a no-op pattern
572 if alignment stricter than 4 bytes is requested; in that case,
573 align to a 4-byte boundary first.
577 * config/obj-vms.c (VMS_RSYM_Parse): eliminate "might be used
578 uninitialized" warning for `Max_Source_Offset'.
582 * config/tc-ppc.c (parse_toc_entry): New function to parse [toc]
583 qualifiers and detect errors if present.
584 (md_assemble): Add call to parse_toc_entry. Also added some support
585 for the [tocv] qualifier.
586 (ppc_pe_tocd): New function to support data in the toc section.
590 * config/tc-ppc.c (ppc_frob_symbol): Don't create an aux entry for
595 * config/tc-m68k.c (isword): Accept all values from -65536 to
596 +65535, so ~VAL will not be rejected.
598 * cond.c (s_endif): Call demand_empty_rest_of_line. In MRI mode,
599 skip characters after the pseudo-op.
601 * read.c (get_line_sb): Don't look past buffer_limit.
602 (s_include): In MRI mode, skip characters after the file name.
606 * config/m68k-parse.y (m68k_reg_parse): In MRI mode, permit
607 periods in register names.
609 For older changes see ChangeLog.1.