diff options
Diffstat (limited to 'gas/ChangeLog-9295')
-rw-r--r-- | gas/ChangeLog-9295 | 13110 |
1 files changed, 13110 insertions, 0 deletions
diff --git a/gas/ChangeLog-9295 b/gas/ChangeLog-9295 new file mode 100644 index 0000000..7ea48e6 --- /dev/null +++ b/gas/ChangeLog-9295 @@ -0,0 +1,13110 @@ +Sat Dec 30 23:42:51 1995 Jeffrey A Law (law@cygnus.com) + + * ecoff.c (ecoff_stab): Simplify. Correctly handle sym + offset + addresses for static variables. + +Thu Dec 21 12:54:32 1995 Michael Meissner <meissner@tiktok.cygnus.com> + + * config/tc-ppc.c (mapping): Make @got give a real GOT relocation, + and xgot give the old toc16 relocation. + (md_apply_fix3): Support all GOT relocations. + +Wed Dec 20 14:57:17 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-mips.c (load_address): Correctly handle a constant in + SVR4_PIC case. From Richard Kenner <kenner@vlsi1.ultra.nyu.edu>. + +Fri Dec 15 14:25:07 1995 J.T. Conklin <jtc@rtl.cygnus.com> + + * config/tc-sh.c (parse_reg): Recognize SH3 registers. + (get_specific): Handle A_SSR, A_SPC and A_REG_B. + (build_Mbytes): Handle REG_B. + +Fri Dec 15 16:07:25 1995 Ian Lance Taylor <ian@cygnus.com> + + * ecoff.c (ecoff_build_aux): Use new bfd_big_endian macro. + +Fri Dec 15 12:11:48 1995 Raymond Jou <rjou@mexican.cygnus.com> + + * mpw-make.sed: If linking, edit ALL_CFLAGS to CFLAGS. + +Thu Dec 14 15:09:52 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/obj-coff.c (write_object_file): Set the s_align field to + the number of bytes, rather than to the power of 2. + +Tue Dec 12 12:19:37 1995 Ian Lance Taylor <ian@cygnus.com> + + * Makefile.in (DISTCLEAN_HERE): New variable. + (distclean): Use it. + (maintainer-clean): Depend upon clean-here rather than clean, + distclean, and clean-info. Run make maintainer-clean in doc. + Remove files listed in DISTCLEAN_HERE. + * doc/Makefile.in (maintainer-clean realclean): Split out from + distclean. Depend upon clean-info and distclean. + +Mon Dec 11 16:23:51 1995 Stan Shebs <shebs@andros.cygnus.com> + + * mac-as.r: Fix copyright and version strings. + (cfrg): Use PROG_NAME instead of literal name. + +Mon Dec 11 14:14:08 1995 Ian Lance Taylor <ian@cygnus.com> + + * read.c (read_a_source_file): If tc_unrecognized_line is defined, + call it. + * config/tc-a29k.h (tc_unrecognized_line): Define. + * config/tc-a29k.c (a29k_unrecognized_line): New function. + (md_operand): Handle a29k style local dollar labels. + +Wed Dec 6 17:52:52 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/obj-multi.h: If OBJ_MAYBE_ELF, define OBJ_SYMFIELD_TYPE. + +Tue Dec 5 13:26:34 1995 Ken Raeburn <raeburn@cygnus.com> + + * read.c (s_fill): If md_flush_pending_output is defined, call + it. + +Mon Dec 4 15:10:53 1995 Ken Raeburn <raeburn@cygnus.com> + + * config/obj-coff.c (size_section, fill_section, fixup_mdeps): + Treat rs_align_code like rs_align. + +Sun Dec 3 16:46:54 1995 Richard Earnshaw (rearnsha@armltd.co.uk) + + * config/tc-arm.c (cp_address_required_here): Set pre_inc when + converting an absolute address into a PC-relative one. + +Fri Dec 1 11:57:56 1995 Stan Shebs <shebs@andros.cygnus.com> + + * mpw-config.in: Don't always use te-generic.h for emulation. + (powerpc-apple-macos): Use emulation te-macos.h. + * mpw-make.sed (install, install-only): Edit in Mac-specific + install procedure. + +Fri Dec 1 10:59:25 1995 Ian Lance Taylor <ian@cygnus.com> + + * configure.in: Improve message about unsupported ELF targets. + * configure: Rebuild. + + * config/tc-m88k.c (m88k_do_align): Correct check for whether fill + pattern is zero. From Manfred Hollstein. + +Thu Nov 30 13:25:49 1995 Kim Knuttila <krk@cygnus.com> + + * config/tc-ppc.c (ppc_pe_section): To get the alignment right for + the various idata sections, we check the name on the .section pseudo. + +Thu Nov 30 11:23:42 1995 Manfred Hollstein KS/EF4A 60/1F/110 #40283 <manfred@lts.sel.alcatel.de> + + * config/obj-coff.c (fixup_segment): If TC_M88K is defined, do not + add section's paddr to add_number; compatibility to native as and + ld forbids. + +Wed Nov 29 23:14:27 1995 Ken Raeburn <raeburn@cygnus.com> + + * configure.in: Treat m68k-sysv4 like m68k-elf, not m68k-sysv3. + + * hash.c (struct hash_entry): Moved here... + * hash.h (struct hash_entry): ...from here. + + * config/obj-elf.c (elf_frob_symbol): Don't free and clear sy_obj + if it's already known to be null. + +Wed Nov 29 13:00:20 1995 Michael Meissner <meissner@tiktok.cygnus.com> + + * config/tc-ppc.c (md_apply_fix3): Don't adjust the value for 32 + bit relocs converted to PC relative relocs. This turned out to + add the offset from the beginning of .text twice. + +Tue Nov 28 10:42:36 1995 Ken Raeburn <raeburn@cygnus.com> + + * stabs.c (s_stab_generic): In 's' case, free string from + obstack. + + * config/obj-elf.h (ELF_TARGET_SYMBOL_FIELDS): Remove unused field + sy_name_offset. + * config/obj-multi.h (ELF_TARGET_SYMBOL_FIELDS) [OBJ_MAYBE_ELF]: + Ditto. + + * subsegs.h (segment_info_type): Make bitfields unsigned. + + * expr.h (struct expressionS): Make X_op and X_unsigned bitfields, + and move them together. On most systems this will reduce the + structure size by one word. + (operatorT): Define O_max. + * expr.c (expr_begin): Verify that X_op is wide enough to hold + O_max. + + * read.c (pop_insert): Print error returned by hash table + insertion code. + + * as.c (dump_statistics): Split out from main; dump some hash + table stats and target-specific stats. + (start_time): No longer automatic to main. + (main): Set file-level start_time and call dump_statistics at + exit. Exit by calling xexit. + (show_usage): Make --statistics description less specific. + * subsegs.c (subsegs_print_statistics): New function. + * write.c (write_print_statistics): New function. + (n_fixups): New static variable. + (fix_new_internal): Increment it. + * read.c (read_print_statistics): New function. + * read.h (read_print_statistics): Declare. + * symbol.c (symbol_print_statistics): New function. + * symbol.h (symbol_print_statistics): Declare. + * hash.c (hash_print_statistics): New function. + * hash.h (hash_print_statistics): Declare. + * config/tc-i386.c (i386_print_statistics): New function. + * config/tc-i386.h (i386_print_statistics): Declare. + (tc_print_statistics): New macro. + * messages.c (as_fatal, as_assert, as_abort): Use xexit, not + exit. + + * hash.c (DELETED): Rewrite to use a valid but unique address. + (START_POWER): Reduce to 10. + (enum stat_enum): New enumerator, replacing STAT_* index macros. + Add new values for counting strcmp calls. + (GROW_FACTOR): New macro. + (hash_grow): Use GROW_FACTOR. Rewrite for quick returns instead + of nesting blocks. + (FULL_VALUE): New macro. Use 1/4 of table size instead of 1/2. + (hash_new): Use FULL_VALUE. + (struct hash_control): Definition moved here. + (hash_code): Don't mask to low bits. + (hash_ask): Mask returned hash code here. Check hash value before + calling strcmp; count strcmp calls. + * hash.h (struct hash_control): Declare, don't define, here. + (HASH_STATLENGTH): Deleted. + (struct hash_entry): Add field for hash code. + (hash_say, hash_apply): Don't declare. + + * hash.c (destroy): Return void. + (applicatee): Ditto. + (main): Fix declarations. + (hash_apply): Return void. Argument `function' returns void. Put + inside "#ifdef TEST". + (hash_say): Define only if TEST is defined. + * hash.h (hash_apply, hash_say): Declarations deleted. + +Mon Nov 27 13:18:25 1995 Ian Lance Taylor <ian@cygnus.com> + + * configure: Rebuild with autoconf 2.7. + +Tue Nov 21 18:39:01 1995 Ian Lance Taylor <ian@cygnus.com> + + * aclocal.m4 (AC_PROG_CC): Remove local definition. + * configure: Rebuild with autoconf 2.6. + +Mon Nov 20 17:26:00 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-ppc.c (ppc_debug_name_section_size): Remove. + (ppc_stabx): Don't increment ppc_debug_name_section_size. + (ppc_bc): Likewise. + (ppc_frob_file): Remove. + * config/tc-ppc.h (tc_frob_file): Don't define. + (ppc_frob_file): Don't declare. + +Mon Nov 20 13:37:05 1995 Ken Raeburn <raeburn@cygnus.com> + + * Makefile.in (TARG_CPU_DEP_alpha): Mention alpha-opcode.h. + * config/alpha-opcode.h: Include one-operand variants of jmp and + jsr. + + * config/te-delt88.h: Renamed from te-delta88.h, to avoid conflict + with te-delta.h in 8.3 file systems. + * configure.in: Adjusted. + +Thu Nov 16 12:49:38 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-mips.c (s_err): Remove; just use the one in read.c. + + * config/m68k-parse.y (yylex): In MRI mode, '@' can start an octal + number. + * expr.c (operand): Handle MRI suffixes after unadorned 0. + +Thu Nov 16 00:21:44 1995 Ken Raeburn <raeburn@cygnus.com> + + Version 2.6 released. + * Makefile.in (VERSION): Updated to 2.6. + + * config/obj-coff.c (write_object_file): Change use of md_do_align + to pass a pointer rather than a fill value, to match other uses. + +Wed Nov 15 03:52:00 1995 Ken Raeburn <raeburn@cygnus.com> + + * config/tc-ns32k.h (TC_FIX_TYPE): Add missing semicolon. + + * as.c (main): Move md_end call to just after call to + perform_an_assembly_pass. Delete cpu-specific code here. + * config/tc-i960.h (md_end): New macro, calls brtab_emit. + * config/tc-arm.c (md_end): Unused function deleted. + * config/tc-ns32k.c (md_end): Ditto. + + * config/tc-i386.c (i386_align_code): New function, moved here + from HANDLE_ALIGN macro. + * config/tc-i386.h (HANDLE_ALIGN): Call it. + + Mon Jul 31 14:53:19 1995 Alan Modra <alan@spri.levels.unisa.edu.au> + + * config/tc-i386.h (md_do_align): cast fill and 0x90 to char + before comparing + + Mon May 1 10:91:49 1995 Alan Modra <alan@spri.levels.unisa.edu.au> + + * config/tc-i386.h (md_do_align): Make ".align n,0x90" generate + multi-byte nops to avoid changing gcc. The necessary gcc change + might break old assemblers. + + Sat Apr 22 20:53:05 1995 Alan Modra <alan@spri.levels.unisa.edu.au> + + * config/tc-i386.h (md_do_align, HANDLE_ALIGN): Add macros to + generate optimal multi-byte nop instructions for ".align n" + ".align n,0x90", and aligns requiring more than 15 bytes of + padding still generate multiple 0x90's as before. + +Mon Nov 13 17:40:21 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-m68k.c (s_mri_until): Call pop_mri_control. + +Mon Nov 13 20:39:06 1995 Stan Shebs <shebs@andros.cygnus.com> + + * configure.in (ppc-*-macos*, ppc-*-mpw*): New configurations. + * configure: Update. + * mpw-make.sed: Reorder commands to make sed happier. + * config/te-macos.h: New file. + * config/tc-ppc.h (TARGET_FORMAT): Set correctly for PowerMac. + +Sun Nov 12 21:14:56 1995 Jeffrey A Law (law@cygnus.com) + + * config/tc-hppa.c (pa_ip): Fix off-by-2 bug in length check for + conditional branches. + (md_apply_fix): Likewise. + +Thu Nov 9 16:14:01 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-a29k.c (md_apply_fix): Warn if an attempt is made to + generate a reloc which the linker will not handle correctly. Fix + overflow checking--R_IREL is 18 bits, not 17. + +Wed Nov 8 19:59:36 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/obj-coff.c (fixup_segment): Don't subtract md_pcrel_from + from a PC relative reloc if TC_A29K. + + * config/tc-a29k.c (line_separator_chars): Restore '@'. Existing + code depends upon it. + + * config/tc-a29k.c (md_operand): Handle $float, $double, and + $extend. Based on code from Eric Freudenthal + <freudenthal@nyu.edu>. + * config/tc-a29k.h (LEX_DOLLAR): Define. + * read.c (LEX_DOLLAR): Define if not defined. + (lex_type): Use LEX_DOLLAR. + +Wed Nov 8 16:38:14 1995 Eric Freudenthal <freudenthal@nyu.edu> + + * configure.in (a29k-nyu-sym1): New target, just like other a29k + targets. + +Wed Nov 8 11:38:48 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/obj-coff.c (c_dot_file_symbol): Cast xmalloc return. + +Tue Nov 7 09:14:35 1995 Kim Knuttila <krk@cygnus.com> + + * config/tc-ppc.c (md_apply_fix3): Added BFD_RELOC_RVA. Currently + used only by "dlltool.c". + +Mon Nov 6 18:51:26 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-alpha.c: Undefine inline if not __GNUC__. + (md_pseudo_table): Don't define "extern". + +Sat Nov 4 00:51:21 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-ppc.c (ppc_biei): Force symbol into text_section. + + * config/tc-ppc.c (md_show_usage): Put backslash at end of line. + +Fri Nov 3 13:02:59 1995 Ian Lance Taylor <ian@cygnus.com> + + * macro.c (macro_expand_body): Don't warn about == with a + nonexistent parameter, in case it is in a comment field. + + * as.c (main): On TC_A29K, call macro_init with macro_alternate + set to 1. + * macro.c (get_any_string): Don't keep quotes if macro_strip_at is + set, even if macro_alternate is set. + (get_apost_token): If macro_strip_at, only skip kind if it is '@'. + (sub_actual): If macro_strip_at, and kind is '@', don't look up + the token unless it ended in '@'. + * config/tc-a29k.c (line_separator_chars): Remove '@'. + * doc/c-a29k.texi: Document macro usage on A29K. + +Thu Nov 2 23:07:57 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-m68k.c (m68k_ip): Handle new 'W' place, meaning a + signed word. + (install_operand): Likewise. + + * config/obj-elf.c (ecoff_debug_pseudo_table): Add "extern". + +Wed Nov 1 15:17:02 1995 Manfred Hollstein KS/EF4A 60/1F/110 #40283 <manfred@lts.sel.alcatel.de> + + * configure.in (m88k-motorola-sysv*): New target. + * configure: Rebuild. + * config/te-delta88.h: New file. + * config/obj-coff.c (write_object_file): Use md_do_align if it is + defined. + * config/tc-m88k.h (SUB_SEGMENT_ALIGN): Define. + (md_do_align): Define. + * config/tc-m88k.c: Include "subsegs.h". + (m88k_do_align): New function. + + * config/te-delta.h (STRIP_UNDERSCORE): Don't define. + (COFF_NOLOAD_PROBLEM): Define. + (LOCAL_LABELS_DOLLAR, LOCAL_LABELS_FB): Define. + +Wed Nov 1 16:07:43 1995 Ken Raeburn <raeburn@cygnus.com> + + * config/tc-i386.c (md_assemble): For a jump instruction with + non-constant target, require 7 available bytes in the current + frag, not 6. + +Tue Oct 31 15:37:16 1995 Fred Fish <fnf@rtl.cygnus.com> + + * config/obj-elf.h: Include bfd/elf-bfd.h rather than + bfd/libelf.h. + +Tue Oct 31 16:34:28 1995 David Mosberger-Tang <davidm@azstarnet.com> + + * configure.in (alpha-*-linux*): Use ecoff. + * configure: Rebuild. + * ecoff.c (ecoff_directive_extern): New function. + (ecoff_directive_weakext): New function. + (ecoff_build_symbols): Handle weak symbols. + (ecoff_setup_ext): Likewise. + (ecoff_frob_symbol): Warn about weak common symbols. + * ecoff.h (ecoff_directive_extern): Declare. + (ecoff_directive_weakext): Declare. + * symbols.c (S_IS_WEAK): New function. + * symbols.h (S_IS_WEAK): Declare. + * config/obj-ecoff.c (obj_pseudo_table): Add "extern" and + "weakext". + * config/tc-mips.c (mips_pseudo_table): Remove "extern". + (s_extern): Remove. + +Tue Oct 31 13:29:08 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-ppc.c (ppc_lglobl): Do the right thing. + + * config/tc-ppc.c (ppc_bb): Call SF_SET_PROCESS. + (ppc_eb): Likewise. Set the storage class to C_BLOCK, not C_FCN. + (ppc_frob_symbol): Don't change C_BLOCK symbols to C_HIDEXT. + * config/obj-coff.c (coff_frob_symbol): Don't call + SA_SET_SYM_ENDNDX with the current symbol; call it with the next + one. If OBJ_XCOFF, try to figure out whether the symbol is going + to be dropped. + + * config/tc-ppc.c (md_pseudo_table): Add "bc" and "ec". + (ppc_stab_symbol): New static variable. + (ppc_change_csect): Check that ppc_toc_csect is not NULL. + (ppc_stabx): Set ppc_stab_symbol around call to symbol_make. Set + sy_tc.real_name to the stab string. + (ppc_bc, ppc_ec): New static functions. + (ppc_canonicalize_symbol_name): If ppc_stab_symbol is set, don't + do anything. + (ppc_symbol_new_hook): If ppc_stab_symbol is set, don't look for a + suffix. + (ppc_frob_symbol): Set BSF_NOT_AT_END for symbols with csect aux + entries. + + * input-scrub.c (input_scrub_push): Reset sb_index. + +Mon Oct 30 17:52:46 1995 Ian Lance Taylor <ian@cygnus.com> + + * listing.c (listing_newline): Don't create a frag in the absolute + section. + +Sat Oct 28 01:02:05 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-ppc.c (md_pseudo_table): Add "data" and "text". + (ppc_csect): Move most of the code to ppc_change_csect, and call + it. + (ppc_change_csect): New static function, taken from ppc_csect. + (ppc_section): New static function. + (ppc_saw_abs): New static varable. + (ppc_frob_symbol): Create aux entry for absolute symbols. Warn if + a symbol has no csect. + (ppc_adjust_symtab): New function. + * config/tc-ppc.h (tc_adjust_symtab): Define if OBJ_XCOFF. + (ppc_adjust_symtab): Declare if OBJ_XCOFF. + + * write.c (write_object_file): If tc_adjust_symtab is defined, + call it just before the call to obj_adjust_symtab. + + * symbols.c (symbol_find_or_make): Change name to be const. + * symbols.h (symbol_find_or_make): Update declaration. + +Thu Oct 26 19:18:27 1995 Ken Raeburn <raeburn@cygnus.com> + + * doc/as.texinfo (Align): Mention SH. + * doc/c-m68k.texi (M68K-Directives, .even): Describe behavior, not + .align value. + * doc/c-z8k.texi (Z8000 Directives, global): Fix minor typo. + (Z8000 Directives, even): Don't give numeric align value, instead + explain behavior. + +Thu Oct 26 11:45:03 1995 Richard Earnshaw (rearnsha@armltd.co.uk) + + * tc-arm.c (do_ldst): Assemble ldr/str r0, [r1] as a pre-increment + instruction. + +Wed Oct 25 11:59:24 1995 Per Bothner <bothner@kalessin.cygnus.com> + + * Makefile.in (diststuff): Also make info. + (maintainer-clean realclean): Also make clean-info. + +Tue Oct 24 15:21:33 1995 Jeffrey A Law (law@cygnus.com) + + * config/tc-hppa.c (md_pseudo_table): Add new ".nsubspa" opcode. + (pa_subspace): For ".nsubspa", always create a new subspace + with the given attributes, even if one already exists with the + same name. + +Tue Oct 24 14:50:38 1995 Michael Meissner <meissner@tiktok.cygnus.com> + + * config/tc-ppc.h (TC_FORCE_RELOCATION_SECTION): Rename from + TC_FORCE_RELOCATION, taking an additional section argument. If + the section of the target symbol is not the same as the current + section, always force the relocation to be used. + (MD_PCREL_FROM_SECTION): New macro to call md_pcrel_from_section. + + * config/tc-ppc.c (md_pcrel_from_section): Rename from the + md_pcrel_from function, taking an additional section argument. + Invoke TC_FORCE_RELOCATION_SECTION instead of TC_FORCE_RELOCATION. + + * write.c (TC_FORCE_RELOCATION_SECTION): Define in terms of the + older TC_FORCE_RELOCATION if not defined. + (MD_PCREL_FROM_SECTION): If not defined, invoke md_pcrel_from. + (fixup_segment): Use MD_PCREL_FROM_SECTION instead of + md_pcrel_from, and TC_FORCE_RELOCATION_SECTION instead of + TC_FORCE_RELOCATION. + +Mon Oct 23 16:20:04 1995 Ken Raeburn <raeburn@cygnus.com> + + * input-scrub.c (as_where): Set name to null pointer if we don't + have a file name. + * messages.c (identify): Only print filename if non-null. + (as_show_where): Ditto, for line number too. + (as_warn_internal, as_bad_internal): Ditto. + + * input-file.c (input_file_open): If the input file can't be + opened, consider it an error. + +Mon Oct 23 11:15:44 1995 James G. Smith <jsmith@pasanda.cygnus.co.uk> + + * config/tc-mips.c: Added mips_4100 control, and support for + accepting the 4100 as a MIPS architecture variant (md_begin, + macro_build, mips_ip, md_parse_option). Adding suitable + command-line OPTIONs, and updating the help text (md_show_usage). + +Wed Oct 18 13:20:32 1995 Ken Raeburn <raeburn@cygnus.com> + + * subsegs.c (subseg_begin): Only set absolute_frchain.fix_* when + BFD_ASSEMBLER is defined. + + * Use one active frag and one obstack per frag chain: + * frags.c (frags): Variable deleted. + (frag_alloc): New function. + (frag_grow, frag_more, frag_variant, frag_now_fix, + frag_append_1_char): Refer to frchain_now->frch_obstack instead of + frags variable. + (frag_new): Ditto. Verify that frch_last and frag_now match on + entry and exit, and that old frag_now has non-zero type. Replace + "know" uses with "assert". Use frag_alloc instead of mucking with + obstack alignment. + * frags.h (frags): Declaration deleted. + * subsegs.h (struct frchain): Add new field frch_frag_now. + * subsegs.c (frchains, dummy_frag, absolute_frchain): New static + variables. + (subsegs_begin): Initialize frchains obstack. Under gcc, don't + give it any stricter alignment than frchainS structures need. Do + not initialize frags obstack. Set frag_now to point to + dummy_obstack. Initialize absolute_frchain. + (subseg_set_rest): Save and restore frag_now in frch_frag_now + field of frchainS. Don't create new frags on section switch, and + use frag_alloc when creating a new frag chain. For absolute + section, set frchain_now to absolute_frchain. Verify that + frch_last and frag_now match on entry and exit. Initialize + per-chain obstack, and under gcc, set required alignment to that + needed by fragS structure. + + * write.c (chain_frchains_together_1): Verify fr_type is nonzero. + + * stabs.c (get_stab_string_offset): Only copy input string if a + fresh copy is needed, not if the section already exists. + (s_stab_generic): Cache stab section name to bypass lookups, since + usually it will match. Could be made faster still by changing the + memory allocation rules. + (s_xstab): Cache section name to bypass repeated string + allocation. + + * frags.c (frag_new): Deleted register declarations. + + * listing.c (frag_now): Don't declare. + + * as.c (chunksize): New variable. + (debug_memory): New variable. + (main): If debug_memory is set, reduce chunksize and + _bfd_chunksize. + * as.h (chunksize): Declare it. + * read.c (read_begin): Use it. + + * config/tc-alpha.c (md_shortopts): Include 'g'. + (md_parse_option): Ignore it. + + * Makefile.in (distclean): Remove Makefile and config.status from + testsuite directory. + (clean-here): Don't delete testsuite. Instead, delete only the + files within it that would be generated by running tests. + + * config/tc-hppa.c (hppa_elf_mark_end_of_function): Call + frag_now_fix instead of accessing obstack info directly. + * config/tc-arm.c (s_ltorg): Ditto. + (md_assemble): Ditto. + + * config/tc-i386.c (md_assemble): Call frag_grow instead of + obstack_room. + +Wed Oct 18 12:22:59 1995 Ken Raeburn <raeburn@cygnus.com> + + * stabs.c (aout_process_stab): Insert debug symbol into symbol + chain after parsing value expression, if any, to avoid separating + continued .stabs lines. + +Mon Oct 16 10:56:41 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-mips.c (mips_elf_pseudo_table): Remove. + (mips_pop_insert): Don't call pop_insert on mips_elf_pseudo_table. + +Mon Oct 16 07:07:37 1995 Michael Meissner <meissner@wogglebug.tiac.net> + + * config/tc-ppc.c (md_begin): Use new flags PPC_OPCODE_COMMON for + -mcom support and PPC_OPCODE_ANY for -many. + (md_parse_option): Ditto. + (ppc_arch): Ditto. + (md_begin): For duplicate instructions, print all duplicates + before aborting. + +Sun Oct 15 22:06:14 1995 Michael Meissner <meissner@cygnus.com> + + * config/tc-ppc.c (md_parse_option): Support for -mcom to turn on + common mode operation. + (md_show_usage): Add -mcom to usage message. + +Fri Oct 13 13:32:45 1995 steve chamberlain <sac@slash.cygnus.com> + + * expr.c (op_rank): Add O_symbol_rva. + * expr.h (operatorT): Add O_symbol_rva. + * read.c (cons_worker): Set O_symbol_rva when necessary. + * write.c (fix_new_exp): Understand O_symbol_rva. + +Tue Oct 10 11:34:14 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-mips.c: Correct s_cons arguments. From Michael + Joosten <joost@ori.cadlab.de>. + +Mon Oct 9 19:59:53 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-ppc.c (ppc_macro): Make count unsigned. + (ppc_biei): Set segment to now_seg and value to coff_n_line_nos. + (ppc_frob_symbol): Handle C_BINCL and C_EINCL symbols by setting + the fix_line field. + * config/obj-coff.c (coff_n_line_nos): Rename from n_line_nos, and + make non-static. Change all users. + * config/obj-coff.h (coff_n_line_nos): Declare. + +Fri Oct 6 16:24:27 1995 Ken Raeburn <raeburn@cygnus.com> + + Mon Sep 25 22:49:32 1995 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * configure.in (AC_ARG_WITH(bfd-assembler)): Fix help message. + + * config/obj-elf.c (obj_elf_common): Convert specified byte + alignment to power of two. Set size of local bss symbol. + + * config/tc-m68k.c (tc_gen_reloc): Fix typo in variable name. + +Fri Oct 6 15:22:25 1995 Ian Lance Taylor <ian@cygnus.com> + + * sb.c, macro.c: Decide whether to include <string.h> or + <strings.h> just as as.h does. + +Fri Oct 6 09:55:33 1995 Doug Evans <dje@canuck.cygnus.com> + + * Makefile.in (site.exp): Fix setting of $srcdir. + + * config/tc-arm.c (md_atof): Fix little-endian output. + * config/tc-arm.h (ARM_BI_ENDIAN): Move definition so defined for + all coff targets. + +Thu Oct 5 20:17:30 1995 Ken Raeburn <raeburn@cygnus.com> + + * doc/as.texinfo: Split out the NS32k family documentation, + despite its being commented out for now. + * doc/c-ns32k.texi: New file. + + * sb.c, macro.c: Include string.h. + + * Makefile.in (comparison): Only check *.o; we don't care if + timestamps inserted by the native linker differ. + + * config/tc-alpha.c (alpha_align): Only fill with a no-op pattern + if alignment stricter than 4 bytes is requested; in that case, + align to a 4-byte boundary first. + + Thu Sep 28 19:35:27 1995 Pat Rankin <rankin@eql.caltech.edu> + + * config/obj-vms.c (VMS_RSYM_Parse): eliminate "might be used + uninitialized" warning for `Max_Source_Offset'. + +Wed Oct 4 16:17:02 1995 Kim Knuttila <krk@cygnus.com> + + * config/tc-ppc.c (parse_toc_entry): New function to parse [toc] + qualifiers and detect errors if present. + (md_assemble): Add call to parse_toc_entry. Also added some support + for the [tocv] qualifier. + (ppc_pe_tocd): New function to support data in the toc section. + +Wed Oct 4 14:03:39 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-ppc.c (ppc_frob_symbol): Don't create an aux entry for + an absolute symbol. + +Tue Oct 3 12:18:19 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-m68k.c (isword): Accept all values from -65536 to + +65535, so ~VAL will not be rejected. + + * cond.c (s_endif): Call demand_empty_rest_of_line. In MRI mode, + skip characters after the pseudo-op. + (s_else): Likewise. + * read.c (get_line_sb): Don't look past buffer_limit. + (s_include): In MRI mode, skip characters after the file name. + +Mon Oct 2 16:15:27 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/m68k-parse.y (m68k_reg_parse): In MRI mode, permit + periods in register names. + +Sat Sep 30 23:03:31 1995 Jeff Law (law@hurl.cygnus.com) + + * config/tc-hppa.c (hppa_fix_adjustable): DP relative relocs + are not adjustable in SOM to avoid confusing the optimizing + linker. + +Fri Sep 29 15:18:08 1995 Ian Lance Taylor <ian@cygnus.com> + + Add some support for i960 MRI compatibility mode. + * config/tc-i960.c (md_pseudo_table): Add endian. + (get_args): Don't discard a space between alphanumeric characters. + (get_cdisp): Change text_section to now_seg. + (s_endian): New static function. + * config/tc-i960.h (MRI_MODE_NEEDS_PSEUDO_DOT): Define. + * expr.h (operatorT): Add O_logical_not, O_logical_and, and + O_logical_or. + * expr.c (operand): Treat '!' as logical not operator. If + TC_I960, in MRI mode permit `sizeof secname' and `startof + secname'. + (op_rank): Bump values by 2 to make room for && and ||. Add + entries for !, &&, and ||. + (expr_begin): Only do MRI changes if TC_M68K. + (operator): Recognize || and &&. + (expr): Handle new operatorT values. + * symbols.c (resolve_symbol_value): Handle new operatorT values. + (print_expr_1): Likewise. + * read.c (potable): Add debug, err, irep, irepc, print, purgem, + and rep. + (read_a_source_file): Handle MRI_MODE_NEEDS_PSEUDO_DOT. + (mri_comment_field): Only handle weird comments if TC_M68K. + (s_err): New function. + (s_org): Only punt in MRI mode if TC_M68K. + (s_mri_sect): Write TC_I960 version. + (s_print, s_purgem): New functions. + * read.h (s_err, s_print, s_purgem): Declare. + * cond.c (s_ifeqs): Implement. + (ignore_input): Handle MRI_MODE_NEEDS_PSEUDO_DOT. + * macro.c (macro_strip_at): New static variable. + (macro_init): Add strip_at parameter. + (do_formals): If macro_strip_at, change NARG to $NARG. + (define_macro): Skip a comma after the macro name. + (get_apost_token): Skip character if macro_strip_at, even if + macro_mri. + (macro_expand_body): If macro_strip_at, don't recognize parameters + in strings unless they are preceded by an '@'. If macro_strip_at, + pass '@' as strip character to sub_actual. If macro_strip_at, + strip '@' characters. + (macro_expand): If macro_strip_at, change NARG to $NARG. + (delete_macro): New function. + (expand_irp): Skip leading and trailing '"' characters if irpc. + * macro.h (macro_init): Mention new strip_at parameter. + (delete_macro): Declare. + * as.c (main): If TC_I960, pass flag_mri to macro_init as + strip_at; otherwise, pass 0. + * gasp.c (process_pseudo_op): Pass 0 to macro_init as strip_at. + (main): Likewise. + * doc/as.texinfo: Document i960 MRI mode. + + * as.c (show_usage): Mention --defsym. + +Thu Sep 28 19:25:04 1995 Stan Shebs <shebs@andros.cygnus.com> + + * mpw-config.in: Translate "powerpc" into "ppc", remove gen of + VERSION, move gen of "conf" here from makefile. + * mpw-make.sed: New file, sed commands to translate Unix makefile + into MPW syntax. + * mpw-make.in: Remove. + * mac-as.r: New file, Mac resource file. + * as.h (inline): Don't decide about defining if __MWERKS__, + remove redundant conditional and definition. + + * stabs.c (s_stab_generic): Fix syntax for OBJ_PROCESS_STAB. + +Thu Sep 28 15:43:15 1995 Kim Knuttila <krk@nellie> + + * config/tc-ppc.c (md_apply_fix3): Removed some TE_PE specific + manipulations, since I can't prove they're needed. + (md_begin): Removed init_regtable, insert_reg, and the call points. + (register_name): New function. Parses a register name, if appropriate. + (md_assemble): Added call to register_name to handle symbolic names. + (ppc_pe_section): Removed all duplicate IMAGE defines, and include + coff/pe.h instead. + +Thu Sep 28 12:09:19 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-ppc.h (tc_fix_adjustable): Define. + (ppc_pe_fix_adjustable): Declare. + * config/tc-ppc.c (ppc_pe_fix_adjustable): New function. + +Thu Sep 28 01:11:58 1995 Doug Evans <dje@deneb.cygnus.com> + + * config/tc-arm.h (TARGET_FORMAT): Define for arm-coff. + +Wed Sep 27 12:53:58 1995 Ian Lance Taylor <ian@cygnus.com> + + * symbols.c (S_IS_LOCAL): All symbols in reg_section are local. + + * config/tc-ppc.h (OBJ_XCOFF): Define if OBJ_COFF and not TE_PE. + Change OBJ_COFF checks to check OBJ_XCOFF instead. + (TARGET_FORMAT): Fully parenthesize. + (LEX_QM): Define if TE_PE. + * config/tc-ppc.c: Replace OBJ_COFF by OBJ_XCOFF throughout. + Remove checks of TE_PE within #ifdef OBJ_XCOFF sections. + (init_regtable): Make i unsigned. + (ppc_set_current_section): Rename from setCurrentSection. Change + all callers. + (ppc_arch): Return after as_fatal to avoid gcc warning. + (md_assemble): Only declare reloc if OBJ_ELF. Add default to + switch on fixups[i].reloc to avoid gcc warning. + (IMAGE_SGN_LNK_OTHER): Fix nested comment. + (ppc_pe_function): Don't call ppc_canonicalize_symbol_name. + (ppc_frob_symbol): Remove TE_PE section checks. + (md_estimate_size_before_relax): Return after abort to avoid gcc + warning. + (md_apply_fix3): Add BFD_RELOC_16_GOT_PCREL to switch. + * read.c (LEX_QM): Define as 0 if not defined. + (lex_type): Use LEX_QM for '?'. + + * configure.in: No need to check whether ${cpu_type} is powerpc; + it never will be. + * configure: Rebuild. + +Wed Sep 27 11:33:38 1995 Michael Meissner <meissner@tiktok.cygnus.com> + + * config/tc-ppc.c (md_apply_fix3): Remove Sep 26 changes to this + function, keeping other Sep. 26 changes. + +Wed Sep 27 10:29:13 1995 Kim Knuttila <krk@nellie> + + * configure (emulations): Added support for ppcle-*-[pe|winnt] + (target_frag): Removed an extraneous PPC definition. + * configure.in (emulations): Same + * config/tc-ppc.h: + * config/tc-ppc.c (md_pseudo_table): Base support for new or altered + pseudo ops - <previous, pdata, ydata, reldata, rdata, ualong, znop, + section, comm, function> There will be more. + (pre_defined_registers): Predefined reg table to name registers, etc + (md_begin): Setup reg table initialization + (md_assemble): Initial [toc]x(rtoc) support + (ppc_frob_label): Removed some xcoff specific processing from TE_PE + (ppc_frob_symbol): Removed some xcoff specific processing from TE_PE + Added support for more predefined sections + (ppc_frob_section): Removed some xcoff specific processing from TE_PE + (ppc_fix_adjustable): Removed from TE_PE mainline + (md_apply_fix3): For TE_PE toc entries, we don't need to mess + with fx_addnumber. Removed for the time being. + (lots): Put back missing assignments to ppc_current_csect. + +Tue Sep 26 14:57:59 1995 Michael Meissner <meissner@tiktok.cygnus.com> + + * config/tc-ppc.c (ppc_elf_suffix): Support all of the V.4 + relocations. + (ppc_elf_cons): Remove restriction that @ suffixes must be done + with .long. Add error if relocation does not fit in the number of + bytes provided. + (md_assemble): For absolute branches, map PC relative relocations + back into an equivalent absolute relocation. + (md_pcrel_from): If TC_FORCE_RELOCATION is true, relocation offset + is 0, not segment start. + (md_apply_fix3): Don't bother writing addend into the instruction, + since it is ignored, given that we use RELA relocations for ELF. + + * config/tc-ppc.h (TC_FORCE_RELOCATION): Define to force all + branch prediction relocations to always be emitted. + +Mon Sep 25 16:08:43 1995 Michael Meissner <meissner@tiktok.cygnus.com> + + * config/tc-ppc.c (ppc_elf_suffix): Lower case reloc before + testing. + (md_assemble): Be more robust in terms of relocations. + (md_apply_fix3): Allow 14 bit relocs to be emitted for external + symbols in addition to 26 bit relocs. Properly insert 26/14 bit + reloc value fields into the instruction stream. + +Mon Sep 25 00:23:16 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-arm.c (md_atof): Output little endian constants in + little endian mode. + + * config/obj-coff.c (obj_coff_section): Pass &type, not type, + s_mri_sect. + + * configure.in: Fix typo: fmt-elf to fmt=elf. + +Fri Sep 22 16:34:46 1995 Michael Meissner <meissner@tiktok.cygnus.com> + + * config/tc-ppc.c (ppc_elf_suffix): Rewrite to use a table of + strings and relocations they represent. Add @br{,n}taken for + branch taken/not taken support. + (md_apply_fix3): Add BFD_RELOC_PPC_B16_BR{,N}TAKEN support. + +Thu Sep 21 21:10:17 1995 Michael Meissner <meissner@cygnus.com> + + * config/tc-ppc.c (md_parse_option): -mrelocatable-lib now only + sets EF_PPC_RELOCATABLE_LIB and not also EF_PPC_RELOCATABLE. + +Thu Sep 21 16:30:56 1995 Ian Lance Taylor <ian@cygnus.com> + + * subsegs.c (subseg_set): Permit SEG_ABSOLUTE in know expression. + * expr.c (expr): Account for new operatorT values in know + expression. + + * write.c (fixup_segment): Clear fixp->fx_subsy if the relocation + is fully resolved. + +Thu Sep 21 14:11:49 1995 Michael Meissner <meissner@cygnus.com> + + * config/tc-ppc.c (ppc_flags): New variable to hold the flag bits + to set in the ELF header. + (md_parse_option): Add support for -mrelocatable-lib. Make both + -mrelocatable and -mrelocatable-lib set ppc_flags. + (md_begin): Set ELF flags with ppc_flags. + +Wed Sep 20 13:01:52 1995 Ian Lance Taylor <ian@cygnus.com> + + * Makefile.in (maintainer-clean): New target, synonym for + realclean. Add GNU standard maintainer-clean echos. + * doc/Makefile.in (maintainer-clean): New target, synonym for + realclean. + +Tue Sep 19 11:31:31 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-m68k.c (m68k_ip): Reject immediate operands for '%'. + + * config/tc-m68k.c (m68k_ip): Reject immediate operands for '|'. + Replace 'P' with '0', '1', and '2'. + + * config/tc-m68k.c (parse_mri_control_operand): Change leftstop + and rightstop to not be const. + (parse_mri_control_expression): Likewise. + (build_mri_control_operand): Likewise. Use m68k_ip_op to examine + the operand, not m68k_reg_parse. + (s_mri_if): In MRI mode, stop at the first '*'. + (s_mri_while): Likewise. + (s_mri_else): In MRI mode, ignore trailing characters. + (s_mri_endi, s_mri_break, s_mri_next, s_mri_for): Likewise. + (s_mri_endf, s_mri_repeat, s_mri_until, s_mri_endw): Likewise. + * config/m68k-parse.y: Revert yesterday's change. + * config/m68k-parse.h: Revert yesterday's change. + +Mon Sep 18 15:22:28 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-m68k.c (parse_mri_control_operand): Change leftstart + and rightstart to not be const. + (parse_mri_control_expression): Likewise. + (build_mri_control_operand): Likewise. If the left side of the + comparison is a register, and the right side is not, swap the two + sides. + * config/m68k-parse.y (m68k_reg_parse): Make globally visible. + * config/m68k-parse.h (m68k_reg_parse): Declare. + + * read.c (mri_comment_field): New function. + (mri_comment_end): New function. + (s_align_bytes): Use mri_comment_field. + (s_align_ptwo, s_comm, s_mri_common, s_fail, s_globl): Likewise. + (s_float_space, s_struct): Likewise. + (s_space): Use mri_comment_field rather than doing it by hand. + (cons_worker, equals): Likewise. + (s_end): Ignore comments starting with '*' or '!'. + * read.h (mri_comment_field): Declare. + (mri_comment_end): Declare. + * cond.c (s_if): Use mri_comment_field. + * config/tc-m68k.c (s_chip, s_reg): Likewise. + + * write.c (fixup_segment): Handle ABS-sym in -sym case rather than + sym-sym case. + * config/obj-coff.c (fixup_segment): Likewise. Permit negative + symbols if TC_M68K. + * config/tc-m68k.c (tc_coff_fix2rtype): If fx_tcbit is set, return + R_RELLONG_NEG. + (tc_gen_reloc): If fx_tcbit is set, abort. + (md_apply_fix_2): For a negative reloc, move fx_subsy to fx_addsy, + and set fx_tcbit. + + * config/tc-m68k.c (s_reg): Ignore comment field in MRI mode. + +Mon Sep 18 14:44:04 1995 Arne H. Juul <arnej@pvv.unit.no> + + * configure.in (mips-dec-netbsd*): New target. + * configure: Rebuild. + +Sun Sep 17 22:17:43 1995 Ian Lance Taylor <ian@cygnus.com> + + * configure.in: Set endian to little for mips-*-ultrix*. + * configure: Rebuild. + +Fri Sep 15 13:16:55 1995 Ian Lance Taylor <ian@cygnus.com> + + * expr.c (current_location): New static function. Handle magic + symbol `.'; in absolute section, return a constant. + (operand): Call current_location for '.' and '$', instead of doing + it inline. In MRI mode, call current_location for '*'. + +Fri Sep 15 21:39:29 1995 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-m68k.c: Change some "CONST" references to "const". + +Fri Sep 15 17:27:41 1995 Ken Raeburn <raeburn@cygnus.com> + + Tue Sep 12 17:08:23 1995 Pat Rankin <rankin@eql.caltech.edu> + + * config/obj-vms.c (VMS_stab_parse): simplify first loop; + use S_GET_NAME/modify/S_SET_NAME sequence instead of abusing + S_GET_NAME when updating symbol name. + (local_symbols_DST): first prefix/postfix typo from July 21st. + [plus comment reformatting --kr] + +Wed Sep 13 12:33:03 1995 Ian Lance Taylor <ian@cygnus.com> + + * Makefile.in (EXPECT): New variable. + (CHECKFLAGS): Remove. + (site.exp): New target. + (check): Rewrite to invoke runtest directly, rather than recurring + down into testsuite. + (clean-here): Remove testsuite directory. + (clean, distclean): Don't recur into testsuite. + * configure.in: Don't call AC_CONFIG_SUBDIRS(testsuite). + * configure: Rebuild. + + * write.c (relax_and_size_seg): Change to the segment we are + relaxing, in case md_convert_frag, called by cvt_frag_to_fill, + wants to call fix_new. + * config/tc-m68k.c (m68k_ip): Permit PC relative code if the + segment of the symbol is the current segment, not just in + text_section. + (md_convert_frag_1): Don't call subseg_change. + (md_estimate_size_before_relax): Likewise. + +Tue Sep 12 10:36:40 1995 Doug Evans <dje@canuck.cygnus.com> + + * config/tc-arm.c (md_atof): Fix debugging printf, and leave it + out by default. + +Mon Sep 11 11:39:11 1995 Ian Lance Taylor <ian@cygnus.com> + + * doc/configure.in: Remove unused file. + + * app.c (do_scrub_chars): Grab all available spaces at start of + line before preserving a single space. Remove state == 0 test + which will never succeed. + * macro.c (macro_expand_body): Delete local variables from the + formal hash table. + (macro_expand): In MRI mode, stop when whitespace is seen in the + argument list. + + * sb.c: Include "libiberty.h". + * macro.c: Likewise. Also include <stdlib.h> if it exists. + +Fri Sep 8 00:27:46 1995 Ian Lance Taylor <ian@cygnus.com> + + * app.c (do_scrub_chars): In MRI mode, keep a space before a + possible comment character. + * config/tc-m68k.c (m68k_ip): In MRI mode, ignore anything after + an instruction which takes no operands. + + * Makefile.in (install): Don't install gasp in $(tooldir). + + * config/tc-mips.c (macro): Handle a non zero base register for + M_U{L,S}{D,W,H}_A. + + * gasp.c (show_usage): Put program_name argument in first fprintf, + not second. + +Thu Sep 7 12:33:58 1995 Ian Lance Taylor <ian@cygnus.com> + + * expr.c (operand): Handle 08 and 09 in MRI mode. + * macro.c (ISSEP): Remove duplicated `"' character. + (get_any_string): Copy some characters for which ISSEP is true: + ';', '>', '(', ')'. Otherwise we can get in an infinite loop. + * read.c (s_space): In MRI mode, the expressions stop at the first + unquoted space. + (cons_worker): In MRI mode, restore the terminating character at + the end of the function. + + * read.c (cons_worker): Don't use #elif; old compilers don't + support it. + +Wed Sep 6 21:13:06 1995 Ian Lance Taylor <ian@cygnus.com> + + * app.c (do_scrub_chars): In MRI mode, silently end quoted strings + at newline characters. In MRI mode, always keep spaces in the + operands field. In MRI mode, treat a line comment character as a + regular comment character following a space. + * cond.c (ignore_input): Use strncasecmp rather than strncmp when + looking for special pseudo-ops. + * read.c (cons_worker): In MRI mode, the expressions stop at the + first unquoted space. + (equals): Likewise. + +Wed Sep 6 15:03:53 1995 Jim Wilson <wilson@chestnut.cygnus.com> + + * config/tc-sh.c (get_operands): Read third arg if it exists. + Otherwise, clear it. + (get_specific, case F_FR0): Add. + +Wed Sep 6 15:03:53 1995 Jim Wilson <wilson@chestnut.cygnus.com> + + * config/tc-sh.c (get_specific): Delete arg_to_test. + (md_assemble): Increase operand array from 2 to 3. + +Tue Sep 5 16:47:36 1995 Stan Shebs <shebs@andros.cygnus.com> + + * config/tc-mips.c: Remove CYGNUS LOCAL comments. + (md_begin): Use 0/1 instead of TRUE/FALSE. + (md_show_usage): Break up long format string for the benefit + of lame compilers. + * config/tc-m68k.c (md_show_usage): Ditto. + * gasp.c (show_usage): Ditto. + * macro.c (check_macro): Cast result of hash_find. + +Tue Sep 5 14:46:38 1995 Ken Raeburn <raeburn@cygnus.com> + + * configure.in: When testing for a free() declaration in system + header files, cast the address to a function pointer, not to an + integer. + + * write.c (fix_new_internal): Call TC_INIT_FIX_DATA if TC_FIX_TYPE + is defined. Don't initialize fx_bsr. Verify that fx_size field + is wide enough to hold stored value. + * write.h (struct fix): Change tc_fix_data to type TC_FIX_TYPE if + that is defined, otherwise omit it. Delete fx_bsr. Change + fx_size to unsigned char. + * config/tc-i960.h (TC_FIX_TYPE, fx_bsr, TC_INIT_FIX_DATA): New + macros. + * config/tc-ns32k.h (TC_FIX_TYPE, fx_bsr, TC_INIT_FIX_DATA): New + macros. + * config/tc-hppa.h (TC_FIX_TYPE): Define as PTR. + + * config/tc-i860.c (md_apply_fix): Delete code for checking + fx_im_disp, and for handling non-zero values, since it never gets + set after being initialized to zero. + + * write.h (struct fix): Make fx_im_disp always 2 bits, since the + only tc-* files actually using it need that much. + + NS32K changes from Ian Dall: + * configure.in: Treat ns32k-pc532-ux* like ns32k-pc532-mach*, and + ns32k-pc532-lites* like ns32k-pc532-netbsd*. + * config/tc-ns32k.h (LOCAL_LABELS_FB): Define to 1. + +Fri Sep 1 17:02:15 1995 steve chamberlain <sac@slash.cygnus.com> + + * write.c (fixup_segment): Get TC_FORCE_RELOCATION up the + right way! + +Fri Sep 1 08:20:19 1995 James G. Smith <jsmith@beauty.cygnus.com> + + * config/tc-mips.c (md_parse_option, md_begin, md_show_usage): + Add support for "-mcpu=vr4300" as processor identifier. + +Thu Aug 31 16:41:06 1995 steve chamberlain <sac@slash.cygnus.com> + + * write.c (fixup_segment): Remove change of 29th. + * config/tc-{i386,arm}.h (TC_FORCE_RELOCATION): Keep RVA relocs. + +Tue Aug 29 19:42:58 1995 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de> + + * config/tc-m68k.c (m68k_ip) [case POST/PRE/BASE]: Fix typo when + looking at outer displacement. Don't set the postindex bit if the + index suppress bit is set (for memory indirect addressing mode). + +Thu Aug 31 06:49:37 1995 Doug Evans <dje@canuck.cygnus.com> + + * config/tc-arm.c (tc_gen_reloc): Delete duplicated code. + +Wed Aug 30 23:51:57 1995 Ian Lance Taylor <ian@cygnus.com> + + * app.c (do_scrub_chars): Free saved_input when the from buffer + exactly fills the to buffer. + +Wed Aug 30 13:46:39 1995 Doug Evans <dje@canuck.cygnus.com> + + * config/tc-sparc.c (parse_keyword_arg, parse_const_expr_arg): New fns. + (sparc_ip): Call them for asi, membar, and prefetch parsing. + +Tue Aug 29 15:45:37 1995 Doug Evans <dje@canuck.cygnus.com> + + * config/tc-sparc.c (membar_masks): Deleted. + (sparc_ip): Clean up ASI and membar support. + +Tue Aug 29 13:20:27 1995 steve chamberlain <sac@slash.cygnus.com> + + * read.c (potable): Rva is new entry. + (cons_worker): New, split from cons. Handles rva. + (cons, s_rva): Call cons_worker. + * read.h (s_rva): New declaration. + * write.c (fixup_segment): Don't throw away rva relocs. + * config/tc-arm.c (md_apply_fix, tc_gen_reloc): Handle RVA. + * config/tc-i386.c (tc_coff_fix2type): Handle RVA. + * config/tc-i386.h (TC_COUNT_RELOC): Remember RVAs. + (TC_RVA_RELOC): New definition. + +Sun Aug 27 17:41:05 1995 Doug Evans <dje@canuck.cygnus.com> + + * config/tc-arm.c (do_swi): Allow optional leading '#'. + +Sat Aug 26 17:24:20 1995 Ian Lance Taylor (ian@cygnus.com) + + * config/tc-m68k.c (comment_chars): If TE_DELTA is defined, + include '#'. + * config/tc-m68k.h (NO_PSEUDO_DOT): Define if TE_DELTA is + defined. + + * config/te-delta.h: Include obj-format.h. + * config/te-sco386.h: Likewise. + * config/te-sysv32.h: Likewise. + + * app.c (scrub_file): Remove. + (scrub_from_file, scrub_to_file): Remove. + (scrub_string, scrub_last_string): Remove. + (scrub_from_string, scrub_to_string): Remove. + (saved_input, saved_input_len): New static variables. + (struct app_saved): Remove scrub_string, scrub_last_string, and + scrub_file fields. Add saved_input and saved_input_len fields. + (app_push): Adjust saved fields for changes in struct app_save. + Initialize state and saved_input. + (app_pop): Adjust saved fields for changes in struct app_save. + (do_scrub_chars): Rename from do_scrub_next_char and rewrite to + process a buffer at a time rather than a character at a time. + (main, as_warn): Remove obsolete testing code. + * as.h (do_scrub_next_char): Don't declare. + (do_scrub_chars): Declare. + (scrub_from_file, scrub_from_string): Don't declare. + (scrub_to_file, scrub_to_string): Don't declare. + * input-file.c (input_file_get): New static function. + (input_file_give_next_buffer): Call do_scrub_chars rather than + do_scrub_next_char. + * read.c (scrub_string, scrub_string_end): New static variables. + (scrub_from_string): New static function. + (read_a_source_file): Call do_scrub_chars rather than + do_scrub_next_char. + +Thu Aug 24 18:50:19 1995 Ian Lance Taylor (ian@cygnus.com) + + * gasp.c (as_abort): New function. + * sb.c (sb_build): Revert yesterday's patch. + + * Makefile.in (gasp.new): Depend upon ../libiberty/libiberty.a. + Just link against libiberty, not against $(LIBS). + +Wed Aug 23 15:18:20 1995 Ian Lance Taylor (ian@cygnus.com) + + * sb.c (sb_build): Undefine abort before calling it, since gasp + does not provide as_abort. + +Wed Aug 23 10:40:41 1995 Michael Meissner <meissner@tiktok.cygnus.com> + + * config/tc-ppc.c (set_target_endian): New static to say whether + we've initialized target_big_endian or not. + (md_parse_option): Set set_target_endian if we set the variable + target_big_endian. + (md_begin): Only set target_big_endian if !set_target_endian. + +Tue Aug 22 03:00:33 1995 Ken Raeburn <raeburn@kr-laptop.cygnus.com> + + Sat Aug 19 18:08:16 1995 Pat Rankin <rankin@eql.caltech.edu> + + * config/obj-vms.h (DST_S_C_SRC_SETREC_W, DST_S_C_SRC_DEFLINES_B): + New macros. + * config/obj-vms.c (VMS_TBT_Line_PC_Correlation, + VMS_TBT_Source_Lines): Make traceback info be robust enough to + handle huge source files. + (VMS_TBT_Source_File): Reorganize the native- vs cross-assembly + support so that actual object file output is clearer. + (VMS_TBT_Source_File: Fab, Nam, Date_Xab, File_Header_Xab): + Replace static variables with automatic ones. + + Sat Aug 12 20:18:15 1995 Pat Rankin <rankin@eql.caltech.edu> + + * config/obj-vms.c (Module_Name): new file scope variable. + (VMS_TBT_Module_Begin): use it instead of local variable. + (Write_VMS_MHD_Records): ditto; assign its value here. + (Write_VMS_EOM_Record): second argument has type valueT. + (VMS_Initialized_Data_Size): simplify search loop; return + type is offsetT; second argument is unsigned. + + Sat Jun 17 19:05:25 1995 Pat Rankin (rankin@eql.caltech.edu) + + * messages.c (as_perror): Use xstrerror instead of strerror. + +Mon Aug 21 13:57:20 1995 Ian Lance Taylor <ian@cygnus.com> + + * as.c (parse_args): Accept --defsym SYM=VALUE. + * doc/as.texinfo, doc/as.1: Document --defsym. + + * read.c (read_a_source_file): In MRI mode, don't end the + statement inside a quotation. + (s_space): Don't warn about a zero repeat count in MRI mode. + * config/tc-m68k.c (crack_operand): In MRI mode, don't count + parentheses inside quotes. + (md_assemble): In MRI mode, anything after the operands field is a + comment. + (parse_mri_control_operand): Adjust start and stop to remove + spaces. + (s_mri_for): Likewise. + + * cond.c (s_ifdef): Restore the character after the symbol name, + in case it is a newline. + (s_if): If ignoring the current tree, don't try to parse the + expression. + + * app.c (do_scrub_next_char): If LEX_IS_STRINGQUOTE or + LEX_IS_ONECHAR_QUOTE is seen in state 10, preserve one space. + + * doc/as.texinfo: Document irp, irpc, macro, and rept. MRI mode + now supports macros, ifc, ifnc, irp, irpc, rept, and endr, without + using gasp. + + Add support for macros. + * as.c: Include sb.h and macro.h. + (max_macro_next): New global variable. + (main): Call macro_init. + (macro_expr): New static function. + * as.h (max_macro_nest): Declare. + * read.c (line_label): Rename from mri_line_label. Change all + uses. + (potable): Add exitm, irp, irpc, macro, mexit, rept. + (read_a_source_file): Always clear line_label at the start of a + line, not just when flag_mri or LABELS_WITHOUT_COLONS. Fix + MRI/LABELS_WITHOUT_COLONS handling. In MRI mode, permit label: + equ val. Set line_label when calling colon. In MRI mode, a + leading '.' does not imply a pseudo-op. Check for macro expansion + before calling md_assemble. + (s_irp): New function. + (get_line_sb): New static function. + (s_macro): New function. + (s_mexit): New function. + (s_rept): New function. + * read.h (line_label): Rename from mri_line_label. + (s_irp, s_rept): Declare. + (s_macro, s_mexit): Declare. + * input-scrub.c: Include sb.h. + (sb_index, from_sb): New static variables. + (macro_nest): New static variable. + (struct input_save): Add sb_index and from_sb fields. Change + next_saved_file field to be struct input_save *. + (next_saved_file): Changed to be struct input_save *. + (input_scrub_push): Change to return type struct input_save *. + Save sb_index and from_sb. + (input_scrub_pop): Change parameter type to struct input_save *. + Restore sb_index and from_sb. + (input_scrub_include_sb): New function. + (input_scrub_next_buffer): Handle reading from from_sb. + (bump_line_counters): Only increment lines if not using from_sb. + * config/tc-m68k.c (opt_table): Add nest. + (opt_nest): New static function. + * gasp.c: Include sb.h and macro.h. Move all sb related functions + and definitions to sb.h and sb.c. Move all macro related + functions and definitions to macro.h and macro.c. + * sb.h, sb.c: New files, extracted from gasp.c. + * macro.h, macro.c: Likewise. + * Makefile.in (OBJS): Add sb.o and macro.o + (GASPOBJS): Define. + (gasp.new): Depend upon $(GASPOBJS). Use $(GASPOBJS) to link. + (TARG_CPU_DEP_m68k): Depend upon subsegs.h. + (gasp.o): Depend upon sb.h and macro.h. + (sb.o): New target. + (macro.o): New target. + (as.o): Depend upon sb.h and macro.h. + (input-scrub.o): Depend upon sb.h. + (read.o): Depend upon sb.h and macro.h. + + * cond.c (get_mri_string): New static function. + (s_ifc): New function. + * read.c (potable): Add ifc and ifnc. + * read.h (s_ifc): Declare. + + * app.c (do_scrub_begin): In MRI mode, set lex of ' to + LEX_IS_STRINGQUOTE. + +Mon Aug 21 13:41:33 1995 Michael Meissner <meissner@cygnus.com> + + * config/tc-ppc.c (md_assemble): Allow @HA, @L, and @H suffixes on + constant expressions. + +Sun Aug 20 15:54:37 1995 Jim Wilson <wilson@cygnus.com> + + * config/tc-arm.c (md_reloc_size): Add const to declaration. + +Fri Aug 18 10:58:09 1995 Ian Lance Taylor <ian@cygnus.com> + + * read.c (s_include): In MRI mode, don't expect quotes around the + file name. + * listing.c (listing_title): Don't require the title to be quoted. + + * gasp.c (include_print_where_line): Always subtract 1 from + linecount before printing it. + (process_file): In MRI mode, lines beginning with '*' or '!' are + comments. + (do_reg): In MRI mode, don't require parentheses. + (do_include): In MRI mode, don't requires quotes. If the file can + not be found in the include path, try opening it in the current + directory. Print the file name correctly in the error message. + (chartype_init): In MRI mode, set FIRSTBIT for '.'. + (main): Set comment_char to ';' when entering MRI mode. + + * config/tc-m68k.c: Include subsegs.h. + (m68k_ip): Pass 64 rather than -1 to add_Fix in 'B' 'B' case. + (md_pcrel_from): If fx_pcrel_adjust is 64, use -1 instead. + + * config/tc-sparc.h (tc_fix_adjustable): For OBJ_AOUT case, adjust + BFD_RELOC_16 and BFD_RELOC_32 relocs. + +Wed Aug 16 14:48:44 1995 Ken Raeburn <raeburn@kr-laptop.cygnus.com> + + * as.h (alloca): Use void* declaration on HP/UX. + +Wed Aug 16 12:49:17 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-sparc.c (tc_gen_reloc): If PIC, only change PCREL_S2 + to WPLT30 for an undefined or external symbol. Don't consider + PC10 or PC22 to be a PC relative reloc when choosing between + fx_addnumber and fx_offset. + + * config/tc-z8k.c (md_number_to_chars): Don't do it here, call + number_to_chars_bigendian. + * config/tc-z8k.h (TARGET_BYTES_BIG_ENDIAN): Define. + + * expr.c (operand): Add support for .startof. and .sizeof. by + using magic symbol names which the linker will recognize + specially. + * doc/as.texinfo: Take out note that .startof. and .sizeof. are + not supported. + +Tue Aug 15 15:08:49 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-m68k.c (md_pseudo_table): Add MRI structured control + directives: if, if.b, if.w, if.l, else, else.s, else.l, endi, + break, break.s, break.l, next, next.s, next.l, for, for.b, for.w, + for.l, endf, repeat, until, until.b, until.w, until.l, while, + while.b, while.w, while.l, endw. + (enum mri_control_type): Define. + (struct mri_control_info): Define. + (mri_control_stack): New static variable. + (mri_control_index): New static variable. + (mri_control_label): New static function. + (push_mri_control, pop_mri_control): New static functions. + (parse_mri_condition): New static function. + (parse_mri_control_operand): New static function. + (swap_mri_condition, reverse_mri_condition): New static functions. + (build_mri_control_operand): New static function. + (parse_mri_control_expression): New static function. + (s_mri_if, s_mri_else, s_mri_endi): New static functions. + (s_mri_break, s_mri_next): New static functions. + (s_mri_for, s_mri_endf): New static functions. + (s_mri_repeat, s_mri_until): New static functions. + (s_mri_while, s_mri_endw): New static functions. + * gasp.c (mrikinfo): Remove IF. + * expr.c (get_symbol_end): Accept \001 as part of a name. + + * symbols.c (colon): Change parameter to const char *. + * symbols.h (colon): Update declaration. + +Mon Aug 14 20:51:56 1995 Ken Raeburn <raeburn@kr-laptop.cygnus.com> + + * write.c (write_contents): Always do it the BFD_FAST_SECTION_FILL + way. Reformat and reindent that code to GNU standards. + (BFD_FAST_SECTION_FILL): Don't define. + +Mon Aug 14 14:08:07 1995 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (md_apply_fix): Don't try to apply BEGIN_BRTAB + or END_BRTAB fixups. + +Mon Aug 14 15:45:07 1995 Ian Lance Taylor <ian@cygnus.com> + + * gasp.c (do_align, get_any_string): Mark as static. + (do_assigna, do_assignc, new_file): Likewise. + + * config/tc-m68k.c (s_reg): Rename local op to rop to avoid + confusion with macro op. + + * gasp.c (strip_comments): Comment out; it's not used. + (do_end): Add parameter. In MRI mode, print it out. + (do_irp): New static function. + (sub_actual): Change parameter m to formal_hash, changing type + from macro_entryh * to hash_table *. + (macro_expand_body): New static function, broken out of + macro_expand. + (macro_expand): Call macro_expand_body. + (K_*): Fully parenthesize. + (K_IRP, K_IRPC): Define. + (mrikinfo): Add IRP and IRPC. + (process_pseudo_op): In MRI mode, print out END pseudo-op. Pass + line to do_end. Handle K_IRP and K_IRPC. + + * config/tc-m68k.c (s_opt): Reset *input_line_pointer even if we + don't do anything with the option. + +Sun Aug 13 17:03:58 1995 Ian Lance Taylor <ian@cygnus.com> + + * frags.c (frag_align): Handle absolute_section. + * write.c (record_alignment): Likewise. + + * config/tc-mips.c (macro_build): Skip insns with an inappropriate + ISA level. + +Sun Aug 13 00:35:02 1995 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (md_pseudo_table): Add entries for + "begin_brtab" and "end_brtab" pseudo-ops. + (pa_brtab): New function. + (tc_gen_reloc, SOM version): Handle R_BEGIN_BRTAB and R_END_BRTAB. + (hppa_force_relocation): Force relocations for BRTAB fixups + when OBJ_SOM is defined. + +Fri Aug 11 20:34:05 1995 Ken Raeburn <raeburn@kr-laptop.cygnus.com> + + * Makefile.in (TE_OBJS): Add empty definition. + +Fri Aug 11 19:16:08 1995 Ian Lance Taylor <ian@cygnus.com> + + * gasp.c (change_base): Don't treat ' specially in MRI mode. + (process_file): Don't warn about missing END in MRI mode. + (do_if): New static function. + (get_mri_string, do_ifc): New static functions. + (buffer_and_nest): Treat MRI mode like alternate syntax mode. + (do_aendr): Change error message in MRI mode. + (do_arepeat): Use REPT/ENDR in MRI mode. + (do_formals): In MRI mode, add special NARG formal. + (macro_expand): Various changes for MRI mode: permit a qualifier + on the macro name; set special NARG formal; permit unnamed + positional arguments; use && to concatenate named parameters; + permit \d to specify an unnamed parameter; permit named parameters + to not start with \; use == to see if a parameter exists. + (getstring): In MRI mode, allow <> to quote a string. + (K_IFEQ, K_IFNE, K_IFLT, K_IFLE, K_IFGE, K_IFGT): Define. + (K_IFC, K_IFNC): Define. + (struct keyword): Name structure used in kinfo array. + (mrikinfo): New static array. + (process_pseudo_op): Don't require leading '.' in MRI mode. + Handle new MRI pseudo-op definitions. + (add_keyword): New static function, broken out of process_init. + (process_init): Use add_keyword. In MRI mode, add mrikinfo table. + (long_options): Add "mri". + (show_usage): Mention -M/--mri. + (main): Call process_init after processing arguments. Handle -M. + * doc/gasp.texi: Document -M/--mri. + + * gasp.c: Include ansidecl.h. Make all local functions static. + Add prototypes for all static functions. + (mri): New global variable. + (sb_add_char): Change parameter c from char to int. + (sb_add_string): Make parameter s into a const pointer. + (sb_add_buffer): Likewise. + (checkconst): Change parameter op from char to int. + (exp_get_abs): Make parameter emsg into a const pointer. + (do_res): Change parameter type from char to int. + (buffer_and_nest): Make parameters from and to into const + pointers. + (do_sdata): Change parameter type from char to int. + (new_file): Make parameter name into a const pointer. + (do_define): Make parameter string into a const pointer. + + * config/tc-h8300.c (md_number_to_chars): Don't do it here, call + number_to_chars_bigendian. + * config/tc-h8300.h (TARGET_BYTES_BIG_ENDIAN): Define. + +Fri Aug 11 13:23:56 1995 Michael Meissner <meissner@cygnus.com> + + * write.h (struct fix): Add new field fx_no_overflow. + + * write.c (fixup_segment): If fx_no_overflow is non-zero, don't + complain if the addend is too large. + + * config/tc-ppc.c (md_assemble): Set fx_no_overflow if the half + word relocations BFD_RELOC_{LO16,HI16,HI16_S}. + +Thu Aug 10 20:56:38 1995 Ken Raeburn <raeburn@cygnus.com> + + * read.c (s_mri_sect) [BFD_ASSEMBLER]: Fix typos in choosing and + setting section flags. + +Thu Aug 10 00:38:11 1995 Ian Lance Taylor <ian@cygnus.com> + + * doc/as.texinfo: Add documentation for MRI compatibility mode. + * doc/as.1: Likewise. + + * config/tc-m68k.c (m68k_ip): When recognizing '#', use isbyte and + iword rather than expr8 and expr16. When recognizing 'M', use + issbyte rather than expr8. When recognizing 'Q' and 't', just + check for O_constant rather than using expr8. + * config/m68k-parse.h (expr8, expr16): Don't define. + * Makefile.in (m68k-parse.o): Depend upon m68k-parse.h, not + m68k-parse.y. + + * read.c (potable): Add spc, ttl, xcom, xref. + (s_mri_sect): New function. + * read.h (s_mri_sect): Declare. + * config/obj-coff.c (obj_coff_section) (both versions): In MRI + mode, call s_mri_sect. + (obj_pseudo_table): Add sect.s and section.s. Move sect outside + of ifndef BFD_ASSEMBLER. + * config/obj-elf.c (elf_pseudo_table): Add section.s, sect, + sect.s. + (obj_elf_section): In MRI mode, call s_mri_sect. + * config/tc-m68k.c (md_pseudo_table): Add restore, save. + (struct save_opts): Define. + (save_stack): New static variable. + (s_save, s_restore): New static functions. + + * read.c (s_set): Remove unused local ptr. + (hex_float): Check target_big_endian. + (equals): Remove unused local p. + + * config/tc-a29k.h (TARGET_BYTES_BIG_ENDIAN): Define. + * config/tc-h8500.h (TARGET_BYTES_BIG_ENDIAN): Define. + * config/tc-hppa.h (TARGET_BYTES_BIG_ENDIAN): Define. + * config/tc-i860.h (TARGET_BYTES_BIG_ENDIAN): Define. + * config/tc-m68k.h (TARGET_BYTES_BIG_ENDIAN): Define. + * config/tc-m88k.h (TARGET_BYTES_BIG_ENDIAN): Define. + * config/tc-tahoe.h (TARGET_BYTES_BIG_ENDIAN): Define. + * config/tc-sh.c (little): Set target_big_endian. + (md_begin): Likewise. + (md_parse_option): Likewise. + (build_relax): Check target_big_endian rather than shl. + (build_Mytes, md_atof): Likewise. + (md_convert_frag, md_apply_fix): Likewise. + (md_number_to_chars): Likewise. + +Wed Aug 9 10:51:48 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-m68k.c (m68k_abspcadd): New static variable. + (m68k_quick): New static variable. + (m68k_rel32): New static variable. + (md_pseudo_table): Add opt and reg. + (m68k_ip): Permit absolute symbols in 'l'/'L' recognition. Check + m68k_quick in 'M' and 'Q' recognition. Check m68k_abspcadd in + DISP handling. Check m68k_rel32 in BASE/POST/PRE handling. + (md_begin): In MRI mode, initialize m68k_abspcadd and m68k_rel32. + In MRI mode, change unsized branch aliases to be variable sized. + (struct opt_action): Define. + (opt_table): Define. + (s_opt): New static function. + (skip_to_comma): New static function. + (opt_chip): New static function. + (opt_list): New static function. + (opt_list_symbols): New static function. + (s_reg): New static function. + * as.h (flag_keep_locals): Change from unsigned char to int. + (flag_no_warnings): Likewise. + + * read.c (mri_line_label): Make non-static. + (potable): Add nopage, page, plen. + (s_org): Error if in MRI mode. + * read.h (mri_line_label): Declare. + * listing.c (listing_nopage): New function. + * listing.h (listing_nopage): Declare. + + * symbols.c (symbol_begin): Set sy_frag of abs_symbol to + &zero_address_frag. + + * write.c (adjust_reloc_syms): Check that symbol is not NULL + before checking sy_mri_common. + (fixup_segment): Likewise. + * config/obj-coff.c (fixup_segment): Likewise. + + * read.c (abs_section_offset): New global variable. + (potable): Add offset, struct. + (do_org): New static function; handle changing the origin in the + absolute section. + (s_org): Use do_org. + (s_set): Likewise. + (equals): Likewise. + (s_space): In absolute_section, just increase abs_section_offset. + (s_struct): New function. + (emit_expr): Handle absolute_section specially. + * read.h (abs_section_offset): Declare. + (s_struct): Declare. + * frags.c (frag_more): Warn if in absolute_section. + (frag_now_fix): In absolute_section, return abs_section_offset. + * subsegs.c (subseg_change): If switching to absolute_section, + just set now_seg and now_subseg. + (subseg_set_rest): Special handling when switching to or from + absolute_section. + + * config/tc-m68k.c (m68k_float_copnum): New static variable. + (md_pseudo_table): Add fopt and mask2. + (m68k_ip): Use m68k_float_copnum, not COPNUM, when setting + coprocessor register to use. In case 'I' when checking operands, + correct coprocessor register numbers. In case 'I' when setting + operands, don't add 1. + (s_fopt): New static function. + * config/m68k-parse.h (COPNUM): Don't define. + + * read.c (potable): Add ifeq, ifge, ifgt, ifle, iflt, ifne. + Change if to pass O_ne to s_if. + (read_a_source_file): Don't define an label without a colon if + ignore_input returns true. + * cond.c (s_if): Treat argument as an operatorT describing how to + compare the argument against zero. + (ignore_input): Don't require an initial dot in MRI mode, or if + NO_PSEUDO_DOT is defined. + + * read.c (potable): Add dcb, dcb.b, dcb.d, dcb.l, dcb.s, dcb.w, + dcb.x, ds.d, ds.p, ds.s, ds.x, elsec, endc, fail, format, llen, + noformat. + (read_a_source_file): If pseudo-op handler is s_end, quit + immediately. + (s_end): New function. + (s_fail): New function. + (s_float_space): New function. + (hex_float): New static function. + (float_cons): Use hex_float. + * read.h (s_fail): Declare. + (s_float_space): Declare. + * cond.c (s_end): Remove. + * listing.c (listing_psize): Treat argument as indicating whether + a height is expected. + + * read.c (mri_pending_align): New static variable. + (read_a_source_file): Handle mri_pending_align. + (cons): Set mri_pending_align if appropriate. + + * configure.in: Move random special target handling before + possible break. + * configure: Rebuild. + +Tue Aug 8 23:41:25 1995 Alan Modra <alan@spri.levels.unisa.edu.au> + + * configure.in: Consistently use ${target_cpu_type} rather than + ${cpu_type} after the loop. + * configure: Rebuild. + * Makefile.in (targ-cpu.o): Use @target_cpu_type@ rather than + @cpu_type@. + +Tue Aug 8 17:27:17 1995 Ken Raeburn <raeburn@cygnus.com> + + * expr.h (operatorT): Remove comma after last enumerator value. + + * config/obj-vms.c: Some whitespace cleanup from Pat Rankin. + + * as.h (alloca): If __STDC__, declare void* instead of char*. + + Wed Aug 2 18:54:37 1995 Pat Rankin <rankin@eql.caltech.edu> + + * config/obj-vms.c (Flush_VMS_Object_Record_Buffer, + Close_VMS_Object_File): Reorganize the `#if !VMS' cross-assmebler + support code. + (Close_VMS_Object_File): Call Set_VMS_Object_File_Record to flush + output buffer--just in case--before closing the file. + +Tue Aug 8 13:07:05 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-m68k.c (archs): Add 68ec000, 68hc000, 68hc001, + 68ec020, 68ec030, 68ec040, and 68330. + (md_pseudo_table): Add chip and comline. + (m68k_init_after_args): Use strcasecmp when comparing default_cpu + against architectures. + (mri_chip, s_chip): New static functions. + + * struc-symbol.h (struct symbol): Add sy_mri_common bit. + * read.h (mri_comon_symbol): Declare. + (s_mri_common): Declare. + * read.c (mri_line_label): New static variable. + (mri_common_symbol): New global variable. + (potable): Add "common" and "common.s". + (read_a_source_file): In MRI mode, set mri_line_label for a label + at the start of a line. + (s_mri_common): New function. + (s_space): Handle mri_common_symbol. + * symbols.c (colon): Change return value from void to symbolS *, + and return new symbol. If mri_common_symbol is set, attach the + new symbol to it. + (resolve_symbol_value): Handle an sy_mri_common symbol. + * symbols.h (colon): Change return value in declaration. + * subsegs.c (subseg_set_rest): Clear mri_common_symbol. + (subseg_set (both versions)): Likewise. + * frags.c (frag_more): Warn if mri_common_symbol is not NULL. + * write.c (adjust_reloc_syms): Skip sy_mri_common symbols. + (write_object_file): Discard sy_mri_common symbols. + (fixup_segment): Change relocations against sy_mri_common symbols + to be against the common symbol itself. + * config/obj-coff.c (yank_symbols): Discard sy_mri_common symbols. + (fixup_segment): Change relocations against sy_mri_common symbols + to be against the common symbol itself. + * config/obj-aout.c (obj_crawl_symbol_chain): Discard + sy_mri_common symbols. + + * doc/c-m68k.texi: Add documentation for CPU specific options, and + for Motorola syntax. + + * config/m68k-parse.y (motorola_operand): For (%pc), set mode to + DISP, not BASE. + +Tue Aug 8 02:31:38 1995 Ken Raeburn <raeburn@cygnus.com> + + * write.c (relax_align): Add extra padding for linkrelax only if + LINKER_RELAXING_SHRINKS_ONLY is defined. + * config/tc-i960.h (LINKER_RELAXING_SHRINKS_ONLY): Define it. + * doc/internals.texi (Relaxation): Write up some stuff on linker + relaxing and LINKER_RELAXING_SHRINKS_ONLY. + +Mon Aug 7 17:18:10 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/m68k-parse.y: New file: bison grammar for m68k operands, + including support for Motorola syntax. + * config/m68k-parse.h: New file; definitions shared between + m68k-parse.y and tc-m68k.c. + * config/tc-m68k.c: Include m68k-parse.h. + (enum operand_type): Move to m68k-parse.h, where it is named + m68k_operand_type. Rename all uses. Rearrange somewhat. Add + FPREG. Rename AOFF to DISP. Rename AINDX to BASE. Rename APODX + to POST. Rename APRDX to PRE. Remove AMIND. Rename MSCR to + CONTROL. Remove DINDR. + (struct m68k_exp): Move to m68k-parse.h. Remove e_beg, e_end and + e_seg fields. Rename e_exp to exp. Rename e_siz to size, and + change type to enum m68k_size. Change all uses. + (enum _register): Move to m68k-parse.h, where it is named + m68k_register. Rename all uses. Add ZDATA0-7 and ZADDR0-7. + (struct m68k_op): Move to m68k-parse.h. Change all fields. + (seg): Don't define. + (add_exp): Remove. + (FAIL, OK): Remove. + (m68k_reg_parse): Move to m68k-parse.y, and rewrite. + (SKIP_WHITE, SKIP_W): Remove. + (try_moto_index, try_index): Remove. + (m68k_ip_op): Move to m68k-parse.y, and rewrite to use grammar. + (main): Remove obsolete test function. + (m68k_ip): Extensive changes to use new grammar. + (get_regs): Remove. + (crack_operand): m68k_ip_op now returns 0 on success. + (init_table): Add ssp, zd0-7 and za0-7. + (md_assemble): Make er const. Correct loop over operands when + looking for error message. + (md_begin): Set alt_notend_table for '(' and '@'. + (get_num): Expression is already parsed. Don't set seg. + * configure.in: If cpu_type is m68k, put m68k-parse.o in + extra-objects. + * configure: Rebuild. + * Makefile.in (DISTSTUFF): Add m68k-parse.c. + (BISON): Use ../bison/bison if it exists. + (BISONFLAGS): Define as empty. + (TARG_CPU_DEP_m68k): Depend upon $(srcdir)/config/m68k-parse.h. + (m68k-parse.c, m68k-parse.o): New targets. + +Mon Aug 7 02:54:20 1995 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-sh.c (parse_reg): Handle new FP registers. + (get_specific): Handle new operand types. + +Fri Aug 4 12:29:21 1995 Ian Lance Taylor <ian@cygnus.com> + + * expr.c (op_encoding): Make non-const. Don't set '"' to + O_bit_not. + (expr_begin): Set op_encoding['"'] in MRI mode. + +Wed Aug 2 18:39:43 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-m68k.c: Remove BREAK_UP_BIG_DECL stuff. + (struct m68k_incant): Change m_operands field to be const. + (struct m68k_it): Change args field to be const. + (m68k_ip): Change local variable s to be const. + (opcode_ptr): Remove. + (md_begin): Use m68k_numopcodes, not numopcodes. Use + m68k_opcodes, not removed opcode_ptr. Use m68k_numaliases, not + numaliases. + +Tue Aug 1 17:35:26 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-m68k.c (init_table): Add "control", "status", "iaddr", + "sfcr", and "dfcr" as synonyms for existing entries. + (md_begin): In MRI mode, force flag_reg_prefix_optional to 1. + (md_parse_option): Removed unused locals i and arch. Change type + of arch (another one) to unsigned long. + (tc_coff_sizemachdep): Add return after abort to avoid warning. + + Initial support for MRI style labels and expressions. + * as.h (flag_mri): Declare/define. + * as.c (show_usage): Mention -M and its synonym --mri. + (parse_args): Add 'M' to std_shortopts. Add "mri" to + std_longopts. Set flag_mri if -M is seen. + (main): Call parse_args before input_scrub_begin. Call + expr_begin. + * app.c (do_scrub_begin): Don't set lex for '"' or '\'' in MRI + mode. Do set lex for ';', '*', and '!' in MRI mode. + (do_scrub_next_char): Remove MRI ifdef in LEX_IS_WHITESPACE case. + In MRI mode, keep spaces between labels and colons. Remove MRI + ifndef around LEX_IS_ONECHAR_QUOTE case. In MRI mode, don't use + '!' or '*' as comment characters even if they are in + comment_chars. + * read.h (lex_type): No longer const. + * read.c: Include libiberty.h. + (lex_type): No longer const. + (read_begin): In MRI mode, set lex_type of '?' to 3. + (potable): Add dc, dc.b, dc.d, dc.l, dc.s, dc.w, dc.x, ds, ds.b, + ds.l, ds.w, and xdef. + (read_a_source_file): Change LABELS_WITHOUT_COLON ifdef to check + for MRI mode at runtime rather than compile time. Handle the EQU + pseudo-op in MRI mode. Remove bogus MRI ifdef around done_pseudo. + Change NO_PSEUDO_DOT ifdef to also take effect for MRI mode at + runtime. + (cons): In MRI mode, always call parse_mri_cons rather than + TC_PARSE_CONS_EXPRESSION. + (parse_mri_cons): Always compile, not just when MRI is defined. + Call TC_PARSE_CONS_EXPRESSION, not expression, when the input is + not a string constant. Handle A and E modifiers. + (float_cons): Accept :xxxx, where the x's are hex digits. + * expr.h (operatorT): Add O_eq, O_ne, O_lt, O_le, O_ge, O_gt. + (expr_begin): Declare. + * expr.c (integer_constant): In MRI mode, if the base was not + specified, look for a suffix on the number to set the base. + (mri_char_constant): New static function. + (operand): Remove MRI ifdef. In MRI mode, do various things: Pass + 0 as the base when calling integer_constant if there was no + prefix. Check for a hex constant suffix if when a leading '0' is + seen. Don't accept 0x or 0b as a prefix. Check for E'chars' and + A'chars'. Handle MRI character constants. Treat '"' as the + unary bitwise not operator. Treat $ as the program counter, or as + the prefix for a hex constant. Treat % as the prefix for a binary + constant and @ as the prefix for an octal constant. Treat : as + the prefix for a hex constant. + (op_encoding): Set '"' to O_bit_not, '<' to O_lt, and '>' to O_gt. + (op_rank): No longer const. Change rank values. + (expr_begin): New function. + (operator): New static function. + (expr): Use operator. Don't bother to mention the operator in + warnings. Remove bogus #if 0 code. Handle new operatorT values. + * atof-generic.c (atof_generic): In MRI mode, accept underscores + around the exponent in floating point numbers. + * symbols.h (symbols_case_sensitive): Declare. + * symbols.c (symbols_case_sensitive): New global variable. + (symbol_create): Check symbols_case_sensitive. + (symbol_find_base): Likewise. + (resolve_symbol_value): Handle new operatorT values. + (print_expr_1): Likewise. + (S_IS_LOCAL): In MRI mode, names beginning with two '?' characters + are local. + +Tue Aug 1 11:35:18 1995 steve chamberlain <sac@slash.cygnus.com> + + * tc-sh.c (md_convert_frag): Make some error messages more + explict. + +Mon Jul 31 21:40:47 1995 Ken Raeburn <raeburn@cygnus.com> + + Sat Jul 29 18:55:23 1995 Pat Rankin <rankin@eql.caltech.edu> + + * config/obj-vms.c (COPY_SHORT, COPY_LONG, PUT_SHORT, PUT_LONG): + Make expansion be safe for use in expressions. + (PUT_COUNTED_STRING): Bracket expansion with `do {...} while (0)' + rather than just `{...}'. + +Mon Jul 31 18:19:26 1995 steve chamberlain <sac@slash.cygnus.com> + + * gasp.c (main): Parse -I option. + (do_include): Look through include list. + * gasp.c (change_base): Don't modify numbers in strings. + +Mon Jul 31 12:16:21 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-ppc.h (SUB_SEGMENT_ALIGN): Define. From Niclas + Andersson <nican@ida.liu.se>. + +Thu Jul 27 20:47:12 1995 Ken Raeburn <raeburn@cygnus.com> + + * config/obj-coff.c (fixup_segment): Don't do further pcrel + processing after converting difference of two symbols in the + same segment. From Jim Wilson. + + * configure.in (i386-*-linuxoldld): Add as synonym for + i386-*-linux*aout*. From Fred Fish. + * configure: Regenerated. + +Thu Jul 27 16:14:56 1995 Pat Rankin <rankin@eql.caltech.edu> + + * config/obj-vms.c (enum ps_type {ps_TEXT,ps_DATA,ps_COMMON, + ps_CONST}): New constants. + (VMS_Psect_Spec): Use them instead of literal strings. + (vms_write_object_file, global_symbol_directory): Adjust callers. + +Wed Jul 26 18:31:35 1995 Pat Rankin <rankin@eql.caltech.edu> + + * config/obj-vms.c (const_flag): Change from char to unsigned char. + * config/obj-vms.h (const_flag): Ditto. + (struct nlist): Replace union n_un and n_un.{n_name,n_next,n_strx} + fields with just n_name; delete field n_value; change n_other from + char to unsigned char and n_desc from short to int; insert explicit + padding for alignment. + +Mon Jul 24 20:06:17 1995 Ken Raeburn <raeburn@cygnus.com> + + * subsegs.h (struct seg_info_trash): Make bitfield types valid. + + * config/obj-coff.c (fixup_segment): Local add_number should not + be declared register since its address is taken for + MD_APPLY_FIX3. + + Fri Jul 21 15:28:18 1995 Pat Rankin <rankin@eql.caltech.edu> + + Split huge vms_write_object_file routine into managable pieces. + + * config/obj-vms.c (vms_fixup_text_section, synthesize_data_segment, + vms_fixup_data_section, global_symbol_directory, local_symbols_DST, + vms_build_DST): New routines. + (vms_write_object_file): Call them. + (struct vms_obj_state): New file scope variable used by the above. + +Mon Jul 24 14:10:24 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-sh.c (md_pseudo_table): Add "uses". + (s_uses): New static function. + (sh_coff_frob_file): New function. + (md_convert_frag): Call subseg_change before calling fix_new. + (sh_handle_align): New function. + (SWITCH_TABLE): Define. + (sh_force_relocation): New function. + (md_apply_fix): Handle R_SH_USES, R_SH_COUNT and R_SH_ALIGN. + (sh_coff_reloc_mangle): Likewise. Also handle switch table + entries. + * config/tc-sh.h (HANDLE_ALIGN): Define. + (sh_handle_align): Declare. + (TC_FORCE_RELOCATION): Define. + (sh_force_relocation): Declare. + (TC_COUNT_RELOC): Simplify; rely on TC_FORCE_RELOCATION instead. + (tc_frob_file): Define. + (sh_coff_frob_file): Declare. + * config/obj-coff.c (write_object_file): Call tc_frob_file if it + is defined. + (fixup_mdeps): Call HANDLE_ALIGN if it is defined. + (TC_FORCE_RELOCATION): Define if not defined. + (fixup_segment): Use TC_FORCE_RELOCATION to decide whether to + clear the symbol fields of fixP. + +Fri Jul 21 22:38:00 1995 Michael Meissner <meissner@cygnus.com> + + * config/tc-ppc.c (ppc_elf_suffix): Add support for R_PPC_SDAREL + relocation. + (md_apply_fix3): Ditto. + +Thu Jul 20 13:00:56 1995 Ken Raeburn <raeburn@cygnus.com> + + * config/tc-m68k.c (md_convert_frag): Rename argument seg to sec, + since seg is a macro name in this file. + + * configure.in (arm-*-riscix*): Don't set emulation. + +Wed Jul 19 16:08:29 1995 Doug Evans <dje@canuck.cygnus.com> + + * config/obj-coff.h (TE_PE): Delete. + * config/tc-arm.h (BYTE_ORDER): Delete. + (TARGET_FORMAT): Provide value for OBJ_COFF and TE_PE. + (ARM_BI_ENDIAN): Define if OBJ_COFF and TE_PE. + * config/tc-arm.c (byte_order): Delete. + (md_number_to_chars): Reference target_big_endian, not byte_order. + (md_chars_to_number): Likewise. + (md_longopts): Add -EB/-EL if ARM_BI_ENDIAN. + (md_parse_options): Recognize -EB/-EL. + (md_show_usage): List -EB/-EL. + +Wed Jul 19 11:49:25 1995 Ian Lance Taylor <ian@cygnus.com> + + * gasp.c (process_assigns): Use toupper before comparing against + upper case letter. + (whatcond): Likewise. + + * config/tc-sh.c (sh_relax): Rename from relax, and make global. + Renamed all uses. + (insert): Pass a size of 2, not 4. + (build_relax): Remove unused len variable. + (md_show_usage): Mention -little option. + (md_convert_frag): Add segT argument. Rewrite to generate relocs + rather than to generate complete instructions here. + (md_apply_fix): Adjust and clarify R_SH_PCRELIMM8BY4 case for + changes in insert and md_pcrel_from. Add cases for R_SH_PCDISP + and R_SH_PCDISP8BY2. + (md_pcrel_from): Don't subtract 1, add 2. + (tc_coff_fix2rtype): Remove. + (sh_coff_reloc_mangle): New function. + * config/tc-sh.h (TC_COFF_FIX2RTYPE): Just return fx_r_type. + (sh_relax): Declare. + (TC_COUNT_RELOC): If relaxing, count PC relative relocs. + (TC_RELOC_MANGLE): Define. + (sh_coff_reloc_mangle): Declare. + (tc_coff_sizemachdep): Declare. + * tc.h (md_convert_frag): Add segT parameter to non BFD_ASSEMBLER + declaration. + * write.c (cvt_frag_to_fill): Add sec argument to non + BFD_ASSEMBLER version. Pass it to md_convert_frag. + (write_object_file): Pass SEG_TEXT to cvs_frag_to_fill. + * config/obj-coff.c (do_relocs_for): Pass segment info to + TC_RELOC_MANGLE. + (fixup_mdeps): Pass segment type to md_convert_frag. + * config/tc-a29k.c (md_convert_frag): Add segT argument. + * config/tc-h8300.c (md_convert_frag): Likewise. + * config/tc-h8500.c (md_convert_frag): Likewise. + * config/tc-i386.c (md_convert_frag): Likewise. + * config/tc-i860.c (md_convert_frag): Likewise. + * config/tc-i960.c (md_convert_frag): Likewise. + * config/tc-m68k.c (md_convert_frag): Likewise. + * config/tc-m88k.h (md_convert_frag): Likewise. + * config/tc-ns32k.c (md_convert_frag): Likewise. + * config/tc-tahoe.c (md_convert_frag): Likewise. + * config/tc-vax.c (md_convert_frag): Likewise. + * config/tc-w65.c (md_convert_frag): Likewise. + * config/tc-z8k.c (md_convert_frag): Likewise. + * config/tc-h8300.h (TC_RELOC_MANGLE): Add segment argument. + * config/tc-h8500.h (TC_RELOC_MANGLE): Likewise. + * config/tc-w65.h (TC_RELOC_MANGLE): Likewise. + * config/tc-z8k.h (TC_RELOC_MANGLE): Likewise. + +Mon Jul 17 15:02:54 1995 Pat Rankin <rankin@eql.caltech.edu> + + * config/obj-vms.c (Current_Routine, Text_Psect): Delete as file + scope variables. + (Define_Routine, Define_Local_Symbols): Take Current_Routine and + Text_Psect as arguments. + (VMS_DBG_Define_Routine): Delete. + (VMS_TBT_Block_End): Change `Size' argument from int to valueT. + (vms_write_object_file: text and data fixup loops): Difference + of two symbols has type offsetT rather than int; convert with + md_number_to_chars before passing to VMS_Store_Immediate_Data. + (vms_write_object_file: debug symbol loop): Call Define_Routine + instead of VMS_DBG_Define_Routine. + +Sat Jul 15 00:01:35 1995 Michael Meissner <meissner@cygnus.com> + + * config/tc-ppc.c (ppc_elf_suffix): Add @fixup so that the + compiler can mark which relocs not to complain about with + -mrelocatable. + (ppc_elf_validate_fix): Add .fixup to sections not to complain + about, and also don't complain for BFD_RELOC_CTOR relocations in + writable non-code segments. + (md_apply_fix): Treat BFD_RELOC_CTOR just like BFD_RELOC_32. + +Fri Jul 14 19:54:28 1995 Ian Lance Taylor <ian@cygnus.com> + + Add support for SPARC SunOS PIC: + * config/tc-sparc.h (sparc_pic_code): Always declare, not just + when OBJ_ELF. + (TC_RELOC_RTSYM_LOC_FIXUP): Define when OBJ_AOUT. + (tc_fix_adjustable): New definition for OBJ_AOUT. + * config/tc-sparc.c (sparc_pic_code): Always define, not just when + OBJ_ELF. + (md_apply_fix): Adjust reloc addend for OBJ_AOUT and PIC. In + BFD_RELOC_32_PCREL_S2 case, don't increment val for an external + symbol when PIC. + (tc_gen_reloc): Generate different PIC relocs when OBJ_AOUT, as + well as when OBJ_ELF. + (md_shortopts): If OBJ_AOUT, include `k'. + (md_parse_option): If OBJ_AOUT, handle 'k'. + (md_show_usage): Mention -k if OBJ_AOUT, and -KPIC if OBJ_ELF. + (md_pcrel_from): Don't add in size for an external symbol when + PIC. + +Thu Jul 13 21:16:43 1995 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-hppa.h (UNDEFINED_DIFFERENCE_OK): Define for SOM. + * write.c (adjust_reloc_syms): Set sy_used_in_reloc for both + symbols in a fixup where a defined symbol is subtracted from an + undefined symbol (when UNDEFINED_DIFFERENCE_OK is defined). + (fixup_segment): Do nothing for the difference of two symbols if + UNDEFINED_DIFFERENCE_OK is defined. + +Wed Jul 12 23:33:40 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/obj-coff.c (fixup_segment): Support MD_APPLY_FIX3. + +Wed Jul 12 01:12:12 1995 Ken Raeburn <raeburn@kr-pc.cygnus.com> + + * write.c (fix_new): Use int, not short int, for argument type. + (fix_new_exp): Ditto. + + * configure.in (arm-*-riscix*): Don't set emulations. + + * config/tc-mips.c (NO_ECOFF_DEBUGGING): Define if ECOFF_DEBUGGING + wasn't previously defined. + (s_extern): Don't set ecoff_extern_size if NO_ECOFF_DEBUGGING. + (nopic_need_relax): Don't check it if NO_ECOFF_DEBUGGING. + (macro_build) [!USE_STDARG]: Don't use variadic prototype. + (mips_local_label) [NO_ECOFF_DEBUGGING]: Don't preserve potential + ECOFF debugging symbols. + + * emul.h (struct emulation): Use unsigned, not unsigned char, for + bitfields. + * obj.h (struct format_ops): Likewise. + + * config/tc-arm.c (symbol_make_empty) [BFD_ASSEMBLER]: Set + udata.p, not udata. + +Tue Jul 11 14:30:19 1995 Ian Lance Taylor <ian@cygnus.com> + + * doc/c-mips.texi: Document -m4010 and -mno-4010. + +Tue Jul 11 14:28:55 1995 Jeff Spiegel <jeffs@lsil.com> + + * config/tc-mips.c (mips_4010): New static variable. + (interlocks): New static variable. + (md_begin): Check for a cpu of "r4010". Set mips_4010 correctly. + If mips_4650 or mips_4010, set interlocks. + (append_insn): Check interlocks, not mips_4650. + (mips_emit_delays): Likewise. + (mips_ip): Only permit INSN_4010 instructions if mips_4010. + (md_longopts): Add "m4010" and "no-m4010". + (md_parse_option): Accept -mcpu=r4010. Handle -m4010 and + -no-m4010. + (md_show_usage): Document -m4010 and -no-m4010. + +Tue Jul 11 13:22:50 1995 Ian Lance Taylor <ian@cygnus.com> + + * ecoff.c (struct efdr): Add new field fake. + (init_file): Initialize fake. + (add_file): Add new parameter fake. Change all callers. + (ecoff_build_debug): Don't warn about a missing .end for a fake + file. + +Mon Jul 10 16:01:31 1995 Ken Raeburn <raeburn@cygnus.com> + + * doc/as.texinfo: Split out most cpu chapters... + * doc/c-*.texi: ...to here. + + * read.c (po_hash): Now static. + +Mon Jul 10 13:47:22 1995 Ian Lance Taylor <ian@cygnus.com> + + Based on patches from H.J. Lu <hjl@nynexst.com>: + * config/tc-i386.c (md_apply_fix3): Rename from md_apply_fix1. + Accept pointer to value and segment. Fix OBJ_ELF PCREL case to + handle global defined symbols correctly. + (md_apply_fix): Remove both versions. + * config/tc-i386.h (MD_APPLY_FIX3): Define. + + * configure.in: When switching on ${cpu}, use ${cpu}, not + $[target_cpu}, in default case. + * configure: Rebuild. + +Sat Jul 8 13:27:55 1995 Ian Lance Taylor <ian@cygnus.com> + + * write.c (fixup_segment): Call resolve_symbol_value on + sub_symbolP, in case it isn't in the symbol table. + +Fri Jul 7 11:17:27 1995 Ian Lance Taylor <ian@cygnus.com> + + * read.c (s_lcomm): For .lcomm 1, set align to 0, not 1. + + * config/obj-coff.c (coff_frob_symbol): If SF_GET_FUNCTION, set + BSF_FUNCTION. + (symbol_globalP, symbol_global_lastP): New global variables. + (yank_symbols): Sort defined global symbols to the end, just + before the undefined symbols. + (glue_symbols): Add two arguments, and use them instead of + referring directly to global variables. + (crawl_symbols): Call glue_symbols twice, once for defined globals + and once for undefined. Add corresponding know calls. + + * app.c (do_scrub_next_char): Always accept \v. Don't make it + conditional on BACKSLASH_V. + * read.c (next_char_of_string): Likewise. + * config/obj-bout.h (BACKSLASH_V): Don't define. + * config/tc-mips.h (BACKSLASH_V): Don't define. + + Add SPARC ELF PIC support. + * write.c (fixup_segment): Pass fixP to TC_RELOC_RTSYM_LOC_FIXUP, + not fixP->fx_r_type. + * config/tc-sparc.c (sparc_pic_code): New global variable. + (md_apply_fix): If generating PIC, adjust fx_addnumber for any non + PC relative reloc. + (tc_gen_reloc): If generating PIC, adjust various reloc types. + Remove fx_pcrel assert, since it is no longer true. + (md_parse_option): Handle -K PIC. + * config/tc-sparc.h (sparc_pic_code): Declare if OBJ_ELF. + (TC_RELOC_RTSYM_LOC_FIXUP): Define if OBJ_ELF. + (tc_fix_adjustable): Don't adjust PC relative relocs if PIC. + * config/tc-i386.h (TC_RELOC_RTSYM_LOC_FIXUP): Take a fixp, not a + reloc type. + + * Makefile.in (Makefile): Add dependency on conf.in, so that conf + is rebuilt when conf.in changes. + +Thu Jul 6 16:49:38 1995 Ken Raeburn <raeburn@cygnus.com> + + * All files: Updated FSF address. + +Thu Jul 6 16:30:34 1995 Jim Wilson <wilson@chestnut.cygnus.com> + + * ecoff.c (add_file): Don't collapse multiple .file commands into + a single file structure. + (ecoff_build_lineno): Set ilineBase to sum of previous file's + ilineBase and cline. + +Thu Jul 6 12:54:27 1995 Ian Lance Taylor <ian@cygnus.com> + + Patches from Jerry Blakely <gerry_blakley@wellfleet.com>: + * as.c (listing_filename): New static variable. + (show_usage): Mention -a=file. + (parse_args): Support = option of -a to set name of listing file. + (main): Pass listing_filename to listing_print. + * listing.c (list_file): New static variable. + (various): Replace printf with fprintf to list_file. + (listing_print): If name argument is not NULL, open it as + list_file. + * doc/as.texinfo, doc/as.1: Document -a=file. + + * config/tc-sparc.c (s_reserve): Don't permit redefinition, even + if the symbol was already in bss_section. Fix warning message. + + * listing.c (struct file_info_struct): Rename end_pending field to + at_end. + (file_info): Initialize at_end, not end_pending. + (buffer_line): If at_end set, just return immediately. Don't + worry about end_pending cases. Set at_end when EOF is read. + (print_source): Check at_end, not end_pending. + (listing_listing): Likewise. + + * config/tc-alpha.h (alpha_do_align): Don't declare. + (md_do_align): Don't define. + (tc_frob_label): Define. + (alpha_define_label): Declare. + (md_flush_pending_output): Define. + (alpha_flush_pending_output): Declare. + * config/tc-alpha.c (insn_label): New static variable. + (auto_align): New static variable. + (md_pseudo_table): Add cases for .text, .data, .align, .byte, + .hword, .int, .long, .octa, .quad, .short, .word, .double, .float, + and .single. Change .t_floating, .s_floating, .f_floating, + .g_floating, and .d_floating to use s_alpha_float_cons rather than + float_cons. + (s_alpha_text, s_alpha_data): New static functions. + (s_rdata, s_sdata): Clear insn_label and set auto_align. + (s_gprel32): If auto_align, align. Clear insn_label. + (emit_insn): Clear insn_label. + (s_alpha_align): New static function. + (alpha_align): Make static. Take label argument. + (alpha_flush_pending_output): New static function. + (s_alpha_cons, s_alpha_float_cons): New static functions. + (alpha_define_label): New function. + +Wed Jul 5 22:49:31 1995 Ken Raeburn <raeburn@cygnus.com> + + * conf.in: Regenerate with autoreconf. + + Mon Jul 3 19:47:53 1995 Pat Rankin (rankin@eql.caltech.edu) + + * config/obj-vms.h (vms_resolve_symbol_redef): Use full prototype. + (vms_check_for_special_label, tc_frob_label): Move them to group + with other prototypes. + [WANT_VMS_OBJ_DEFS]: Only define the many OBJ_x, DBG_x, and DST_x + macros when this is defined. + * config/obj-vms.c: Fully prototype all local functions. + [symbolS, fragS]: Use consistently instead of their struct tags. + [WANT_VMS_OBJ_DEFS]: Define this. + (s_const): Make definition correctly match actual usage. + (VMS_stab_parse): Make `expected_type' arg be int rather than char. + (get_VMS_time_on_unix): Define as `static void'. + (hash_string): Make definition match actual usage; argument is + `char const *' rather than `unsigned char *'. + (VMS_Case_Hack_Symbol, VMS_Modify_Psect_Attributes, VMS_Psect_Spec, + VMS_Global_Symbol_Spec): Declare string args as `const char *'. + [IS_GXX_VTABLE]: New macro. + (vms_write_object_file: GSD loop): Use it. + (vms_write_object_file: data segment): Reorganize `fill' loop. + +Wed Jul 5 12:01:49 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-sparc.c (md_shortopts): Add "K:" if OBJ_ELF. + (md_parse_option): If OBJ_ELF, check for -K. Die if -K PIC, since + PIC code is not currently supported. + + * as.c (parse_args): Change std_shortopts to be an array rather + than a constant string. Only include 'K' if WORKING_DOT_WORD is + not defined. Only check for 'K' in that case as well. + * as.h (flag_warn_displacement): Only declare if WORKING_DOT_WORD + is not defined. + + * conf.in: Add undef of HAVE_SBRK. + + * config/obj-coff.c (obj_coff_line): Call listing_source_line, in + both BFD_ASSEMBLER and non BFD_ASSEMBLER versions of the function. + + * symbols.c (S_SET_EXTERNAL): Warn if symbol is weak. + (S_CLEAR_EXTERNAL): Likewise. + (S_SET_WEAK): Warn if symbol is global. + + * config/obj-aout.c (obj_aout_frob_symbol): Warn about an attempt + to put an undefined symbol into a set. + + * Makefile.in: Remove @configure_input@; it's not needed in + files named Makefile. + + * config/tc-m88k.c (md_pseudo_table): Add ".set" so that the + explicit pseudo-op works, while continuing to treat "set" as an + instruction. + + * ecoff.c (ecoff_debugging_seen): New global variable. + (ecoff_directive_def): Set ecoff_debugging_seen. + (ecoff_stab): Likewise. + * ecoff.h: Make idempotent. + (ecoff_debugging_seen): Declare. + * config/tc-mips.c: Include ecoff.h. + (mips_debug): New static variable. + (s_stringer, s_mips_space): Remove unneeded declarations. + (md_parse_option): In case 'g', set mips_debug to debugging level. + (mips_local_label): New function. + * tc-mips.h (LOCAL_LABEL): Call mips_local_label. + (mips_local_label): Declare. + +Wed Jul 5 00:59:22 1995 Fred Fish (fnf@cygnus.com) + + * as.c (main): Only use sbrk when HAVE_SBRK defined. + * configure.in: Add test for sbrk. + * configure: Regenerate using autoconf 2.4. + +Mon Jul 3 15:58:16 1995 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-hppa.h (MAX_RELOC_EXPANSION): Bump to 6. + * config/tc-hppa.c (tc_gen_reloc, SOM version): Handle + relocations for the difference of two (possibly external) + symbols. + (hppa_fix_adjustable): For SOM, reject reductions involving + the difference of two symbols. + (hppa_force_relocation): Force relocations for expressions + involving the difference of two symbols. + +Mon Jul 3 14:22:59 1995 Steve Chamberlain <sac@slash.cygnus.com> + + * configure[.in] (i386-*-win32): New host and target. + +Thu Jun 29 17:25:43 1995 Steve Chamberlain <sac@slash.cygnus.com> + + Support for long filenames non-bfd coff. + * config/obj-coff.c (filename_list_head, filename_list_tail): New. + (yank_symbols): Notice and record filenames which are too long. + (w_strings): Write out filename strings. + (c_dot_file_symbols): Put long filenames onto list. + +Wed Jun 28 17:33:13 1995 Steve Chamberlain <sac@slash.cygnus.com> + + * config/obj-coff.c (fixup_segment): PE doesn't use + the strange common symbol format that other 386s formats + do. + * config/tc-i386.c (md_begin): If LEX_AT defined then + '@' is in the set of identifiers. + (i386_operand): If LEX_AT, then don't look for @goto stuff. + * config/te-pe.h: Define LEX_AT. + +Wed Jun 28 17:49:59 1995 Ken Raeburn <raeburn@cygnus.com> + + * doc/as.texinfo (H8/500 Floating Point): Indicate that IEEE FP + numbers are for the standard emulation code. + (SH Floating Point): Ditto. + (Overview): Describe new --emulation option for MIPS. + * doc/*.m4: Deleted. + +Thu Jun 22 19:26:25 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + Sun May 7 11:53:41 MDT 1995 Bryan Ford <baford@cs.utah.edu> + + * configure.in: Added i386-*-moss* target. + +Thu Jun 22 14:41:23 1995 Michael Meissner <meissner@tiktok.cygnus.com> + + * write.c (write_object_file): Cast decode_local_label_name + argument to char * to avoid warning. + +Wed Jun 21 18:07:59 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + Changes from Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>: + * config/tc-m68k.c (insword): Increment the frag offsets. + (struct m68k_it): Add reloc[].pcrel_fix field to hold pc-rel + fixup. + (add_fix): Accept additional parameter, the pc-rel fixup. All + callers changed. Fix offset address if width == 'b'. + (m68k_ip) [case AINDX]: Allow explicit size spec. Don't make the + outer displacement pc-relative. + (md_pcrel_from): Make it relative to the first extension word of + the operand. + (opcode_ptr): Make it a macro if DO_BREAK_UP_BIG_DECL is + undefined. + (md_convert_frag_1): Don't reference fragP->fr_opcode[2..]. + (md_estimate_size_before_relax) [case TAB (FBRANCH, SZ_UNDEF)]: + Turn on long bit. + (m68k_ip) [case 'C']: Don't set set long bit, set it in the opcode + table. + (md_estimate_size_before_relax) [case TAB (PCINDEX, SZ_UNDEF)]: + Variable part increases by four, not six. + * write.c (fixup_segment) [TC_M68K]: Don't do further pcrel + processing after converting difference of two symbols in the + same segment. + + * write.c (fixup_segment): Don't conditionalize the pcrel fix on + TC_M68K. + + * config/tc-sparc.c (sparc_ip, case 'A'): If ASI is not a "#" + value, don't shift it an extra time. + +Wed Jun 21 14:18:37 1995 Steve Chamberlain <sac@slash.cygnus.com> + + * gasp.c (do_print, do_form, buffer_and_nest): Use case insensitive + string compares. + +Tue Jun 20 14:55:02 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * config/obj-coff.c (write_object_file): Cast time() argument to + time_t *. + +Tue Jun 20 12:00:53 1995 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (pa_build_unwind_subspace): Fix typo in last + change. + +Mon Jun 19 15:27:17 1995 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (pa_build_unwind_subspace): Zero out memory + from frag_more calls. + +Thu Jun 15 16:53:37 1995 Stan Shebs <shebs@andros.cygnus.com> + + * config/obj-coff.c: Don't use "bfd/" when including libbfd.h + and libcoff.h. + (fill_section): Call PROGRESS. + * Makefile.in (INCLUDES): Add bfd srcdir. + + * mpw-config.in: Add bfd_gas flag and set for each config. + (i386-unknown-go32, m68k-unknown-coff): Recognize. + * mpw-make.in (HACK_O_RAMA, OBJ_COFF_OMIT_TIMESTAMP): Add to + config.h. + +Thu Jun 15 10:04:26 1995 Doug Evans <dje@canuck.cygnus.com> + + * config/tc-arm.h (LOCAL_LABEL): Prepend '.' if not OBJ_AOUT. + (FAKE_LABEL_NAME): Likewise. + +Mon Jun 12 22:25:39 1995 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (pa_ip): Check for invalid register in single + precision fmpyadd and fmpysub instructions. + +Thu Jun 8 19:33:02 1995 Pat Rankin (rankin@eql.caltech.edu) + + * config/obj-vms.c (myname): Delete all references. + (VMS_stab_parse, Write_VMS_MHD_Records, VMS_Case_Hack_Symbol): + Replace printf calls with as_tsktsk. + (PUT_LONG, PUT_SHORT): Use COPY_LONG, COPY_SHORT. + (VMS_Store_Immediate_Data): Move second buffer capacity check + below bottom of loop; first check at top suffices for loop itself. + (find_file): Remove redundant pointer checks in first two loops; + replace third loop with pointer to last list element determined + in first loop. + +Tue Jun 6 13:53:06 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * config/tc-sparc.c (sparc_ip): Handle defined absolute symbols as + ASI values. + + * config/obj-vms.c (vms_write_object_file, case N_DATA): Use + strcmp against FAKE_LABEL_NAME instead of checking third + character. (Suggested by Pat Rankin.) + +Mon Jun 5 20:10:46 1995 Pat Rankin (rankin@eql.caltech.edu) + + Add support for N_ABS and N_ABS|N_EXT type symbols. + + * config/obj-vms.h (LSY_S_M_{DEF,REL}, ENV_S_M_{DEF,NESTED}): + New macros for local symbols (from <lsydef.h> and <envdef.h>). + * config/obj-vms.c (Current_Environment): New file-scope variable. + (VMS_Local_Environment_Setup): New routine. + (GBLSYM_LCL): New macro. + (VMS_Global_Symbol_Spec): Handle local symbols too. + (VMS_Psect_Spec): Set GLOBALVALUE_BIT for absolute symbols. + (VMS_Emit_Globalvalues): Handle local and global absolute symbols. + (VMS_Store_PIC_Symbol_Reference): Ditto. + (vms_write_object_file: GSD symbol loop): Ditto. + +Mon Jun 5 16:10:40 1995 Steve Chamberlain <sac@slash.cygnus.com> + + * config/tc-arm.h (LOCAL_LABELS_FB): Define. + +Mon Jun 5 02:17:58 1995 Ken Raeburn <raeburn@kr-laptop.cygnus.com> + + * configure.in (i386-*-gnu*): Always use GNU ELF config. + +Wed May 31 17:49:18 1995 Pat Rankin (rankin@eql.caltech.edu) + + * config/obj-vms.c (obj_crawl_symbol_chain): Update *symbolPP + in `else' clause when removing a symbol. Also, revise comments + to match the code. + (vms_write_object_file (GSD symbol loop, case N_DATA)): Never + output symbol definitions for local numeric labels. + +Tue May 30 18:29:10 1995 Richard Earnshaw (rearnsha@armltd.co.uk) + + * configure.in (architecture variants, cases armeb and arm*): Remove + spaces round assignment to endian. + +Tue May 30 12:31:31 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * write.c (write_object_file): Check for undefined local dollar + and fb labels. + + * symbols.c (decode_local_label_name): Extract instance number + from the correct location. + +Sat May 27 21:28:49 1995 J.T. Conklin <jtc@rtl.cygnus.com> + + * config/te-dpx2.h: Include obj-format.h. + (COFF_MAGIC): Renamed from FILE_HEADER_MAGIC. + +Wed May 24 13:45:32 1995 Steve Chamberlain <sac@slash.cygnus.com> + + * configure, configure.in, config/obj-coff.c, config/obj-coff.h: + Add support for ARM pe + +Tue May 23 17:00:32 1995 Doug Evans <dje@canuck.cygnus.com> + + * config/tc-sparc.c (tc_gen_reloc): Handle BFD_RELOC_SPARC_WDISP16 + and BFD_RELOC_SPARC_WDISP19. + +Tue May 23 19:18:33 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * as.c (parse_args) [! USE_EMULATIONS]: Always print an error + message. + + * doc/internals.texi: Document obj_app_file and + TARGET_BYTES_BIG_ENDIAN. + +Mon May 22 20:03:23 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * ecoff.c (ecoff_stab): Add extra leading argument, for 4 May + change. + * ecoff.h (ecoff_stab): Fix declaration. + * obj.h (format_ops.process_stab): Include prototype. + * config/obj-elf.h (OBJ_PROCESS_STAB): Pass through seg argument. + * config/obj-ecoff.h (OBJ_PROCESS_STAB): Ditto. + + * config/e-mipself.c (mipself): New emulation mode, doesn't change + endianness from configured default. + * config/e-mipsecoff.c (mipsecoff): Ditto. + * configure.in (mips ecoff/elf targets): Include them. + * as.c (mipself, mipsecoff): Declare. + + * as.c (emulation_name): New variable. + (select_emulation_mode): Set emulation_name. Don't change argv. + (parse_args): Handle --emulation; complain if the supplied name + isn't what select_emulation_name came up with. + +Sun May 21 21:36:17 1995 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c: Reverse changes from Dec. 19th which + changed the way unwinds were built for ELF. Rely on relocation + symbol reductions to avoid placing the end of function marker + symbols into the object file's symbol table. + +Sat May 20 12:31:36 1995 Ken Raeburn <raeburn@kr-laptop.cygnus.com> + + Added improved VMS support from Pat Rankin: + + Fri 19 May 16:51:40 1995 Pat Rankin (rankin@eql.caltech.edu) + + * config/obj-vms.h (AOUT_STABS): Define. + + * config/obj-vms.c (fpush, rpush): New routines. + (push): Replaced by the above. + (find_symbol): Slight reorganization to expose tail recursion. + + Fri Mar 17 18:40:36 1995 Pat Rankin (rankin@eql.caltech.edu) + + * Makefile.in (VMS_OTHER_OBJS): delete this. + * vmsconf.sh (make-gas.com): build ../libiberty/liberty.olb + first if necessary; link gas against it. + +Fri May 19 16:37:39 1995 Richard Earnshaw (rearnsha@armltd.co.uk) + + * gasp.c (istrue): Correctly test for string inequality. + +Thu May 18 04:25:11 1995 Ken Raeburn <raeburn@kr-laptop.cygnus.com> + + Wed May 10 14:28:16 1995 Richard Earnshaw (rearnsha@armltd.co.uk) + + * config/tc-arm.c (CP_T_{Pre,UD,WB}): Define, bits in co-processor + instructions. + ([ls]fm_flags): Correct error in bitmasks. + (cp_address_required_here): Delete second parameter, FLAGS. All + callers changed. Remove all dead code referring to FLAGS. If + address is just "[Reg]" then convert into a PRE-INCREMENT UP format. + (do_fp_ldmstm): Handle full-descending and empty-ascending stack + formats explicitly. + + * config/tc-arm.c (internalError): Define. + (ARM_{1,2,250,3,6,7,7DM,ANY,2UP,ALL,3UP,6UP,LONGMUL}): Define processor + variants. + (FPU_{CORE,FPA10,FPA11,NONE,ALL,MEMMULTI}): Define floating point + variants. + ({CPU,FPU}_DEFAULT): Define. + (cpu_variant): New variable. + (asm_flg): Change more_flags to flag_bits. + Add prototypes for new functions. + (FLAG_{S,P,B,T,ED,FD,FA,EA,IB,IA,DB,DA,L}): Delete. + (s_flag[], ldst_flags[], byte_flag[], cmp_flags[], ldm_flags[], + stm_flags[], lfm_flags[], sfm_flags[], round_flags[], except_flags[], + cplong_flag[]): New variables. + (asm_opcode, insns[]): New format, add version support. + (arm_flg_hsh): Delete. + (do_mul, do_mla): Remove "Warning" from warning messages. + (do_arit): Simplify. + (do_swap): Make error message more appropriate. + (md_begin): Build hash tables starting at first entry in tables. + (md_number_to_chars): Cope with big/little-endian selection. + (md_chars_to_number): New function. + (md_apply_fix): Rewrite to make endian independent. + (tc_gen_reloc): Better error messages. + (md_assemble): Reject opcodes forbidden by the currently selected cpu + variant. Rewrite handling code for instruction flags. + (md_shortopts): Add option "m:". + (md_parse_option): Get the desired cpu/fpu variant. + + From: David Taylor (dtaylor@armltd.co.uk) + * configure.in (architecture variants): Check for "armeb" and "arm*", + set endianness accordingly. + * read.c (read_a_source_file): New hooks md_start_line_hook and + md_after_pass_hook. + * config/arm-{big,lit}.mt: New files + * config/tc-arm.h ({LITTLE,BIG}_ENDIAN, BYTE_ORDER): Define. + (TARGET_FORMAT): Select depending on endianness and emulation and + object format. + (md_after_pass_hook, md_start_line_hook): Define. + * config/tc-arm.c: Include subsegs.h, symbols.h and listing.h. + (shift[]): Add uppper case equivalents. + (CP_T_[XY], TRANS_BIT): Define. + (conds[]): Delete initial NULL entry, add "lo" entry as synonym for + "cc". + (LONGEST_FLAG, flags[]): Delete. + (arm_psr): New structure. + (psrs[]): New variable. + (PSR_ALL): Define. + (LONGEST_INST): Bump to 5. + (LITERAL_MASK, COND_MASK, OPCODE_MASK, DATA_OP_SHIFT): Define. + (OPCODE_{AND,EOR,SUB,RSB,ADD,ADC,SBC,RSC,TST,TEQ,CMP,CMN,ORR,MOV,BIC, + MVN}): Define. + (insns[]): Add smull, umull, smlal, umlal, ldfm, stfm, msr and mrs + instructions. Add nop and adr pseudo ops. + (reg_table): Add APCS register name variants. + (arm_psr_hsh): New hash table. + (md_pseudo_table): Add "ltorg", "pool", "extend", "ldouble" and + "packed". + (MAX_LITERAL_POOL_SIZE): Define. + (struct literalS): New structure. + (literals, next_literal_pool_place, lit_pool_num, current_poolP): New + variables. + (add_to_lit_pool, symbol_locate, symbol_make_empty): New functions. + (validate_immediate): Return FAIL on failure. + (s_ltorg): New function. + (psr_required_here, psrf_required_here): New functions. + (cp_address_required_here): New parameter, flag, all callers changed. + If flag is non-zero, restrict the legal addressing modes. + (do_nop, do_mrs, do_msr, do_mull): New functions. + (negate_data_op): New function. + (data_op2): accept #x,y meaning x rotated right by y, but only when + suitable constants. If immediate is not legal, try changing the + opcode. + (do_adr): New function. + (do_ldst): accept "ldr reg, =expr". Put expr in the pool if it can't + be done as an immediate. + (do_fp_ldst): Use CP_T_[XY], not immediate values. + (do_fp_ldmstm): New function. + (arm_psr_parse): New function. + (output_inst): Use INSN_SIZE in call to md_number_to_chars. + (md_assemble): Add hack so that "Label instruction" causes alignment of + the label. + (arm_after_pass_hook, arm_start_line_hook, arm_frob_symbol): New + functions. + +Wed May 17 05:25:16 1995 Michael Meissner <meissner@tiktok.cygnus.com> + + * config/tc-ppc.c (md_show_usage): Add \'s at end of lines in + strings for non-GCC compilers. + +Tue May 16 19:36:00 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * config/obj-ecoff.c (ecoff_pop_insert): New function. + (ecoff_format_ops): Use it. + (obj_ecoff_frob_symbol): Now static. + +Wed May 17 00:59:12 1995 Andrew Cagney - aka Noid <cagney@highland.com.au> + + * config/tc-ppc.c (md_begin): Was assuming that an instruction was + bigendian and hence 16bit relocs withing instructions would + ALWAYS be at addresses i+2-i+3. In LE mode it is i+0-i+1. + +Tue May 16 16:29:58 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * config/obj-multi.h (obj_frob_symbol, obj_frob_file, S_GET_SIZE, + S_SET_SIZE, S_GET_ALIGN, S_SET_ALIGN, obj_copy_symbol_attributes, + OBJ_PROCESS_STAB): New macros. + * config/tc-mips.c: Protect against redefining them also when + including obj-elf.h. Test only OBJ_ELF for including elf/mips.h. + (mips_init_after_args): New function. Set byte_order here. + (md_parse_option): Not here. + (byte_order): Don't bother initializing. + * config/tc-mips.h (mips_init_after_args): Declare. + (tc_init_after_args): New macro. + + * read.c (s_lcomm): Do ELF/ECOFF test at run time, not compile + time. + +Fri May 12 14:17:47 1995 Steve Chamberlain <sac@slash.cygnus.com> + + Initial support for PE object files. + * configure.in, configure (i386-*-pe, i386-*-*nt): Add. + * config/obj-coff.c (fixup_segment): Cope with PE wierdness. + * config/obj-coff.h (TE_PE): New target format. + +Thu May 11 14:58:21 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * config/obj-elf.c (NEED_ECOFF_DEBUG): Define if ECOFF_DEBUGGING + was defined by header files. Test in preprocessor conditionals + instead of ECOFF_DEBUGGING. + (ecoff_debug_pseudo_table): Make empty if NEED_ECOFF_DEBUG is not + defined. + (obj_read_begin_hook, obj_symbol_new_hook, elf_frob_symbol, + elf_frob_file): Only call ecoff routines if NEED_ECOFF_DEBUG is + defined. + (elf_ecoff_set_ext, elf_get_extr, elf_set_index): Define only if + NEED_ECOFF_DEBUG is defined. + (elf_format_ops): Reference elf_ecoff_set_ext only if + NEED_ECOFF_DEBUG. + +Wed May 10 18:09:12 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * Makefile.in (OBJS): Include @extra_objects@. + (obj-elf.o, obj-ecoff.o, e-mipself.o, e-mipsecoff.o): New rules + for building these independently. + * emul-target.h, config/e-mipself.c, config/e-mipsecoff.c: New + files. + + * acconfig.h (DEFAULT_EMULATION, EMULATIONS, USE_EMULATIONS, + OBJ_MAYBE_*, I386COFF, M68KCOFF, M88KCOFF): New macros. + * aclocal.m4 (GAS_UNIQ): New macro. + + * as.c (emulations, n_emulations) [USE_EMULATIONS]: New variable. + (select_emulation_mode, default_emul_bfd_name, common_emul_init) + [USE_EMULATIONS]: New functions. + (main) [USE_EMULATIONS]: Call select_emulation_mode before other + initialization. + * emul.h: New file. + * as.h [USE_EMULATIONS]: Include it. + + * configure.in: Handle enable-targets option. Iterate over target + list, building up a list of object file formats and emulation + configurations. (Only supports emulations for MIPS CPU so far.) + If multiple formats are needed, set obj_format to multi and add + format config files to extra_files. If emulation modes are + needed, add the relevant files to extra_files. + + * configure.in: Define I386COFF, M68KCOFF, M88KCOFF for those + configurations. + + * ecoff.c (ecoff_generate_asm_lineno): Filename argument now + points to const. + * ecoff.h (ecoff_generate_asm_lineno): Updated declaration. + + * obj.h (obj_read_begin_hook): Don't declare function if it's + already a macro. + + * read.c (s_space, cons, stringer): If md_flush_pending_output is + defined, call it on entry. + * config/obj-elf.c (obj_elf_section): If md_flush_pending_output + is defined, call it on entry. If md_elf_section_change_hook is + defined, call it before returning normally. + + * read.h (target_big_endian): Declare. + + * obj.h (struct format_ops): Added new function pointer fields + ecoff_set_ext, read_begin_hook, symbol_new_hook. + (ecoff_format_ops, elf_format_ops): Declare. + * config/obj-elf.c (elf_s_get_size, elf_s_set_size, + elf_s_get_align, elf_s_set_align, elf_copy_symbol_attributes, + elf_sec_sym_ok_for_reloc): New functions. + (elf_format_ops): New variable. + (elf_frob_symbol): Now takes additional int* argument. + * config/obj-elf.h (elf_frob_symbol): Update declaration. + (elf_pop_insert): Declare. + (obj_pop_insert): Define to call elf_pop_insert. + * config/obj-ecoff.c (ecoff_sec_sym_ok_for_reloc, + obj_ecoff_frob_symbol): New functions. + (ecoff_format_ops): New variable. + + * config/te-generic.h: If OBJ_HEADER is defined, use it as the + filename to include in place of obj-format.h. + * config/te-multi.h: New file, copied from te-generic.h. + * config/obj-elf.c (OBJ_HEADER): Define it to "obj-elf.h". + * config/obj-ecoff.c (OBJ_HEADER): Define it to "obj-ecoff.h". + + * config/obj-elf.c (ECOFF_DEBUGGING): Default to 0. + (obj_read_begin_hook, obj_symbol_new_hook, elf_frob_symbol, + elf_frob_file): Test it at run time. + (obj_ecoff_set_ext, elf_get_extr, elf_set_index): Define + unconditionally. + (elf_pseudo_table): Renamed from obj_pseudo_table, now static. + (ecoff_debug_pseudo_table): Split off into separate table. Define + it unconditionally. + (elf_pop_insert): New function. + * config/obj-elf.h (elf_pop_insert): Declare. + (obj_pop_insert): New macro. + (obj_ecoff_set_ext) [!OBJ_MAYBE_ELF]: Define to elf_ecoff_set_ext. + * config/obj-ecoff.h (obj_ecoff_set_ext): Define to ecoff_set_ext. + + * config/tc-mips.h: Protect against multiple inclusions. + (mips_pop_insert): Declare. + (md_pop_insert): Call it. + + * config/tc-mips.c: If OBJ_MAYBE_ELF is defined, include + obj-elf.h, but preserve OUTPUT_FLAVOR and protect some other + macros from redefinition. + (ECOFF_DEBUGGING): Default to 0. All references changed to + run-time tests or made unconditional. + (s_stringer, s_mips_space, s_elf_section): Deleted. + (md_pseudo_table): Don't refer to them. Split table into three + sections, for MIPS, non-ECOFF_DEBUGGING, and ELF. + (mips_pop_insert): New function. + (mips_flush_pending_output): New function. + (mips_enable_auto_align): New function. + * config/tc-mips.h (mips_pop_insert): Declare. + (md_pop_insert): New macro. + (mips_flush_pending_output): Declare. + (md_flush_pending_output): New macro. + (mips_enable_auto_align): Declare. + (md_elf_section_change_hook): New macro, calls + mips_enable_auto_align. + +Tue May 9 17:07:41 1995 Michael Meissner <meissner@tiktok.cygnus.com> + + * configure.in: Add little endian PowerPC support. + * configure: Rebuild with autoconf. + * config/ppc-big.mt: New file for big endian PowerPC systems. + * config/ppc-lit.mt: New file for little endian PowerPC systems. + + * config/tc-ppc.h (target_big_endian): Declare. + (TARGET_FORMAT): Deal with little and big endian ELF variants. + (TARGET_BYTES_BIG_ENDIAN): Define as 1, not empty. + + * config/tc-ppc.c (ppc_big_endian): Delete variable, use + target_big_endian instead. + (md_parse_option): Parse -mlittle and -mlittle-endian to use + little endian support. Parse -mbig and -mbig-endian to use big + endian support. + (md_show_usage): Update to reflect current switches. + (ppc_set_cpu): Recognize powerpcle as little endian PowerPC. Use + as_fatal, not abort if unknown machine. + +Tue May 9 10:58:41 1995 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (md_apply_fix): Cast *valp to an integer when + comparing against signed values. + (hppa_force_relocation): Make "distance" an integer. + +Tue May 9 00:47:03 1995 Ken Raeburn (raeburn@kr-pc.cygnus.com) + + * obj.h (struct format_ops) [BFD_ASSEMBLER]: New type. + (this_format) [BFD_ASSEMBLER]: Declare new variable, if not + already defined as a macro. + +Mon May 8 21:44:13 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * subsegs.h (seg_info): Provide dummy version for + non-BFD_ASSEMBLER, non-MANY_SEGMENTS configuration. It should + never get invoked, but this is easier than conditionalizing some + of the uses. + (struct seg_info_trash): Dummy type used by above to make code + compile. + +Fri May 5 14:47:13 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * config/obj-coff.h (SEPARATE_STAB_SECTIONS): Define to 1, not + empty. + * config/obj-elf.h (SEPARATE_STAB_SECTIONS): Ditto. + * config/obj-som.h (SEPARATE_STAB_SECTIONS): Ditto. + +Thu May 4 19:26:55 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * stabs.c (get_stab_string_offset): Always define. If + SEPARATE_STAB_SECTIONS isn't set, abort. + (SEPARATE_STAB_SECTIONS): Default to zero. + (aout_process_stab): New function, split out from s_stab_generic. + (OBJ_PROCESS_STAB) [AOUT_STABS]: Define to call aout_process_stab, + if not already defined. + (s_stab_generic): Test SEPARATE_STAB_SECTIONS at run time. If + it's not set, and OBJ_PROCESS_STAB isn't defined, abort. Always + pass six arguments to OBJ_PROCESS_STAB. + * read.h (get_stab_string_offset): Declare unconditionally. + * config/obj-aout.h (AOUT_STABS): Define. + * config/obj-bout.h (AOUT_STABS): Define. + * config/obj-ecoff.h (OBJ_PROCESS_STAB): Add new first argument, + ignored. + * config/obj-elf.h (OBJ_PROCESS_STAB) [ECOFF_DEBUGGING]: Ditto. + + * config/obj-ecoff.h (ECOFF_DEBUGGING): Define to 1, not empty. + * config/obj-elf.h (ECOFF_DEBUGGING): Ditto. Test value, not + whether it's defined. + +Wed May 3 21:38:20 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * as.h (LOCAL_LABELS_DOLLAR, LOCAL_LABELS_FB): If not already + defined, define them to zero. + * config/tc-*.h, config/te-*.h: If defining them, define them to + be 1 instead of empty. + * expr.c (integer_constant, operand): Test them at run time + instead of compile time. + * read.c (read_a_source_file): Ditto. + * symbols.c (colon): Ditto. + (dollar_*, define_dollar_label, fb_*): Define unconditionally. + * symbols.h (dollar_*, define_dollar_label, fb_*): Declare + unconditionally. + +Wed May 3 13:08:53 1995 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (md_apply_fix): Do nothing for an out of range + PC relative call since those only occur in cases where the linker + can fix them up. + (hppa_force_relocation): Force relocations for out of range PC + relative calls. + +Tue May 2 16:34:47 1995 Jeff Law (law@snake.cs.utah.edu) + + * configure (hppa*-*-lites*): Handle just like hppa*-*-*elf*. + * configure.in: Likewise. + +Tue May 2 11:22:00 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * read.c (pop_insert): New function. + (pop_override_ok, pop_table_name): New variables. + (md_pop_insert, obj_pop_insert): New macros. + (pobegin): Use them. + + * config/tc-mips.c: Use USE_STDARG and USE_VARARGS instead of + NO_STDARG &c. + + * read.c (target_big_endian): If TARGET_BYTES_BIG_ENDIAN is + defined, initialize to 1. + * config/tc-mips.c (mips_target_format): Changed to a function, + checking flavor and byte order at run time. + (md_parse_option, cases OPTION_EB and OPTION_EL): Set + target_big_endian here. + (md_begin): Not here. + * config/tc-mips.h (mips_target_format): Adjust declaration. + (TARGET_FORMAT): Call mips_target_format. + + * config/tc-mips.h (USE_GLOBAL_POINTER_OPT): Define in terms of + OUTPUT_FLAVOR. + * config/tc-mips.c (g_switch_value, g_switch_seen): Define + unconditionally. + (md_begin, mips_ip, md_parse_option, s_change_sec, s_option, + s_abicalls, nopic_need_relax): Check USE_GLOBAL_POINTER_OPT at run + time, instead of compiling conditionally on GPOPT. + (GPOPT): Don't define. + (md_shortopts): Always include -G. + (RDATA_SECTION_NAME): Select at run time. + (md_begin): Test for ELF format at run time instead of compile time. + (mips_ip, s_change_sec): Ditto. + (md_parse_option, cases OPTION_CALL_SHARED and OPTION_NON_SHARED): + Ditto. + (OPTION_CALL_SHARED, OPTION_NON_SHARED, mips_regmask_frag): Define + unconditionally. + +Tue May 2 00:17:04 1995 Ken Raeburn (raeburn@kr-pc.cygnus.com) + + * Makefile.in (TARG_CPU_DEP_*): New variables. + (targ-cpu.o): Depend on one, selected by autoconf substitution, + instead of TARG_CPU_DEPENDENTS. + * configure.in: Substitute $cpu_type, $obj_format, $atof, and + $emulation into Makefile.in. + * config/h8300.mt: Deleted. + * config/h8500.mt: Deleted. + * config/i386coff.mt (TARG_CPU_DEPENDENTS): Deleted. + * config/m68k.mt: Deleted. + * config/m68kcoff.mt (TARG_CPU_DEPENDENTS): Deleted. + * config/m88kcoff.mt (TARG_CPU_DEPENDENTS): Deleted. + * config/mips-big.mt (TARG_CPU_DEPENDENTS): Deleted. + * config/mips-lit.mt (TARG_CPU_DEPENDENTS): Deleted. + * config/sh.mt: Deleted. + * config/w65.mt: Deleted. + * config/z8k.mt: Deleted. + + * config/te-dpx2.h (dpx2): Deleted unused macro. + * config/te-generic.h (TE_GENERIC): Ditto. + * config/te-go32.h (TE_GO32): Ditto. + * config/te-hp300.h (TE_HP300): Ditto. + * config/te-hppa.h (PA, _TE_PA_H): Ditto. + * config/te-ic960.h (TE_IC960): Ditto. + * config/te-nbsd532.h (TE_NETBSD532): Ditto. + * config/te-pc532mach.h (TE_PC532MACH): Ditto. + * config/te-ppcnw.h (TE_PPCNW): Ditto. + * config/te-sco386.h (scounix): Ditto. + +Mon May 1 15:59:56 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * read.c (s_app_file): If obj_app_file is defined, call it with + string as argument. Don't call c_dot_file_symbol or + elf_file_symbol. + * config/obj-coff.h (obj_app_file): Define as c_dot_file_symbol. + * config/obj-elf.h (obj_app_file): Define as elf_file_symbol. + + * as.h (OUTPUT_FLAVOR): Don't define here. + * config/obj-aout.h (OUTPUT_FLAVOR) [BFD_ASSEMBLER]: Define. + * config/obj-bout.h (OUTPUT_FLAVOR): Define. + * config/obj-coff.h (OUTPUT_FLAVOR) [BFD_ASSEMBLER]: Define. + * config/obj-ecoff.h (OUTPUT_FLAVOR): Define. + * config/obj-elf.h (OUTPUT_FLAVOR): Define. + +Thu Apr 27 20:07:33 1995 Doug Evans <dje@canuck.cygnus.com> + + * Makefile.in (RUNTEST): Use one in srcdir if present. + (RUNTESTFLAGS): Define. + +Wed Apr 26 15:54:10 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + Support for more portable alignment handling in assembly code, + based on patches from Bryan Ford <baford@schirf.cs.utah.edu>: + * read.c (potable): Added balign and p2align, for aligning by + bytes or powers of two independent of what ".align" does for a + given target. + * doc/as.texinfo: Document them. + +Tue Apr 25 11:12:04 1995 Rob Savoye <rob@thepub.cygnus.com> + + * configure, configure.in: Look for m68k-*-vxworks* rather than + just m68k-wrs-vxworks so gas can be configured for + m68k-vxworks5.1. + +Fri Apr 21 15:19:06 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * config/tc-sh.c (md_apply_fix): If fx_r_type is zero, handle + fx_size of 1, and abort on unrecognized sizes. + + * config/tc-m68k.c (m68k_ip): Fix bug in last change regarding + non-isvar case. + +Sun Apr 16 01:52:52 1995 Ken Raeburn <raeburn@kr-laptop.cygnus.com> + + * config/tc-m68k.h (md_relax_table, TC_GENERIC_RELAX_TABLE): + Missed this one in 11 Apr changes. + + * config/tc-i386.h (TC_GENERIC_RELAX_TABLE): Fix typo. + +Thu Apr 13 18:18:08 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * config/tc-sh.c (md_convert_frag): Instead of aborting on large + displacements, print an error message. Don't invoke the code that + followed the abort call until it's been verified. + + * config/tc-m68k.c (md_show_usage): Add 68060 to list. Split cpu + list into three lines. + +Thu Apr 13 14:34:36 1995 Torbjorn Granlund <tege@adder.cygnus.com> + + * tc-m68k.c (m68k_init_after_args): Test for m68360. + (md_parse_option): Likewise. + (md_show_usage): Mention m68360. + * tc-m68k.h (TARGET_WORD_SIZE): Define. + (TARGET_ARCH): Define. + + * expr.c (integer_constant): If TARGET_WORD_SIZE is defined, + sign-extend appropriately. + +Thu Apr 13 11:20:17 1995 Michael Meissner <meissner@tiktok.cygnus.com> + + * config/tc-ppc.c (ppc_elf_validate_fix): Properly use PARAMS to + hide prototype from non-ANSI compilers, and don't use ANSI syntax + for arguments. + +Wed Apr 12 12:20:19 1995 Stan Shebs <shebs@andros.cygnus.com> + + * mpw-config.in (TDEFINES): Put empty definition into + makefile fragment. + * mpw-make.in (xmalloc.c.o): Remove. + (as.new): Depend on Version.r. + (Version.r): Generate from version info. + + * mpw-make.in: Delete references to hex-value.c. + + * mpw-config.in: Add mapping from configs to object file formats, + get VERSION from Makefile.in and add to mk.tmp. + (mips-idt-ecoff) [TDEFINES]: Add TARGET_BYTES_BIG_ENDIAN. + * mpw-make.in (VERSION, gC): Don't define. + (ALL_CFLAGS): Remove -d flags. + (config.h): Remove definition of MPW, add HAVE_STDARG_H, + BFD_ASSEMBLER. + + * mpw-make.in (ALL_CFLAGS): Add definition of HAVE_STDARG_H, + include of ::libiberty:. + (config.h): Ifdef contents on GAS_VERSION. + + * mpw-make.in (as.c): Compile with C not gC. + (config-stamp): Touch correctly. + (install-only): New target. + (install): Depend on all and install-only. + + * mpw-config.in: Parse target and use to generate forward includes + to tc-, obj-, and atof- files, use te-generic.h for emulation. + * mpw-make.in (VERSION): Define. + (as.c): Compile with GCC. + (TARG_OBJECTS, CLIBS): Define. + (as.new): Use LDFLAGS, TARG_OBJECTS, CLIBS and EXTRALIBS in link + command. + (config.h, config-stamp): Build. + + * mpw-make.in (C, CFLAGS): Removed definitions. + (ALL_CFLAGS): Define. + Set default rule to use {CC} instead of {C}. + + * mpw-make.in (install): Moved here from mpw-build.in. + * mpw-build.in: Removed, functionality in mpw-make.in + + * mpw-make.in (CFLAGS): Add more include paths. + + * mpw-config.in (varargs.h, sys/*.h): Don't create when + configuring. + * mpw-make.in (CFLAGS): Add -w flag. + + * mpw-make.in: Replace 8-bit chars with their names. + + * mpw-config.in: New file, MPW version of configure.in. + * mpw-make.in: New file, MPW version of Makefile.in. + +Tue Apr 11 01:42:36 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * configure.in: Require at least autoconf 2.3, because earlier + versions lose on some AIX versions. + * configure: Regenerated. + + * configure.in: Add m68k-*-elf. + * config/tc-m68k.c (comment_chars) [OBJ_ELF]: Include '#'. + (md_pseudo_table) [OBJ_ELF]: Ignore "swbeg". + (md_begin): Set alt_notend_table['&'], so svr4-style immediate + operands are accepted. + (md_apply_fix): Argument VALP should point to valueT. + (md_convert_frag): Argument SEC should be type segT. + (md_shortopts) [OBJ_ELF]: Accept 'Q' with an argument. + (md_parse_option): Ignore it. + (md_convert_frag_1): Add in frag address for the symbol in the + displacement calculation. + * config/tc-m68k.h (TARGET_FORMAT) [OBJ_ELF]: Use "elf32-m68k". + (TARGET_ARCH): Define. + (REGISTER_PREFIX_OPTIONAL) [OBJ_ELF]: Default to 0. + (LOCAL_LABEL, FAKE_LABEL_NAME, REGISTER_PREFIX_OPTIONAL): Handle + these the same way for OBJ_ELF as for M68KCOFF. + + * gdbinit.in: Add breakpoint in as_abort. + + * write.c (cvt_frag_to_fill): If offset is less than zero, + complain about it specifically, instead of reporting an assertion + failure. + (relax_segment): Complain about .org backwards, then ignore it. + Do generic rs_machine_dependent relaxation only if + TC_GENERIC_RELAX_TABLE is defined, and use its value for the base + of the table. + * tc.h (md_relax_table): Delete declaration. + * as.h (struct relax_type): Add forward declaration for type. + * config/tc-a29k.c: Deleted md_relax_table. + * config/tc-{alpha,arm,h8300,hppa,i860,m88k,mips,ppc,sparc,z8k}.c: + Ditto. + * config/tc-{h8500,i386,i960,ns32k,sh,tahoe,vax,w65}.h: Declare + md_relax_table here, and define TC_GENERIC_RELAX_TABLE to expand + to md_relax_table. + * config/tc-h8500.c (md_relax_table): No longer const. + * config/tc-w65.c (md_relax_table): Ditto. + * config/tc-sparc.c (md_short_jump_size, md_long_jump_size): + Deleted. + * doc/internals.texi: Describe TC_GENERIC_RELAX_TABLE and + WORKING_DOT_WORD. Mention md_*_jump_size (but description needs + to be fleshed out later). Note m68k PCINDEX mode has been checked + in. + +Mon Apr 10 15:57:42 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * config/tc-mips.c (nopic_need_relax): New static function, split + out from md_estimate_size_before_relax. + (md_estimate_size_before_relax): Call it. + (load_address, macro): In NO_PIC branches, if nopic_need_relax + returns nonzero, don't attempt GP optimization. + + * config/tc-m68k.c (PCINDEX): New macro. + (md_relax_table): No longer const. Add PCINDEX entries. + (m68k_ip): For AINDX with simple symbol operand, generate a + PCINDEX frag if PC is used, or do normal non-AINDX processing for + address register. + (m68k_init_after_args): If cpu is 68000 or 68010, fix + md_relax_table to prevent relaxation of PCINDEX/BYTE mode to + SHORT, since they don't support that mode. + (md_convert_frag_1, case PCLEA/LONG): Add 4 to offset, not 2. Add + support for new PCINDEX modes. + (md_estimate_size_before_relax): Process PCINDEX/SZ_UNDEF mode. + + * config/tc-m68k.c (md_convert_frag_1, case PCLEA/SHORT): Add 2 to + offset. + (m68k_ip, case most punctuation/AOFF): If using PC, call add_frag + using PCLEA. + + * config/tc-m68k.c: Don't explicitly include config.h. Deleted a + bunch of "#if 0" code and useless comments. + (struct m68k_cpu): New type. + (archs, n_archs): New variables, with single list of name/enum + mapping and aliases. + (m68k_ip): Delete the table here. + (m68k_init_after_args): Use the new table here instead of + open-coding it. + (md_parse_option, case 'm'): Ditto. + + * doc/Makefile.in (Makefile): Fix rule for running config.status. + (internals.dvi, internals.ps, internals.ps4): New targets, not + built by default. + + * doc/internals.texi: Add loud disclaimer. Refill to 79 columns, + specify fill-column in local-variables section. Change + subheadings to subsections so they can be cross-referenced. + Describe broken words, frags, frag chains, generic relaxation, + relax table, m68k relaxation, m68k addressing modes, test suite + code. Add a few words about various file formats. + + * doc/as.texinfo (m68k): Recommend using `%' with registers as the + normal case, instead of the exceptional case. + +Thu Mar 30 14:38:47 1995 H.J. Lu (hjl@nynexst.com) + + * configure.in: Change linux to default to elf. Using + i[345]86-*-linuxaout will defaults to a.out. + * configure: Rebuild. + +Wed Mar 29 17:16:30 1995 Torbjorn Granlund <tege@adder.cygnus.com> + + * config/tc-m68k.c (md_apply_fix_2): Cast negative offsets to offsetT + (for hosting on 64 bit machines). + +Tue Mar 21 16:53:27 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-mips.c (md_show_usage): Mention -mips4 and -m4650. + +Fri Mar 17 16:47:13 1995 Stan Shebs <shebs@andros.cygnus.com> + + * write.c (write_object_file): Add PROGRESS macros. + +Fri Mar 17 12:40:34 1995 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (pa_comm): Make sure to always reset the frag + and section for common symbols. + +Thu Mar 16 17:26:18 1995 Michael Meissner <meissner@cygnus.com> + + * config/tc-ppc.c (ppc_elf_validate_fix): Allow non PC relative + pointers in the .ctors and .dtors section also when using the + -mrelocatable option. + (md_parse_option): Support -m403 as a PowerPC computer. + (md_show_usage): Ditto. + +Wed Mar 15 14:45:42 1995 Ian Lance Taylor <ian@cygnus.com> + + * ecoff.c (ecoff_build_debug): The cur_scope field of a fil_ptr + may be NULL when given strange input. Don't core dump. + +Tue Mar 14 21:36:34 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-mips.c (load_register): Don't use addiu for dli of an + unsigned seemingly negative number. Don't bother shifting a zero + value. + (mips_ip): For case 'j', if there are more alternatives, and the + ISA level is at least 3, don't accept an unsigned seemingly + negative number. + +Tue Mar 14 19:16:43 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * read.c (s_app_line): Fix last patch to deal with a line number + of 1. + +Tue Mar 14 17:00:57 1995 Michael Meissner <meissner@tiktok.cygnus.com> + + * config/tc-ppc.c (ppc_elf_validate_fix): Use as_warn_where, not + as_bad_where to give a warning instead of an error. + +Mon Mar 13 17:03:46 1995 Pat Rankin (rankin@eql.caltech.edu) + + * config/tc-vax.c (md_assemble): issue a warning if a constant + is used as an operand where an immediate value is not allowed. + +Fri Mar 10 19:21:19 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * config/obj-coff.c: Redo my 10 Jan change, but get it right this + time. :-) + (fixup_segment): If linkrelax is set, just return. + (write_object_file): Don't treat h8300 and z8k specially with + regard to fixups. + * config/tc-h8300.c (md_begin): Set linkrelax. + * config/tc-z8k.c (md_begin): Ditto. + +Thu Mar 9 18:01:37 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/obj-coff.c (coff_header_append): Check return value of + bfd_coff_swap_scnhdr_out. + +Thu Mar 9 13:51:30 1995 Doug Evans <dje@canuck.cygnus.com> + + Delete this patch, it breaks the h8300 assembler. + Tue Jan 10 13:34:14 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + * config/obj-coff.c (write_object_file): Don't treat h8300 and z8k + specially with regard to fixups. + +Thu Mar 9 12:28:18 1995 Michael Meissner <meissner@tiktok.cygnus.com> + + * config/tc-ppc.c (mrelocatable): Change type to boolean. + (md_begin): Set the EF_PPC_RELOCATABLE if -mrelocatable. + +Wed Mar 8 15:39:39 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-mips.c (md_begin): Check for a cpu string of r8000 or + r10000. If mips_isa is 4, set the machine number to 8000. + (append_insn): If mips_isa is at least 4, don't generate nops for + coprocessor delays. Check INSN_READ_FPR_R when setting + mips_cprmask[1]. + (mips_emit_delays): If mips_isa is at least 4, don't generate nops + for coprocessor delays. + (mips_ip): Check for INSN_ISA4 instructions. Handle new argument + types 'h', 'R', 'N', and 'M'. + (md_longopts): Accept "mips4". + (md_parse_option): Handle -mips4, and -mcpu=10000 and -mcpu=8000. + (s_mipsset): Permit .set mips4. + +Wed Mar 8 09:36:05 1995 Michael Meissner <meissner@tiktok.cygnus.com> + + * config/tc-ppc.c (ppc_elf_validate_fix): Allow .stab sections to + have non PC relative relocations with -mrelocatable. + +Wed Mar 8 02:57:53 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * config/tc-m68k.c (opcode_ptr): Return pointer to const. + (md_begin): Make hash table errors fatal. Process opcode aliases + after main opcode table. + (md_apply_fix_2, case 4): Recode setting of lower_limit to avoid + gcc warning. + +Tue Mar 7 16:07:10 1995 Ian Lance Taylor <ian@cygnus.com> + + * doc/as.texinfo: Add documentation for SPARC V9, from Doug Evans + <dje@cygnus.com>. + +Mon Mar 6 09:58:34 1995 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c: Change all occurences of pa-89 with pa-11 to + be consistent with current naming conventions. + (md_begin): Set a default architecture and machine type. + (pa_ip): If the current instruction specifies a newer machine type + than the current machine type, then update the current machine + type. + (need_pa11_opcode): Likewise. + +Sun Mar 5 19:38:09 1995 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (pa_ip, case 'z'): Don't lose argument + relocation bits for absolute calls. + +Fri Mar 3 17:41:50 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * config/tc-h8300.* (md_operand): Change empty function to empty + macro. + + * config/tc-h8300.c (build_bytes): Make H8/300-H warning message + clearer. + + * write.c (write_contents): If bfd_set_section_contents fails, + print a message and exit, instead of aborting. + +Fri Mar 3 16:26:19 1995 Michael Meissner <meissner@tiktok.cygnus.com> + + * tc.h (md_apply_fix3): If MD_APPLY_FIX3 is defined, declare + md_apply_fix3. + + * write.c (fixup_segment): If MD_APPLY_FIX3 is defined, call + md_apply_fix3 with the normal 2 arguments and the current segment + pointer instead of md_apply_fix. + + * config/tc-ppc.h (MD_APPLY_FIX3): Define. + + * config/tc-ppc.c (ppc_elf_validate_fix): Warn if -mrelocatable + and a non PC relative relocation that isn't in the .got2 segment + was performed. + (md_apply_fix3): Rename from md_apply_fix and take segment pointer + as third argument. If ELF object format, call ppc_elf_validate_fix + for normal relocations. + (md_parse_option): If ELF object format, recognize the + -mrelocatable switch. + +Thu Mar 2 16:34:44 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-i386.h (AOUT_MACHTYPE): Define as 100, not 0. + +Tue Feb 28 18:29:27 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * config/tc-arm.c, config/tc-arm.h (md_operand): Replaced empty + function in .c file with empty macro in .h file. + * config/tc-h8500.*, config/tc-hppa.*, config/tc-i386.*, + config/tc-i860.*, config/tc-i960.*, config/tc-ns32k.*, + config/tc-ppc.*, config/tc-sh.*, config/tc-sparc.*, + config/tc-tahoe.*, config/tc-vax.*, config/tc-w65.*, + config/tc-z8k.*: Ditto. + * config/tc-m68k.*: Ditto. + + * config/tc-m68k.c (mote_pseudo_table): Removed dots from opcode + names. + + * read.c (s_app_line): Ignore non-positive line numbers. + +Tue Feb 28 15:34:14 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-i386.c (tc_i386_fix_adjustable): Don't adjust PLT or + GOT relocs either. + +Mon Feb 27 13:03:41 1995 Kung Hsu <kung@mexican.cygnus.com> + + * configure.in: add a29k-*-vxworks configuration. + +Fri Feb 24 14:41:15 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-mips.c (load_register): Take dbl argument to determine + handling of signed 32 bit values in 64 bit modes. Change all + callers. + (macro): Handle M_DLI and M_DLA_AB. + +Wed Feb 22 23:10:56 1995 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (md_apply_fix): Don't subtract the value of the + add symbol if it's a common symbol (the value of a common symbol + is its size, not a value in the traditional sense). + +Wed Feb 22 21:12:28 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-mips.c (append_insn): If listing_prev_line is called, + call frag_grow to make sure there is still room for a variant. + +Fri Feb 17 14:50:08 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-mips.c (md_pseudo_table): Add 2byte, 4byte and 8byte + if OBJ_ELF. From gary@Intrepid.COM (Gary Funck). + + * config/obj-elf.c (elf_frob_symbol): Warn if a symbol is both + weak and common. + * config/obj-aout.c (obj_aout_frob_symbol): Likewise. + +Fri Feb 17 12:43:47 1995 Michael Meissner <meissner@tiktok.cygnus.com> + + * config/tc-ppc.c (md_pseudo_table): Don't redefine byte under + ELF. + (ppc_elf_cons): Don't support @pcrel any more, since DIFF_EXPR_OK + allows the normal expressions to generate it. + (md_apply_fix): Convert BFD_RELOC_32 with pcrel bit set into + BFD_RELOC_32_PCREL. Abort if either BFD_RELOC_16 or BFD_RELOC_8 + need PC relative relocations. + + * config/tc-ppc.h (DIFF_EXPR_OK): Define to allow PC relative + expressions to be handled. + +Thu Feb 16 14:30:13 1995 Doug Evans <dje@cygnus.com> + + * expr.c (operand): Move md_operand handling to default case + (so it works). + +Wed Feb 15 16:08:47 1995 Jason Molenda <crash@cygnus.com> + + * config/tc-h8500.c (tc_coff_symbol_emit_hook): Add ignored + parameter, to match prototype. + +Wed Feb 15 15:07:00 1995 Michael Meissner <meissner@tiktok.cygnus.com> + + * config/tc-ppc.c (md_pseudo_table): If ELF, go to ppc_elf_cons + instead of cons. + (md_show_usage): Show all of the PowerPc options. + (ppc_elf_suffix): New function to recognize ELF suffixes that + specify a relocation, such as @GOT. + (ppc_elf_cons): Replacement for the standard cons function that + knows about the ELF suffixes. + (ppc_fixup): Add reloc field to hold non-standard relocation. + (md_assemble): Handle ELF suffixes like @GOT. + (md_create_short_jump): Dummy in case WORKING_DOT_WORD is not + defined. + (md_create_long_jump): Ditto. + (md_short_jump_size): Ditto. + (md_long_jump_size): Ditto. + (md_apply_fix): Handle BFD_RELOC_32_PCREL, BFD_RELOC_LO16, + BFD_RELOC_HI16, BFD_RELOC_HI16_S, BFD_RELOC_PPC_TOC16, and + BFD_RELOC_16 relocations. If relocation can not be found, print + the decimal value of the relocation. + +Wed Feb 15 11:46:02 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-mips.c (md_apply_fix): Accept BFD_RELOC_16, for + DWARF. From gary@Intrepid.COM (Gary Funck). + + * config/tc-mips.c (macro): Handle M_U{L,S}D[_A] (unaligned double + loads and stores). + + * config/tc-i386.c (tc_i386_fix_adjustable): Do adjust global + symbols if OBJ_AOUT. + + * config/tc-mips.c (macro): Don't use the target register as a + base register when building the address for M_L{W,D}{L,R}_AB. + +Mon Feb 13 14:44:32 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-mips.c (KT0, KT1): Define. + (mips_ip): Recognize $kt0 and $kt1 as register names. + + * config/tc-sparc.h (tc_fix_adjustable): Define if OBJ_ELF. + * config/tc-sparc.c (md_apply_fix): If OBJ_ELF, subtract out the + value of a defined symbol; the value was added in by + fixup_segment. This was previously corrected, if the reloc was + changed to be against a section symbol, in tc_gen_reloc. + +Fri Feb 10 14:04:04 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-i386.c (tc_i386_fix_adjustable): Use S_IS_EXTERN + rather than !S_IS_LOCAL. + +Thu Feb 9 18:16:34 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-i386.c (md_assemble): Adjust conditions for changing + BFD_RELOC_32 to BFD_RELOC_386_GOTPC to handle a switch in frags. + Patch originally from Rob Ryan <robr@cmu.edu>. + + * config/tc-i386.c: Include subsegs.h. + (tc_i386_fix_adjustable): Declare return value. + (i386_operand): Don't use an assignment directly as a condition. + +Thu Feb 9 10:37:13 1995 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (md_apply_fix): In some cases subtract the + value of the add symbol from valp. Offsets braindamage in the + "machine independent" fixup_segment. + +Wed Feb 8 18:51:23 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * messages.c (as_abort): New function. + * as.h (as_abort): Declare it. + (abort): New macro. + + Thu Jan 19 18:10:05 1995 Pat Rankin (rankin@eql.caltech.edu) + + * config/vms-conf.h (HAVE_UNISTD_H): define it unconditionally. + * config-gas.com: test for availability of <unistd.h>; create a + rudimentary one if necessary. + +Tue Feb 7 13:34:46 1995 Michael Meissner <meissner@tiktok.cygnus.com> + + * configure.in: Add powerpc-*-eabi support, which is the same as + powerpc-*-elf. + (configure): Rebuild with autoconf. + +Mon Feb 6 03:37:00 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + Changes from Bryan Ford <baford@schirf.cs.utah.edu> for i386 + 16-bit and msdos support: + * config/tc-i386.c (flag_16bit_code): New variable. + (set_16bit_code_flag): New function. + (md_pseudo_table): Added entries "code16" and "code32". + (md_assemble): Ensure that correct data-size prefixes get emitted, + based on the current mode. Ensure that 32-bit addressing will + always be done. Move segment-prefix handling code. (Why?) Use + 16-bit jumps for 16-bit code, 32-bit jumps for 32-bit code. + * config/tc-i386.h (MAX_PREFIXES): Bump to 5. + (Data16, Data32): Define. + * doc/as.texinfo (i386-16bit): New node. + * configure.in (i386-*-msdos*): New target, using a.out format. + * configure: Regenerated. + +Thu Feb 2 15:21:24 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * config/tc-m68k.c (cpu32_control_regs): New macro. + (m68k_init_after_args): Use it, for cpu32 processors. + + Tue Jan 31 17:20:45 1995 Pat Rankin (rankin@eql.caltech.edu) + + * config/obj-vms.c (vms_tir_stack_psect): new routine; + (VMS_Set_Data, VMS_Set_Psect, VMS_Store_PIC_Symbol_Reference, + VMS_TBT_Routine_Begin, VMS_TBT_Line_PC_Correlation): use it; + (VMS_Global_Symbol_Spec, VMS_Procedure_Entry_Pt): treat + Psect_Number as `unsigned'. + + Thu Jan 26 17:06:28 1995 Pat Rankin (rankin@eql.caltech.edu) + + * config/obj-vms.c: performance tuning. + (VMS_Symbol_type_list): convert from single list head to small + array of list heads; + (SYMTYP_HASH): new macro for accessing VMS_Symbol_type_list[]; + (find_symbol, setup_basic_type, VMS_typedef_parse): use it; + (VMS_RSYM_Parse): move S_GET_VALUE() inside switch to avoid + calling it for uninteresting cases. + +Wed Feb 1 23:52:45 1995 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (md_apply_fix): Go ahead and call + hppa_field_adjust to get a new value for R_DATA_ONE_SYMBOL + relocations in SOM. + (hppa_fix_adjustable): Refine somewhat. + +Fri Jan 27 21:29:53 1995 Michael Meissner <meissner@tiktok.cygnus.com> + + * config/tc-ppc.h (NO_STRING_ESCAPES): Don't define if we are + using ELF. + +Thu Jan 26 19:03:42 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * config/tc-h8300.c (get_specific): Add parens around | inside &. + (skip_colonthing): Set L_8 if ":8" is specified. + +Thu Jan 26 18:38:01 1995 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-ppc.c (md_begin): Permit mfdec to be duplicated on the + 601. Check that the error return from hash_insert is "exists". + +Thu Jan 26 11:35:33 1995 Michael Meissner <meissner@cygnus.com> + + * configure: Add support for configuring powerpc-*-eabi. + + * config/tc-ppc.c (GOT_symbol): Define if object format is ELF. + + * config/tc-ppc.h (GLOBAL_OFFSET_TABLE_NAME): Define if object + format is ELF and not defined to be "_GLOBAL_OFFSET_TABLE_". + +Wed Jan 25 16:23:13 1995 Jim Wilson <wilson@chestnut.cygnus.com> + + * tc-sh.c (little): Add argument IGNORE to avoid compiler warnings. + (md_pseudo_table): Add space for consistent formatting. + (COND8_RANGE, COND12_RANGE): Delete unused macros. + (COND8_F, COND8_M, COND12_F, COND12_M, UNCOND12_F, UNCOND12_M): + Correct minimum and maximum branch offsets. Add comments explaining + why these numbers are correct. + +Wed Jan 25 15:32:09 1995 David Edelsohn <edelsohn@mhpcc.edu> + + * config/tc-ppc.c (md_parse_option): Accept mpwr2 as a synonym for + mpwrx; mppc32, m603, and m604 as synonyms for mppc; and mppc64 and + m620 for PowerPC64 mode. + (ppc_symbol_new_hook): Add T0 as synonym for TC0 suffix. + +Tue Jan 24 16:44:23 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * config/tc-vax.c (vip): Introduce new ptr-to-const local variable + for scanning operand string. + + Sat Jan 21 17:50:38 1995 Pat Rankin (rankin@eql.caltech.edu) + + * config/vax-inst.h (struct vop, fields `vop_warn', `vop_error'): + make them pointers to const char; + (struct vit, field `vit_error'): ditto. + * config/atof-vax.c (md_atof): rename local `littlenum_pointer' + to `littlenumP' to avoid shadowing file scope variable. + * config/tc-vax.c (vip_begin, vip_op_defaults, vip_op_1): make + string arguments be pointers to const char; + (vip): make `alloperr' const char *; + (vip_op): make `err' and `wrn' const char *; rename `access' to + `access_mode' to avoid shadowing library function. + * config/obj-vms.c (`symbol_name'): make it const char *; + (get_struct_name): cast one use of `symbol_name' to char * + [caller guarantees that it won't modify the pointer's target]; + (PUT_COUNTED_STRING): use pointer to const char; + (VMS_typedef_parse): make `pnt2' const char *; + (Write_VMS_MHD_Records): make `cp' const char *; + (VMS_Modify_Psect_Attributes, array `Attributes'): make const, + and make field `Name' pointer to const char; + + * as.h (`seg_name[]' declaration): pointers to const char; + (struct _pseudo_type, field `poc_name'): pointer to const char. + * subsegs.c (`seg_name[]' definition): ditto; + * hash.c (hash_ask): rename argument `access' to `access_type' + to avoid shadowing library function. + * write.c (variable `the_object_file'): move from file scope + to block scope within write_object_file(); free it after use; + (fixup_segment): conditionally exclude it for OBJ_VMS. + (cvt_frag_to_fill): rename argument `headers' to `headersP' + to avoid shadowing file scope variable. + +Mon Jan 23 21:42:39 1995 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (pa_ip, case 'D'): Fix typo which caused + miscompilation of "diag" instructions. + +Mon Jan 23 15:51:41 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * configure: Regenerated. + + * config/tc-mips.c: Include libiberty.h. + +Mon Jan 23 14:07:58 1995 Ian Lance Taylor <ian@sanguine.cygnus.com> + + * config/tc-sh.h (tc_init_after_args): Don't define. + * config/tc-sh.c (md_begin): Remove unused variable table. + (md_assemble): Remove unused variable p. + (md_convert_frag): Cast fr_address to unsigned long for printf. + (md_apply_fix): Use as_warn_where rather than as_warn. + (sh_init_after_args): Remove empty function. + + * configure.in (i386-*-gnu*elf*): New target. + +Sat Jan 21 19:02:23 1995 Ian Lance Taylor <ian@tweedledumb.cygnus.com> + + * hash.c (hash_ask): If we find the slot after wrapping around, + break out of the loop. Fixes bug in Jan 18 change. + +Fri Jan 20 17:07:31 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * hash.c (hash_code): Undo last change. + +Thu Jan 19 14:49:47 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * config/tc-alpha.c (alpha_ip): Initialize local variables to keep + gcc quiet. + (gpdisp_hi16_howto): Don't use "const" with reloc_howto_type. + (in_range_signed): Add parens around subtraction inside shift. + * gasp.c (do_data): Initialize local variable "opname". + (istrue): Provide a default case to set "res" and keep "gcc -Wall" + quiet. + * write.c (write_contents): Deleted unused variable. + (print_symbol_value_1): Declare. + * hash.c (hash_ask): Delete disabled non-strcmp version of the + code, and automatic variables used only in those sections. + * write.c (chain_frchains_together_1): Only define local variable + "prev_fix" if BFD_ASSEMBLER. + * flonum-konst.c (dummy1): Return void. + * config/tc-vax.c (md_assemble): Remove two comparisons of + unsigned numbers versus zero. + * as.h (bcopy): If neither memcpy nor bcopy is defined as a macro, + define to use memcpy. + + * config/tc-alpha.c, config/alpha-opcode.h: Revert 2 June changes. + Turns out we never got the assignment done after all. + + Cleanup of VAX and VMS code, from Pat Rankin: + * config/obj-vms.c: Changed exported function names to lower case. + (Changed call sites in write.c.) Declare VMS system function + names used, conditional on actually being on VMS. Changed many + functions that returned no useful value to now be declared to + return void. Removed many unused variables. Supply missing + return statements or values. Supply `default' case in switch + statements. Ensure local variables get initialized. + * config/tc-vax.c: Minor changes to silence "gcc -Wall". + * config/obj-vms.h, config/tc-vax.h: Added some missing + declarations. + +Wed Jan 18 13:49:26 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * atof-generic.c (flonum_print) [TRACE]: New function. + (atof_generic) [TRACE]: Print multiplier before multiplication, + and print multiplication result before and after copy. + + * flonum-mult.c (flonum_multip): Avoid sign extension problems + around multiplication operation. + + * atof-generic.c (ASSUME_DECIMAL_MARK_IS_DOT): Define. + (atof_generic) [ASSUME_DECIMAL_MARK_IS_DOT]: Check for '.' + explicitly instead of calling strchr. + + * config/tc-sparc.c (sparc_ip): When scanning successive opcode + table entries, check names for pointer equality before doing + string comparisons. + + * hash.c (hash_ask): Call strcmp instead of expanding it inline. + (hash_code): Replaced with a version from bfd. + + * config/obj-coff.c (write_object_file): If COFF_FLAGS isn't + defined, default it to zero. + +Wed Jan 18 12:16:07 1995 Ian Lance Taylor <ian@sanguine.cygnus.com> + + * write.c (fix_new_internal): Clear fx_bsr on those targets which + use it. + + * expr.c (operand): Parenthesize && within ||. + * listing.c (listing_newline): Likewise. + (list_symbol_table): Use %lu to print sizeof. + * symbols.c: Comment out unused function indent. + (print_symbol_value_1): Cast pointer to unsigned long for printf. + * config/obj-coff.c (do_relocs_for): Only declare symbol_ptr if it + will be used. + * config/tc-h8300.c (md_begin): Remove unused variable reg. + (get_operand): Declare type of parameter direction. Remove unused + variable size. + (get_specific): Fix comment to avoid nested comments. + (check_operand): Cast X_add_number to unsigned long for printf. + (build_bytes): Remove unused local variables output_ptr, part, and + high. + (build_bytes): Cast X_add_number to unsigned long for printf. + (clever_message): Remove unused variable scan. + (md_assemble): Remove unused variable i. + (tc_coff_sizemachdep): Remove unused function. + * tc-h8300.h (tc_reloc_mangle): Declare. + +Tue Jan 17 10:58:06 1995 Ian Lance Taylor <ian@sanguine.cygnus.com> + + * config/tc-mips.c (mips_4650): New static variable. + (md_begin): Handle a cpu string of "4650". If mips_4650 was not + initialized, set it to 0. + (append_insn): Don't insert nops around HI and LO on a 4650. + (mips_emit_delays): Likewise. + (mips_ip): Use INSN_ISA mask to check ISA of instruction. Check + for INSN_4650. + (md_longopts): Add m4650 and no-m4650. + (md_parse_option): Handle mips-cpu=4650. Handle -m4650 and + -no-m4650. + * doc/as.texinfo: Document new MIPS options. + +Sat Jan 14 23:48:13 1995 Steve Chamberlain <sac@jonny> + + * config/tc-w65.c, config/tc-w65.h, config/w65.mt: Newfiles. + * config/obj-coff.h: Cope with w65. + * configure, configure.in: Recognize w65. + +Thu Jan 12 17:56:24 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * app.c (do_scrub_next_char) [__GNUC__ && __OPTIMIZE__]: If `get' + function is scrub_from_file, call scrub_from_file directly, and + get gcc's inlining capability into the act. + + * Makefile.in (VMS_OTHER_OBJS): Add ../libiberty/hex.o. + (OBJS): Delete hex-value.o. + (REAL_SOURCES): Delete hex-value.c. + (hex-value.o): Delete dependencies. + * hex-value.c: Deleted. + * as.c (main): Call hex_init. + * expr.c, config/tc-mips.c: Include libiberty.h. Replace + hex_value array references with hex_* macros. + +Wed Jan 11 17:51:38 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * config/tc-h8300.h (COFF_FLAGS): Don't define. + * config/tc-h8500.h (COFF_FLAGS), config/tc-sh.h (COFF_FLAGS), + config/tc-z8k.h (COFF_FLAGS): Ditto. + + * config/obj-coff.c (KEEP_RELOC_INFO): Make sure it's always + defined. + + * config/tc-m68k.c (m68k_ip, cases AOFF and AINDEX): Don't + generate 68020 addressing modes for a 68000 processor. + (md_estimate_size_before_relax, cases PCREL and PCLEA): Ditto. + +Tue Jan 10 13:34:14 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * config/obj-coff.c (write_object_file): Don't treat h8300 and z8k + specially with regard to fixups. + +Mon Jan 9 16:22:28 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * config/tc-mips.c (RELAX_RELOC1, RELAX_RELOC2): Cast values to + bfd_vma before subtracting. + + * config/obj-coff.c (size_section): Handle rs_space like rs_fill, + but make sure fr_symbol is null. + (fill_section): Ditto. + +Sun Jan 8 16:14:19 1995 Ian Lance Taylor <ian@tweedledumb.cygnus.com> + + * config/tc-mips.c (mips_ip): Fix handling of floating point + values when GPOPT is not defined. + +Fri Jan 6 16:59:41 1995 Ken Raeburn <raeburn@cujo.cygnus.com> + + * gasp.c: Include string.h. Put config.h before other includes. + + * config/tc-alpha.c (alpha_ip): Delay calls to emit_add64 until + after any remaining operands are also known to match. + +Fri Dec 30 18:21:41 1994 Ken Raeburn <raeburn@cujo.cygnus.com> + + * listing.c (list_symbol_table): Build a format string based on + the size of the value to be printed, as long as "unsigned long" is + at least as wide, after handling the special case of 4-byte + values. + + * Makefile.in (dependencies): Make $(OBJS) depend on as.h and + everything it includes. Delete those files from per-file + dependencies. + + * as.h (relax_substateT): Now defined to be unsigned int. + (relax_stateT): Separate typedef from enum definition. + (enum _relax_state): Reordered for better punctuation. Added new + values rs_align_code and rs_space. + (lineno, struct lineno_struct): Unused, deleted. + + * as.h: No longer include assert.h. + (as_assert): Declare. + (assert): New definition, calls as_assert longer needed. + (__PRETTY_FUNCTION__): Provide default for older versions of gcc. + * messages.c (as_assert): New function. + * gdbinit.in: Put a breakpoint there. + + * read.c (s_space): Rewrite to handle general expressions. + Generate rs_space frags for non-constant values. + * write.c (cvt_frag_to_fill): Treat rs_align_code and rs_space + like rs_align and rs_org. Verify that fr_offset is non-negative, + and force frag type to rs_fill only after assertion checks. + (relax_segment): Treat rs_align_code like rs_align. Treat + rs_space like rs_org in the first switch; in the second, force the + operand to a constant, and use it for the growth size. + +Wed Dec 28 20:57:37 1994 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (pa_subspace): For sections with the ZERO + attribute, set the "bss" field in the appropriate seginfo structure. + +Wed Dec 28 15:01:01 1994 Ken Raeburn <raeburn@cujo.cygnus.com> + + * subsegs.h: Include obstack.h. + +Tue Dec 27 18:16:04 1994 Ken Raeburn <raeburn@cujo.cygnus.com> + + * as.h (struct frag): Enable align* components now. + +Tue Dec 20 14:56:31 1994 Ken Raeburn <raeburn@cujo.cygnus.com> + + * frags.c (frag_init): Call obstack_begin on `frags'. + * subsegs.c (subsegs_begin): Don't do it here. + * as.c (main): Call frag_init before subsegs_begin. + + * frags.c (frag_append_1_char): New function. + * frags.h (frag_append_1_char): Declare it. + (FRAG_APPEND_1_CHAR): Call it. Old definition is commented out + for now. + + * as.h (struct frag): Added (but commented out) new fields for + tracking current alignment. + (frag_now_fix): Changed macro to function declaration. + * frags.c (frag_now_fix): Define function here. + (frag_new): Use it instead of accessing `frags' directly. + * frags.h (frags): Change comment to indicate it shouldn't be + accessed directly. + * subsegs.h (struct frchain): New field frch_obstack, intended to + eventually replace global `frags' obstack. + * subsegs.c (subseg_set_rest): Use frag_now_fix instead of + accessing `frags' directly. Initialize fields of new frchainS + explicitly instead of with memset. + * config/obj-coff.c (obj_coff_ln) [!BFD_ASSEMBLER]: Use + frag_now_fix. + * config/tc-mips.c (s_loc), config/obj-vms.c + (vms_resolve_symbol_redef), symbols.c (colon): Likewise. + + * config/tc-m68k.c (md_apply_fix_2): Use offsetT and addressT + instead of long and unsigned long. + (md_apply_fix): Cast value before passing it. + + * config/obj-aout.h, config/obj-coff.c, config/obj-elf.h, + config/obj-som.h, config/tc-h8500.c, config/tc-hppa.c, + config/tc-hppa.h, config/tc-sh.c, config/tc-z8k.c: Don't rely on + use of ".." when including header files. + + * config/obj-coff.c (fixup_segment): Reformat condition in an `if' + statement. + + * Makefile.in (SUBDIR_INCLUDES): Deleted. + +Tue Dec 20 13:40:36 1994 Ian Lance Taylor <ian@sanguine.cygnus.com> + + * config/obj-coff.h: Include bfd/libcoff.h, not libcoff.h. + +Mon Dec 19 16:53:36 1994 Ian Lance Taylor <ian@sanguine.cygnus.com> + + * config/tc-mips.c (load_register): Rewrite to handle O_big 64 bit + constants. + (mips_ip): Accept O_big constants in case 'I'. Change case + 'i'/'j' to treat an O_big constant as an out of range value. + +Mon Dec 19 14:15:07 1994 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (pa_subspace): Make sure SEC_HAS_CONTENTS is + clear for a section with the "ZERO" attribute. + + * Reduce useless symbols for ELF in an attempt to make smaller + objects and speed up the linker. + * config/tc-hppa.c (struct call_info): Replace end_symbol field + with a size field. + (hppa_elf_mark_end_function): Delete unneeded function. + (pa_build_unwind_subspace): For the 2nd unwind relocation, use + the function symbol + function size instead of a special symbol + for the end of the function. + (process_exit): Compute the function size here. Don't call + hppa_elf_mark_end_of_function anymore. + (pa_procend): Likewise. + (hppa_fix_adjustable): Only reject 32bit relocations for SOM. + (elf_hppa_final_processing): Simplify. + +Mon Dec 19 13:49:07 1994 Ken Raeburn <raeburn@cujo.cygnus.com> + + * configure.in: Recognize mips-sony-bsd and mips-dec-bsd, but + reject other vendors until we can be sure we're consistent with + bfd. + + * config/obj-vms.c (Create_VMS_Object_File): Instead of formatting + a buffer to pass to `error', just call `as_fatal' directly. + (VMS_Psect_Spec): Ditto. + (VMS_TBT_Module_Begin, VMS_TBT_Source_File, gen1, + VMS_typedef_parse, VMS_LSYM_Parse, VMS_Emit_Globalvalues): Call + as_tsktsk instead of printf. + (VMS_TBT_Module_Begin, VMS_TBT_Line_PC_Correlation, + VMS_TBT_Source_File, VMS_TBT_Source_Lines, + VMS_Store_Repeated_Data, VMS_Check_For_Main): Use explicit + integers rather than sizeof expressions using basic integer types, + in case host and target aren't the same. Use memcpy or COPY_* + macros instead of possibly unaligned word or longword assignment. + + * config/obj-vms.h (OBJ_SYMFIELD_TYPE): New macro. + * config/obj-vms.c (VMS_Store_PIC_Symbol_Reference, + VMS_Check_For_Main, VMS_write_object_file): Use sy_obj instead of + forcing sy_number to hold a pointer. + +Fri Dec 16 14:40:16 1994 Ken Raeburn <raeburn@cujo.cygnus.com> + + * config/tc-sh.c (md_begin): Don't fill in md_relax_table here. + (md_relax_table): Use static initialization. + + * config/tc-h8300.c (parse_exp, get_operands, clever_message, + md_assemble, tc_crawl_symbol_chain, md_undefined_symbol, + tc_headers_hook, md_operand, md_number_to_chars): Don't use DEFUN. + + * Makefile.in (CHECKFLAGS): Don't pass AS_FOR_TARGET, + CC_FOR_TARGET, OBJDUMP_FOR_TARGET, NM_FOR_TARGET; they're not + used. + (AS_FOR_TARGET, CC_FOR_TARGET, OBJDUMP, OBJDUMP_FOR_TARGET, NM, + NM_FOR_TARGET): Don't define. + (VMS_OTHER_OBJS): Add xmalloc.o and xexit.o from libiberty. + (tooldir): Use exec_prefix, not libdir. + +Fri Dec 16 11:07:10 1994 Stan Shebs <shebs@andros.cygnus.com> + + * config/obj-coff.h: Include libcoff.h, not ../bfd/libcoff.h. + + * as.h: Include progress.h. + * as.c (main): Call START_PROGRESS and END_PROGRESS. + (main, perform_an_assembly_pass): Call PROGRESS. + +Fri Dec 16 00:46:08 1994 Ian Lance Taylor <ian@tweedledumb.cygnus.com> + + * write.c (adjust_reloc_syms): Use bfd_is_und_section and + bfd_is_abs_section rather than comparing against &bfd_und_section + and &bfd_abs_section. + +Thu Dec 15 15:27:14 1994 Jim Wilson <wilson@chestnut.cygnus.com> + + * config/tc-sh.c (md_begin): Use a local variable when + initializing md_relax_table to avoid errors about modifying a + const data structure. + +Tue Dec 13 15:42:27 1994 Ian Lance Taylor <ian@sanguine.cygnus.com> + + * config/tc-ppc.c (tc_gen_reloc): Remove OBJ_ELF hack which + appears to no longer be needed. + +Tue Dec 13 08:04:15 1994 Ian Lance Taylor <ian@cygnus.com> + + * config/tc-mips.c (macro_build): Accept BFD_RELOC_PCREL* without + requiring that the X_op_symbol be in the text_section. + (macro): Change the test for a legel expression difference to + correspond to changes in pseudo_set in read.c. + +Fri Dec 9 21:04:17 1994 Ken Raeburn <raeburn@cujo.cygnus.com> + + * write.c (write_relocs) [RELOC_EXPANSION_POSSIBLE]: Use + bfd_install_relocation. + + * ecoff.c (ecoff_set_gp_prolog_size): If there is no current + routine, just return. + + * config/tc-alpha.c (alpha_ip, case 'B', subcase 'c'): Use opcode + value from pattern instead of assuming jsr. + * config/alpha-opcode.h (jmp): Add a "1,Bc" form. + +Thu Dec 8 17:48:25 1994 Ken Raeburn <raeburn@cujo.cygnus.com> + + * Makefile.in (NM_FOR_TARGET): Use ../binutils/nm.new, not just + plain nm. + + * configure.in (ns32k-pc532-mach*): Select correct emulation. + (mips-sony-bsd*): Use ecoff. + (mips-*-gnu*): New target, using aout format, from Roland McGrath. + * configure: Regenerated. + +Tue Nov 29 13:58:10 1994 Ken Raeburn <raeburn@cujo.cygnus.com> + + Use libiberty version of xmalloc: + * Makefile.in (REAL_SOURCES): Delete xmalloc.c. + (OBJS): Delete xmalloc.o. + (xmalloc.o): Delete dependencies. + * as.c (main): Call xmalloc_set_program_name once program name is + known. + + * config/tc-alpha.c (in_range_signed, in_range_unsigned): New + routines, split from in_range. + (in_range): Deleted. All calls changed to in_range_*signed. + (create_lita_section): Macro deleted. Single use expanded in + place. + (alpha_ip): Handle `t' and `8' operand types. + (md_apply_fix): Handle BFD_RELOC_12_PCREL. Print name of + unhandled relocation types. + * config/alpha-opcode.h: Added HALT and DRAINA. Disabled MOVI, + since it doesn't work, and isn't supported by the native + assembler. + + * input-scrub.c: Change wording of a comment to avoid interference + with Cygnus source-control tools. + + * as.h (errno) [NEED_DECLARATION_ERRNO]: Declare. + + * config/tc-m68k.c (init_table): List buscr and pcr control + registers. + (m68k_ip, case 'J'): Handle them. + + Delete signal handler code. It's been disabled since March 1993 + without complaints. + * as.c: Don't include signal.h. + (got_sig): Unused function deleted, declaration deleted. + (SIGTY): Macro deleted. + (main): Deleted disabled code for establishing signal handler. + +Mon Nov 28 11:37:35 1994 Doug Evans <dje@canuck.cygnus.com> + + * app.c (do_scrub_next_char): Insert missing newline at end of file + like warning says we do. + +Mon Nov 28 00:11:15 1994 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-hppa.h (pa_check_eof): Declare new extern function. + (tc_frob_file): Define to call pa_check_eof. + + * config/tc-hppa.c (pa_check_current_space_and_subspace): New + function to verify the current space and subspace are reasonable. + Call for the appropriate pseudo-ops and before instruction parsing. + (pa_check_eof): New function to verify enter/exit and proc/procend + pairs match at EOF. + (pa_code): Simplify. + + * config/obj-som.c: Delete #if 0 code. + +Wed Nov 23 19:36:09 1994 Steve Chamberlain (sac@jonny.cygnus.com) + + * config/obj-coff.h (TARGET_FORMAT): Select between coff-shl and + coff-sh. + * config/sh.mh (TARG_CPU_DEPENDENTS): Get it right. + * config/tc-sh.c (little): New function. + (md_parse_option): Notice new option. + (build_relax, build_Mytes, md_atof, md_convert_frag, md_apply_fix): + Cope with little endian data. + * config/tc-sh.h (COFF_MAGIC, LISTING_HEADER): Endian dependent. + +Wed Nov 23 10:54:38 1994 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (tc_gen_reloc, ELF variant): Revert last + change. The real bug was in bfd/elfcode.h and has been fixed. + +Tue Nov 22 23:31:20 1994 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (tc_gen_reloc, ELF variant): Add section->vma + to the relocation's offset. + +Tue Nov 22 14:37:58 1994 Steve Chamberlain (sac@jonny.cygnus.com) + + * Makefile.in (INSTALL_XFORM): Fix typo. + +Tue Nov 22 10:23:25 1994 J.T. Conklin <jtc@rtl.cygnus.com> + + * config/tc-alpha.c (s_alpha_set): Ignore the .set (no)move and + .set (no)volatile directives. + +Tue Nov 15 21:44:13 1994 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (pa_subspace): Make sure to always reset + current_subspace. + (pa_text, pa_data): Likewise. + + * config/tc-hppa.c (pa_align): New function. Aligns the current + offset within the current subspace along with updating the + alignment of the subspace itself. + (pa_subspace): Default alignment to one byte rathern than zero + bytes to avoid setting alignment to log2(0). + (md_pseudo_table): Use pa_alignment for .align. + +Tue Nov 15 15:24:45 1994 Ken Raeburn <raeburn@cujo.cygnus.com> + + * messages.c (as_fatal): Always put a space after "fatal error:" + when printing message. + +Tue Nov 15 11:10:43 1994 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-hppa.h (obj_frob_symbol): Delete. + (tc_frob_symbol): Make definition conditional on OBJ_SOM or + OBJ_ELF. For ELF subtract out symbol->section->vma for non common + symbols. + +Wed Nov 9 14:53:03 1994 Ken Raeburn <raeburn@cujo.cygnus.com> + + * config/te-delta.h: New file, derived from te-sysv32.h. + +Wed Nov 9 11:52:44 1994 Ian Lance Taylor (ian@cygnus.com) + + * config/tc-ppc.c (ppc_bf): Always set coff_line_base. + +Mon Nov 7 01:58:49 1994 Ken Raeburn <raeburn@cujo.cygnus.com> + + * Makefile.in (VERSION): Bump to 2.5.3. + + * configure.in: Compare generic cpu name against "sparc", not + "sparc*", since sparc variants should be changed to "sparc". + * configure: Regenerated with autoconf 2.1. + + * config/tc-a29k.c (octal, toHex): Variables deleted. + (isoctal): Macro deleted. + (md_begin): Don't initialize them. + (machine_ip, case 'P'/'A'): For absolute operand, generate an + error message if it's out of range. + (md_apply_fix, case RELOC_JUMPTARG): Check range for PC-relative + jumps. + (md_apply_fix): Delete code inside "#if 0". + +Thu Nov 3 20:20:40 1994 Ken Raeburn <raeburn@cujo.cygnus.com> + + * config/go32.mh: Unused file deleted. + + * read.c (get_absolute_expression): Indicate that the error may + merely be that the expression can't currently be reduced. + +Thu Nov 3 16:09:59 1994 J.T. Conklin (jtc@rtl.cygnus.com) + + * config/tc-m68k.h (TARGET_FORMAT): If TE_NetBSD define as + "a.out-m68k-netbsd". + * config/tc-sparc.h (TARGET_FORMAT): If TE_NetBSD define as + "a.out-sparc-netbsd". + + * config/te-nbsd.h: New file, NetBSD target emulation + * config/te-netbsd.h: Removed. + * configure.in (i[345]86-*-netbsd*,m68*-*-netbsd*,sparc*-*-netbsd*): + Set bfd_gas. Use nbsd emulation. + +Thu Nov 3 17:44:47 1994 Ken Raeburn <raeburn@cujo.cygnus.com> + + Changes from net 2.5.2 release branch: + + * configure.in: Put AC_DEFINE(sparcv9) on its own line, so that + the shell variable settings associated with it are permanent. For + CPUs requiring bfd_gas=yes, select it based on CPU only, not + individual target names. Handle m68k-hp-hpux*, not just -hpux. + + * config/tc-z8k.c (tc_coff_symbol_emit_hook): Add dummy argument + to match prototype in obj-coff.h. + + * configure.in: Skip tests for defining WANT_FOPEN_BIN and + IBM_COMPILER_SUX. + * acconfig.h: Deleted them. + * configure, conf.in: Rebuild with autoconf 2.0. + * config/go32.cfg, config/vms-conf.h: Updated. + + * config/tc-m68k.c (md_apply_fix_2, md_convert_frag_1): Always use + IBM_COMPILER_SUX version of code, with comments indicating why. + + * listing.c (file_info): Use text mode when opening file for read. + Use "r" directly, no macro. + * input-file.c (input_file_open): Don't use FOPEN_RT, just use + "r". + * read.c (s_include): Ditto. + * output-file.c (output_file_create): Try both "wb" and "w", don't + bother with FOPEN_* macros. + * as.h: Don't include fopen-*.h. + + * config/alpha-opcode.h: Make "ret" with no operands equivalent to + "ret zero,(ra)", to match OSF1 and to be consistent with both + one-operand forms. + + Patches from DJ Delorie: + * as.h (alloca): undef alloca before defining it just in case + * config/go32.cfg: new file for autoconf values + * config/te-go32.h: new file + * configure.bat: new for autoconf + + * config/tc-i386.c (md_assemble): Fix typo in GOTPC check; had = + for ==. + + * configure.in: If target_frag doesn't exist, use /dev/null. + + * as.c (parse_args): For non-VMS systems, re-add `v' to + std_shortopts. Add "verbose" to list of long options. + + * write.c (adjust_reloc_syms): When generating an absolute section + symbol as a placeholder, don't mark it as used in a relocation + entry, here. + + * Makefile.in (comparison): Compare using makefile code from gcc, + stripped down to discard subdir stuff and adapted to give a + non-zero exit status if either file differs. + +Thu Nov 3 15:43:02 1994 Ian Lance Taylor <ian@sanguine.cygnus.com> + + * config/tc-mips.c (load_address): Fix RELAX_ENCODE arguments for + NO_PIC case. + +Tue Nov 1 16:10:59 1994 Ian Lance Taylor <ian@sanguine.cygnus.com> + + * config/tc-mips.c (s_change_sec): If not GPOPT, don't permit + switching to the readonly data section. + + * ecoff.c (ecoff_directive_type): Fix warning message. + +Sun Oct 30 00:57:35 1994 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (pa_proc): Delete disabled code to put each + proc in its own subspace, we're not going to use it. + +Tue Oct 25 14:44:33 1994 Ian Lance Taylor <ian@sanguine.cygnus.com> + + * config/tc-mips.c (macro): Ensure that mips2 case of M_LI_DD in + .rdata does not become a variant frag. + + * config/tc-mips.c (mips_cpu): Initialize to -1. + (md_begin): Don't mips_cpu if it was already set. + (md_parse_option): For -mipsN, don't set mips_cpu if it was + already set. For -mcpu=, just set mips_cpu, not mips_isa. + +Fri Oct 21 20:42:29 1994 Ian Lance Taylor <ian@sanguine.cygnus.com> + + * config/tc-mips.c (md_pseudo_table): If OBJ_ELF, handle .section. + (s_elf_section): New static function. + * ecoff.c (ecoff_build_symbols): Don't abort if we don't recognize + the section when setting the storage class; default to sc_Data. + +Thu Oct 20 00:43:38 1994 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (md_apply_fix): Set new_val to 8 for all + fixups to branch instructions (not just pc-relative ones) which + will generate SOM relocations. + +Wed Oct 19 13:41:56 1994 Ian Lance Taylor <ian@sanguine.cygnus.com> + + * config/tc-a29k.c: Include ctype.h with angle brackets. + (define_some_regs): Add new special register names defined on the + 29040. + (parse_operand): Add argument opt. If non-zero, don't warn about + a missing operand. + (machine_ip): If handling argument type 'I', pass opt as non-zero + to parse_operand. Handle new optional operand type 'I'. + (md_undefined_symbol): Handle special register names (srNN). + +Tue Oct 18 00:45:24 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * write.c (renumber_sections): New static BFD_ASSEMBLER function. + (write_object_file): Call it after removing gas created sections. + +Mon Oct 17 18:06:05 1994 Ian Lance Taylor <ian@sanguine.cygnus.com> + + * symbols.c (symbol_create): Use udata.p, not just udata. + * config/obj-elf.c (obj_ecoff_set_ext): Likewise. + (elf_get_extr): Likewise. + + * read.c (read_a_source_file): The second argument to as_where is + unsigned int *, not int *. + +Mon Oct 17 02:26:32 1994 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c: Eliminate all uses of fx_addnumber. + (tc_gen_reloc): Simplify. It's no longer necessary to set a + reloc's addend field to zero for function symbols. + (md_apply_fix): Simplify. For fixups which will require a SOM + reloc, just clear out the necessary bits in the output file. + +Fri Oct 14 19:06:46 1994 Ken Raeburn <raeburn@cujo.cygnus.com> + + * Makefile.in (BISON): Use bison -y, not bison. + +Thu Oct 13 19:22:54 1994 Ken Raeburn <raeburn@cujo.cygnus.com> + + * Makefile.in (VERSION): Updated to 2.5. + (clean-here): Delete stamp-mk.com. + (distclean): Delete .gdbinit. + * Version 2.5 released. + +Wed Oct 12 20:30:51 1994 Ken Raeburn <raeburn@cujo.cygnus.com> + + * config/te-nbsd532.h: Renamed from te-netbsd532.h. + * configure.in, configure: Adjusted. + +Wed Oct 12 16:33:38 1994 J.T. Conklin (jtc@phishhead.cygnus.com) + + * config/cplus-dem.c: Removed. It isn't used. Even if it was, + it's better to use the one in libiberty. + +Wed Oct 12 18:48:39 1994 Ken Raeburn <raeburn@cujo.cygnus.com> + + * symbols.c (resolve_symbol_value, case O_symbol): Undo last + change; it breaks the rs6000 support, and doesn't seem to be + needed. + +Wed Oct 12 11:56:50 1994 J.T. Conklin (jtc@phishhead.cygnus.com) + + * config/tc-i386.h,te-netbsd532.h (TARGET_FORMAT): Changed to + a.out-<arch>-netbsd to match corresponding changes in BFD. + +Wed Oct 12 11:06:11 1994 Ian Lance Taylor (ian@cygnus.com) + + * config/tc-ppc.c (ppc_fix_adjustable): Resolve symbol values + rather than explicitly adding the frag address. + * config/obj-coff.c (coff_frob_symbol): Add a zero entry to mark + the end of the line numbers; this replaces the zero entry which + used to be added by coff_add_linesym, removed Oct 7. + (coff_adjust_section_syms): Ignore sections with no seginfo. + +Wed Oct 12 01:41:37 1994 Ken Raeburn <raeburn@cujo.cygnus.com> + + * Makefile.in (bootstrap, bootstrap2, bootstrap3): Create a + "stage" symlink to the appropriate stage* directory, and use it + instead in the -B options. + (comparison): Revert yesterday's change. + +Tue Oct 11 16:48:11 1994 Ken Raeburn <raeburn@cujo.cygnus.com> + + * config/tc-sparc.c (tc_gen_reloc): For non-a.out relocations, if + pc-relative, use fx_offset only, ignore address of relocation. + +Tue Oct 11 15:24:00 1994 Ian Lance Taylor <ian@sanguine.cygnus.com> + + * config/tc-mips.c (mips_ip): Don't use S_IS_LOCAL when checking + for an embedded PIC switch expression, since the definition of + S_IS_LOCAL was changed. + +Tue Oct 11 15:05:11 1994 Ken Raeburn (raeburn@kr-pc.cygnus.com) + + * Makefile.in (comparison): When comparing as.new or gasp.new, try + running the binary through sed to avoid differences due to + "stage1" or "stage2" having been written into the binary. + +Sat Oct 8 01:48:04 1994 Ken Raeburn (raeburn@kr-pc.cygnus.com) + + ELF symbol size handling, based on code from Eric Youngdale: + * config/obj-elf.h (OBJ_SYMFIELD_TYPE): New macro. Adds an + expression pointer to the symbol structure, used for `size' + expressions that couldn't be reduced to constants when initially + processed. + (elf_frob_symbol): Declare. + (obj_frob_symbol): Call elf_frob_symbol always, rather than + ecoff_frob_symbol only if ECOFF_DEBUGGING defined. + * config/obj-elf.c (obj_symbol_new_hook): Deleted unused code. + Clear sy_obj field. + (obj_elf_size): Deleted unused code. If size is non-reducible + expression, allocate some storage for the sy_obj field and copy + the expression. + (elf_frob_symbol): New function. Computes sizes, calls + ecoff_frob_symbol if appropriate. + + * write.c (fixup_segment): For i386 elf and coff (for now), don't + add in value of symbol from another defined section of the file. + +Fri Oct 7 17:54:02 1994 Ken Raeburn <raeburn@cujo.cygnus.com> + + * config/tc-m88k.h (TC_KEEP_FX_OFFSET): Define. + * config/obj-coff.c (do_relocs_for): Test only TC_KEEP_FX_OFFSET, + rather than both it and TC_M88K. + (coff_adjust_section_syms): New function. + (coff_frob_section): For non-empty sections, create aux entry for + the section symbol, indicating the size. + (n_line_nos): New variable. + (add_lineno): Increment it. + (coff_add_linesym): Increment n_line_nos, don't call add_lineno. + (coff_frob_file): New function; map coff_adjust_section_syms over + sections. + (obj_coff_line): Only reset line_base for .bf symbols. + * config/obj-coff.h (coff_adjust_section_syms, coff_frob_file): + Declare. + (obj_frob_file): New macro. + + * config/obj-coff.h (OBJ_COPY_SYMBOL_ATTRIBUTES): Renamed from + obj_frob_forward_symbol, and rewritten for new parameter list. + + Mon Oct 3 21:02:38 1994 Pat Rankin (rankin@eql.caltech.edu) + + * config/obj-vms.h (S_IS_LOCAL): fix obsolete flagseen[] reference. + +Wed Oct 5 11:49:26 1994 Ian Lance Taylor <ian@sanguine.cygnus.com> + + * config/obj-ecoff.c (obj_pseudo_table): Accept .esize and .etype + as synonyms for .size and .type. + +Wed Oct 5 00:08:10 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/obj-coff.c (coff_frob_section): Remove assert about + section alignment. + * config/tc-sparc.c (md_section_align): Use section alignment, not + xvec align_power_min field. + +Fri Sep 30 19:05:20 1994 Pat Rankin (rankin@eql.caltech.edu) + + * vmsconf.sh (make-gas.com): handle DCL verification to enable + sensible feedback to the user while gas is being built. + +Fri Sep 30 16:23:31 1994 Ken Raeburn <raeburn@cujo.cygnus.com> + + * Makefile.in (DISTSTUFF): New variable, listing only make-gas.com + for now. + (diststuff): New target; builds DISTSTUFF. + (realclean): Separate target, depend on clean and distclean, then + delete DISTSTUFF. + * make-gas.com: Deleted. + + * config/tc-i386.c (i386_validate_fix) [BFD_ASSEMBLER]: New + function. Converts reloc for "foo-GOT" to BFD_RELOC_386_GOTOFF + reloc for "foo". + (i386_operand): Don't look up section symbol for + undefined_section. + (reloc): Always permit return of 8- and 16-bit relocation types. + Add a space after "pc-relative" in the error message. + (tc_i386_fix_adjustable) [BFD_ASSEMBLER]: Reject + BFD_RELOC_386_GOTOFF relocs. + (i386_operand): For any GOTOFF reloc, convert it to a BFD_RELOC_32 + with a "foo-GOT" value. + * config/tc-i386.h (i386_validate_fix): Declare it. + (TC_VALIDATE_FIX): New macro -- call it. + (NOP_OPCODE): Cast to `char' to avoid compiler warnings. + + * as.h: If __STDC__ is not defined and varargs.h is available, use + it rather than stdarg.h. + + * write.h (struct fix): Added new bitfield fx_plt, for fixups + referring to PLT entries. + * write.c (fix_new_internal): Initialize fx_plt to zero. + (adjust_reloc_syms): Re-fetch `sym' after top of reduction loop. + Don't adjust fx_offset by frag address, since S_GET_VALUE now + includes the frag address. + (fixup_segment): Changed local var PCREL to type int, added PLT. + If PC-relative fixup refers to a PLT entry for a symbol in the + current section, don't reduce it. + + * write.c (adjust_reloc_syms): Exit loop through a label. If + DEBUG5 is defined, print out each fixup before and after + processing. + (fixup_segment): If DEBUG5 is defined, print out each fixup before + and after processing. + (print_fixup): Added prototype. Show address on first line. Show + fx_offset and fx_subsy. [!BFD_ASSEMBLER]: Only show fx_r_type if + NEED_FX_R_TYPE is defined. + + * symbols.c (print_symbol_value_1): Check S_IS_LOCAL, S_IS_EXTERN, + S_IS_DEBUG, S_IS_DEFINED also. + +Thu Sep 29 18:57:06 1994 Ken Raeburn <raeburn@cujo.cygnus.com> + + * Makefile.in (all): Depend on .gdbinit. + (.gdbinit): Rebuild from gdbinit.in by running config.status. + + * gdbinit.in: Define new function "pf". Fix doc on "pe" and "ps". + + * write.c (print_fixup): Print source location on first line. + Show fx_r_type and fx_addsy fields. + +Wed Sep 28 14:56:39 1994 Ken Raeburn <raeburn@cujo.cygnus.com> + + * configure.in: Set bfd_gas for all sparc targets in one place, + instead of separately for each. Correctly handle user-supplied + "--enable-bfd-gas" option. + + * gdbinit.in: Move "break abort" to end, in case gdb complains. + + * as.h (PRINTF_WHERE_LIKE, PRINT_LIKE) [USE_STDARG, !__GNUC__]: + Use PARAMS macro. + + * symbols.c (resolve_symbol_value, case O_symbol): Don't do any + processing if add_symbol is undefined or in expr_section. + (resolve_symbol_value, case O_add): For symbol plus + constant-valued symbol, convert to O_symbol and re-reduce. + (S_GET_VALUE): If symbol needs resolving, resolve it. + (indent_level): No longer static. + (print_symbol_value_1): Don't print frag address if it matches + zero_address_frag. Don't print "resolving" if already resolved. + Print segment name. Don't call print_expr_1 on an undefined + symbol. + (print_expr_1): Fix whitespace before printing X_add_number. + + * expr.c (make_expr_symbol): No longer static. Use symbol_create, + not symbol_new, for symbols holding expression values. + * expr.h (make_expr_symbol): Move declaration here. + * write.c (fix_new_exp): Handle O_add by creating an + expression-valued symbol, and calling fix_new_exp recursively. + (adjust_reloc_syms): If a fixup's symbol value is a sum of an + undefined symbol and a constant, fold the constant into the fixup, + and refer to the undefined symbol directly. Then process the + fixup again from scratch. + (write_object_file): Before calling adjust_reloc_syms, make a pass + through the symbol list trying to resolve values. + + * write.c (print_fixup): New routine, for debugging. + (write_relocs): Call bfd_install_relocation. Deleted various + hacks for working around problems with bfd_perform_relocation. + + * Makefile.in (VERSION): Update to 2.4.90. + +Wed Sep 28 11:50:40 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * Makefile.in (gasp.o): Depends upon config.h. + + * config/tc-mips.c: Include subsegs.h. + (md_apply_fix): If an unconditional b or bal overflows, and we are + not assembling PIC code, replace it with a j or jal. + + * config/tc-mips.c (md_apply_fix): Correct branch overflow test. + Use as_bad_where and as_warn_where rather than as_bad and as_warn. + +Mon Sep 26 17:15:59 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * write.c (write_relocs): Add file name and line number to + as_fatal calls. Handle bfd_reloc_overflow case specifically when + RELOC_EXPANSION_POSSIBLE. + +Fri Sep 23 16:11:28 1994 Ken Raeburn <raeburn@cujo.cygnus.com> + + * as.h (USE_STDARG, USE_VARARGS): Define one or neither of these + here. Use them for deciding which PRINTF*LIKE macro definitions + to use. + * messages.c: Use them, instead of NO_STDARG, NO_VARARGS. + [!USE_STDARG && !USE_VARARGS] (va_alist, va_dcl, ...): Provide + default definitions matching what we were doing before. + (as_tsktsk): Remove the non-stdarg, non-varargs version, and + always use the varargs form if not using stdarg. It's safe to + always use vfprintf, because libiberty will provide it if the + native system doesn't. Also, always make format be const. + (as_warn, as_warn_where, as_bad, as_bad_where, as_fatal): Ditto. + +Fri Sep 23 14:42:34 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * config/tc-mips.c (load_register): Always use addiu when adding a + constant to $zero--no need to use daddiu. + (macro): Hack the -mips3 overflow tests to not fail when offsetT + is only 32 bits. + + * symbols.h (copy_symbol_attributes): Declare. + +Thu Sep 22 21:58:24 1994 Ken Raeburn <raeburn@cujo.cygnus.com> + + * listing.c: Bugfixes based in part on patches from Paul + Kranenburg. + (listing_newline): Check filename as well as line number when + deciding whether to record it. + (list_symbol_table) [S_IS_REGISTER]: Check that S_IS_REGISTER is + false (if defined) as well as checking for reg_section. + (listing_listing): Iterate fetching lines while line number is too + low, and we haven't run off the end of the input file. + + * config/vms-conf.h: Changed HAVE_DELETE to HAVE_REMOVE. + +Thu Sep 22 13:39:10 1994 Kung Hsu (kung@x1.cygnus.com) + + * ecoff.c (ecoff_generate_asm_lineno): check if + current_stabs_filename is NULL before strcmp. + * read.c (read_a_source_file): fix a bug in generate_asm_lineno + checking. + +Wed Sep 21 18:17:35 1994 Ken Raeburn <raeburn@cujo.cygnus.com> + + * config/ho-*.h: Now-unused files deleted. + + * symbols.c (copy_symbol_attributes): New function. Copies BFD + symbol flags and calls OBJ_COPY_SYMBOL_ATTRIBUTES. + (resolve_symbol_value, case O_symbol): Call it, if X_add_number is + zero. Don't call obj_frob_forward_symbol. + * read.c (pseudo_set): Call copy_symbol_attributes, but only if + X_add_number is zero. + * config/obj-elf.h (obj_frob_forward_symbol): Deleted. + + * config/tc-i960.c: Lots of whitespace, comment reformatting, + using GNU indent. + (strchr): Don't declare. + [BFD_ASSEMBLER]: Don't compile md_convert_frag, + md_estimate_size_before_relax, md_ri_to_chars, + md_create_short_jump, md_create_long_jump. + (brtab_emit): Use data_section, not SEG_DATA. + + Mon Sep 19 17:14:44 1994 Pat Rankin (rankin@eql.caltech.edu) + + * config/vms-conf.h: new file, manually derived from conf.in. + * config-gas.com: use it, and eliminate obsolete "host.h". + +Wed Sep 21 11:11:30 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * config/tc-ppc.c (ppc_current_block): New static variable. + (ppc_stabx): Set sy_tc.within of a C_STSYM symbol to + ppc_current_block. Don't move around any stab symbol, just those + for common symbols. + (ppc_bs): Set ppc_current_block. + (ppc_es): Clear ppc_current_block. + (ppc_frob_symbol): Set the value of a C_STSYM symbol to the offset + from the csect of the enclosing block. + + * config/tc-mips.c (insns_since_cache_access): Remove. + (append_insn): Remove setting of insns_since_cache_access, and + special 4600 handling; it turns out not to be required. + +Tue Sep 20 16:13:18 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * config/tc-mips.c (md_shortopts): Remove E. + (md_longopts): Add EB and EL. + (md_parse_option): Handle -EB and -EL as separate options, rather + than as a single -E option with an argument. + +Mon Sep 19 12:42:05 1994 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (hppa_fix_adjustable): Reject reductions + involving global symbols too. + +Mon Sep 19 12:12:46 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * as.h: Test NEED_DECLARATION_*, not NEED_*_DECLARATION. + + * configure.in: Test for remove, not delete. Fix cross-assembler + test. + * as.h: Test HAVE_REMOVE, not HAVE_DELETE; define unlink to + remove, not delete. + + * read.c (pseudo_set, case O_symbol): If + OBJ_COPY_SYMBOL_ATTRIBUTES is defined, invoke it. + [BFD_ASSEMBLER]: Copy BSF_FUNCTION setting too. + * config/obj-elf.h (OBJ_COPY_SYMBOL_ATTRIBUTES): Define. + + Wed Aug 10 19:15:30 1994 Pat Rankin (rankin@eql.caltech.edu) + + * config/obj-vms.h (DSG_S_C_UBITU, DST_K_VFLAGS_DSC, DST_K_TS_ATOM, + many others): new macros; values obtained from "DSTRECRDS.SDL". + * config/obj-vms.h (various): use them. + (USE_BITSTRING_DESCRIPTOR): new macro, for selecting bitfield + representation (only enum bitfields can avoid being bitstrings). + (bitfield_suffix, setup_basic_type): new routines. + (VMS_typedef_parse): use them. Now recognize bitfields of all + integral types, not just type `int'. Caveat: the representation + used for bitfields still does not work for objects placed in + registers, and gcc's optimizer sometimes puts small structs there. + + Tue Jun 14 17:31:44 1994 Pat Rankin (rankin@eql.caltech.edu) + + * read.c (s_text) [#if OBJ_VMS]: clear the IN_DEFAULT_SECTION + bit from const_flag. + * config/obj-vms.h (IN_DEFAULT_SECTION): define this macro. + (tc_frob_label): define this to call vms_check_for_special_label, + and declare the latter. + * config/obj-vms.c (vax_g_doubles): declare this file-scope + variable. + (const_flag): initialize to IN_DEFAULT_SECTION instead of 0. + (vms_check_for_special_label): new routine (tc_frob_label). + (VMS_TBT_Routine_End): don't bother checking for `gcc_compiled.' + and `gcc2_compiled.' labels; they won't reach here any more. + (VMS_typedef_parse) [case 'r']: for types `double' and `complex + double', use `vax_g_doubles' flag to select type of double. + (VMS_write_object_file) [traceback setup]: don't pass symbols + with the IN_DEFAULT_SECTION attribute to the TBT_Routine_Begin + and TBT_Routine_End functions. + + Mon Jun 6 20:52:20 1994 Pat Rankin (rankin@eql.caltech.edu) + + * config/obj-vms.c (VMS_TBT_Routine_End): cache the result of + S_GET_VALUE() to avoid many repeated function calls. + (VMS_Check_For_Main) [#if HACK_DEC_C_STARTUP]: capitalize + _C$MAIN_ARGS in advance, in case -h3 (leave symbol name as-is) + gets requested. [All the HACK_DEC_C_STARTUP code appears to + be obsolete; gcc does it automatically for vms target. It's + also misnamed, because it is for the "VAX C" run-time library, + not the newer "DEC C" one which has much different startup code.] + {various}: use `S_SET_xxx(symbol,new_value)' rather than + `S_GET_xxx(symbol) = new_value'. + +Mon Sep 19 12:05:03 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * config/obj-coff.c (c_dot_file_symbol): Use bfd_abs_section_ptr, + not &bfd_abs_section. + +Thu Sep 15 18:36:34 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * expr.c (clean_up_expression): Use addressT, not bfd_vma. + +Tue Sep 13 20:05:47 1994 Jeff Law (law@snake.cs.utah.edu) + + * expr.c (expr): Don't reduce the difference of two symbols in the + same frag if the symbols are not in normal sections. + + * config/obj-som.h (S_SET_OTHER, S_SET_TYPE): Delete a.out crud. + (S_SET_DESC, S_GET_OTHER, S_GET_TYPE, S_GET_DESC): Likewise. + (obj_attach_unwind_info): Do not define. Not needed anymore. + * config/tc-hppa.c: Delete whitespace at EOL. + (struct hppa_fix_struct): Delete fx_unwind field and all references. + (fix_new_hppa): Last arg is now a pointer to an int. Do not + call obj_attach_unwind_info anymore. For SOM R_ENTRY and R_EXIT + fixups, store 32bits of unwind information in the fx_addnumber + field of the fixup. + (md_assemble, pa_entry, process_exit, pa_procend): For SOM R_ENTRY + and R_EXIT fixups, pass a NULL pointer to fix_new_hppa, and a + pointer to 32 bits of unwind info. + (tc_gen_reloc): For SOM R_ENTRY and R_EXIT fixups, set the symbol + pointer to the dummy symbol; set the addend field to fx_addnumber. + (pa_comm, pa_equ, pa_type_args, pa_import): Use bfd_XXX_section_ptr + rather than &bfd_XXX_section. + +Tue Sep 13 21:15:36 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * config/tc-i386.c (md_apply_fix_1): For GOTPC relocs, decrement + value by one; discard adjustments previously being made. From + Eric Youngdale. + + VMS- and Vax-related changes from Pat Rankin: + * Makefile.in (VMS_OTHER_OBJS): add concat, getopt, and getopt1. + * vmsconf.sh: no longer have make-gas.com echo text about needing + to modify the gcc-vms driver when intending to use with gcc 1.x. + * as.c (parse_options): suppress 'v' from std_short_options and + eliminate VMS-specific conditional initialization; + [default case]: check for '-v' if md_parse_options doesn't recognize + an option; + [default case, #if VMS]: check for filename argument when '-v' seen; + [case 'v']: delete. + * config/tc-vax.c (md_assemble): don't rely on `this_add_number' + for O_big literal operands (double floats and long long ints); + [VMS, md_shortopts]: add second colon after 'v'; + (md_parse_options) [VMS, case 'v']: check for argument, so + caller can handle `-v' w/o arg. + +Tue Sep 13 16:45:08 1994 Steve Chamberlain (sac@jonny.cygnus.com) + + * config/obj-coff.c (do_relocs_for): If TC_KEEP_FX_OFFSET + is defined, put the tx_offset into the r_offset. + * config/tc-sh.c (line_comment_chars): Add # + (tc_reloc_mangle): Deleted. + * config/tc-sh.h (TC_KEEP_FX_OFFSET): Define. + (TC_RELOC_MANGLE): Delete. + +Tue Sep 13 16:20:36 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * flonum-konst.c: Change preprocessor tests of HO_VMS to just VMS. + * hex-value.c: Ditto. + * config/obj-vms.c: Ditto. + + * config/tc-sparc.c (sparc_ip): Replace as_bad/exit sequence with + a call to as_fatal. + * config/tc-i860.c (i860_ip): Ditto. + * config/tc-hppa.c (pa_ip): Ditto. + * config/tc-alpha.c (alpha_ip): Ditto. + * as.c (parse_args): Ditto. + + * config/tc-mips.c (mips_ip): Replace as_warn/exit sequence with a + call to as_fatal. + + * write.c (write_contents): Use EXIT_FAILURE. + * output-file.c (output_file_create, output_file_close, + output_file_create, output_file_close): Ditto. + * messages.c (as_fatal): Ditto. + * config/obj-som.c (obj_som_version, obj_som_copyright): Ditto. + * config/obj-ieee.c (write_object_file): Ditto. + * config/obj-coff.c (write_object_file): Ditto. + * config/tc-vax.c (main): Use EXIT_SUCCESS. + * config/tc-m68k.c (main): Ditto. + + * hash.c (main): Pass a value to exit(). + + * as.h (EXIT_SUCCESS, EXIT_FAILURE): Moved here. + * as.c: ...from here. + (parse_args): Use them always. + (main): Use exit rather than return. + + * Makefile.in (*_FOR_TARGET, INSTALL_XFORM, install, uninstall): + Rewrite handling of program_transform_name. + + * configure.in: Test for functions unlink and delete. + * as.h: If unlink isn't available but delete is, define unlink to + be delete. + + Update for autoconf 1.118: + * gdbinit.in: New file, created from old .gdbinit. + * .gdbinit: Deleted. + * aclocal.m4 (GAS_GDBINIT): Deleted. + * configure.in: Don't use it. Instead, generate .gdbinit from + gdbinit.in. Don't substitute cpu_type, obj_format, emulation, + atof. Switched order of AC_LINK_FILES arguments. Use AC_PREREQ + to ensure that older versions of autoconf aren't used. + * Makefile.in: Added @configure_input@ line. + (configure): Deleted rule. + +Tue Sep 13 12:08:20 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * config/obj-coff.c (fixup_segment): After handling the difference + of two symbols from the same segment, set fx_subsy to NULL, to + satisfy existing TC_COUNT_RELOC macros. + +Tue Sep 13 01:47:08 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * aclocal.m4 (GAS_GDBINIT): New macro. + * configure.in: Use it. + * configure: Regenerated. + +Mon Sep 12 20:56:38 1994 Ken Raeburn (raeburn@kr-laptop.cygnus.com) + + * .gdbinit (pe, ps): Define new commands. + * symbols.c (indent_level): New static variable. + (indent, print_expr_1, print_symbol_value_1, print_symbol_value, + print_expr): New functions. + + * Makefile.in (config-stamp): Add a "this file generated by make" + message to config.h. + + PIC implementation for i386-linux, based on code from Eric + Youngdale and Paul Kranenburg, with some work of my own: + + * write.c (fixup_segment): Test TC_RELOC_RTSYM_LOC_FIXUP on fixup + before processing same-section pcrel relocations. + (TC_RELOC_RTSYM_LOC_FIXUP): Default to 1. + + * expr.c (make_expr_symbol): If operator is O_symbol and + X_add_number is zero, just return the symbol. If operator is + O_constant, resolve the symbol's value before returning. + (operand): Permit use of "[]" for grouping. + (clean_up_expression): For difference of two symbols in the same + frag, add the difference of their offsets into X_add_number. + (expr): Reduce difference of two symbols in same frag to their + difference. + + * config/tc-i386.c (TC_RELOC): New macro. + (struct _i386_insn): New field disp_reloc. + (GOT_symbol): New variable. + (operand_special_chars): Added square-brackets and at-sign. + (reloc) [BFD_ASSEMBLER]: Added new argument OTHER; if it is not + NO_RELOC, just return it. + (reloc) [! BFD_ASSEMBLER]: Add third argument to dummy macro. + (BFD_RELOC_386_PLT32, _GOT32, _GOTOFF) [! BFD_ASSEMBLER]: More + dummy macros. + (tc_i386_fix_adjustable): New function. Returns zero if symbol in + fixup is not local, to prevent relocations against externals from + being dropped. + (md_assemble): Initialize disp_reloc field to NO_RELOC. Pass + disp_reloc field to reloc() function, and use TC_RELOC to generate + value to pass to fix_new_exp. + (md_assemble): Change 32-bit reloc against GOT_symbol into a GOTPC + reloc. + (i386_operand): Initialize disp_reloc field to NO_RELOC. Handle + @GOTOFF, @PLT, @GOT operands. For GOTOFF relocations with local + symbols, force generation of the section symbol. + (md_estimate_size_before_relax): If GOT_symbol exists, decide + we're generating PIC code, and convert relocations against + undefined symbols from PCREL to PLT32. + (md_apply_fix_1) [OBJ_ELF]: Fix up values for dynamic-linking + relocs. + (md_undefined_symbol): Notice GLOBAL_OFFSET_TABLE_NAME and set + and return GOT_symbol if it matches. + (F, MAP): Move macro definitions outside function. + (tc_gen_reloc): Only switch on size and pcrel if code wasn't + already supplied as PLT32. GOT32, GOTOFF, or GOTPC. Convert + BFD_RELOC_32 using GOT_symbol into GOTPC. + * config/tc-i386.h (TC_RELOC, tc_fix_adjustable, + TC_RELOC_GLOBAL_OFFSET_TABLE, TC_RELOC_RTSYM_LOC_FIXUP): New + macros. + (NEED_FX_R_TYPE): Define. + (LOCAL_LABEL): Accept ".X" prefix too. + (GLOBAL_OFFSET_TABLE_NAME): Default to "_GLOBAL_OFFSET_TABLE_". + +Mon Sep 12 17:51:39 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * config/obj-elf.c (obj_elf_type): Rewrite to accept syntax + reportedly to be used on Irix 6. + + * config/tc-mips.c (md_pseudo_table): Handle .globl and .global. + (s_mips_globl): New static function; needed for Irix 5 support. + * ecoff.c (ecoff_build_symbols): If BSF_FUNCTION is set for an + external symbol with no type, set the type to st_Proc rather than + st_Global. Don't set the index of an external st_Proc or + st_StaticProc symbol unless it is also a local symbol. + + * read.c (read_a_source_file): The second argument to as_where is + unsigned int *, not int *. + +Thu Sep 8 17:18:24 1994 Kung Hsu (kung@mexican.cygnus.com) + + * config/obj-ecoff.h : Change names to OBJ_GENERATE_ASM_LINENO, + and generate_asm_lineno. + * config/obj-elf.h : ditto. + * read.h : ditto. + * read.c (read_a_source_file): if no file when inst is read, set + generate_asm_lineno to true. + * ecoff.h : change name to generate_asm_lineno and add function + ecoff_no_current_file. + * ecoff.c : change name to generate_asm_lineno. + * ecoff.c (ecoff_generate_asm_lineno) : new function, to generate + ecoff style line for asm file. + +Thu Sep 8 19:43:49 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * config/obj-coff.c (size_section): Do an fprintf to stderr rather + than a printf. + (fixup_segment): Use as_bad_where rather than as_bad. + +Wed Sep 7 17:21:12 1994 Steve Chamberlain (sac@jonny.cygnus.com) + + * config/tc-{h8300,sh}.[ch] (tc_coff_symbol_emit): Function doing + nothing becomes macro doing nothing. + +Wed Sep 7 19:10:09 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * Makefile.in (Makefile): Depend on config.status. + (config.status): Run config.status from . instead of srcdir. + + * config/tc-i386.c (tc_gen_reloc): Use bfd_get_reloc_code_name to + display the name of the relocation type that couldn't be handled. + * config/tc-sparc.c (tc_gen_reloc): Likewise. + * config/tc-alpha.c (tc_gen_reloc): Likewise. Deleted abort call + after call to as_fatal. + + * configure.in (i386-*-linux*): Don't set bfd_gas. + + * Makefile.in (CC_FOR_TARGET, NM_FOR_TARGET, OBJDUMP_FOR_TARGET, + install, uninstall): Don't use "brokensed" hack any more, the new + autoconf code should never let program_transform_name be empty. + + Update for autoconf beta 1.112: + * aclocal.m4 (GAS_CHECK_DECL_NEEDED, GAS_WORKING_ASSERT): New + macros. + * configure.in: Use them. Use AC_ARG_PROGRAM (now provided by + autoconf) instead of my hacked-up AC_PROGRAM_TRANSFORM_NAME. Move + test for CROSS_COMPILE just before AC_FUNC_ALLOCA, and emit a + message to try to ease confusion about autoconf's + "cross-compiling" message. + * acconfig.h (NEED_DECLARATION_MALLOC, NEED_DECLARATION_FREE, + NEED_DECLARATION_ERRNO): Renamed from NEED_*_DECLARATION. + * configure, conf.in: Regenerated. + +Wed Sep 7 12:49:55 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * configure.in: Check ${host} and ${target} rather than + ${host_canon} and ${target_canon}. + * configure: Likewise. + +Tue Sep 6 11:42:38 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * config/tc-mips.c (mips_cpu): New static variable. + (insns_since_cache_access): New static variable. + (md_begin): Set mips_cpu as well as mips_isa. + (append_insn): If mips_cpu is 4600, require four nop instructions + between an instruction which accesses the cache and certain CACHE + instructions. Keep track of the number of instructions seen since + an instruction which accesses the cache. + (md_parse_option): Set mips_cpu as well as mips_isa. + +Mon Sep 5 07:09:00 1994 Ken Raeburn (raeburn@kr-pc.cygnus.com) + + * doc/Makefile.in (VPATH): Define using @srcdir@. + (prefix, program_transform_name, exec_prefix): Use autoconf style + @-substitutions. + +Sun Sep 04 17:58:10 1994 Richard Earnshaw (rwe@pegasus.esprit.ec.org) + + * config/ho-riscix.h, config/tc-arm.c, config/tc-arm.h: New files + * configure.in: Recognize the arm. + +Fri Sep 2 16:05:50 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * ecoff.c (add_file): Don't try to generate line numbers if the + symbol table has been frozen. + +Thu Sep 1 19:48:01 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * aclocal.m4 (AC_PROG_CC): Use AC_DEFUN, and omit AC_PROVIDE. + + * configure.in: Handle user-specified bfd-assembler option with + separate variable from preferred configuration, until the two are + resolved. Indicate bfd_gas=preferred for linux a.out. Use + AC_PROGRAM_TRANSFORM_NAME, for which a patch has been sent to djm. + * Makefile.in (target_alias, program_transform_name): Define, + using autoconf @-substitutions. + +Wed Aug 31 17:43:06 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * atof-generic.c: Deleted alloca handling here. + + * Makefile.in (prefix, exec_prefix): Use @-subtitutions. + + * aclocal.m4 (AC_OUTPUT_LINKS): Deleted redefinition, since + autoconf 1.109 has this fixed. + * configure.in: Don't change quote characters around AC_MSG_ERROR + invocation. Don't use AC_HEADER_STDC, since it requires running a + program. Cache NEED_*_DECLARATION values. + * configure, conf.in: Regenerated with a modified autoconf 1.109. + + * as.h (volatile): Don't test or define here; not needed. + (alloca): Replace alloca-conf.h inclusion with code recommended in + autoconf documentation. Include config.h first. + +Wed Aug 31 11:20:48 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * config/obj-coff.h (S_IS_DEFINED): Absolute symbols are defined + also. + + * configure.in, configure: Initialize bfd_gas to no. + +Tue Aug 30 19:31:14 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * as.h: Include alloca-conf.h from "libiberty", not + "../libiberty". + +Mon Aug 29 16:11:30 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * config/tc-ppc.c (md_apply_fix): Don't generate a reloc when a + symbol is used as an offset into a CSECT that is not a TOC. These + types of loads are generated by gcc -mminimal-toc. + +Sun Aug 28 13:22:52 1994 Ken Raeburn (raeburn@rtl.cygnus.com) + + * as.h (flag_*): Added comments describing meanings of some of + these variables. + (struct frag): Add some comments about the ns32k-specific fields + and why they're here. + (SIZEOF_STRUCT_FRAG): Cast addresses to char*, not int. + (flag_print_statistics): Declare. + + * as.c (parse_args): Set flag_print_statistics instead of + statistics_flag. Options array is now const. Added new option + "dump-config"; if specified, print TARGET_ALIAS, TARGET_CANONICAL, + TARGET_CPU, TARGET_OBJ_FORMAT, and TARGET_FORMAT, if defined. + (main): Change test to check flag_print_statistics. + (statistics_flag): Deleted. + + * frags.c (frag_variant): Removed PCREL_ADJUST and BSR arguments. + Always initialize them to zero. + * frags.h (frag_variant): Fixed prototype. + * config/tc-i960.c (get_cdisp): Don't pass the extra zero args. + * config/tc-ns32k.c (convert_iif): Don't pass the arguments; cache + the value of frag_now and fill in the fields later. + + * Makefile.in (distclean, realclean): Remove new + configure-generated files. + +Sat Aug 27 20:26:12 1994 Ken Raeburn (raeburn@kr-laptop.cygnus.com) + + Conversion to autoconf: + * acconfig.h, aclocal.m4: New files. + * configure.in: Rewritten (except for some target-specific code) + for autoconf. + * conf.in, configure: New files, generated from the above. + * Makefile.in: Changed magic sequence indicating insertion of + makefile fragments. + (VPATH, srcdir, CC, LIBS, OBJS dependencies): Use @-substitutions + from configure. + (LINKED_HEADERS): Deleted a.out.gnu.h, a.out.h, and host.h. + (config.status, configure): Rewrite rules. + (config-stamp): Depend on conf. Skip variables that configure is + now substituting itself. + (*.o dependencies): Deleted host.h. + (distclean, realclean): Don't delete host.h. + * as.c: Don't include stdio.h, string.h, sys/types.h. Include + signal.h after as.h. + * as.h: Include alloca-conf.h first. Include ctype.h, string.h, + strings.h, stdlib.h, unistd.h, sys/types.h, fopen-bin.h, + fopen-same.h, as suggested by autoconf test results. + [BROKEN_ASSERT]: Don't include assert.h. + (strdup): Declare. + (volatile, const): Define if not __STDC__ and not already defined. + (malloc, realloc) [NEED_MALLOC_DECLARATION]: Declare. + (free) [NEED_FREE_DECLARATION]: Declare. + * gasp.c: Include config.h, stdlib.h (if HAVE_STDLIB_H). Don't + include host.h. + (malloc) [NEED_MALLOC_DECLARATION]: Declare. + * messages.c: Include as.h first. Include errno.h only if + HAVE_ERRNO_H. If HAVE_VARARGS_H and not __STDC__, undefine + HAVE_STDARG_H. Set NO_STDARG and NO_VARARGS as appropriate. + * doc/Makefile.in (srcdir, INSTALL, INSTALL_PROGRAM, + INSTALL_DATA): Use autoconf @-substitutions. + + * input-file.c: Don't include assert.h here, 'cause as.h already + includes it. + + * config/tc-alpha.c: Added various prototypes for static + functions. + (in_range): New function, tests whether a value can fit in an + N-bit field. + (build_mem, build_operate_n): New functions for constructing + opcode values. + (emit_sll_n, emit_ldah_num, emit_addq_r, emit_lda_n): New + functions for emitting single instructions, no longer requiring a + recursive call to md_assemble. + (emit_add64): New function for expanding a REG:=REG+CONST + operation into one or more instructions, to handle wide constants. + (clear_insn): New variable. + (md_begin): Fill it in with zeros and BFD_RELOC_NONE values. + (alpha_ip): Use it to initialize local variable insns. + (alpha_ip, label "immediate" and cases 'P', 'G'): Use emit_add64 + for calculations. + +Fri Aug 26 14:46:15 1994 Ken Raeburn (raeburn@kr-laptop.cygnus.com) + + * subsegs.c (section_symbol): Reverse still-wrong test of + EMIT_SECTION_SYMBOLS. + + * write.c (BFD_FAST_SECTION_FILL): Always define. + (write_contents): If fill_size is 1, use memset instead of looping + calling memcpy. + +Wed Aug 24 12:46:08 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * config/tc-mips.h (LOCAL_LABEL): Define as 0, for compatibility + with native MIPS assembler. + * configure.in (mips-*-irix*): Don't set emulation. + * config/te-irix.h: Remove. + + * ecoff.c (ecoff_symbol_new_hook): Don't add a new file if we + haven't seen any input files yet. + * config/tc-alpha.c (md_begin): Just call symbol_create, rather + than calling symbol_new and then removing the symbol from the + list. + + * as.c (main): Move a inside the #if 0 block which uses it. + * ecoff.c (current_stabs_filename): Make const. + * frags.h (frag_align_pattern): Declare. + * gasp.c (new_file): Cast isp to long, and use %ld to print it. + * config/tc-alpha.h (md_operand): Add cast to void. + (alpha_do_align): Declare argument types. + (tc_get_register): Declare. + (alpha_frob_ecoff_data): Declare. + * config/tc-alpha.c: Include <ctype.h>. + (s_mask): Don't declare; does not exist. + (line_comment_chars): Remove /* from descriptive comment. + (tc_get_register): Remove unused local reg. + (tc_gen_reloc): Don't bother to compare unsigned to zero. + (s_base): Correct warning to actually print register number. + (md_begin): Remove unused locals retval, lose, and i. + (alpha_fix_adjustable): Move default case inside switch to avoid + warning. + (load_symbol_address): Remove unused locals reloc_addr, p, sym, + and addend. + (emit_byte_manip_r): Declare types for all arguments. + (emit_extract_r, emit_insert_r, emit_mask_r): Likewise. + (emit_sign_extend, emit_bis_r, s_proc): Likewise. + (alpha_ip): Use sprint_value to print offsetT value. Remove + unused local size. Remove unused label get_macro. + (alpha_do_align): Make fill const. + (md_apply_fix): Remove unused label check_zov. + + * configure.in: Recognize i586 as a synonym for i[34]86. + +Tue Aug 23 12:32:14 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * config/obj-coff.c (c_line_new): Change line_number argument from + unsigned short to int so that the type in the prototype matches + the promoted type in the definition. + (stack_delete): Comment out; not used. + * config/obj-coff.h (tc_coff_symbol_emit_hook): Declare if not + BFD_ASSEMBLER, not if BFD_ASSEMBLER. Declare argument type. + * config/tc-m68k.h (tc_coff_sizemachdep): Declare. + * config/tc-m68k.c (tc_coff_symbol_emit_hook): Add ignored + argument. + +Tue Aug 16 01:48:20 1994 Jeff Law (law@snake.cs.utah.edu) + + * gas/config/tc-hppa.c (pa_comm): Undo last change. Set sy_frag for + the common symbol to the zero address frag (the correct fix). + +Tue Aug 16 01:48:20 1994 Jeff Law (law@snake.cs.utah.edu) + + * gas/config/tc-hppa.c (pa_comm): Undo last change. Set sy_frag for + the common symbol to the zero address frag (the correct fix). + + * config/tc-hppa.c (pa_comm): Set sy_resolved for the common + symbol. + +Fri Aug 12 17:51:48 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * config/tc-mips.c (md_begin): Drop "el" from the end of + TARGET_CPU. Check for mips64orion. + +Tue Aug 9 19:43:45 1994 Stu Grossman (grossman@cygnus.com) + + * configure.in: Recognize ppc-*-netware. + * config/te-ppcnw.h: New file to support Power-PC/Netware + configurations. Currently, it just enables the use of backslash + escapes in string directives. + +Tue Aug 9 11:12:13 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * config/tc-ppc.c (ppc_stabx): Call expression directly, rather + than via pseudo_set. If expression is a symbol, move stab symbol + to just after symbol from expression. + + * ecoff.c (ecoff_build_procs): Don't force adr of first fdr to be + zero. Undoes change of June 4, 1993. + + * config/tc-mips.c (md_parse_option): Accept -mcpu=4400, 4600, and + orion. + +Mon Aug 8 16:28:08 1994 Steve Chamberlain (sac@jonny.cygnus.com) + + * as.h: Remove FOPEN_WB patch of Aug 6. + * configure.in: Configure for ho-go32 correctly. + * config/ho-go32.h: Fix copyright. + +Mon Aug 8 11:59:51 1994 Jeff Law (law@snake.cs.utah.edu) + + * gas/config/tc-hppa.c (md_pseudo_table): Delete redundant + upper-case versions of the pseudo-ops. + +Mon Aug 8 13:42:16 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * config/tc-sparc.c (md_apply_fix): If we are going to generate a + non PC relative reloc, don't put the addend in the object file. + +Sat Aug 6 01:15:02 1994 Steve Chamberlain (sac@jonny.cygnus.com) + + * as.h: If FOPEN_WB is not defined, do the right thing in a go32 + environment. + +Mon Jul 11 11:34:52 1994 Steve Chamberlain (sac@jonny.cygnus.com) + + * config/tc-h8300.c (pint): New function for handling varying + size of int pseudo op. + * doc/as.texinfo: Fix typo describing .h8300h pseduop. + +Mon Aug 1 02:40:43 1994 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (create_new_space): Initialize sd_subspaces + field in the space chain. + + * config/tc-hppa.c (tc_gen_reloc): Cast return value from + hppa_gen_reloc_type. + +Thu Jul 28 15:45:37 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * config/tc-sparc.c (sparc_ip): Check more carefully for + conflicting architectures. + (md_parse_option) [NO_V9]: Complain if v9 was selected. + (md_show_usage): Derive architecture list in usage message from + architecture_pname array. + (cypress): Macro deleted. + (op_hash): Don't initialize. + (s_common): Use bfd_und_section_ptr instead of bfd_und_section. + + * config/tc-sparc.c (BSR): New function. + (sparc_ip): Use it for right-shift operations of 32 bits or more. + + * config/tc-sparc.c (sparc_ip): Implement new operand type 'x'. + +Tue Jul 26 18:21:24 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * config/obj-coff.h: Moved common includes and TARGET_FORMAT + definitions together. + (WORKING_DOT_WORD, WARN_SIGNED_OVERFLOW_WORD, + OBJ_COFF_OMIT_OPTIONAL_HEADER, BFD_HEADERS, BFD) [!BFD_ASSEMBLER]: + Moved these definitions to the start of the file, before the + includes. + (SYMBOLS_NEED_BACKPOINTERS, OBJ_COFF_MAX_AUXENTRIES): Always + define these. + (S_GET_ZEROES): Deleted. + (S_SET_ZEROES): Moved to obj-coff.c. + + * config/obj-coff.c (obj_coff_* psuedo-op fns): Deleted + forward declarations. + (obj_pseudo_table): Moved to one version end of file, + conditionalized internally. + (stack typedef, stack_init, stack_delete, stack_push, stack_pop, + tag_hash, tag_init, tag_insert, tag_find, tag_find_or_make): Moved + to one combined version at top of file, unconditional. Deleted + forward declarations. + (s_get_name): Moved one copy of declarations to start of file. + (def_symbol_in_progress): Ditto. Don't initialize. + (S_SET_ZEROES): Moved here from obj-coff.h. + (write_object_file): If TC_COFF_SET_MACHINE is defined, call it on + the file headers. + + * config/obj-coff.c (seg_info_off_by_4): Now const and static. + (SEG_INFO_FROM_SEG_NUMBER): Unused macro deleted. + (previous_file_symbol, def_symbol_in_progress, symbol_externP, + symbol_extern_lastP, last_functionP) [!BFD_ASSEMBLER]: Don't + bother explicitly initializing to zero value. + + * config/obj-coff.c (fixup_segment) [TC_I960]: Use SF_GET_BALNAME + and SF_GET_CALLNAME instead of the TC_S_IS_ versions. + + * config/tc-i960.h (TC_COFF_SET_MACHINE): New macro. Calls + tc_headers_hook. + + * config/tc-i960.c (targ_has_iclass): Use I_CX | I_CX2 where I_CX + was used previously. + (tc_headers_hook): If I_CX2 is found, set flags to F_I960CA. + + * config/tc-i960.c (po_hash): Declaration deleted. + (next_object_file_charP): Ditto. + (regnames, aregs, coj): Now const. + (parse_memop): Static array def_scale now const. + (md_begin): Cast away const when passing hash routines addresses + of values in regnames or aregs. + (md_longopts): Added "link-relax" and "no-relax" hyphenated forms. + Continue to accept one-word forms. + (struct tabentry, arch_tab): Moved to top level from inside + md_parse_option. Now const. + (md_show_usage): Use arch_tab to generate usage message. Print + hyphenated forms of relax options. + + * config/tc-i960.h (DEFINE_I960_AOUT, TC_S_IS_*, TC_S_*_SYSPROC, + TC_S_FORCE_TO_*): Moved from here... + * config/tc-i960.c: ... to here. Changed DEFINE_I960_AOUT stuff + to test OBJ_AOUT and OBJ_BOUT directly. + + * config/tc-i960.h (CTRL, COBR, COJ, REG, MEM*, FBRA, CALLJ, + M1-M3, REG_OPC, R_*, SFR, LIT, FP, OP, R, RS, RL, RSL, F, + {R,F}{,L}{2,4}, M, SFR_OK, LIT_OK, FP_OK, REG_ALIGN, MEMOP, I_*): + Macros deleted. + + * config/tc-i960.c (ARCH_JX): Define. + (arch_tab): Include JX. + (targ_has_sfr, targ_has_iclass): Handle JX. + (tc_headers_hook): Set flags to F_I960JX for i960JX. + +Fri Jul 15 15:36:51 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * subsegs.c (section_symbol): Had last change backwards. + +Thu Jul 14 13:21:06 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * config/atof-ns32k.c: Deleted. + + * config/obj-aout.c (obj_aout_frob_symbol): Use + bfd_ind_section_ptr and bfd_und_section_ptr. + + * subsegs.c (subseg_set_rest): Compare segT values directly, + without casting to int first. + + * config/tc-ns32k.c (md_begin): Return value from hash_insert + should be pointer to const. Don't call exit explicitly after + calling as_fatal; it won't return. + (convert_iif): Make local variable j be pointer to bit_fixS, since + that's how it's used. + (encode_operand, case 'b'): Ignore sprintf return value. Don't try + converting freeptr to int and back. + + Merged in NS32K support update from Ian Dall (dall@hfrd.dsto.gov.au): + + * config/te-pc532mach.h: New file. pc532-mach target emulation. + + * config/te-netbsd532.h: New file. Netbsd532 target emulation. + + * config/tc-ns32k.h: Add definition of NOP_OPCODE. + + * config/tc-ns32k.h: Add prototype for fix_new_ns32k_exp. + + * config/tc-ns32k.h: Add BFD_ASSEMBLER support. + + * config/tc-ns32k.c (tc_gen_reloc): New function for BFD_ASSEMBLER. + + * config/tc-ns32k.c (fix_new_ns32k_exp): Get reloc type + differently for BFD_ASSEMBLER. + + * config/tc-ns32k.c (md_estimate_size_before_relax): Get reloc + type differently for BFD_ASSEMBLER. + + * config/tc-ns32k.c (md_create_long_jump): Size of opcode is one + not 2. + + * config/tc-ns32k.c (md_convert_frag): Code for the BFD_ASSEMBLER + case. Also use smart md_pcrel_adjust function. + + * config/tc-ns32k.c (md_apply_fix): Code for the BFD_ASSEMBLER + case. Also use smart md_fix_pcrel_adjust function. + + * config/tc-ns32k.c (md_fix_pcrel_adjust): New function which can + find offset from opcode to operand even if in another frag + and in the presence of relaxing. + + * config/tc-ns32k.c (md_pcrel_adjust): New function which can + find offset from opcode to operand even if in another frag + and in the presence of relaxing. + + * config/tc-ns32k.c (md_number_to_disp): Check ranges properly. + + * config/tc-ns32k.c (md_atof): use atof_ieee instead of special + atof_ns32k. + + * config/tc-ns32k.c (reloc): New (static) function for + BFD_ASSEMBLER. + + * config/tc-ns32k.c (convert_iif): More correct pc relative code. + md_relax must be able to find opcode address even if in another frag. + + * config/tc-ns32k.c: More extensive comments. + + * config/tc-ns32k.c (encode_operand): Support new operand classes I + and Z. Drop Q. + + * config/tc-ns32k.c (fix_new_ns32k_exp): new function and + corresponding prototype. + + * config/tc-ns32k.c: make 32532 default machine instead of 32032. + + * config/tc-ns32k.c: include opcode/ns32k.h after as.h + + * aout_gnu.h: r_disp needs to be 2 bits for TC_NS32K + + * write.h: fx_im_disp needs to be 2 bits big for TC_NS32K + + * write.c (relax_segment): Use TC_PCREL_ADJUST macro (if defined) + instead of adding pcrel_adjust. + + * write.c (write_object_file): Adjust to_addr for the + BROKEN_DOT_WORD feature for the BFD_ASSEMBLER case. + + * write.c (write_object_file): Use TC_CONS_FIX_NEW if it is defined. + + * write.c (write_contents): Add code (currently if + BFD_FAST_SECTION_FILL is defined) to make large fills a lot faster. + + * configure.in: Remove ns32k from special FP list. All the ns32k + series use ieee float. + + * configure.in: Add ns32k-pc532-mach and ns32k-pc532-netbsd targets + + * as.h: include expr.h before targ-env.h. Some target dependent file + want to use expr structures. + +Wed Jul 13 14:49:05 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * config/tc-m68k.c (m68k_ip): Change rp to be a const pointer. + (md_parse_option): Clear cpu field of current_architecture before + setting a new cpu type. Clear no_68881 for m68881 or m68882. + Clear no_68851 for m68851. + +Tue Jul 12 21:27:05 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * config/ho-sysv.h (realloc): Declare. + + * symbols.c (symbol_create): New function, most of the guts of the + old symbol_new function. + (symbol_new): Now just checks symbol_table_frozen, calls + symbol_create, and enters the symbol into the symbol table. + * subsegs.c (section_symbol): If EMIT_SECTION_SYMBOLS is not true, + and the symbol table is frozen, call symbol_create instead of + symbol_new. + * symbols.h (symbol_create, symbol_table_frozen): Declare. + + * symbols.c (symbol_clear_list_pointers): Always a function now. + * struc-symbol.h (symbol_clear_list_pointers): Deleted macro + version. + + * symbols.c (debug_verify_symchain): New macro, defined to be + verify_symbol_chain or a cast to void, depending on DEBUG_SYMS. + (many functions): Invoke debug_verify_symchain unconditionally. + +Tue Jul 12 12:06:42 1994 Kung Hsu (kung@x1.cygnus.com) + + * config/obj-ecoff.h: change calling interface of + OBJ_GENERATE_ASM_LINE_STAB. + * config/obj-elf.h: ditto. + * read.c (read_a_source_file): ditto. + * ecoff.h: change calling interface of + ecoff_generate_asm_line_stab. + * ecoff.c (add_file): record of filename to handle case of include + files, also change default built-in type from int to void for + asm file. + * ecoff.c (ecoff_generate_asm_line_stab): handle case of include + files. + +Mon Jul 11 17:20:23 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * config/tc-mips.c (macro): In case M_LA_AB, SVR4_PIC, large + constant, and case ldd_std, set mips_optimize to 2 temporarily to + avoid inserting an unexpected nop instruction. + +Sat Jul 9 00:05:12 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * ecoff.c (ecoff_build_lineno): Handle count correctly for last + line number. + +Fri Jul 8 15:22:07 1994 Steve Chamberlain (sac@jonny.cygnus.com) + + * gasp.c (process_pseudo_op): Pass right args to do do_aif. + (get_any_string): New arg 'pretend_quote'. + (get_and_process, do_formals, macro_expand, do_sdata, + process_pseudo_op): Use new arg. + +Fri Jul 8 12:23:44 1994 Kung Hsu (kung@mexican.cygnus.com) + + * config/obj-ecoff.h: define macro OBJ_GENERATE_ASM_LINE_STAB. + * config/obj-elf.h: ditto. + * read.c (read_a_source_file): generate line stabs for asm file. + * read.h: add extern generate_asm_line_stab. + * ecoff.h : add prototype for ecoff_generate_asm_line_stab(). + * ecoff.c (add_file): if there's no filename provided, set switch + to generate line stabs for .s file. + * ecoff.c (add_procedure): add stabs symbol for .ent directive. + * ecoff.c (generate_ecoff_stab): creates an artificial stabs. + * ecoff.c (generate_asm_line_stab): generate a artifitial label + for each line and generate a stabn for the line. + +Thu Jul 7 17:04:03 1994 Steve Chamberlain (sac@jonny.cygnus.com) + + * gasp.c (get_any_string): Cope with getting a string with an + alternate base specifier. + (do_aif, do_aelse): Only enable output if expression is true and previous + level was on. + (chartype_init): Add BASEBIT chartype. + (process_pseudo_op): Notice nesteed AIFs. + +Thu Jul 7 12:30:22 1994 Steve Chamberlain (sac@jonny.cygnus.com) + + * h8300.c (do_a_fix_imm): Code for 2 bit reloc type using in trapa + insn. (fix pr 5165, 5174) + +Thu Jul 7 11:31:32 1994 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (R_DLT_REL): If it isn't defined, then define + to an appropriate value to avoid losing on old hpux systems. + + * config/tc-hppa.c (hppa_fix_adjustable): Reject reductions for + symbols in DLT relative relocs. + (tc_gen_reloc): Zero out the addend field for DLT relative relocs. + +Wed Jul 6 01:07:54 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-ppc.c (ppc_tc): If not OBJ_COFF, force TOC entry to + align to a four byte boundary. + +Tue Jul 5 15:42:09 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * config/tc-alpha.c (load_expression): Handle 32-bit addends. + (gpdisp_hi16_howto): Now points to const. + (load_insn_table, alpha_ip): Fix uses of const. + + * doc/internals.texi: Updates to COFF description. Added "@end + defmac" as needed, and some extra heading and "@bye" so it'll + format as a separate document. + +Tue Jul 5 13:54:00 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * config/obj-elf.h (S_GET_ALIGN, S_SET_ALIGN): Define. + * config/obj-elf.c (obj_elf_common): Set alignment of common + symbol. + * config/tc-sparc.c (s_common): If OBJ_ELF, set alignment of + common symbol. + +Mon Jul 4 18:29:43 1994 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (is_complex): New macro. + (cons_fix_new_hppa): "Handle" complex expressions. + +Fri Jul 1 00:48:12 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/obj-coff.c (write_object_file): Set s_align field from + section_alignment array. + +Thu Jun 30 15:05:28 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * write.c (write_object_file): Use bfd_com_section_ptr. + * as.h (absolute_section, undefined_section): Use new BFD macros + bfd_abs_section_ptr and bfd_und_section_ptr. + +Thu Jun 30 14:36:37 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * config/tc-mips.c (macro): For M_LI_SS, decide how to handle it + based on contents of imm_expr and offset_expr, rather than + mips_pic. For M_LI_DD, decide how to handle it based on segment + name of offset_expr, rather than mips_pic. + (mips_ip): If g_switch_value < 4, use immediate values for 'l'. + If g_switch_value < 8, use .rdata rather than .lit for 'L'. + +Wed Jun 29 17:30:46 1994 Stan Shebs (shebs@andros.cygnus.com) + + * as.c (show_usage): Break long string into shorter ones. + (parse_args): Add -v, prints version id and continues. + * config/tc-mips.c (md_show_usage): Break long string. + +Mon Jun 27 09:47:16 1994 J.T. Conklin (jtc@phishhead.cygnus.com) + + * config/tc-i386.c (md_parse_option): Handle "-V" and "-Q" if + OBJ_ELF is defined. + +Sun Jun 26 16:30:48 1994 Stan Shebs (shebs@andros.cygnus.com) + + * as.c (main) [HOST_SPECIAL_INIT]: New hook, for host-specific + initialization. + +Wed Jun 22 00:24:55 1994 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-hppa.h (obj_frob_symbol): Define for OBJ_ELF. + More gas/bfd lossage exposed by the new linker code. + +Tue Jun 21 11:32:18 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * subsegs.c (subseg_change): Clear seginfo after allocating it. + (subseg_get): Pass actual size of seginfo to memset. + + * subsegs.c (abs_seg_info, und_seg_info): Define if BFD_ASSEMBLER. + (subseg_change): Store seg_info for bfd_abs_section_ptr in + abs_seg_info, and store seg_info for bfd_und_section_ptr in + und_seg_info. + (subseg_get): Likewise. Also, don't set output_section if it is + already set. + (seg_info): Define as function. + * subsegs.h (seg_info): Declare as function rather than defining + as macro. + * write.c (relax_and_size_seg): Call seg_info rather than + bfd_get_section_userdata. + +Mon Jun 20 16:30:54 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * configure.in (ppc-*-elf*): New target, like -sysv4*. + + * expr.c (operand): If "0f" is followed by '\0', don't do eol + checks. + +Mon Jun 20 15:17:43 1994 Ian Lance Taylor (ian@sanguine.cygnus.com) + + * ecoff.c (ecoff_build_aux): Call swap_tir_out and swap_rndx_out + via backend pointer, not directly. + +Fri Jun 17 18:05:06 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * Makefile.in (config-stamp): Make sure there is at least one + element in the for loop. + +Fri Jun 17 11:01:04 1994 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c: Misc trivial changes to make gcc -Wall happy. + + * config/tc-hppa.h (elf_hppa_final_processing): Declare. + +Wed Jun 15 20:44:46 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * as.c (parse_args): Cast xmalloc return value. + + * Makefile.in (config-stamp): If $(defs) contains multiple words, + emit a #define line for each. + * configure.in: For sparc64 target, use sparc cpu files and add + sparcv9 to extra_defs. No longer treat sparc64-*-aout* specially. + + * config/tc-sparc.c (membar_masks): Now static and const. + (md_show_usage) [!NO_V9]: Add -Av9 to usage message. + (current_architecture) [sparcv9]: Initialize to v9. + (md_begin) [sparcv9]: Don't bother changing it unconditionally + here. + (s_reserve): Don't pass unexpected argument to as_bad with + bad-segment message. + + * as.h (bfd_alloc_by_size_t) [BFD_ASSEMBLER]: Declare. + + * config/atof-ieee.c (int_to_gen): Commented out unused routine. + + * config/tc-vax.c (md_assemble): Removed check of operand section. + + Fri Jun 3 17:25:08 1994 Pat Rankin (rankin@eql.caltech.edu) + + * config/obj-vms.h (DBG_S_C_COMPLX4, DBG_S_C_COMPLX8): define + these new VMS symbol-type macros for `complex float' and + `complex double' support. Their values come from the existing + DSC$K_DTYPE_FC and DSC$K_DTYPE_DC macros in <descrip.h>. + (DBG_S_C_REAL8_G, DBG_S_C_COMPLX8_G): G_float versions of + REAL8 and COMPLX8; not used yet, because gcc outputs the same + .stabs for `double' regardless of whether `-mg' is used. + * config/obj-vms.c (VMS_typedef_parse) [case 'r']: add entries + for gcc2's predefined types "complex float", "complex double", + and "complex long double" (identical to complex double). + +Wed Jun 15 12:32:55 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/obj-coff.c (coff_frob_symbol): Use C_STAT for the .text + section symbol, not C_LABEL. + + * config/tc-mips.c (mips_ip): Permit a modifier in 'o' case, and + permit non constant expressions in 'u' case. Lets ``lui + $8,%hi(foo); lw $8,%lo(foo)($8)'' work correctly. + +Mon Jun 13 12:08:52 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/obj-aout.c (obj_aout_frob_symbol): Warn about an attempt + to put a common symbol in a set. + +Sat Jun 11 16:41:21 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + Add weak symbols as an extension to a.out. + * read.c (pseudo_set): Only preserve external bit for OBJ_AOUT and + OBJ_BOUT if not BFD_ASSEMBLER. + * config/aout_gnu.h (N_WEAKU, N_WEAKA, N_WEAKT, N_WEAKD, N_WEAKB): + Define as in ../include/aout/aout64.h. + * config/obj-aout.h (OBJ_SYMFIELD_TYPE): If not BFD_ASSEMBLER, + define as char. + (S_GET_WEAK, S_SET_WEAK): Define if not BFD_ASSEMBLER. + * config/obj-aout.c (obj_pseudo_table): Add "weak". + (obj_emit_symbols): Adjust type of weak symbols. + (obj_aout_weak): New static function. + +Fri Jun 10 13:48:49 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/obj-elf.c (obj_elf_section): Don't set any flags based on + the type of a special section. + + * config/ho-sunos.h: Include <stdlib.h>. Don't declare malloc, + realloc, free, or atol. + +Wed Jun 8 06:28:37 1994 Bill Cox (bill@cygnus.com) + + * Makefile.in (check): Delete as.new dependency, so that + regression test doesn't trigger an assembler build. + +Tue Jun 7 13:33:18 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * Makefile.in (mostlyclean, realclean): New targets. + * doc/Makefile.in, testsuite/Makefile.in: Likewise. + +Mon Jun 6 13:10:54 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-mips.c (RDATA_SECTION_NAME): Define. + (macro): Correct M_LI_SS SVR4_PIC/EMBEDDED_PIC case. After M_LI_D + or M_L_DOB or label dob, force a new frag to avoid getting + confused in tc_gen_reloc. + (mips_ip): Use RDATA_SECTION_NAME, not .rdata. + (s_change_sec): Likewise. + +Fri Jun 3 23:35:36 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * read.c (emit_expr): Use memset to zero out memory, rather than + going through md_number_to_chars. This permits handling symbolic + arguments when the size is larger than sizeof (valueT), if + TC_CONS_FIX_NEW is prepared to handle the case (as it is on MIPS). + +Fri Jun 3 12:50:13 1994 David J. MacKenzie (djm@rtl.cygnus.com) + + * as.c (show_usage), config/tc-alpha.c (md_show_usage), + config/tc-mips.c (md_show_usage): Fix up messages. + + * as.h: Replace flagseen with separate variables. + * as.c (parse_args): Set them. Don't accept -1 option, or -v + explicitly (it's a synonym for --version). + * as.c, input-scrub.c, messages.c, read.c, symbols.c, write.c, + config/obj-aout.c, config/obj-aout.h, config/obj-bout.c, + config/obj-bout.h, config/obj-coff.c, config/obj-coff.h, + config/obj-vms.c, config/tc-hppa.c, config/tc-i386.c, + config/tc-i960.c, config/tc-m68k.c, config/tc-mips.c, + config/tc-vax.c: Use the new flag variables instead of flagseen. + * config/tc-vax.c [OBJ_VMS]: Recognize -+, -1, -v, and document in + usage. + + * as.c (show_usage): Remove target specific messages; + instead, call md_show_usage. + (parse_args): Use getopt_long_only. Take pointers to argc and + argv. + (main): Pass parse_args pointers. + * as.h: Remove 3 variables that are redundant with flagseen. + * as.c, messages.c: Change their users to use flagseen. + Define getopt stuff. + * tc.h: Update md_parse_option decl. Add md_show_usage decl. + * config/tc-*.c: Add md_shortopts, md_longopts, + md_longopts_size, md_show_usage. Change calling convention for + md_parse_option. Remove md_parse_long_option. + * config/tc-ns32k.c: Rename `struct option' to `struct ns32k_option'. + * config/tc-i386.h: Don't define md_parse_option. + +Thu Jun 2 13:54:46 1994 David J. Mackenzie (djm@rtl.cygnus.com) + + * as.c (show_usage): New function. + (parse_args): Code moved from main. + Recognize --help and --version. + * config/tc-ns32k.h: Define TC_NS32K. + * doc/as.texinfo: Document all of the target-independent command + line options. + +Thu Jun 2 12:07:25 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * gasp.c (hash_new_table): Clear newly allocated table. + + * config/tc-m68k.c (enum _register): Add 68060 control registers + BUSCR and PCR. + (last_movec_reg): New macro. + (m68000_control_regs, m68010_control_regs, m68020_control_regs, + m68040_control_regs, m68060_control_regs): New arrays. + (control_regs): New pointer. + (m68k_ip): Use control_regs instead of testing CPU every time. + Use last_movec_reg too. In error messages, handle 68060, and + print 68060 for mfloat, too. + (m68k_init_after_args): Handle "68060". Use m68040up for making + m68851 choice. Set control_regs. + (md_parse_option): Handle "68060". + * configure.in: Setting cpu_type, recognize m68060 too. + + * config/obj-coff.c (fixup_segment) [!BFD_ASSEMBLER] + [DIFF_EXPR_OK]: Do conversion to pc-relative for difference, even + if pcrel is already set. + + * read.c (potable): Add this_gcc_requires_the_gnu_assembler in all + lower-case, in case we're ignoring case of opcodes in the input + file. + + * doc/as.texinfo (.section): Document as unavailable for a.out + type formats. + + * config/tc-alpha.c (machine): New variable. + (load_insn): New macro. + (load_insn_table): New function. + (md_begin): Call load_insn_table, once for basic instructions and + once for appropriate PAL instruction table. + (md_parse_option): Set `machine' based on -m##### arguments. + * config/alpha-opcode.h (alpha_pal21064_opcodes): Split out from + alpha_opcodes. + (alpha_pal21164_opcodes): New table. + (NUM21064OPCODES, NUM21164OPCODES): New macros. + + * configure.in (target i386-*-netbsd0.8): Use 386bsd emulation. + + * doc/Makefile.in (install-info-gasp): Use $$dir when installing + file. + +Wed Jun 1 10:48:19 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-mips.c (mips_ip): Force floating point values to be + aligned correctly. + +Fri May 27 10:05:53 1994 Ken Raeburn (raeburn@cygnus.com) + + Merged in changes from gas-2.3 net release: + + * Makefile.in (VERSION): Updated to cygnus-2.3.1. + + * config/obj-vms.c: Replaced unchecked uses of malloc with + xmalloc. + + * listing.c (list_symbol_table): Only test BFD64, not + BFD_ASSEMBLER too. + + * config/obj-coff.c (fixup_segment) [BFD_ASSEMBLER] + [DIFF_EXPR_OK]: Don't check pcrel, just convert it. + + * config/obj-vms.c: Removed lots of extra semicolons after + compound statements. + (strchr): Don't declare here. + + * config/ho-vax.h (realloc): Declare. + + * config/ho-vms.h (strchr, strdup): Declare. + + * config/tc-sparc.c (md_parse_option) [OBJ_ELF]: Accept and ignore + option `-q'. + + Wed May 18 20:50:35 1994 Pat Rankin (rankin@eql.caltech.edu) + + * config/obj-vms.h (DBG_S_C_SQUAD, DBG_S_C_UQUAD): define these + new VMS symbol-type macros; signed and unsigned quadword integers, + for `long long' support. Their values come from the existing + DSC$K_DTYPE_QU and DSC$K_DTYPE_Q macros in <descrip.h>. The + VMS debugger now recognizes `long long' variables correctly. + * config/obj-vms.c (VMS_typedef_parse) [case 'r']: add entries + for gcc2's predefined types "long double" (same as double, as + per gcc's current state), "long long int", "long long unsigned + int", and final `otherwise' case (to avoid uninitialized type + and size fields). [caveat: predefined types "complex int", + "complex float", "complex double", and "complex long double" are + still missing.] + + * config/ho-vms.h (EXIT_FAILURE): define as 0x10000002 instead + of 0, because the latter indicates success rather than failure + when passed to `exit' or return from `main' compiled by gcc2. + + * config/obj-vms.c (array_suffix, generate_suffix): replace two + hardcoded `0xa3's with macro DBG_S_C_ADVANCED_TYPE from obj-vms.h. + (VMS_typedef_parse): eliminate redundant if-then-else when + allocating new symbol entry and linking it to VMS_Symbol_type_list. + + Tue May 17 20:47:31 1994 Pat Rankin (rankin@eql.caltech.edu) + + * config/obj-vms.c (Write_VMS_MHD_Records): don't try to interpret + the contents of the GAS_VERSION string when falling back to it for + language processor identification. + + * make-gas.com, vmsconf.sh (ENVIRON): fix misspelling of + `psect_attr' in linker options. + + Wed May 11 22:32:00 1994 DJ Delorie (dj@ctron.com) + + * configure.bat: update to latest makefile.in + * config/te-go32.h: [new] go32's environment + +Fri May 20 17:59:34 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * as.h: Don't declare parameters for strstr. + +Thu May 19 15:40:13 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-sparc.c (md_section_align): Don't change the size if + OBJ_ELF. + +Wed May 18 13:08:07 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * Makefile.in (install): Redirect ln output to /dev/null. If ln + fails on gasp, install gasp.new, not gasp. + +Wed May 18 09:16:36 1994 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (pa_ip): Use R_HPPA_ABS_CALL, not R_HPPA for + absolute calls. + +Tue May 17 12:50:46 1994 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (pa_parse_fp_cmp_cond): Report an error + on a partial completer match. + +Mon May 16 12:03:49 1994 Jeff Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c: Change .hppa_unwind to .PARISC.unwind + throughout code. + (is_complex): Delete definition and support for complex relocation + types. + (tc_gen_reloc): Delete special unwind crud for ELF. Simplify and + rewrite ELF code based on 94-02-02 PA ELF draft spec. + (pa_build_unwind_subspace): Use standard PARISC_DIR32 relocs for + the unwind descriptors. + +Fri May 6 14:13:15 1994 Steve Chamberlain (sac@cygnus.com) + + * config/go32.mh: New makefile fragment for go32 crossing. + * configure.in (host==go32): Use new fragment. + +Fri May 6 14:35:58 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * gasp.c: Include libiberty.h. + (main): Remove unused variable i. + + * config/tc-ppc.c (md_begin): When using -many, permit comparison + instructions to appear multiple times in the opcode table. + +Thu May 5 19:14:43 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * Makefile.in (VERSION): Update to 2.2.90. + + * symbols.c (symbol_new) [BFD_ASSEMBLER]: Don't permit additions + to the symbol table if it's already been set in the output bfd. + (symbol_begin) [! EMIT_SECTION_SYMBOLS] [RELOC_REQUIRES_SYMBOL]: + Don't use bfd_abs_section.symbol for gas absolute symbol. + + * doc/Makefile.in (distclean, clean-dvi, clean-info): Delete gasp + files too. + +Thu May 5 18:12:51 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-mips.c (mips_emit_delays): Make call to + mips_no_prev_insn unconditional. + +Thu May 5 17:25:38 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * config/obj-coff*.*: Merged coffbfd versions into coff versions, + with a single "#ifdef BFD_ASSEMBLER" controlling most of it for + now. Deleted obj-coffbfd.* files. + * configure.in: Always use obj-coff.* for COFF targets. + +Wed May 4 13:34:11 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * config/te-dpx2.h (TARGET_FORMAT, REGISTER_PREFIX_OPTIONAL): + Define. + * configure.in (m68k-bull-sysv3*): Enable. + + * config/coff_gnu.h: Deleted. + +Wed May 4 11:29:17 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-m68k.h (TARGET_FORMAT): If not TE_SUN3, define as + "a.out-zero.big". + + * config/obj-coffbfd.c (fixup_segment): Make common symbol and PC + relative adjustments when TE_LYNX is defined as well as when + TC_I386 is defined. + +Wed May 4 02:29:21 1994 Ken Raeburn (raeburn@kr-pc.cygnus.com) + + * as.h (strstr): Restore declaration. + (subseg_get) [BFD_ASSEMBLER]: Declare. + + * write.c (write_object_file): If obj_adjust_symtab is defined, + invoke it. Then call set_symtab, and finally invoke *_frob_file + hooks. + * config/obj-coff.c (coff_adjust_symtab): Renamed from + coff_frob_file. + * config/obj-coff.h (coff_adjust_symtab): Changed declaration + accordingly. + (obj_adjust_symtab): Macro also changed. + + * configure.in (i386-*-gnu*): New target, handled like i386-mach. + +Tue May 3 21:04:16 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * config/obj-coff.h (TARGET_FORMAT) [TC_I960]: Select little + endian version. + + * config/obj-coffbfd.h (TARGET_FORMAT) [TC_I960]: Ditto. + + * config/obj-coff.c (coff_frob_section): Round up the size of + every section to a multiple of the alignment, so that BFD doesn't + surprise us. + + Eliminate many simple differences between the two COFF back ends: + + * config/obj-coffbfd.c: Removed all uses of DEFUN and DEFUN_VOID. + Made minor stylistic changes, deleted some register declarations. + (stack_top): Deleted. + (symbol_to_chars): Use absolute_section and reg_section instead of + the corresponding SEG_* symbols. + (obj_coff_endef, tag_find_or_make, fixup_segment): Likewise. + (stack typedef, stack_init, stack_delete, stack_push, stack_pop): + Moved to just after pseudo-op table. All functions now static. + (stack_delete): Removed declaration. + (tag_init, tag_insert, tag_find_or_make, tag_find): Moved to just + after stack functions. + * config/obj-coffbfd.h: Reordered some declarations and macros. + (stack_init, stack_delete, stack_push, stack_pop): Don't declare. + (stack typedef): Deleted. + (SYMBOLS_NEED_BACKPOINTERS): Always undef then define; don't test. + (SYM_AUXENT): New macro. + (SA_GET_*, SA_SET_*): Define in terms of SYM_AUXENT when feasible. + (SF_GET_*, SF_SET_*): Define in terms of SF_GET when feasible. + (SA_GET_SYM_TAGNDX, SA_GET_SYM_ENDNDX, SA_SET_SYM_TAGNDX, + SA_SET_SYM_ENDNDX, object_headers typedef, data_section_header, + text_section_header): Delete non-BFD_HEADERS versions, since we + always define that symbol now. + + * config/obj-coff.c (stack_top): Deleted. + (obj_coff_endef, obj_coff_dim, obj_coff_line, obj_coff_size, + obj_coff_scl, obj_coff_tag, obj_coff_type, obj_coff_val): Change + argument name from "ignored" to "ignore". + (obj_coff_val): Use frag_now_fix. + (obj_pseudo_table): Removed IGNORE_DEBUG version, since it doesn't + get used. + (stack typedef, stack_init, stack_delete, stack_push, stack_pop): + Moved to just after pseudo-op table. All functions now static. + (tag_init, tag_insert, tag_find_or_make, tag_find): Moved to just + after stack functions. + * config/obj-coff.h: Reordered some declarations and macros. + Protected against multiple inclusions. + (stack_init, stack_delete, stack_push, stack_pop): Don't declare. + (stack typedef): Deleted. + (SYMBOLS_NEED_BACKPOINTERS): Always undef then define; don't test. + (stdoutput): Deleted declaration. + (TARGET_FORMAT) [TC_I386]: Don't define if already defined. + +Mon May 2 17:09:24 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * subsegs.h (segment_info_type): Use fix_tail field even if + BFD_ASSEMBLER. + * subsegs.c (subseg_change): Initialize fix_tail field. + (subseg_get): Likewise. + * write.c (frags_chained): New static variable. + (fix_new_internal): If frags_chained is set, use fix_root and + fix_tail from seg_info (now_seg), rather than frchain_now. + (chain_frchains_together_1): Set fix_tail field. + (chain_frchains_together): Set frags_chained. + +Thu Apr 28 01:39:15 1994 Ken Raeburn (raeburn@kr-pc.cygnus.com) + + * config/tc-mips.c (s_option): Only refer to g_switch_* variables + if GPOPT is defined. + (s_abicalls): Ditto. + (md_apply_fix): Cast char* to unsigned char* to avoid pointer + mismatch. + +Wed Apr 27 11:06:32 1994 Steve Chamberlain (sac@cygnus.com) + + * configure.in (i386-*-go32): Uses coff now. + * gasp.c (main): Now takes -D on command line. + (show_usage): Describe new options. + +Tue Apr 26 17:10:30 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * listing.c (list_symbol_table): Print "NO DEFINED SYMBOLS" and + "NO UNDEFINED SYMBOLS" if there aren't any, instead of displaying + the header with an empty list. + + * config/obj-coffbfd.c (fill_section): Check COFF_NOLOAD_PROBLEM + also before setting STYP_NOLOAD for .bss section. + + * config/tc-m68k.c (flag_reg_prefix_optional): New variable. + Initialized to value of REGISTER_PREFIX_OPTIONAL, if defined, or + zero. + (m68k_reg_parse): If flag_reg_prefix_optional is set, permit + register prefix to be absent. + (m68k_ip_op): Accept `&' also for immediate constants. + (insert_reg): Don't bother with (two!?) sanity checks of the + symbol table when inserting each register. + (m68k_parse_long_option): New function. Set + flag_reg_prefix_optional if "register-prefix-optional" is passed. + * config/tc-m68k.h (REGISTER_PREFIX): Always define if not already + defined. + (OPTIONAL_REGISTER_PREFIX): Don't define. + (REGISTER_PREFIX_OPTIONAL): If not already defined, define as zero + or one depending on M68KCOFF. + + Some changes to help Apollo support, from troy@cbme.unsw.edu.au: + * config/tc-m68k.c (DATA, ADDR, SP, FPREG, COPNUM, BAD, BAC): + Define as macros instead of enumerators, since the Apollo compiler + can't handle "enumVal1, enumVal2 = enumVal1" when defining an enum + type. + (make_pcrel_absolute) [NO_PCREL_RELOCS]: New function. + (tc_coff_fix2rtype) [NO_PCREL_RELOCS]: Generate only R_RELBYTE, + R_DIR16, and R_DIR32 relocs. + * config/tc-m68k.h [TE_APOLLO] (COFF_MAGIC, COFF_AOUTHDR_MAGIC): + Use Apollo versions. + [TE_APOLLO] (OBJ_COFF_OMIT_OPTIONAL_HEADER): Undefine. That is, + do include the optional header for Apollo target. + (COFF_MAGIC): Don't define as MC68MAGIC if it's already defined. + + * config/tc-m68k.h [TE_DELTA] (LEX_PCT): Define as 1, so that `%' + can be used within a label name. + + * config/tc-m68k.h (m68k_init_after_args): Declare. + (tc_init_after_args): Define as m68k_init_after_args. + * config/tc-m68k.c (m68k_init_after_args): New function, + containing one-shot code from md_assemble. Added warning for + combination of 68040 and 68851. + (md_assemble): Startup-time code deleted. + +Mon Apr 25 16:19:17 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * doc/Makefile.in (clean, distclean): Remove asconfig.texi. + +Sun Apr 24 00:13:08 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (pa_ip): 13 bit immediate constant (for break + instruction) is unsigned. + +Fri Apr 22 17:58:22 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/obj-ecoff.c (ecoff_frob_file): Use bfd_ecoff_set_gp_value + and bfd_ecoff_set_regmasks to set the GP value and the register + masks, rather than using the now obsolete fake .reginfo section. + +Fri Apr 22 15:17:06 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * listing.c (list_symbol_table): Don't print register symbols as + undefined. + + * config/obj-coff.c (obj_symbol_new_hook): Don't need to strip + underscores, since symbol_new will already have done it. + * config/obj-coffbfd.c (obj_symbol_new_hook): Ditto. + + * as.c (main): If tc_init_after_args is defined, invoke it after + all arguments have been processed. + + Some changes to help Apollo support, from troy@cbme.unsw.edu.au: + * as.c (perform_an_assembly_pass) [TE_APOLLO]: Create .wtext + section instead of .text. Call create_target_segments. + * read.c (demand_copy_string): No longer static. + +Thu Apr 21 15:50:04 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-mips.c (append_insn): Permit branches to be switched + with the preceding instruction even if .set nobopt has been seen. + .set nobopt actually controls whether to bring up an instruction + from the branch target, which gas does not currently support. + +Wed Apr 20 18:46:14 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * config/obj-coff.h, config/obj-coff.c: Deleted all code used only + when BFD_ASSEMBLER is not defined, and all conditionals relating + to such code. No such targets remain. + + Fixes for stabs-in-coff: + * config/obj-coff.c: Include subsegs.h. + (coff_frob_section): New function. + (obj_coff_init_stab_section): New function. + * config/obj-coff.h (obj_coff_init_stab_section, + coff_frob_section): Declare. + (obj_frob_section): New macro; uses coff_frob_section. + (INIT_STAB_SECTION): New macro; uses obj_coff_init_stab_section. + + * config/tc-sparc.c (md_section_align): Always round up to + multiple of alignment power specified in bfd target vector. + + * gasp.c: Include ctype.h. + +Mon Apr 18 21:08:01 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * doc/Makefile.in, doc/as.texinfo: Renamed asdoc-config.texi to + asconfig.texi. + + * doc/Makefile.in (install-info-as, install-info-gasp): Get file + names from source directory without pathname. + + * config/obj-vms.c (VMS_write_object_file): While looking for + register mask, skip empty fill frags caused by enabling listing + output. + + * config/ho-sysv.h: Include string.h. + + * doc/internals.texi: New (well, recently added) file. Just added + info on as_warn and friends. + +Mon Apr 18 14:28:22 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (pa_parse_space_stmt): Use the built-in + defaults for defined, private, and spnum fields for the + $TEXT$ and $PRIVATE$ spaces. Do not clobber spnum. Do + not reset the segment if just updating a space. + (pa_spaces_begin): Set BFD section flags for all built-in + subspaces. + +Fri Apr 15 10:51:51 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * ecoff.c (first_proc_ptr): New static variable. + (add_procedure): Set first_proc_ptr if it hasn't been set. + (ecoff_build_lineno): If the first procedure does not start at + address zero, insert a dummy line to compensate. + + * Makefile.in (bootstrap, bootstrap2, bootstrap3): Make gasp.new + as well as as.new. + +Thu Apr 14 15:12:36 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * expr.c (operand): Try to parse "0f" and "0b" sequences as + floating point and binary numbers respectively; if it doesn't + work, treat them as local labels. + + * Makefile.in: Make $(OBJS) depend on $(ALL_OBJ_DEPS). + * configure.in: Set ALL_OBJ_DEPS in output Makefile. + + Based on suggestions from <BAILEY@hmivax.humgen.upenn.edu> + (Charles Bailey): + * vmsconf.sh: In generated file, get ".obj" suffix right, build + source files from other directories into objects in the current + directory, and specify PSECT attributes explicitly to linker. + Also added missing label. + * Makefile.in (stamp-mk.com): Reference new variable + VMS_OTHER_OBJS for list of non-local object files, instead of + listing them here. + (VMS_OTHER_OBJS): New variable, added more libiberty files. + * make-gas.com: Regenerated. + + * config/ho-vms.h (unlink): Define as delete. + + * config-gas.com: Fix quoting on TARGET_CANONICAL definition. + Delete files before creating them. + +Thu Apr 14 13:34:24 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * Makefile.in (de-stage1, de-stage2, de-stage3): Use rm -f. + + * config/tc-mips.h (DIFF_EXPR_OK): Define. + * config/tc-mips.c (macro_build): Permit BFD_RELOC_PCREL_LO16 for + certain cases of 'i', 'j' and 'o'. Change 'u' to take an + argument, the reloc type. + (load_register): Pass reloc type to macro_build for 'u'. + (macro): Likewise. For M_LA_AB permit a difference expression + when generating embedded PIC code between an arbitrary symbol and + a symbol in the .text section. + (mips_force_relocation): Force BFD_RELOC_PCREL_HI16_S and + BFD_RELOC_PCREL_LO16 to be emitted. + (md_apply_fix): Check that most relocs are not PC relative. + Handle BFD_RELOC_PCREL_HI16_S and BFD_RELOC_PCREL_LO16. + (tc_gen_reloc): Change #error to as_fatal. Handle + BFD_RELOC_PCREL_LO16 and BFD_RELOC_PCREL_HI16_S. + +Tue Apr 12 18:25:13 1994 Stan Shebs (shebs@andros.cygnus.com) + + * subsegs.c (subsegs_begin): Call memset with args in the correct + order. + (subseg_get): Clear newly allocated seginfo, set its pointer slots + to NULL instead of 0. + +Mon Apr 11 09:00:57 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (pa_procend): Handle case where label was + defined after the .proc directive. + + * config/tc-hppa.c (pa_procend): Give an error if we encounter a + procend for a procedure without a name. + +Thu Apr 7 14:28:30 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-mips.c (macro): Pass NULL for expression argument to + macro_build for nori case. + (SWITCH_TABLE): Define. + (mips_force_relocation): Force a relocation for a switch table + entry. + (md_apply_fix): Write switch table entry value into file. + (tc_gen_reloc): Use BFD_RELOC_GPREL32 for a switch table entry, + and set the addend to the difference between the reloc address and + the subtrahend. + +Thu Apr 7 10:38:18 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/tc-hppa.h (elf_tc_symbol): Delete. No longer used. + (elf_tc_make_sections): Likewise. + (hppa_tc_make_sections, hppa_tc_symbol): Delete extern decls. + + * config/tc-hppa.c (hppa_tc_make_sections): Delete function. + (hppa_tc_symbol): Likewise. + + * config/obj-elf.c (elf_frob_file): Delete elf_tc_symbol and + elf_tc_make_sections stuff. It was there to support PA braindamage + which has been fixed, and in the case of elf_tc_make_sections is + redundant with elf_tc_final_processing. + +Wed Apr 6 20:48:30 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * configure.in (hppa*-*-*elf*): Don't require "-hp-" for the + manufacturer. + +Tue Apr 5 15:48:03 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-mips.c (mips_ip): For case 'o', when generating + embedded PIC code, accept the difference between two local symbols + as being constant. + (mips_force_relocation): Only force a reloc to be generated for a + PC relative fixup. + (md_apply_fix): For BFD_RELOC_32 and BFD_RELOC_LO16, put the fixup + value into the file if the fixup will not generate a reloc. + +Tue Apr 5 11:14:14 1994 Ken Raeburn (raeburn@rtl.cygnus.com) + + * config/tc-sparc.c (s_reserve): If section passed isn't bss, + don't spew remainder of input file in error message. + (tc_gen_reloc): If bfd_reloc_type_lookup returns null, print error + message with reloc type and try to process remainder of file. + + * doc/Makefile.in (install-info-as, install-info-gasp): New + targets, now explicitly checking $(srcdir) for info files. + (install-info): Depend on both of them; do nothing more. + +Mon Apr 4 17:06:04 1994 Jeffrey A. Law (law@cygnus.com) + + * config/tc-hppa.c (tc_gen_reloc): Fix thinko in ELF version. + +Mon Apr 4 12:39:23 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-ppc.c (ppc_insert_operand): Check PPC_OPERAND_SIGNED + flag rather than signedp field. Only permit extended range if + PPC_OPERAND_SIGNOPT flag is set and assembling in 32 bit mode. + Based on patch from David Edelsohn (edelsohn@npac.syr.edu). + + * config/tc-ppc.c (ppc_size): New static variable. + (ppc_arch): Check for PPC_OPCODE_PPC before PPC_OPCODE_POWER. + (md_begin): If an instruction has a size specific flag set, only + add it if we are assembling that size. + +Thu Mar 31 16:51:16 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-sparc.c (tc_gen_reloc): Add a gruesome hack to get + cross section PC relative relocs right for COFF and ELF. + +Mon Mar 28 14:38:23 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * config/obj-coff.h (SEPARATE_STAB_SECTIONS): Always define. + (OBJ_PROCESS_STAB): Don't define. + +Mon Mar 28 12:40:25 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/obj-aout.c (obj_aout_frob_symbols): Don't let BFD clobber + the type of symbol set symbols which happen to be in the absolute + or undefined section. + +Mon Mar 28 12:35:00 1994 David Edelsohn (edelsohn@npac.syr.edu) + + * config/tc-ppc.c (md_parse_option): Add -mpwrx (POWER/2 aka + RIOS2), -mpwr (POWER aka RIOS1), -mppc (PowerPC aka MPC603/604), + and -many (all architectures). + +Sun Mar 27 14:04:19 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (tc_gen_reloc): Set addend for relocation + involving a function symbol which is not a plabel to zero. + (md_apply_fix): Never pass a function symbol to field_adjust. + +Fri Mar 25 17:35:49 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/obj-aout.c (obj_aout_frob_symbol): If N_EXT is set for an + N_INDR symbol, set BSF_EXPORT and clear BSF_LOCAL. + + * config/tc-mips.c (append_insn): If EMBEDDED_PIC, don't swap a + branch with an instruction that uses $at, in case the branch is + later expanded. + (macro): If EMBEDDED_PIC, case M_JAL_A may use $at. + (md_pcrel_from): If not OBJ_AOUT, return 4 for an undefined symbol + to make it pcrel_offset. + (tc_gen_reloc): If not OBJ_AOUT, set the reloc addend to + reloc->address; another gruesome hack to get gas reloc handling to + do the right thing. + +Thu Mar 24 21:29:29 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * config/tc-alpha.c (alpha_ip): Only set GP prolog size if using + PV register. + (T12): New macro. + (emit_insn): New function. + (md_assemble): Call it. + (alpha_force_relocation): Handle BFD_RELOC_26, for call_pal + instructions. + (lituse_pending): New variable. Set by anything that generates a + LITERAL reloc, cleared by anything that generates a LITUSE reloc, + tested by code that might want to emit a LITUSE reloc. + (emit_unaligned_io): New function. Currently calls md_assemble, + but it should eventually be converted to generate the insn itself + and call emit_insn directly. + (emit_load_unal, emit_store_unal, emit_byte_manip_r, + emit_extract_r, emit_insert_r, emit_mask_r, emit_sign_extend, + emit_bis_r): Likewise. + (alpha_ip, case 'I'): Handle with BFD_RELOC_23. + (alpha_ip, label get_macro): Don't emit the final instruction if + the opcode is zero. + (alpha_ip, case 'B', subcase 'd'): New case, for subword and + unaligned memory access macros. + (md_apply_fix): Handle BFD_RELOC_26. Generate an error message if + the value can't be resolved. + +Wed Mar 23 16:06:08 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-mips.c (md_parse_option): For -membedded-pic, force + the -G value to 0x7fffffff. For SVR4 PIC options, don't call + bfd_set_gp_size here, it's done in md_begin. Don't permit -G with + -membedded-pic. + (mips_force_relocation): New function. + (md_apply_fix): Set fixP->fx_done appropriately. + (s_change_sec): For EMBEDDED_PIC, change .data and .rdata to + .sdata. + * config/tc-mips.h (TC_FORCE_RELOCATION): Define. + (mips_force_relocation): Declare. + (TC_HANDLE_FX_DONE): Define. + +Tue Mar 22 13:58:37 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-mips.c (enum mips_pic_level): New enum. + (mips_pic): Change from int to enum mips_pic_level. Change all + uses (0 becomes NO_PIC, 2 becomes SVR4_PIC). + (load_address): Handle EMBEDDED_PIC. + (macro): Handle EMBEDDED_PIC in all PIC cases. + (md_parse_option): Accept -membedded-pic to use EMBEDDED_PIC. If + OBJ_ELF, accept -KPIC and -call_shared to use SVR4_PIC and accept + -non_shared to use NO_PIC (this is how the Irix 5 assembler + works). Do not permit -G with SVR4_PIC. + (s_abicalls): Warn if -G was used, and force -G 0. + (tc_gen_reloc): Set reloc->addend to 0 for a PC relative reloc for + anything but a.out, not just for ELF. For ECOFF, don't generate a + BFD_RELOC_16_PCREL_S2 reloc unless using EMBEDDED_PIC. + + * config/obj-ecoff.h (obj_sec_sym_ok_for_reloc): Define to be 1. + +Sun Mar 20 16:31:55 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (create_new_space): Use ints, not chars as + parameters to avoid losing when compiling with HP CC. + (create_new_subspace, update_subspace, fix_new_hppa): Likewise. + +Sun Mar 20 14:43:14 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * Makefile.in (config-stamp): If `defs' is defined, emit a + preprocessor directive to create a macro named by this value into + config.new; don't explicitly go for BFD_ASSEMBLER. + * configure.in: Define `defs', not `BFDDEF'. Set it to + MANY_SEGMENTS for any obj-coffbfd target. + * config/obj-coffbfd.h (BFD_HEADERS, BFD): Define. + * config/i386coff.mt (TDEFINES): Don't define BFD, MANY_SEGMENTS, + or BFD_HEADERS. + (LOCAL_LOADLIBES): Deleted. + * config/m68kcoff.mt (TDEFINES): Don't define those macros. + * config/m88kcoff.mt (TDEFINES): Ditto. + * config/ebmon29k.mt: Deleted. + * config/h8300hds.mt: Deleted. + * config/ic960coff.mt: Deleted. + * config/sparc.mt: Deleted. + * config/h8300.mt (LOCAL_LOADLIBES, TDEFINES): Deleted. + * config/h8500.mt (LOCAL_LOADLIBES, TDEFINES): Deleted. + * config/sh.mt (LOCAL_LOADLIBES, TDEFINES): Deleted. + * config/z8k.mt (LOCAL_LOADLIBES): Deleted. + (TDEFINES): Don't define the coffbfd macros. + + * Makefile.in: Insert makefile fragments before OBJS definition. + (OBJS): Add $(TE_OBJS). + + * config/obj-coff.c (obj_pseudo_table): Supply "section" + unconditionally. + + * write.c (set_symtab): Define only if BFD_ASSEMBLER. + +Sun Mar 20 12:06:05 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * Makefile.in (STAGESTUFF): Add gasp.new. + +Fri Mar 18 20:09:16 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * write.c (symbol_table_frozen): New variable, to be set after + bfd_set_symtab is called. + (dump_section_relocs): Note whether a symbol is a section symbol + or not. + (adjust_reloc_syms): For now, always supply an absolute symbol for + fixups without symbols but not yet `done'. Use section_symbol to + get the symbol, instead of going directly for abs_symbol. + (write_relocs) [DEBUG4]: Abort if any symbol referred to by a + reloc is not a section symbol and is not in the symbol table. + (set_symtab): New function, broken out from write_object_file. + Counts symbol table instead of relying on an earlier count. + (write_object_file): Call set_symtab, but do it after potentially + invoking the *_frob_file macros. Don't bother counting symbols. + Call symbol_remove, instead of expanding it in place. Moved the + conditionalized `object_file_size' declaration down to + conditionalized block where it's used. When using the absolute + symbol for a fixup without a symbol, set sy_used_in_reloc. + (write_object_file) [BFD_ASSEMBLER]: Call section_symbol to get + the correct symbol for the absolute section. + + * subsegs.c (section_symbol): Use symbol_new instead of + symbol_make, since we may want it to go into the symbol table. + Make the new symbol have internal linkage. If + obj_sec_sym_ok_for_reloc says it's okay, use the BFD section + symbol with the newly created GAS symbol. + (obj_sec_sym_ok_for_reloc): Default to always returning 0. + * config/obj-aout.h (obj_sec_sym_ok_for_reloc) [BFD_ASSEMBLER]: + New macro. + * config/obj-elf.h (obj_sec_sym_ok_for_reloc): New macro. + + * config/tc-sparc.c: Include subsegs.h. + (in_signed_range): New function. + (sparc_ip): Use it. + (sparc_ip, case 'i'): Use BFD_RELOC_SPARC13, not _BASE13. + (sparc_ip, label "immediate"): Reject constants for pcrel + instructions only if the relocation type indicates a "call" + instruction and the offset is within range of a "jmpl %g0". If + it's not in range, use the absolute section symbol plus an offset. + (md_apply_fix): Use in_signed_range. Combined _SPARC13 and + _BASE13 cases. + (tc_gen_reloc): Permit BFD_RELOC_SPARC13. + + * config/ic960coff.mt (TDEFINES): Fixed typo (MANY_SECTIONS, not + MANY_SEGMENTS). + + * configure.in: Eliminated all targets using obj-coff but not + defining BFD_ASSEMBLER; I think all such targets that are + supported will be matched by real CPU-OS combinations earlier in + the case statement. + (targets *-*-coff*, *-sysv*, *-*-sco*, *-*-sysv32): Deleted. Made + some comments about the dpx2 configuration, but left it disabled, + since it couldn't be reached before. + (target a29k-amd-ebmonold): Deleted. + +Thu Mar 17 13:36:09 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (pa_import): Correctly handle importing of an + already defined symbol. + +Wed Mar 16 17:11:37 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-mips.c (mips_ip): Only accept overly large values for + the 'j' operand if there are no further alternatives for this + instruction. + + * config/obj-coffbfd.c (adjust_stab_section): Initialize + stabstrseg to SEG_UNKNOWN, not -1. After loop, check whether it + is not SEG_UNKNOWN rather than checking whether it is >= 0. + + * config/tc-mips.c (mips_align): Take new argument, label, and use + it instead of global insn_label. + (s_align, s_cons, s_float_cons, s_gpword): Save insn_label before + call to mips_emit_delay and pass it to mips_align. + +Wed Mar 16 11:54:12 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (pa_equ): Handle both .reg and .equ correctly. + + * config/tc-hppa.c (pa_callinfo): Accept "millicode" as an + argument to a .callinfo directive. Don't loop forever on errors. + + * config/tc-hppa.c (pa_equ): Use pa_parse_number so that we can + use pre-defined registers as arguments. + +Mon Mar 14 14:29:45 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * write.c (write_object_file): Check both S_IS_LOCAL and + S_IS_EXTERNAL when deciding whether to discard a symbol. + + * config-gas.com: Scan Makefile.in, not version.c, for current + version number. Delete all versions of temp files when finished + with them. Create config.h. + + * config/obj-vms.c (VMS_Initialized_Data_Size): Cache symbol + values to reduce number of lookups with S_GET_VALUE. Skip debug + symbols to avoid "a really nasty bug". (From Holger Teutsch, + holger@botbso.rhein-main.de.) + (VMS_write_object_file): For "__vt.*" symbols, set S_GET_OTHER + field. (Also from Holger Teutsch.) Watch for a would-be register + mask that spans frags. + + * config/obj-coffbfd.c (obj_coff_line): Set symbol lnno field with + this_base, not line_base. (Patch from Andreas Arens, + ari@obelix.av.rwth-aachen.de.) + + * config/obj-aout.c (obj_crawl_symbol_chain): Retain symbols that + look local if they're exported or undefined. Used to be done for + i960 only. + + * read.c (s_lcomm, s_comm): Print symbol name being redefined. + Get it from the looked-up symbol, instead of using the string from + the input stream, which is no longer null-terminated. + (LEX_PCT): New macro, defaults to 0. + (lex_type): Use it for `%'. + + * config/tc-vax.c (md_parse_option): Handle `-h#' option for VMS. + (vip_op): Now static, and returns void. Callers changed. Added + forward decl. + (vip): Ditto. Call as_fatal directly if a program bug is + detected. + (op_hash): Let default initialization suffice. + + * Makefile.in (literal.o): Provide dependencies. + + * configure.in: Set new makefile variable OPCODES_LIB. + * Makefile.in (LIBS): Use it. + + * Makefile.in (make-gas.com, stamp-mk.com): New targets. + * vmsconf.sh: New file. + * make-gas.com: Regenerated from new script. + + * configure.in (sparc*-*-lynxos*): Handle any version number + suffix after "lynxos". Set emulation to lynx. + +Mon Mar 14 11:30:49 1994 Ken Raeburn (raeburn@kr-pc.cygnus.com) + + * config/obj-coff.c (obj_coff_section): Delete declaration. + +Fri Mar 11 22:25:44 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-ppc.c (md_pcrel_from): Return 0 for undefined ELF + symbols. + (ppc_is_toc_sym): Change .toc to .got. + (md_apply_fix): Change handling of ELF relocs. + (tc_gen_reloc): Likewise. + +Fri Mar 11 17:42:20 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * config/obj-vms.c (Close_VMS_Object_File): Add comment pointing + out some code that doesn't belong in this file. + + * config/obj-vms.h: Include aout/stab_gnu.h. + (N_GSYM, ..., N_LENG): Deleted. + (NO_RELOC): Undefine before defining as part of enum reloc_type. + + * config/tc-alpha.c: Add comment questioning need for all the + characters in FLT_CHARS. + + * as.c (main) [OBJ_VMS]: Don't call output_file_close. + + * config/obj-ecoff.c (ecoff_frob_file): Set strict order for + sections with recognized names, before computing VMA values. + +Fri Mar 11 17:56:23 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-mips.c (mips_ip): Accept numbers between 0x8000 and + 0xffff for 'j' to be compatible with MIPS assembler. These + numbers are actually treated as negative. + +Thu Mar 10 13:36:29 1994 Doug Evans (dje@canuck.cygnus.com) + + * config/tc-sparc.h (LOCAL_LABEL): Local labels are .Lfoo. + +Tue Mar 8 21:17:12 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * config/obj-coff.c: Minor formatting/stylistic changes, plus: + (obj_coff_section): Declare. + (obj_pseudo_table): Make it available only if MANY_SECTIONS. + (obj_symbol_to_chars) [CROSS_COMPILE]: Some attemps to make this + work. It still doesn't. It now fails to compile, instead of + silently compiling to do nothing. + * config/obj-coff.h (SEPARATE_STAB_SECTIONS): Define only if + MANY_SECTIONS. + (OBJ_PROCESS_STAB) [! MANY_SECTIONS]: New macro, just emits + warning. + + Handle Alpha load-immediate-FP pseudo-instructions: + * config/alpha-opcode.h (ldif, ldig, ldis, ldit): New patterns. + * config/tc-alpha.c (lit8_sec, lit4_sec, lit8_sym, lit4_sym): New + variables. + (create_literal_section): New function. + (create_lita_section): Now a macro. + (get_lit8_offset, get_lit4_offset): New functions. + (maybe_set_gp): New function. + (select_gp_value): Call it. + (load_expression): Preserve addend if symbol is a section symbol. + (alpha_ip): Handle new operand type `F' for floating-point + constants; store them in .lit{4,8} sections. + (alpha_ip, case 'G'): Emit LITUSE relocations for symbol exprs. + + * config/tc-i386.c (smallest_imm_type): Never return Imm1. + +Tue Mar 8 14:18:15 1994 Steve Chamberlain (sac@jonny.cygnus.com) + + * config/obj-coffbfd.c (w_strings): Only copy strings out if + their symbols are going to be written. + +Tue Mar 8 11:49:27 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * messages.c (as_perror): Declare arguments const. + * as.h (as_perror): Change declaration. + +Mon Mar 7 16:08:25 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-mips.c (load_address): When calling frag_grow, allow + for the (up to) two nops which may be inserted by append_insn if + mips_optimize is 0. + (macro): Likewise. + +Thu Mar 3 11:37:55 1994 Doug Evans (dje@canuck.cygnus.com) + + * config/atof-ieee.c (make_invalid_floating_point_number): + Add cast to avoid warning from gcc. + +Wed Mar 2 10:31:01 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c: Add a few casts to make HP C compiler happy. + + * config/obj-som.c (obj_som_version, obj_som_copyright): Be + prepared + to handle an error from bfd_som_attach_aux_hdr. + + * config/tc-hppa.h: Wrap ELF specific decls inside an ifdef. + +Mon Feb 28 15:03:26 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * config/tc-alpha.c (md_atof): Omit warning about FP values. + (line_comment_chars): Add ! to list. + (md_apply_fix): Do process 32- and 64-bit relocations. + + * config/obj-coffbfd.c (obj_coff_lcomm): Put "#if 0" around the + unused parts (most of the function). + (obj_coff_init_stab_section): Cast alloca result. + + * configure.in (i960-*-coff, i960-*-vxworks5.*): Use coffbfd, and + gas_target ic960coff. + * config/ic960coff.mt: New file. + * config/obj-coffbfd.h [TC_I960]: Include coff/i960.h. + (TARGET_FORMAT) [TC_I960]: Use coff-Intel-little. + * config/te-ic960.h (CROSS_COMPILE): Don't undef this. We'll + always build little-endian object files. + * config/tc-i960.c (md_reloc_size): Don't define at all if BFD or + BFD_ASSEMBLER is defined. + (mem_fmt): Since COFF doesn't handle callx relocations yet, treat + them like normal 32-bit relocations. + (md_apply_fix): For callx relocations, store zero. + (tc_bout_fix_to_chars): Store symbol index for all callx + relocations, regardless of link-relax setting. + (tc_coff_fix2rtype, tc_coff_sizemachdep): New functions. + (i960_handle_align) [! OBJ_BOUT]: If link-relax option is + selected, print an error message and clear it. + * config/tc-i960.h (BFD_ARCH, COFF_FLAGS, COFF_MAGIC, + TC_COUNT_RELOC, TC_COFF_FIX2RTYPE, TC_COFF_SIZEMACHDEP, + tc_fix_adjustable): New macros. + (tc_coff_fix2rtype, tc_coff_sizemachdep): Declare. + +Fri Feb 25 20:56:57 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (hppa_tc_symbol): Call PA ELF BFD version. + (hppa_tc_make_sections): Likewise. + (pa_build_symextn_section): Delete unused function. + (hppa_tc_make_symextn_section): Likewise. + (pa_export): Delete call to pa_build_symextn_section. + + * config/tc-hppa.h (hppa_tc_symbol): Add extern decl. + (elf_hppa_final_processing): Delete extern decl. + (hppa_tc_symbol): Delete extern decl. + +Fri Feb 25 13:15:31 1994 Ian Lance Taylor (ian@cygnus.com) + + * config/obj-coffbfd.c (fill_section): Correct test for whether to + fill a section (from Minh Tran-Le <TRANLE@intellicorp.com>). + +Thu Feb 24 11:30:26 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * configure.in: Don't require version number for i386-*-mach. + + * read.c (potable): Added ".this_GCC_requires_the_GNU_assembler", + which is ignored by gas, but will cause other assemblers to choke. + Intended for use by gcc ports that require gas instead of native + assemblers. + +Thu Feb 24 07:10:31 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/ho-hppaosf.h: Fix braino in test for ANSI-C. + +Wed Feb 23 16:51:43 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * write.c (write_contents): Give the user a reasonable error + message rather than "assertion failed" if bfd_set_section_contents + fails. + +Tue Feb 22 10:07:32 1994 Ken Raeburn (raeburn@rtl.cygnus.com) + + * config/ho-mach3.h: New file. + +Mon Feb 21 11:41:18 1994 Ian Lance Taylor (ian@cygnus.com) + + * ecoff.c (ecoff_build_debug): Don't set hdr->magic here. It is + now set in bfd/ecofflink.c:ecoff_write_symhdr. + + * config/obj-coffbfd.c (write_object_file): use bfd_get_error (), + not bfd_error. + * config/obj-elf.c (elf_frob_file): Likewise. + + * read.c (s_lcomm): Use an alignment power of 3 for 8 byte .lcomm + variables. + + * config/ho-hpux.h (BROKEN_ASSERT): Define if not __GNUC__. + + * read.c (read_a_source_file): Use correct arguments to memcpy + (broken 19 Jul 1993). From kjd@pescadero.stanford.edu (Kenneth + Duda). + +Sun Feb 20 18:01:54 1994 Ian Lance Taylor (ian@lisa.cygnus.com) + + * config/obj-coff.h (obj_coff_section): Declare. + * config/obj-coff.c (obj_pseudo_table): For "section", use + obj_coff_section. + (obj_coff_section): Rewrite. + +Fri Feb 18 14:16:32 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * configure.in (i386-*-mach3*): New target; uses BFD. + * config/te-mach.h: New file. + * config/obj-aout.c (obj_aout_frob_file): New function. + * config/obj-aout.h (obj_aout_frob_file): Declare it. + (frob_file): New macro. + * config/tc-i386.c (md_apply_fix_1) [TE_Mach]: Don't adjust + pcrel32 relocations. + * config/tc-i386.h (TARGET_FORMAT) [TE_Mach]: Use a.out-mach3. + + * write.c (write_object_file): Removed register declarations. + +Thu Feb 17 16:25:18 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + Some support for PowerPC ELF. + * configure.in: If cpu is powerpc*, use ppc. + (ppc-*-sysv4*): Use object format elf. + * config/tc-ppc.h: Only declare a number of things if OBJ_COFF is + defined. + (TARGET_ARCH): Make it call ppc_arch. + (ppc_arch): Declare. + (TARGET_FORMAT): Set based on OBJ_COFF or OBJ_ELF. + (NO_STRING_ESCAPES): Define. + (LOCAL_LABEL, FAKE_LABEL_NAME): Define for OBJ_ELF. + * config/tc-ppc.c: Only define a number of functions of OBJ_COFF + is defined. + (md_pseudo_table): Most pseudo-ops are OBJ_COFF specific. Added + OBJ_COFF specific "bi" and "ei". + (md_parse_option): Fix handling of -u. Make -m601 set + PPC_OPCODE_601. If OBJ_ELF, accept -V and -Q. + (ppc_set_cpu): New function. + (ppc_arch): New function. + (md_begin): Call ppc_set_cpu. + (ppc_insert_operand): For a signed operand accept an unsigned + value, for IBM compatibility. + (ppc_byte): Don't call stringer for strings; instead, treat two + double quotes as a single double quote. + (ppc_comm): Set sy_tc.output for a .lcomm symbol. + (ppc_biei): New function. + (ppc_tc): If not OBJ_COFF, ignore first argument. + (ppc_fix_adjustable): Call as_bad_where, not as_bad. + (ppc_is_toc_sym): New function. + (md_apply_fix): Use ppc_is_toc_sym. Handle BFD_RELOC_16 and + BFD_RELOC_8. + +Thu Feb 17 09:29:37 1994 David J. Mackenzie (djm@thepub.cygnus.com) + + * messages.c (as_perror) [BFD_ASSEMBLER]: Use bfd_get_error and + bfd_set_error and new error names. + +Tue Feb 15 20:23:20 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * configure.in: Support i960-vxworks versions > 5.0 as coff. + Default is still bout if no version is specified. + + * atof-generic.c (atof_generic): Use switch and strcasecmp instead + of large number of compares when looking for inf/nan values. + +Fri Feb 11 13:13:27 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-mips.c (macro): Do unaligned loads and stores + correctly when big endian, and give errors on overflow rather than + generating incorrect code. + +Thu Feb 10 11:24:20 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * as.c: Include libiberty.h. + + * read.c (do_align): Don't define label just_record_alignment + unless it might be used. + + * as.c (main): If md_parse_long_option is defined, call it with a + long option. + * config/tc-mips.h (md_parse_long_option): Define. + * config/tc-mips.c (mips_trap): New static variable. + (md_begin): Report an error if mips_trap is set at ISA level 1. + (macro): If mips_trap, use trap instructions instead of break + instructions for overflow and divide by zero detection. + (mips_parse_long_option): New function. Support --trap, + --no-break, --break and --no-trap. + * doc/as.texinfo: Document new options. + + * read.c (potable): Add "zero". + * config/tc-i386.c (md_pseudo_table): Remove "zero". + * config/tc-m88k.c (md_pseudo_table): Likewise. + +Thu Feb 10 01:24:27 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * config/tc-sparc.c (sparc_ip): Reject integer values for + pc-relative operand fields. This forces "call 0" to become "jmpl + %g0,%o7" with no relocations needed. + +Wed Feb 9 13:08:32 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * as.h (xmalloc, xrealloc): Declare using PTR rather than char *. + * xmalloc.c (xmalloc, xrealloc): Use PTR rather than char *. + + * app.c (do_scrub_next_char): If NO_STRING_ESCAPES is defined, + don't treat backslash specially inside strings. + * read.c (next_char_of_string): Likewise. + +Wed Feb 9 09:42:45 1994 Stan Shebs (shebs@andros.cygnus.com) + + * config/obj-coffbfd.c (obj_coff_init_stab_section): Use memset + instead of memcpy to zero the initial stab symbol, duh. + * config/obj-elf.c (obj_elf_init_stab_section): Ditto. + * config/obj-som.c (obj_som_init_stab_section): Ditto. + +Tue Feb 8 17:25:44 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * write.c (fixup_segment): Use as_bad_where, not as_bad. + + * subsegs.c (subseg_set_rest): Call memset with the arguments in + the right order. Explicitly clear fix_root and fix_tail fields. + +Tue Feb 8 16:00:25 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * config/obj-coff.c (coff_frob_symbol): For abs_symbol, set *punt + and do nothing else. + + * symbols.c (symbol_begin): Initialize value of abs_symbol + properly. + + * write.c (adjust_reloc_syms): Use abs_symbol instead of calling + section_symbol. + + * ecoff.c (ecoff_build_debug): Fix "/*" in comment to silence + complaint from "gcc -Wall". + + * configure.in (alpha-*-netware*): New target, like alpha-*-osf*. + + * config/tc-alpha.c (GP_ADJUSTMENT): Move definition to start of + file. + (tc_gen_reloc): Remove uninitialized variable `code', and code + that tried to use it (incorrectly). For LITERAL reloc, set addend + to negative of GP value. + (load_symbol_address): Don't adjust return value by GP_ADJUSTMENT. + + * write.c (write_relocs): Print some sensible error message if + bfd_perform_relocation returns bfd_reloc_overflow. + +Mon Feb 7 15:49:24 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * configure.in (hppa*-*elf*): New configuration for PA ELF. + (hppa*-*-osf*): Default object format is SOM. + +Mon Feb 7 16:07:35 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * config/tc-alpha.c (md_atof): Warn that floating-point values + might not assemble properly. + + * configure.in (target alpha-*-osf*): Don't set "dev=yes" any + more. + + * config/tc-alpha.c (load_expression): Parenthesize operations in + range checking, to avoid precedence questions. + + * config/tc-alpha.c (addr32): New static variable. + (md_parse_option): Set it for "-32addr". + (load_symbol_address): If addr32 is set, use ldl instead of ldq. + + * atof-generic.c (atof_generic): Calculate maximum_useful_digits + and more_than_enough_bits_for_digits in integer arithmetic, to + eliminate the only sources of dependence on floating point + support, which doesn't work yet on the Alpha. + +Mon Feb 7 03:56:05 1994 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * ecoff.c (ecoff_build_debug) [TC_ALPHA]: Specify version stamp as + 0x30b for Alpha for now, until ".verstamp" is handled. + + * literal.c (add_to_literal_pool): Use seginfo->frchainP, which + actually refers to the literal pool section, rather than + frchain_now, which refers to whatever section the assembler was + in. + + * write.c (fixup_segment): Only do range checking if size of fixup + is smaller than word size. Otherwise, we always wind up with + zeros. + + * config/tc-alpha.c (md_section_align): Change second argument and + return type to valueT, to agree with tc.h. + (alpha_do_align): Local static array nop_pattern is now unsigned + char, to avoid overflow warnings. + * config/tc-alpha.h (md_section_align): Delete declaration. + + * config/obj-ecoff.c (ecoff_frob_file): Ensure that ecoff_data for + output bfd is non-null before indirecting through it. + + * config/tc-alpha.c (alpha_frob_ecoff_data): Renamed from + alpha_frob_file. + * config/tc-alpha.h (tc_frob_file): Macro deleted. + * config/obj-ecoff.c (ecoff_frob_file) [TC_ALPHA]: Call + alpha_frob_ecoff_data, then fill in optional-header info with gp + value and register masks. + +Sun Feb 6 16:13:47 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * configure.in (hiux): Fixes from m-kasahr@sramhc.sra.co.JP. + + * config/obj-som.c (obj_som_init_stab_section): Same change + as coffbfd and elf below. Zero the initial stab symbol after + allocating it. + +Sat Feb 5 12:30:32 1994 Stan Shebs (shebs@andros.cygnus.com) + + * config/obj-coffbfd.c (obj_coff_init_stab_section): Zero the + initial stab symbol after allocating it. + * config/obj-elf.c (obj_elf_init_stab_section): Ditto. + +Sat Feb 5 11:53:31 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (pa_ip): addb[tf] should only accept + non-negated condition completers. Add support for addb pseudo-op + which accepts both negated and non-negated completers. + +Sat Feb 5 00:15:49 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * configure.in (rs6000*): Use cpu_type ppc. + (ppc-*-aix*): New target; use coff and force bfd_gas. + * config/tc-ppc.h, config/tc-ppc.c: New files for PowerPC/POWER + (RS/6000) support. At the moment, only XCOFF is supported. + + * config/obj-coff.c (SA_SET_SYM_ENDNDX): Made non-static. + (S_SET_DATA_TYPE): Likewise. + (coff_last_function): Renamed from local static last_functionP in + coff_frob_symbol and made externally visible. + (coff_frob_symbol): New local static set_end; use it to try to + avoid calling SA_SET_SYM_ENDNDX on a symbol that will be punted. + * config/obj-coff.h (S_SET_DATA_TYPE): Declare. + (SA_SET_SYM_ENDNDX): Declare. + (coff_last_function): Declare. + + * expr.c (operand): If DOLLAR_DOT is defined, accept `$' as + equivalent to `.' to mean the current location. + + * read.c (LEX_BR): If not defined, define as 0. + (lex_type): Use LEX_BR as the type of `{',`}',`[',`]'. + + * symbols.c (symbol_new): If tc_canonicalize_symbol_name is + defined, call it with preserved_copy_of_name. If + tc_symbol_new_hook is defined, call it on the new symbol. + (symbol_find_base): If tc_canonicalize_symbol_name is defined, + call it on a copy of the name argument. + + * write.c (write_object_file): Simplified usage of obj_frob_symbol + and tc_frob_symbol. Always call both if the symbol is going to be + output. + + * write.c (relax_segment): Use %ld rather than %d when printing + fragP->fr_var, and cast it to long. + + Changed relocs to be based on subsegments (when BFD_ASSEMBLER). + * subsegs.h (struct frchain): If BFD_ASSEMBLER, added new fields + fix_root and fix_tail. + (segment_info_type): If BFD_ASSEMBLER, don't define fix_tail + field. + * write.c (fix_new_internal): If BFD_ASSEMBLER, set fix_rootP and + fix_tailP based on frchain_now, not seg_info (now_seg). + (chain_frchains_together_1): Chain the subsegment relocs together. + * subsegs.c (subseg_change): Don't clear fix_tail field. + (subseg_get): Likewise. + * literal.c (add_to_literal_pool): Look through the relocs via + frchain_now, not seginfo. + +Thu Feb 3 23:07:30 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/obj-ecoff.h (TARGET_SYMBOL_FIELDS): Changed + ecoff_undefined to ecoff_extern_size. + * config/obj-elf.h (ELF_TARGET_SYMBOL_FIELDS): Likewise. + * config/tc-mips.c (s_extern): Set ecoff_extern_size to the + external symbol size, rathern than setting the symbol value. + (md_estimate_size_before_relax): Check both ecoff_extern_size and + symbol value to see if GP referencing can be used. + * ecoff.c (ecoff_symbol_new_hook): Clear ecoff_extern_size, not + ecoff_undefined. + (ecoff_frob_symbol): Don't check ecoff_undefined. + (ecoff_build_symbols): Get size of an undefined symbol from + sym->ecoff_extern_size, not S_GET_VALUE (sym). + +Wed Feb 2 13:55:08 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * Makefile.in: Avoid bug in losing hpux sed. + +Wed Feb 2 11:40:11 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-mips.c (file_mips_isa): New static variable. + (md_begin): Set it. + (s_mipsset): Add support for .set mipN to set the ISA level. + + * gasp.c (kinfo): Fully bracket initializer. + +Tue Feb 1 19:28:12 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * gasp.c (malloc): Don't declare, since host.h or system header + files may declare it differently. + + * config/atof-ieee.c (int_to_gen): Now static. + + * config/ho-i386aix.h: Include sys/types.h and stdlib.h, not + ho-sysv.h. Based loosely on a patch from Minh Tran-Le. + +Tue Feb 1 10:50:17 1994 Steve Chamberlain (sac@jonny.cygnus.com) + + * gasp.c: Include host.h. + +Tue Feb 1 12:13:01 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-mips.c (mips_ip): Make an unsupported instruction a + warning, not an error. + + * config/obj-coff.c (dot_text_symbol, dot_data_symbol, + dot_bss_symbol): Don't define if BFD_ASSEMBLER. + (obj_symbol_to_chars): bfd_coff_swap_aux_out now takes more + arguments. + (coff_line_base): Renamed from line_base. Changed all uses. + (coff_add_linesym): Renamed from add_line_sym. Made non-static. + Changed all uses. + * config/obj-coff.h: If TC_PPC, include coff/rs6000.h. + (S_SET_STORAGE_CLASS, S_GET_STORAGE_CLASS): Declare if + BFD_ASSEMBLER. + (coff_line_base): Declare. + (coff_add_linesym): Declare if BFD_ASSEMBLER. + * config/obj-coffbfd.c (symbol_to_chars): bfd_coff_swap_aux_out + now takes more arguments. + +Mon Jan 31 17:55:14 1994 Stan Shebs (shebs@andros.cygnus.com) + + * as.c (statistics_flag): Renamed from quiet_flag. + (main): Get statistics with --statistics instead of -noquiet. + +Mon Jan 31 07:19:30 1994 Steve Chamberlain (sac@jonny.cygnus.com) + + * Makefile.in: Support for Gnu ASsembler Preprocessor. + * gasp.c: New file. + * read.c (s_lcomm): Align lcomm data. + * config/tc-z8k.c (tc_reloc_mangle): Don't allow subtraction + from different sections. + +Sun Jan 30 14:58:26 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * write.c (write_object_file): If tc_frob_file is defined, call it + just before calling obj_frob_file. + * config/tc-alpha.c (alpha_gp_value): Renamed from gp_value + (references changed), and made non-static. + (getExpression): Return void. + (select_gp_value): Abort if gp_value is non-zero. Delete call to + non-existent bfd_set_gp_value. + (alpha_validate_fix): Function deleted. + (alpha_frob_symbol): Function deleted. + (alpha_local_label): Function deleted. + (alpha_frob_file): Renamed from alpha_end. + * config/tc-alpha.h (alpha_frob_symbol, alpha_validate_fix, + alpha_local_label, alpha_end): Declarations deleted. + (alpha_gp_value, alpha_frob_file): Declare. + (tc_frob_symbol, TC_VALIDATE_FIX, md_end): Macros deleted. + (LOCAL_LABEL): Move code here from tc-alpha.c:alpha_local_label. + (md_convert_frag): Simplified slightly. + (tc_frob_file): New macro. + + * read.c (do_align): New function, most of guts of s_align_* + functions. Look for md_do_align macro, give it a chance to bypass + all but recording of section alignment. + (s_align_bytes, s_align_ptwo): Call do_align. + (s_lcomm) [TC_ALPHA]: Align object to largest power of two that + divides object size. + + * frags.c (frag_align_pattern): New function. + (frag_align): Rewrite for clarity. + + * config/tc-vax.c (md_assemble): Handle O_constant expression. + (vip_begin): Returns pointer to const char. Cast hash_insert arg + to PTR to avoid compiler complaints about const. + (md_begin): Local variable errtxt must point to const. + + * configure.in: Handle host vax-*-ultrix* like vax-*-bsd*. Don't + bother with *-*-ultrix or *-*-sysv*, except *-*-sysv, since only + the last has an existing host support file. Do handle vax-bsd and + vax-ultrix targets. + +Fri Jan 28 11:26:40 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/obj-coff.c (obj_coff_section_header_append): Do not + declare if BFD_ASSEMBLER. + (stack_pop): Correct test for stack underflow. + (obj_coff_endef, obj_coff_dim, obj_coff_line, obj_coff_size, + obj_coff_scl, obj_coff_tag, obj_coff_type, obj_coff_val): Declare + type of ignored argument to avoid gcc warning. + (align): Removed unused function. + +Thu Jan 27 18:14:19 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * config/tc-alpha.c, config/tc-alpha.h, config/alpha-opcode.h: New + files, based on port of gas-1.38 contributed by CMU, using a.out + variant. Updated for gas-2.x and ECOFF. Floating-point constants + are still broken, bootstrap testing incomplete. + + * literal.c: Comment changes. + + * listing.c (listing_source_file): Check for null listing_tail + before indirecting through it. + + * expr.h (struct expressionS): Added struct tag. + + * as.h: If __GNUC__ and inline are both undefined, define inline + away. + + * write.c (cvt_frag_to_fill): Don't assume that fr_var for + rs_align or rs_org frags will be 1. + (relax_segment): For rs_align, if fr_var is not 1, complain if + required padding is not a multiple of the size of the pad pattern. + (fixup_segment): Leave gp-relative relocations alone. For pcrel + relocations referring to the same segment, clear fx_pcrel when + clearing fx_addsy. + * as.h: Adjust comments on rs_align. + + * atof-generic.c: Some reformatting. + (atof_generic): Be careful when mixing signed/unsigned values of + different sizes. + + * write.c, config/obj-{aout,bout,coff*}.c, config/tc-sparc.c: + Query the fx_done field instead of fx_addsy to see if the fixup + still needs to be applied. Set fx_done and clear fx_addsy both, + for now. If TC_HANDLES_FX_DONE isn't defined, assume md_apply_fix + will only clear fx_addsy, and set fx_done accordingly after + returning. + * config/tc-sparc.h (TC_HANDLES_FX_DONE): Define. + * config/tc-sparc.c (md_apply_fix): Set fx_done for non-pcrel fix + with no fx_addsy. + + * symbols.c (dot_text_symbol, dot_data_symbol, dot_bss_symbol): + Deleted. + (symbol_begin): Moved to end of file, so function inlining can + work better. + (fb_label_count, fb_label_max): Default C static initializers are + sufficient. + * symbols.h (dot_text_symbol, dot_data_symbol, dot_bss_symbol): + Declarations deleted. + * config/obj-coff.c (dot_text_symbol, dot_data_symbol, + dot_bss_symbol): Defined here, static. + + * config/obj-aout.c [BFD_ASSEMBLER]: Undef NO_RELOC before + including aout/aout64.h. + + * write.c (write_object_file): If EMIT_SECTION_SYMBOLS is false, + don't write out a section symbol even if it's used in a + relocation; assume relocations will handle section numbers + somehow. Rename "punt_it" label to "punt_it_if_unused" to reflect + it's true use. + (EMIT_SECTION_SYMBOLS): Default to 1. + (adjust_reloc_syms): Don't create a new symbol for an absolute + reference; just use the absolute section symbol. + (write_relocs): Make printout of reloc values dependent on flag + DEBUG3, not DEBUG2. + * config/obj-aout.h (EMIT_SECTION_SYMBOLS): Define as 0. + * config/obj-ecoff.h (EMIT_SECTION_SYMBOLS): Ditto. + +Thu Jan 27 16:43:51 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * read.c (lex_type): No longer make '{' a valid character for + symbol names. + + * as.c (main): Print long values using %ld. + + * messages.c (as_warn_internal): New static function. + (as_warn, 3 versions): Use as_warn_internal. + (as_warn_where, 3 versions): New function. + * as.h (as_warn_where): Declare. + +Tue Jan 25 18:30:34 1994 Stan Shebs (shebs@andros.cygnus.com) + + * as.c (quiet_flag): New flag. + (main): If -noquiet given, display execution time and memory used. + +Tue Jan 25 15:53:11 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * doc/{all.texi,as.texinfo}: Add documentation for HPPA port. + +Mon Jan 24 19:18:23 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * ecoff.c (ecoff_frob_symbol): New function. Put undefined + symbols of known size in the undefined section. Put small common + symbols in a .scommon section. + * ecoff.h (ecoff_frob_symbol): Declare. + * config/obj-ecoff.h (obj_frob_symbol): Define. + * config/obj-elf.c (obj_elf_write_symbol_p, obj_elf_write_symbol, + obj_elf_frob_symbol): Removed unused functions. + * config/obj-elf.h (obj_frob_symbol, obj_write_symbol): Removed + unused macros. + (obj_elf_frob_symbol, obj_elf_write_symbol): Removed declarations + of unused functions. + (obj_frob_symbol): Define if ECOFF_DEBUGGING. + + * tc-mips.c (g_switch_seen): New static variable. + (md_parse_option): Set g_switch_seen for -G option. + (s_option): If creating PIC code, force the GP size to be 0. Warn + if -G switch used with a non-zero value. + + * symbols.c (S_IS_COMMON): Use bfd_is_com_section rather than + comparing against bfd_com_section. + +Mon Jan 24 14:12:25 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * read.c (s_lcomm): Treat Alpha like MIPS in handling of .sbss + section. + +Thu Jan 20 13:17:58 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * expr.c (operand): For floating point operand with unusual fp + char from FLT_CHARS, preserve the character. Patch from Lisa + Repka. + +Wed Jan 19 23:15:24 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-mips.c (md_pseudo_table): Add all data allocation + pseudo-ops: .hword, .int, .long, .octa, .quad, .short, .single. + +Tue Jan 18 15:51:59 1994 Steve Chamberlain (sac@jonny.cygnus.com) + + * config/obj-coffbfd.c (obj_coff_endef): For C_EFCN, C_BLOCK and + C_FCN assume .val has been set to . + +Tue Jan 18 16:19:58 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c: Disable multiple $CODE$ subspace code. It + confuses GDB for some unknown reason. + * cofnig/obj-som.c: Likewise. + +Tue Jan 18 19:05:32 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * literal.c (add_to_literal_pool): Handle duplicates of values + already written to literal pool. + +Tue Jan 18 17:23:52 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/obj-aout.c (obj_aout_frob_symbol): Try to get symbols + with explicitly marked stabs through BFD: if a symbol marked + N_UNDF | N_EXT is in the absolute section, move it to the + undefined section; move a symbol marked N_INDR into + bfd_ind_section and set the BSF_INDIRECT flag; set the + BSF_WARNING flag for a symbol makred N_WARNING. + +Mon Jan 17 15:40:23 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * ecoff.h (ecoff_set_gp_prolog_size): Declare. + * ecoff.c (ecoff_set_gp_prolog_size): Return type is void. + +Mon Jan 17 00:18:55 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (pa_ip): Explicitly check for comma before 'u' + and 'f' template operand. + + * config/tc-hppa.c (pa_ip): Handle 'N', 'O', 'o', '0', '1', 'u', + and '2' in copr and sfu instruction templates. + +Sun Jan 16 16:44:23 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * as.h (subseg_force_new): Add prototype. + +Sat Jan 15 09:20:55 1994 Doug Evans (dje@canuck.cygnus.com) + + * app.c (do_scrub_next_char): Allow lines like " foolab :". + + * read.c (emit_expr): Fix computation of mask. + * config/obj-elf.c (obj_elf_section): Fix loop termination test. + +Thu Jan 13 16:15:15 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * ecoff.c (ecoff_set_gp_prolog_size): New function. + (current_file_idx): New static variable. + (add_file): Use and increment current_file_idx instead of indx + parameter. + + * struc-symbol.h (struct symbol): Make all bitfields unsigned. + + * config/tc-i960.c (i960_validate_fix): Added argument + add_symbolPP. Indirect through it to get "add_symbolP". + * config/tc-i960.h (i960_validate_fix): Supply prototype. + (TC_VALIDATE_FIX): Pass address of add_symbolP. + + * configure.in (i386-*-netbsd*): New target, using te-netbsd.h. + (i386-*-netbsd0.8): New target, like 386bsd. + + * configure.in: Set BFDDEF in Makefile to "define" or "undef". + * Makefile.in (config.h): Protect against multiple inclusions. + Define or undef BFD_ASSEMBLER as specified by $(BFDDEF). + (ALL_CFLAGS): Omit $(BFDDEF). + * as.h: Include config.h. + (struct symbol): Added forward declaration. + (add_to_literal_pool): Fix declaration. + * as.c: Don't include config.h. + + * literal.c (add_to_literal_pool): Take symbol and addend as + arguments, instead of expression, for now. Fix calculation of + offset to return. + + * subsegs.h (segment_info_type) [NEED_LITERAL_POOL]: Add field + literal_pool_size. + +Thu Jan 13 12:14:21 1994 Jeffrey A. Law (law@snake.cs.utah.edu + + * subsegs.c (subseg_get): Accept new argument "force_new". If + set then a new segment is always created. All callers changed. + (subseg_force_new): New function. Similar to subseg_new, but + always force a new segment to be created. + + * config/obj-som.c (som_frob_file): Call adjust_code_sections + for each section. + (adjust_code_sections): New function. Adjusts the VMA for all the + $CODE$ subspaces. + + * config/tc-hppa.c (md_assemble): Also handle creating a fixup + for the unwind descriptors if a function's label follows the + .PROC and .ENTRY directives. + (pa_entry): Don't set BSF_FUNCTION for the label symbol here; it + is done elsewhere. Don't create a fixup for the unwind + descriptors if the function's label has not been defined yet. + (pa_proc): For SOM, place each procedure within a new $CODE$ + subspace. Adjust the segment and frag for the associated + function label if it exists. + +Wed Jan 12 22:05:33 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (hppa_fix_struct): Add new "segment" field. + (hppa_fix_new): Initialize segment field. + (md_apply_fix): Do nothing for pc-relative fixup which involves + crossing a segment boundary. + (pa_procend): Undefine the current label after handling .PROC + and .PROCEND directives. + (dummy_symbol): Make type "symbolS *". Change references as + appropriate. + +Wed Jan 12 13:29:31 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * read.c (read_a_source_file): Cast array argument to unsigned + char. + * write.c (adjust_reloc_syms): Remove unused variable symseginfo. + (write_object_file): Don't define punt_it if it won't be used. + (fixup_segment): Don't define skip if it won't be used. + + * config/tc-mips.h (TARGET_FORMAT): Define as mips_target_format. + (mips_target_format): Declare. + * config/tc-mips.c (mips_target_format): Define with appropriate + default definition. + (md_parse_option): If -EL or -EB is used, change byte_order and + mips_target_format as appropriate. + +Tue Jan 11 21:52:36 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * app.c (do_scrub_next_char): Another attempt to fix bugs + dealing with labels without colons (for HPPA and MRI). + +Tue Jan 11 17:01:06 1994 Doug Evans (dje@canuck.cygnus.com) + + * config/tc-sparc.c (sparc_ip): Truncate args to %hi/%lo to 32 bits. + + * expr.c (integer_constant): Fix computation of too_many_digits. + Variable digit_2 renamed to start. Fix check for whether number + will fit in 32 bits. + * read.c (emit_expr): Use valueT instead of long. + +Tue Jan 11 13:01:20 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/obj-elf.c: If TC_MIPS, include elf/mips.h. + (special_sections): Define. + (obj_elf_special_section): Get default types and attributes from + list of special sections. + * config/tc-mips.c (ELF_TC_SPECIAL_SECTIONS): Define. + + * config/obj-ecoff.c (ecoff_frob_file): Force .sdata and .sbss + sections to be close together. + + * config/tc-mips.c (macro): Corrected $at warnings in a couple of + spots. + + * listing.c (listing_prev_line): New function. + * listing.c: Include subsegs.h. + (listing_prev_line): New function. + (calc_hex): Reset byte_in_frag to zero for each new frag. + * config/tc-mips.c (append_insn): Call listing_prev_line after + emitting nop instructions. + * Makefile.in (listing.o): Depends upon subsegs.h. + +Mon Jan 10 09:52:23 1994 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (pa_ip): Put check for missing label on .PROC + here. Handle case where label may be defined after the .PROC. + (pa_proc): It is not an error if the procedure's label isn't + defined before the .PROC directive. + +Sun Jan 9 04:43:30 1994 Ken Raeburn (raeburn@kr-pc.cygnus.com) + + * config/te-netbsd.h: New file. + * config/tc-i386.h (TARGET_FORMAT) [TE_NetBSD]: Use bfd target + a.out-netbsd-386 for this configuration. + +Fri Jan 7 17:38:28 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * ecoff.c (ecoff_stab): Don't clobber the ECOFF symbol information + with the associated stabs information. + (ecoff_build_symbols): Never set the type of stabs symbols to + st_Global. Don't update the symbol index or ifd if the gas symbol + is not the same as the ECOFF symbol (which is now the case for + stabs symbols). + +Fri Jan 7 11:14:07 1994 Stan Shebs (shebs@andros.cygnus.com) + + * config/tc-mips.c (macro): Add a LOSING_COMPILER ifdef that + splits the function. + (macro2): New function, if LOSING_COMPILER defined. + +Fri Jan 7 09:38:25 1994 Steve Chamberlain (sac@cygnus.com) + + * config/obj-coffbfd.c (fill_section): Don't ever fill past the + end of a section. (write_object_file): Temporary fix - setup + stdoutput. + +Thu Jan 6 18:05:21 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * config/tc-sparc.c (tc_gen_reloc): Fix handling of addends in + non-pcrel_offset relocations. + +Thu Jan 6 01:06:40 1994 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-mips.c (mips_ip): Warn about using $1 as well as $at + without .set noat. + +Wed Jan 5 14:22:22 1994 Ken Raeburn (raeburn@cujo.cygnus.com) + + * literal.c: New file. + * Makefile.in (REAL_SOURCES, OBJS): List it. + + * as.h (DEBUG): Don't define. + (struct expressionS, struct fix): Declare in case they're used in + prototypes. + (add_to_literal_pool) [BFD_ASSEMBLER]: Declare. + + * config/tc-mips.h (TARGET_FORMAT) [OBJ_AOUT]: Fix for new names + in bfd. + + * subsegs.c (subseg_get): New function. Creates segment if + needed, returns pointer, but doesn't change current segment. + (subseg_new): Use it. + +Tue Jan 4 15:12:43 1994 Stan Shebs (shebs@andros.cygnus.com) + + * Makefile.in (INCLUDES): Add $(srcdir)/.. to places to search. + * config/obj-ecoff.c: Include files as "bfd/" instead of "../bfd/". + * app.c, flonum.h, hex-value.c (const): Change #if to be more + portable. + +Tue Jan 4 22:11:34 1994 Rob Savoye (rob@darkstar.cygnus.com) + + * config/ho-vsta.h, configure.in: Add support for VSTa + micro-kernel. + +Thu Dec 30 15:27:16 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * write.c (write_relocs): bfd_perform_relocation now takes an + additional argument, to return an error string (which we ignore). + +Wed Dec 29 14:37:26 1993 Ken Raeburn (raeburn@cujo.cygnus.com) + + * write.h (struct fix): Field tc_fix_data should be type PTR, not + void*, for compatibility with non-ANSI compilers. Added + single-bit field "fx_done". + +Sun Dec 26 14:31:47 1993 Torbjorn Granlund (tege@adder.cygnus.com) + + * tc-hppa.c (pre_defined_registers): Convert to lower case. + Delete spurious register names "%r4L", etc. + (selector_table): Sort and convert to lower case. + (cons_fix_new_hppa): `reloc_type' => `rel_type'. + (pa_ip): Always use strcmp for non-text and strcasecmp for text. + (reg_name_search): Rewrite to call strcasecmp only once per + iteration. + (pa_chk_field_selector): Rewrite to use binary search. + (pa_parse_neg_add_cmpltr): Use strcasecmp for completer comparisons. + (pa_parse_space_stmt): $TEXT$ and $PRIVATE$ are symbols; use case + sensitive comparisons. + (pa_parse_space_stmt): Canonicalize strncasecmp arg to lower case. + (pa_space): "$text$" => "$TEXT$"; "$private$" => "$PRIVATE$". Use + case sensitive comparison for all symbolic names. + (pa_subspace): Canonicalize strncasecmp arg to lower case. + (pa_subspace_start): Use case sensitive comparison for symbolic names. + +Mon Dec 20 10:37:48 1993 Ken Raeburn (raeburn@cujo.cygnus.com) + + * write.c (adjust_reloc_syms) [RELOC_REQUIRES_SYMBOL]: If no + symbol is present (i.e., relocation against absolute), create a + phony local symbol, and use it in the reloc. + (fixup_segment): When adjusting a reloc with an absolute symbol, + have TC_FORCE_RELOCATION control clearing add_symbolP too. + * config/tc-sparc.h (RELOC_REQUIRES_SYMBOL): Define, for OBJ_COFF. + + * symbols.c (S_IS_EXTERNAL, S_IS_LOCAL): Don't use both BSF_EXPORT + and BSF_GLOBAL, since they're the same. + + * as.c (main): Only invoke md_end if it's defined as a macro. + * tc.h (md_end): Don't declare it. + * config/tc-*.[ch] (md_end): Deleted, in cases where it doesn't do + anything. + * config/tc-vax.c (vip_end): Deleted null function. + * config/tc-mips.c (md_mips_end): Renamed from md_end. + * config/tc-mips.h (md_mips_end): Declare. + (md_end): New macro, calls md_mips_end. + + * write.c (write_object_file): Don't close output file. + * as.c (main): Close output file (if needed) after calling + listing_print, which should be after calling write_object_file, + which sets the frag addresses. + + * config/obj-coff.c (obj_coff_dim, obj_coff_endef, obj_coff_line, + obj_coff_scl, obj_coff_size, obj_coff_tag, obj_coff_type, + obj_coff_val): Add unused int argument to satisfy prototypes; goes + with Ian's 10 Sep changes. + (S_GET_DATA_TYPE, S_SET_DATA_TYPE, S_GET_STORAGE_CLASS, + S_SET_STORAGE_CLASS): Now function instead of macros. + (obj_emit_lineno) [BFD_ASSEMBLER]: Deleted. + (tag_insert): Local var ERROR_STRING is const. Use "const" not + "CONST" for argument NAME. Fixed prototype. + (coff_frob_symbol): Removed explicit "#if 1" directive. If + S_IS_EXTERNAL, set storage class to C_EXT. + (s_get_name): Use "const" not "CONST". + * config/obj-coff.h (S_GET_DATA_TYPE, S_SET_DATA_TYPE, + S_GET_STORAGE_CLASS, S_SET_STORAGE_CLASS): Deleted. + (obj_emit_lineno): Declare only for non-BFD_ASSEMBLER. For + BFD_ASSEMBLER, define as macro that aborts. + (obj_extra_stuff, tc_headers_hook): Declare only for + non-BFD_ASSEMBLER. + (coff_frob_symbol): Fix prototype. + +Sun Dec 19 00:37:20 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * config/tc-sparc.c (tc_gen_reloc): Test of pcrel_offset had sense + reversed. + +Thu Dec 16 21:13:11 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (md_begin): Initialize "dummy_label". + (tc_gen_reloc, SOM version): For relocations which have no symbol, + set sym_ptr_ptr to dummy_label. Avoids lossage in generic BFD code. + +Thu Dec 16 16:07:56 1993 Ken Raeburn (raeburn@cujo.cygnus.com) + + * read.c (lex_type): No longer make '[' a valid character for + symbol names. + + * config/tc-vax.c (tc_aout_fix_to_chars): Local variable + NBYTES_R_LENGTH now const. + + * config/obj-*.c, config/tc-*.c: Omit superfluous "return" + statements at ends of functions. Don't check for null return from + hash_new, since it won't return at all if there's no memory + available. Also, check for null return from hash_insert, rather + than zero-length string, as success indicator. + + * subsegs.c (section_symbol): New function. + * subsegs.h (section_symbol): Declare. + * write.c (adjust_reloc_syms): Use it. + +Wed Dec 15 15:39:53 1993 Ken Raeburn (raeburn@cujo.cygnus.com) + + * Makefile.in (RUNTEST): New variable. + (CHECKFLAGS): Pass it down. + + * ecoff.c (ecoff_directive_frame): Permit extra trailing operands; + unused for now, but supplied by Alpha OSF1 compiler. + + * as.h: Protect against multiple inclusions. + (int_to_gen): Don't declare. + + * config/atof-vax.c (atof_vax): NULL is not a valid character + constant. + +Tue Dec 14 21:38:25 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * configure.in (hppa*-*-osf*): Do not consider this a developmental + configuration. + + * config/tc-hppa.c (md_apply_fix): Handle cases where no + relocation will be emitted for 32bit formats. + +Mon Dec 13 23:33:40 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (md_apply_fix): Do not call hppa_field_adjust + for any of the 'T' field selectors. + +Sat Dec 11 11:23:12 1993 Steve Chamberlain (sac@thepub.cygnus.com) + + * config/tc-h8500.c (build_bytes): Get reloc type right for a + %page operation. (md_assemble): Don't modify input_line_pointer. + (mdcoff_sizemachdep): New function. + * config/tc-h8500.h (TC_COFF_SIZEMACHDEP): New macro. + * config/tc-z8k.c (get_operand): Delete bogus check. + +Wed Dec 8 16:31:51 1993 Ken Raeburn (raeburn@rtl.cygnus.com) + + * write.c (number_to_chars_*): Delete bogus range check. + + * output-file.c (TARGET_ARCH): No default. + +Tue Dec 7 16:02:53 1993 Steve Chamberlain (sac@jonny.cygnus.com) + + * config/tc-sh.c (md_convert_frag): Truncate disps before calling + md_number_to_chars. (md_assemble): Don't modify + input_line_pointer. + +Mon Dec 6 11:49:03 1993 Doug Evans (dje@canuck.cygnus.com) + + * config/tc-h8300.c (md_assemble): Don't update input_line_pointer. + +Mon Dec 6 11:20:02 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/obj-som.[ch] (obj_read_begin_hook): Remove last change. + Breaks with the HP compilers. + + * config/tc-hppa.c (struct call_info): Remove fields which were + set but never used. Remove all code which sets those fields. + (struct subspace_dictionary_chain): Likewise. + (struct space_dictionary_chain): Likewise. + (pa_desc): Delete useless function. Delete all references. + (hppa_tc_make_sections): No need to count the number of symbols for + the symbol extension section. + +Sun Dec 5 17:05:29 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/obj-som.c (obj_som_version): Pass version string to + SOM BFD backend. + (obj_som_copyright): New function. Much like obj_som_version. + + * config/tc-hppa.c (obj_copyright): Define as appropriate for + SOM and ELF. + (pa_copyright): Just a stub now. + + * config/obj-som.c (obj_read_begin_hook): Delete unused function. + * config/obj-som.h (obj_read_begin_hook): Provide dummy definition. + (TARGET_SYMBOL_FIELDS): Delete. SOM isn't making use of them. + + * config/tc-hppa.c (tc_gen_reloc, SOM version): Handle relocation + expansion due to rounding mode selectors. Handle R_[RDSN]_MODE + relocations for selecting the current rounding mode. + + * config/tc-hppa.c (evaluate_absolute): Support e_rrsel and + e_rlsel field selectors. + +Fri Dec 3 18:33:24 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/obj-elf.h: If ECOFF_DEBUGGING, undef + SEPARATE_STAB_SECTIONS and INIT_STAB_SECTION, and define + OBJ_PROCESS_STAB to call ecoff_stab. + * config/obj-elf.c: Don't compile obj_elf_init_stab_section if + INIT_STAB_SECTION is not defined. + +Fri Dec 3 10:56:40 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (md_apply_fix): Delete old wrapper function. + (md_apply_fix_1): Rename to md_apply_fix. Fix argument decls. + Fix comments in various places. Always return a value. + Avoid dereferencing a NULL fx_addsy. + (hppa_force_relocation): Avoid dereferencing a NULL fx_addsy. + + Fri Dec 3 09:47:30 1993 Pete Hoogenboom (hoogen@cs.utah.edu) + + * tc-hppa.c: (tc_gen_reloc): Addend for a plabel relocation should + be either 0 or 2 (no static link or static link required). Always + assume no static link. + +Thu Dec 2 11:52:21 1993 Ken Raeburn (raeburn@cygnus.com) + + * config/tc-sparc.c (tc_gen_reloc): Make adjustment to addend be + dependent on howto fields, not on format flavour. + + * struc-symbol.h (struct symbol): New fields sy_obj and sy_tc, + defined as types OBJ_SYMFIELD_TYPE and TC_SYMFIELD_TYPE, if those + macros are defined. + * config/obj-coff.h (TC_SYMFIELD_TYPE, OBJ_SYMFIELD_TYPE): Define. + (TARGET_SYMBOL_FIELDS, I960_SYM_FIELDS): Don't define. + (sy_tc, sy_obj): Define so that the fields look like they used to, + until all references get changed. + + * write.c (fixup_segment): Lots of variables no longer register. + Reordered some code for easier reading. + * config/obj-coff.c (obj_coff_dim): dim_index no longer register. + Deleted superfluous return statement. + (obj_coff_line, obj_coff_size, obj_coff_scl, obj_coff_type, + obj_coff_val, tag_init, tag_insert): Deleted superfluous return + statement. + (align, obj_coff_section): Deleted debugging printfs. + * config/tc-i386.c (md_assemble): Discard some register decls. + Use assignment rather than memcpy to copy template. + (op_hash, reg_hash, prefix_hash): Default C initialization of + statics is sufficient. + * config/tc-sparc.c (print_insn): Array Reloc is now const, and + points to const. + + * config/obj-coff.h (TARGET_FORMAT): Only use coff-sparc-lynx if + TE_LYNX; use coff-sparc otherwise. + [USE_NATIVE_HEADERS]: Delete this code; it isn't used. + + * write.c (fixup_segment): Call TC_VALIDATE_FIX, if defined, + before processing a fixup. Call TC_ADJUST_RELOC_COUNT just before + returning. Remove some i960-coff-specific code. + (TC_ADJUST_RELOC_COUNT): Default to doing nothing. + * config/tc-i960.h (TC_ADJUST_RELOC_COUNT) [OBJ_COFF]: Define. + (i960_validate_fix): Declare. + (TC_VALIDATE_FIX): Define. + * config/tc-i960.c (i960_validate_fix): New function. + + * write.c (number_to_chars_littleendian): New function. Write out + bytes in little endian order, doing size and range checking. + (number_to_chars_bigendian): New function, similar. + * write.h: Declare them. + * config/tc-*.c (md_number_to_chars): Use them. + * config/tc-vax.c (md_apply_fix): Ditto. + * config/tc-i386.c (md_apply_fix): Ditto. + + * config/obj-coff.c: Rearranged code for handling line number + data. + (line_fsym): Renamed from function_lineoff in BFD_ASSEMBLER case, + since the usage is different from non-BFD_ASSEMBLER case. + (in_function, clear_function, set_function): New macros, to + combine some of the functionality implemented in differnet ways in + BFD_ASSEMBLER and non-... code. Used in other functions that used + to check function_lineoff &c. + (obj_emit_lineno): Split into two copies, one for BFD_ASSEMBLER, + one for not. Non-BFD_ASSEMBLER version now has temporary variable + to contain char* pointer pointed to by char** argument. Always + follow CROSS_COMPILE code; easier to read that way. + (obj_coff_ln): Don't call add_lineno or c_line_new if appline is + set. + (obj_coff_endef) [BFD_ASSEMBLER]: Don't do anything special for + ".bf", it's been done elsewhere. + (coff_frob_symbol): If ilne number data is pending, call + add_linesym to flush it. + (coff_frob_file): Don't do that here. + * config/obj-coff.h (coff_frob_file): Declare. + (obj_frob_file): Define, to call it. + + * config/tc-sparc.h (md_create_short_jump, md_create_long_jump, + md_estimate_size_before_relax: Define them as macros calling + as_fatal. + * config/tc-sparc.c: Don't define them as functions. + + * configure.in: Handle target alpha-*-osf*. (No cpu files yet.) + +Wed Dec 1 23:37:14 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * Makefile (clean): Depend on clean-here. + +Wed Dec 1 11:35:21 1993 Ken Raeburn (raeburn@cujo.cygnus.com) + + * config/ho-go32.h: Include fopen-bin.h. + * as.h: If FOPEN_WB isn't defined, include fopen-same.h. + * output-file.c (output_file_create): Use FOPEN_WB instead of "w". + * input-file.c (input_file_open): Use FOPEN_RT instead of "r". + * listing.c (file_info): Use FOPEN_RB instead of "rb". + * read.c (s_include): Use FOPEN_RT instead of "r". + + * stabs.c: Include obstack.h. + + * tc.h (md_create_long_jump): Don't declare if it's already + defined as a macro. + (md_create_short_jump, md_estimate_size_before_relax): Ditto. + + * messages.c (as_perror) [BFD_ASSEMBLER]: Use bfd_errmsg instead + of strerror. Clear bfd_error. + + * config/te-lynx.h (LOCAL_LABELS_FB): Define, if not already + defined. + +Wed Dec 1 10:41:56 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (hppa_elf_mark_end_of_function): New function. + (pa_process_exit, pa_procend): Call it for ELF objects. + +Wed Dec 1 12:10:41 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-mips.c (macro): Subtract 8 from offset in non PIC l.d + case. See comment. From wilson@cygnus.com: for M_L_DAB, set + coproc before doing goto ld. + +Tue Nov 30 13:40:30 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * write.c (TC_FORCE_RELOCATION): Provide a default definition. + (fixup_segment): Allow the target machine to specify that a + relocation must be generated for a particular fixup. Remove + #ifndef TC_HPPA hack. + + * config/tc-hppa.h (TC_FORCE_RELOCATION): Define. + + * config/tc-hppa.c (md_apply_fix_1): Never change fx_addsy to + be NULL. Only fixup_segment is supposed to do that. + (hppa_force_relocation): New function. + +Tue Nov 30 11:21:41 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * Makefile.in (stabs.o): Added dependencies. + + * config/obj-ecoff.c (ecoff_frob_file): Don't call bfd_set_symtab. + +Sun Nov 28 12:11:40 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * app.c (do_scrub_next_char): Output a TAB before any + .app* directive. + + * config/tc-hppa.c (fix_new_hppa): Make sure a sub_symbol + exists before trying to peek at its name. + (pa_space): Do not call pa_align_subseg. See hppa/unsorted/align3.s + for testcase. + (pa_align_subseg): Delete unused/unwanted function. + +Sat Nov 27 22:49:07 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * read.c (read_a_source_file): Fix test for when to stick a colon + on the end of a label. Make code conditional on either MRI or + LABELS_WITHOUT_COLONS. + + * app.c (do_scrub_next_char): If a line begins with whitespace, leave + the single whitespace character alone. Eat all others. + + * config/tc-hppa.h (LABELS_WITHOUT_COLONS): Define. + +Wed Nov 24 01:22:54 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (pa_procend): Do not call process_exit. + (exit_processing_complete): Delete unwanted variable and all + references. + +Wed Nov 24 02:31:38 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * ecoff.c (ecoff_setup_ext): Renamed from ecoff_build_ext. + Changed to not actually build the external symbol information, as + that is now done by the ECOFF back end. + (ecoff_build_debug): Changed accordingly. + * ecoff.h (obj_ecoff_set_ext): Declare. obj-format.c function + called by ecoff_setup_ext. + * config/obj-ecoff.c (ecoff_frob_file): If debug_info count is 0, + set corresponding pointer to NULL. Don't set raw_size and + raw_syments. + (obj_ecoff_set_sym_index): Removed. + (obj_ecoff_set_ext): New function. + * config/obj-ecoff.h (obj_set_sym_index): Don't define. + (obj_ecoff_set_sym_index): Don't declare. + * config/obj-elf.c (obj_ecoff_set_ext, elf_get_extr, + elf_set_index): New functions used for ECOFF_DEBUGGING. + (elf_frob_file): Reworked ECOFF debug generation to use + new functions in bfd/ecofflink.c. + +Sun Nov 21 23:54:52 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (pa_def_subspaces): Only create the unwind + subspace for ELF. In the SOM world, the linker is responsible + for creating the unwind subspaces. + +Fri Nov 19 16:25:09 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/obj-coffbfd.c: Use PARAMS rather than EXFUN. + (yank_symbols): Don't call S_SET_EXTERNAL if the storage class is + already set. Fixes .def var; .val external_var; .scl 3; .endef. + (adjust_stab_section): Make static. Declare return type. Remove + unused variables. + + * config/tc-i386.h: Declare tc_coff_fix2rtype and + tc_coff_sizemachdep. + +Fri Nov 19 04:33:59 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * write.c (write_object_file): Disable obj_check_file_symbols + hook; only back end using it wasn't using it correctly. + (write_object_file): Always call obj_frob_symbol and + tc_frob_symbol; always retain symbol if it's used by a relocation, + regardless of what these routines indicate. + * config/obj-coff.c (coff_frob_symbol): Renamed from + coff_check_file_symbols. + * config/obj-coff.h (obj_check_file_symbols): Deleted. + (coff_frob_symbol): Declare. + (obj_frob_symbol): Call it. + + * config/obj-coff.c (obj_crawl_symbol_chain, obj_emit_strings, + obj_pre_write_hook): Don't define for BFD_ASSEMBLER. + (c_section_header): Ditto. Delete superfluous return at end of + function. + + * config/obj-coff.h [TC_SPARC]: Include coff/sparc.h, and specify + coff-sparc-lynx. + (SA_GET_SYM_TAGNDX): Use BFD_HEADERS version for BFD_ASSEMBLER + too. + (c_section_header): Rewrite prototype so that it contains no + preprocessing directives. Don't declare it at all if + BFD_ASSEMBLER. + + * configure.in (sparc*-*-lynxos): New target, using coff and + BFD_ASSEMBLER. + + * stabs.c: New file. + * Makefile.in (REAL_SOURCES, OBJS): List it. + * read.c (STAB_SECTION_NAME, STAB_STRING_SECTION_NAME, + get_stab_string_offset, s_stab_generic, s_stab, s_xstab, s_desc): + Moved to new file. + + * config/tc-sparc.c (tc_gen_reloc): Handle coff files like elf + files. + +Wed Nov 17 17:23:53 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * configure.in (mips-*-irix5*): New target. Use elf and mips-big. + * config/obj-elf.c: If ECOFF_DEBUGGING, include ecoff.h. + (obj_pseudo_table): If ECOFF_DEBUGGING, define ECOFF + pseudo-ops. + (obj_read_begin_hook): If ECOFF_DEBUGGING, call + ecoff_read_begin_hook. + (obj_symbol_new_hook): If ECOFF_DEBUGGING, call + ecoff_symbol_new_hook. + (obj_elf_init_stab_section): Cast alloca result. + (elf_frob_file): If ECOFF_DEBUGGING, finish up ECOFF debugging + information and write it out into .mdebug section. + * config/obj-elf.h (ELF_TARGET_SYMBOL_FIELDS): New macro. + (TARGET_SYMBOL_FIELDS): Use ELF_TARGET_SYMBOL_FIELDS. + (ECOFF_DEBUGGING): Define if TC_MIPS. + (TARGET_SYMBOL_FIELDS): If ECOFF_DEBUGGING, override to add + fields required by ECOFF. + * config/tc-mips.c: Check ECOFF_DEBUGGING rather than + OBJ_ECOFF in many cases. + (mips_any_noreorder): New variable. + (mips_cprestore_offset): Initialize to -1. + (mips_frame_reg): New variable. + (RELAX_ENCODE, RELAX_OLD, RELAX_NEW, RELAX_RELOC1, + RELAX_RELOC2, RELAX_RELOC3, RELAX_WARN): New macros. + (md_pseudo_table): Handle "gpword" and "cpadd". + (md_begin): Initialize ok to false. If OBJ_ELF, set alignment + of text, data and bss sections to 4. Set alignment of + .reginfo section to 2. If ECOFF_DEBUGGING, create .mdebug + section. + (ALIGN_ERR, ALIGN_ERR2): Removed unused and useless alignment + check. + (append_insn, macro_build, macro_build_lui): Take place + argument. Changed all callers. + (append_insn): If appending a nop, don't emit one. + (macro_build): Changed assertion for 'i', 'j', 'o' case. + (gp_reference): Removed. + (load_address): New function. + (macro): If mips_noreorder is used, set mips_any_noreorder. + Extensive changes to handle GP and PIC symbols differently. + Build both possible code choices using a variant frag, and + make a final decision at the end of assembly when all + information is known. Added PIC support for all symbol + references. + (mips_ip): Don't permit anything but a number after $ for a + coprocessor register. Don't use .lit4 or .lit8 sections when + generating PIC code. If OBJ_ELF, set alignment of .lit4 or + .lit8 section to 4. + (md_apply_fix): Accept and ignore GOT16 and GPREL32 relocs. + (s_change_sec): Set alignment of ELF .rodata or .sdata section + to 4. + (s_mipsset): If .set noreorder, set mips_any_noreorder. + (s_cpload): Ignore .cpload if not generating PIC code. Warn + if .cpload is not in noreorder section. + (s_cprestore): Ignore .cprestore if not generating PIC code. + (s_gpword, s_cpadd): New functions. + (tc_get_register): Added frame argument; if true, set + mips_frame_reg to return value. Changed all callers. + (md_estimate_size_before_relax): Don't error out, but instead + determine how much a frag should grow. + (tc_gen_reloc): Return multiple relocs if appropriate, as + determined by md_estimate_size_before_relax. + (md_convert_frag): New function. + (mips_elf_final_processing): Set ELF header flags based on + mips_any_noreorder and mips_pic. + * config/tc-mips.h (RELOC_EXPANSION_POSSIBLE): Define. + (MAX_RELOC_EXPANSION): Define to be 3. + (md_relax_frag): Define to be 0. + (md_convert_frag): Don't define. + (tc_get_register): Changed declaration. + + * ecoff.h, ecoff.c: New files pulled out of config/obj-ecoff.c to + support generating ECOFF debugging information for MIPS ELF + targets. Compiled only if ECOFF_DEBUGGING is defined. Changed + handling of external symbols: it now always generates exactly + those external symbols that are defined in the global symbol list. + * Makefile.in (REAL_SOURCES): Added ecoff.c. + (REAL_HEADERS): Added ecoff.h. + (OBJS): Added ecoff.o. + (ecoff.o): New target. + * config/obj-ecoff.c: Almost entirely moved into ecoff.c. + Remaining code mostly just calls ecoff.c code. + * config/obj-ecoff.h: Define ECOFF_DEBUGGING. + (TARGET_SYMBOL_FIELDS): Make ecoff_symbol a pointer to a + struct localsym. + (obj_read_begin_hook, obj_symbol_new_hook): Define to call + functions in ecoff.c. + (ecoff_stab): Don't declare (now declared in ecoff.h). + (obj_set_sym_index): Define. + (obj_ecoff_set_sym_index): Declare. + + * frags.h (frag_grow): Declare. + * frags.c (frag_grow): Made non-static. + + * write.c (is_dnrange): Do not define if md_relax_frag is defined. + (relax_segment): If md_relax_frag is defined, use it to handle a + frag of type rs_machine_dependent rather than looking through + md_relax_table. + + * read.c (read_a_source_file): If we find a bad pseudo-op, + do a continue to go on to the next line rather than a break. + Removed duplicate bad pseudo-op code which was never executed. + + * read.c (s_lcomm): Do not require a comma after the name. + + * subsegs.h (segment_info_type): Changed hadone field to bitfield. + Added bss bitfield. + * as.c (perform_an_assembly_pass): Set bss flag for bss_section. + * read.c (s_lcomm): Set bss flag for .sbss section if used. + * write.c (relax_and_size_seg): Don't set SEC_HAS_CONTENTS for a + bss section. Set SEC_RELOC if there are any relocations, even for + a zero size section. + + * write.c (write_relocs): In RELOC_EXPANSION_POSSIBLE case, base + data offset on reloc[0]->address rather than reloc[j]->address, so + that multiple relocs can affect different memory locations. + + * write.c (chain_frchains_together, relax_and_size_seg, + adjust_reloc_syms, write_relocs): Make third argument PTR, not + char *, to match definition of bfd_map_over_sections. + + * app.c (do_scrub_next_char): Don't interpret a comment character + as starting a CPP line directive unless it is a '#' and is the + very first characters on the line (i.e., do not permit leading + whitespace). + + * messages.c (identify): Make file argument non-const, to match + callers. + +Tue Nov 16 20:38:21 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (pa_ip): Fix thinko in 21bit range check. + +Sat Nov 13 18:22:48 1993 Steve Chamberlain (sac@jonny.cygnus.com) + + * config/tc-sh.c (md_apply_fix): Cope with IMM16 type too. + * config/tc-z8k.c (build_bytes, md_apply_fix): Understand nDISP7 + relocs. + +Fri Nov 12 16:51:47 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/tc-hppa.[ch]: Fix assorted trivial indention problems. + * config/obj-som.c (obj_som_version): Add missing ';'. + (som_frob_file): Delete whitespace at EOL. + +Fri Nov 12 15:26:21 1993 Ken Raeburn (raeburn@cygnus.com) + + * Makefile.in (VERSION): Updated following 2.2 release. + +Fri Nov 12 14:52:17 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (hppa_fix_struct): Use a real type for the + field selector, rather than an int. All uses of field selectors + fixed. + (tc_gen_reloc): For SOM PLABELs, always set addend to zero for now. + (md_apply_fix_1): Do not call hppa_field_adjust for any PLABEL + field. + + Thu Nov 11 15:49:08 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (pa_type_args): For .import statements, + silently ignore attempt to change the symbol type for a function + from ST_ENTRY to ST_CODE on .import. + +Wed Nov 10 16:19:13 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * write.h (fixS): Rename fx_callj field to fx_tcbit. + * write.c, config/obj-coff.c, config/obj-coffbfd.c, + config/tc-i960.c: Corresponding changes. + +Tue Nov 9 00:49:01 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * Makefile.in (distclean): Delete config-stamp and config.h + + * config/tc-hppa.c (evaluate_absolute): Avoid relying on + ANSI-C features. + + * config/tc-hppa.c (pa_type_args): Renamed from pa_export_args. + Accept new argument "is_export". All callers changed. When + processing a .export directive for a function, do not allow + the user to set the type to "CODE", instead warn and set the + type to "ENTRY". + +Mon Nov 8 12:05:07 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-mips.c (mips_ip, printInsn): Handle 'k' (from Ted + Lemon <mellon@pepper.ncd.com>). + (mips_ip): Permit odd numbered floating point registers if -mips3. + (macro): Use BFD_RELOC_MIPS_LITERAL relocation for M_LI_SS. + +Mon Nov 8 07:45:01 1993 Doug Evans (dje@canuck.cygnus.com) + + * configure.in: Remove h8300h, we have multilib now. + +Mon Nov 8 06:09:18 1993 D. V. Henkel-Wallace (gumby@cirdan.cygnus.com) + + * configure.in: Support generic netware as being ELF format. + Recognise unixware if the user supplies it. + +Sun Nov 7 01:02:08 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * First cut at cleaning up PA instruction parsing. + * config/tc-hppa.c (pa_get_absolute_expression): Accept pointer to + insn structure as an argument, and a pointer to a string. All + callers changed. Always read any field selector here. Call + evaluate absolute to get a return value. + (evaluate_absolute): Addept pointer to insn structure as its + argument. All callers changed. + (INSERT_FIELD_AND_CONTINUE): New macro for inserting a bitfield + into an instruction and continuing the main pa_ip loop. + (CHECK_FIELD): New macro for simple range checking of fields. + (pa_ip): Delete unused variables. Use INSERT_FIELD_AND_CONTINUE + and CHECK_FIELD. All immediate fields now pass through + pa_get_absolute_expression which will also handle field selectors. + Delete dead code. Simplify. + (md_apply_fix_1): Use CHECK_FIELD to verify any fixes that are + applied are in range. Use bfd_put_32 rather than inserting each + byte of the fixed instrution into the buffer ourselves. + + * write.c (fixup_segment): Delete {SEG,GLOBAL}_DIFF_ALLOWED code, + it was PA specific and is no longer needed (it's now handled + within the PA backend). + * config/tc-hppa.h (SEG_DIFF_ALLOWED): Delete definition. + * config/tc-hppa.c (fix_new_hppa): If the subtract symbol for + a fixup is $global$ change it to NULL as $global$ is really only + needed long enough to determine the base type of relocation to use. + + * config/tc-hppa.c (create_new_subspace): Initialize subspace_defined. + + * config/tc-hppa.c (pa-ip, case 'z'): Make field selectors work + for 'z' operands (target of ble branch). + +Sat Nov 6 22:41:57 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c: (update_subspace): Fix type and name of last + parameter. All callers fixed. + (md_begin, pa_chk_field_selector, pa_entry): Lint. + + * config/tc-hppa.c (cons_fix_new_hppa): Reset field selector + to default state after it's been used. + +Fri Nov 5 12:08:21 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/obj-som.c (obj_som_init_stab_section): Change + space/subspace sort keys for the stab sections so as to avoid + bugs in the hp linker and pxdb. + +Thu Nov 4 17:00:05 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * write.c (chain_frchains_together): Update pointer to last + frag for a segment in the seginfo structure. + +Thu Nov 04 09:09:35 1993 Jeffrey Wheat (cassidy@cygnus.com) + + * Makefile.in: Changed RUNTESTFLAGS to RUNTEST_FLAGS + +Wed Nov 3 12:16:27 1993 Ken Raeburn (raeburn@rover.cygnus.com) + + * write.c (fixup_segment): Handle conversion of subtraction to + pc-relative addressing even if pc-relative flag is already set. + + * config/tc-m68k.c (m68k_ip_op): Use strchr, not index. Don't + declare either. + + * doc/Makefile.in (distclean): Delete intermediate files from dvi + build, but not the dvi or info files. + * Makefile.in (clean-here): New target; cleans up current + directory only. + (distclean): Use it instead of clean. + + * read.c (s_xstab): Don't use alloca. + + * messages.c (identify): New routine; print message identifying + following messages as coming from assembler. + (as_show_where, as_bad_internal, as_bad_where): Call it. + (as_fatal): Don't need to identify program any more. + +Tue Nov 2 18:04:11 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-sparc.c (sparc_ip): Add default case to reloc switch. + + * read.c (s_lcomm): Put small objects in .sbss for MIPS ELF as + well as MIPS ECOFF. + (get_stab_string_offset): Remove unused variable aligned. + +Tue Nov 2 15:07:07 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * tc-hppa.c: Add %dp and %rp as synonyms for %r27 and %r2 in the + predefined register table. + (pa_parse_number): Handle %rp in common register shortcut code. + Consistently set return value to -1 for an error. Clean up error + messages and only print them when "print_errors" is true. Handle + empty string case like the HP assembler -- assume a value of + zero. + + * config/ho-hpux.h: Do not include ho-sysv.h. Instead include + standard hpux include files to pick up various function decls. + + * config/ho-hppaosf.h: Delete _IO* macros. They are defined in + stdio.h. Delete bogus declaration of free. Get path to + alloca-conf.h right. + +Tue Nov 2 13:57:30 1993 Ken Raeburn (raeburn@rover.cygnus.com) + + * expr.c (operand): Fix checks for characters following "0b" or + "0f". + +Mon Nov 1 21:37:04 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/obj-som.h (obj_attach_unwind_info): Define as a hook + so GAS can attach unwind descriptor information to a BFD symbol. + * config/tc-hppa.c (fix_new_hppa): If necessary attach unwind + descriptor information to the BFD symbol. + (md_apply_fix): R_HPPA_ENTRY and R_HPPA_EXIT can never be "applied", + they are simply markers. Make R_HPPA_UNWIND_* handling OBJ_ELF + dependent. + (pa_build_unwind_subspace): Whole function is OBJ_ELF dependent. + (pa_entry): Build a R_HPPA_ENTRY relocation when configured for SOM. + (pa_exit): Likewise, but built a R_HPPA_EXIT relocation. Do not + build "end-of-function" symbols for SOM, they are not needed. + + * config/tc-hppa.c (process_exit): Create temporary symbols with + correct prefixes so they can be eliminated later. + + * config/tc-hppa.c (call_info struct): Delete unused "frame" field. + (pa_callinfo): Insert framesize into the unwind information as + soon as it's available. + (pa_build_unwind_subspace): Do not insert framesize into the unwind + information here. + + * Add support for marker type relocations. These mark areas + of interest to the linker. ENTRY/EXIT relocations for SOM are + an example of marker relocations. + * write.c (write_relocs): Instead of assuming size of a relocation + is 4 bytes, pick up the size from relocation itself. + (fixup_segment): Do not complain that a value is too small for + marker relocations. + + * struc-symbol.h: Add new "sy_used" field to the symbol structure. + * expr.c (operand): Set sy_used for any symbol used as an operand. + (expr): Likewise for any symbol used in an expression. + * config/tc-hppa.h (tc_frob_symbol): Define. Punt imported + symbols which are never used and absolute symbols which local scope. + + * config/obj-som.h (obj_frob_file): Define. + * config/obj-som.c (obj_som_init_stab_section): Set alignment + of stab sections. Make space for the special stab entry. + (adjust_stab_sections): Adjust the special entry in the + stabs section. + (som_frob_file): New function. Simply calls adjust_stab_sections + for each section. + +Mon Nov 1 17:54:29 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-mips.c (PIC_CALL_REG, SP, FP): Define. + (mips_pic, mips_cprestore_offset): New static variables. + (md_pseudo_table): Handle .abicalls, .cpload, and .cprestore. + Ignore .bgnb and .endb. + (gp_reference): _gp_disp is never addressed off GP. + (macro_build): Ignore macros while searching for insn. For cases + i, j, and o, accept the reloc type as an argument rather than + assuming BFD_RELOC_LO16. Don't try to convert BFD_RELOC_LO16 to + BFD_RELOC_MIPS_GPREL. Added new case a. + (set_at, load_register, macro): Changed calls to macro_build to + pass new argument for i, j and o cases. + (macro): Handle M_JAL_1, M_JAL_2 and M_JAL_A. These require + special handling when generating SVR4 PIC code. + (mips_ip, tc_get_register, s_frame): Use macros FP, SP, GP and AT + rather than hard coded constants. + (md_apply_fix): Handle BFD_RELOC_MIPS_LITERAL and + BFD_RELOC_MIPS_CALL16. + (s_option): Set mips_pic based on .option picN. + (s_abicalls): New function; set mips_pic to 2. + (s_cpload): New function; handle .cpload. + (s_cprestore): New function; handle .cprestore. + + * config/obj-ecoff.c (obj_pseudo_table): Add entries for .bgnb, + .endb and .verstamp, setting them to s_ignore. + +Sun Oct 31 00:36:40 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (subspace_dictionary_chain): Add new ssd_defined + field. Define SUBSPACE_DEFINED accessor macro. + (pa_subspace): Allow user to override subspace attributes for + built-in subspaces. Set ssd_defined at the end of fcn -- that + way the attributes can only be changed once. Pass newly allocated + name to is_defined_subspace, not a pointer to the input line. + Fix typo in space/subspace rework. + (is_defined_subspace): Delete unused 2nd arg. All callers changed. + + * config/tc-hppa.c (pa_import): If currently in the text segment + and a symbol is imported without type information, set BSF_FUNCTION + for the symbol. + * write.c (relax_and_size_seg): Correct test to determine if + the section's size was rounded up. + + * config/obj-som.h (obj_set_symbol_type): Define a hook so GAS + can properly set all the SOM symbol types. + * config/tc-hppa.c (pa_symbol_type): New enum to represent the + symbol types which can be set from an IMPORT/EXPORT statement. + (pa_export_args): Set the pa_symbol_type type based on arguments. + If defined, call obj_set_symbol_type to pass this information on + to the BFD backend. + + * read.c (get_stab_string_offset): Set SEC_DEBUGGING for any + stab section we make. + (s_stab_generic): Likewise. + +Sat Oct 30 14:26:20 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * Allow backends to override the value of the fake label. + * write.h (LOCAL_LABEL): Delete DOT_LABEL_PREFIX code. Instead + assume backends will define LOCAL_LABEL if anything other than + 'L' is used to denote a local label. + (FAKE_LABEL_NAME): New macro. Defines the default name used for + the "fake" label. + * expr.c (make_expr_symbol): Delete DOT_LABEL_PREFIX code + and instead simply use the string defined by FAKE_LABEL_NAME. + (operand): Likewise. + * read.c (s_stab_generic): Likewise. + * config/tc-hppa.h (FAKE_LABEL_NAME): Define as L$0\001 so it's + known to be a local label. + * config/tc-i386.h (DOT_LABEL_PREFIX): Delete. + (LOCAL_LABEL, FAKE_LABEL_NAME): Define. + * config/tc-m68k.h (DOT_LABEL_PREFIX): Delete. + (LOCAL_LABEL, FAKE_LABEL_NAME): Define. + * config/te-sco386.h (DOT_LABEL_PREFIX): Delete. + (LOCAL_LABEL, FAKE_LABEL_NAME): Define. + + Rework space/subspace handling in PA code to fully support + SOM spaces/subspaces. + * config/tc-hppa.c (USE_ALIASES): New object-format dependent define + to control the use of space/subspace name aliases. + (update_subspace): Accept space chain entry for containing space + as a new parameter. All callers changed. + (pa_get_label): Use current_space rather than pa_segment_to_space. + (pa_define_label): Likewise. + (pa_undefine_label): Likewise. + (md_begin): Change into the (possibly modified) text_section. + (pa_parse_space_stmt): Create a new segment/space if create_flag + is true, and the space name is not one of the two predefined spaces. + (pa_subspace): Use current_space rather than a lookup via + pa_segment_to_space. Reset BFD section flags as required by + the .subspace directive. Likewise for the section alignment. + Pass the current space to update_subspace and create_new_subspace. + (pa_spaces_begin): Only use space/subspace aliases if USE_ALIASES + is true. When not using aliases, create a BFD section for each + subspace encountered. When not using aliases replace the default + text, data, and bss segments with new ones. + (create_new_subspace): When not using aliases each subspace has a + section/segment and subsegments are not needed, so set the subsegment + to zero. + + * config/tc-hppa.c (pa_parse_space_stmt): If needed, call + obj_set_section_attributes to pass space attributes to the + BFD backend. + (create_new_space): Likewise. + (create_new_subspace): Likewise for subspace attributes using + obj_set_subsection_attributes. + (update_subspace): Likewise for subspace attributes using + obj_set_subsection_attributes. + + * config/tc-hppa.c (pa_parse_space_stmt): Get segment and sort key + for $TEXT$ and $PRIVATE$ from the default space structure. + + * config/tc-hppa.c (pa_export_args): Always set BSF_FUNCTION + as appropriate for the given type. + + * config/tc-hppa.c (tc_gen_reloc): Preliminary stab at handling + SOM relocations. + + * config/tc-hppa.c (pa_comm): Delete incorrect check for symbol + redefinition. + + * config/obj-som.[ch]: New files for SOM support. Note SOM + support is not yet complete in GAS or BFD. + + * config/ho-hppabsd.h: Delete IO* macros, they are defined in + stdio.h. Delete declaration of free. Include stdlib.h, unistd.h, + and string.h. + +Fri Oct 29 13:26:12 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * Allow backends to override the section names used for embedded + stabs support. Needed for SOM. + * read.c (STAB_SECTION_NAME): Default the name of the stab section + to ".stab". + (STAB_STRING_SECTION_NAME): Likewise for the stab strings section. + (get_stab_string_offset): Is now passed the full name for the + stab string section rather than a name prefix. All references + changed. + (s_stab_generic): New argument for the stab string section name. + all references changed. + (s_xstab): Append "str" to the stab section name to get the + stab string section name. + * config/obj-coffbfd.c (obj_coff_init_stab_section): Append "str" + to stab section name to get the stab string section name. Pass + the full name of the stab string section to get_stab_string_offset. + * config/obj-elf.c (obj_elf_init_stab_section): Likewise. + + * config/tc-hppa.c (md_begin): Disable "-R" option to fold + textand data segments. Warn user "-R" is unsupported on the + PA. + +Thu Oct 28 12:36:13 1993 Jeffrey A. Law (law@snake.cs.utah.edu) + + * config/tc-hppa.c (md_pseudo_table): Default alignment is 8 for + .align and .ALIGN directives. + + * config/tc-hppa.c (pa_space): Do not report an error for a .space + directive which does not define a "well-known" space and does + not include a space number as an argument. + + * config/tc-hppa.c (pa_def_subspaces): Correct initialization of the + "defined", "loadable", "code_only" and "space_index" fields. + (pa_def_spaces): Correct initialization of the "spnum", "defined", + and "private" fields. + + * write.h (struct fix): Add new tc_fix_data field for the various + backends to attach machine dependent fixup information to. + * write.c (fix_new_internal): Initialize new tc_fix_data field. + * config/tc-hppa.c (hppa_fix_struct): Delete unnecessary fix_fixP and + fx_next fields. + (hppa_find_hppa_fix): Delete unnecessary function. Fix all + callers to get HPPA fixup information from the tc_fix_data field + in the GAS fixup. + (hppa_fix_root): Delete unnecessary variable. + (fix_new_hppa): Attach HPPA fixup data to the GAS fixup. + + * config/tc-hppa.c (pa_set_start_symbol); Delete unwanted + function. Fix all callers. + (subspace_dictionary_chain): Delete unused ssd_start_sym field. + + * config/tc-hppa.c (hppa_fix_adjustable): New function to determine + if a particular fixup is adjustable. + * config/tc-hppa.h (tc_fix_adjustable): Call hppa_fix_adjustable to + perform the real work. + + * config/tc-hppa.h (RELOC_EXPANSION_POSSIBLE): Move definition out + of OBJ_XXX conditionals. + (MAX_RELOC_EXPANSION): Likewise. + + * config/tc-hppa.c (log2): Renamed from is_power_of_2. Fix all + callers. Now returns log2 (N) for positive N which are an exact + power of two or -1 for an error. + + * config/tc-hppa.c (pa_callinfo): Range check values provided for + ENTRY_GR, ENTRY_FR and ENTRY_SR. Properly adjust vaues before + inserting them into the unwind table. + + * config/tc-hppa.c (NEEDS_FIXUP): Delete definition and all references. + (hppa_gen_reloc_type): New object format dependent macro. + (pa_ip): Delete tons of code which was either OBJ_SOM or OBJ_ELF + conditional. The code can (and will) be shared between SOM & ELF + formats in the near future. + (cons_fix_new_hppa, md_apply_fix_1): Likewise. + (pa_build_unwind_subspace, process_exit, pa_exit): Likewise. + (tc_gen_reloc): Use hppa_gen_reloc rather than an object format + specific call. + + * config/tc-hppa.c (pa_comm): Set the segment for a common symbol + to bfd_und_section. + + * config/obj-elf.h (obj_elf_version): Add extern prototype. + + * configure.in (hppa-*-bsd*): New configuration. + BFD is always used for GAS generating SOM objects. + + * write.c (adjust_reloc_syms): Set sy_used_in_reloc if an + adjustment is rejected by the target machine. + + * config/tc-hppa.c (pa_big_cons): Delete function and its + declaration. All callers changed to use pa_cons. + + * write.c (fixup_segment): Fix indention and open/close brace + problem. + + From Pete Hoogenboom: + * config/tc-hppa.c (md_atof): Return a NULL on success rather than + an empty string. + + * config/tc-hppa.c (pa_parse_space_stmt): Advance + input_line_poitner when an invalid argument is encountered. + +Thu Oct 28 13:09:26 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-a29k.c (md_begin): When opcodes are mashed together in + the table, require that the one without bit 0x1000000 set come + first. Require further that it be case 'b' or 'P'. The a29k + opcode table already meets these constraints. + (machine_ip): When handling case 'i' or 'A', make sure that the + appropriate opcode really exists by looking at the next entry in + the opcode table. + +Wed Oct 27 11:48:56 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-m68k.c (m68k_ip): Adjust offsets for PC relative + fixups. Add 6 for long 7.3 case, 2 for short 7.2 case. + + * config/obj-ecoff.c (obj_ecoff_ent): Ignore an optional number + after a .ent directive. + + * config/tc-mips.c (mips_ip): Handle '>' case (shift amount + between 32 and 63 for double shift instruction). Do & 0x1f rather + than % 32. + (printInsn): Handle '>'. + +Tue Oct 26 16:58:36 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-ns32k.c (tc_aout_fix_to_chars): Output the symbol + number in the right place. Untested. Probably does not work for + cross assembly. From cagney@cs.adelaide.edu.au (Andrew Cagney). + + * config/tc-m68k.c (md_apply_fix_2): Error if a short branch uses + an illegal offset of 0 or -1. + + * config/obj-elf.c (obj_elf_init_stab_section): Align .stab + section to a longword boundary. + +Tue Oct 26 10:24:31 1993 Ken Raeburn (raeburn@cygnus.com) + + * Makefile.in (CHECKFLAGS): Pass down RUNTESTFLAGS. + + From Jeff Law: + * config/tc-hppa.c (tc_gen_reloc): ELF32_HPPA_R_ADDEND -> + HPPA_R_ADDEND. + +Mon Oct 25 14:06:17 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-sparc.c (sparc_ip): Fix up membar argument handling. + +Mon Oct 25 11:17:58 1993 Steve Chamberlain (sac@phydeaux.cygnus.com) + + * config/tc-sh.c (build_Mbytes): Write the relocs to the correct + address. (md_assemble): Make error handling a bit more graceful. + (md_apply_fix): Don't warn on non aligned displacement. + + * config/tc-z8k.c (get_specific, built_bytes): Understand all the + aspects of lda. + +Mon Oct 25 10:20:31 1993 Ken Raeburn (raeburn@rover.cygnus.com) + + * doc/Makefile.in (install-info): Use "$<*" so VPATH will find + as.info* even if they're in $(srcdir) (e.g., for FSF + distributions). + + * write.c (write_relocs): For relocs that are pc_relative and + pcrel_offset and not partial_inplace, adjust reloc->addend to + compensate for a bfd_perform_relocation bug. + + * config/tc-sparc.h: Removed remaining non-BFD_ASSEMBLER code. + * config/tc-sparc.c: Ditto. + (tc_gen_reloc): Include fx_offset for pcrel fixups. + +Sun Oct 24 16:49:00 1993 Jim Wilson (wilson@x1.cygnus.com) + + * tc-mips.c (md_pseudo_table): Add dword pseudo op. + +Fri Oct 22 20:40:56 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com) + + * messages.c: replaced all variables called Format with 'format', + for consistency throughout + + * configure.in: handle mips*- instead of mips, mips*el for little + endian configurations + +Fri Oct 22 14:45:49 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * input-scrub.c (physical_input_file, logical_input_file, + physical_input_line, logical_input_line): Made static. + (as_where): Return current file name and line number, don't print + them out. + * messages.c (as_show_where): New static function. Other + functions use it instead of as_where. + (as_bad_internal): New static function. + (as_bad): Use as_bad_internal. + (as_bad_where): New function, like as_bad but taking a file name + and line number. + * as.h (as_bad_where): Declare. + (as_where): Change prototype for new arguments. + * write.h (fixS): Added fields fx_file and fx_line. + * write.c (fix_new_internal): Save file and line number in fix. + (fixup_segment): Use as_bad_where, not as_bad. + * input-file.c (f_in, file_name): Made static. + * cond.c (struct file_line): Just use file and line fields. + (s_else): Use as_where and as_bad_where, not get_file_line and + set_file_line. + (get_file_line, set_file_line): Removed. + * listing.c (listing_newline): Use as_where. + * config/obj-coffbfd.c (obj_coff_init_stab_section): Use as_where. + * config/obj-ecoff.c (add_file): Use as_where. + * config/obj-elf.c (obj_elf_init_stab_section): Use as_where. + * config/tc-m68k.c (md_apply_fix_2): Use as_bad_where. + * config/tc-mips.c (tc_gen_reloc): Use as_bad_where, not assert. + +Thu Oct 21 12:52:01 1993 Ken Raeburn (raeburn@cygnus.com) + + * config/tc-m68k.h: Don't define REGISTER_PREFIX or + OPTIONAL_REGISTER_PREFIX if either is already defined. + + * config/tc-m68k.c (m68k_ip): Delete some code in "#if 0". + + * configure.in: Set bfd_gas for all sparc targets. Added facility + for keeping or rejecting configurations still under development; + default is to assume production environment, and reject configs + still being worked on. Mark Elf configurations (except sparc and + i386) as developmental. Deleted cases matching some generic names + in favor of more specific names. (E.g., when we get Alpha + support, we'll still only support VMS for Vax.) + + * config/tc-sparc.h (md_end): New macro. + * config/tc-sparc.c (md_end): Function deleted. + (BFD_RELOC_*): Delete macros that used to help keep the non-bfd + version compiling. All sparc targets will use bfd now. + * tc.h (md_end): Don't declare if it's defined as a macro. + + Changes from Jeff Law and Peter Hoogenboom: + + * read.c (next_char_of_string): Limit octal character constants to + three digits. + + * config/tc-hppa.h: Major cleanup. Use GNU-style comments. Warn + against placing additional object-file dependent code here. Warn + against contaminating all of GAS with the internals of tc-hppa.c + through inclusion of tc-hppa.h. Delete all forward declarations + for functions only used within tc-hppa.c, likewise for structures, + variables, and #defines. Try to group OBJ_ELF and OBJ_SOM + conditional code in a few small places. + + * config/tc-hppa.c: Major cleanup. Use GNU-style comments. Group + structures, global variables, forward declarations together. + Reduce (or in some cases eliminate) OBJ_ELF and OBJ_SOM + conditional code -- try to group conditional code together + into a few places. Make all functions and variables which + are only used within tc-hppa.c static. PARAMize all functions. + Add comments to functions. Delete unused functions, variables, + #defines, etc. Delete unused members within structures. Delete + ldil;ble hacks -- it is believed they were installed to work + around old gas bugs. Avoid using mixed case for local + functions, variables, and structures. Fix formatting problems + not found by GNU-indent. Add FIXME notices for things which + should be worked on the near future. Delete lots of old + useless (1.36 PA-SOM) code. + + * config/tc-hppa.c: (fix_new_hppa): Initialize the fx_r_type + field of the fixS structure. Needed to build unwind + descriptors correctly. + + * write.c: (fixup_segment): Allow expressions such as + sym1-sym2+const as long as sym2 is $global$. + + * write.c (adjust_reloc_syms): Provide a hook so that a target + cpu configuration can reject certain relocation reductions. + * tc-hppa.h (tc_fix_adjustable): New macro. Only accept relocations + which do not involve function symbols. + + * config/tc-hppa.h: Reindent with GNU-indent. Delete references + to OBJ_OSFROSE. Fix typos (OBJ_SOME -> OBJ_SOM). Delete unused + STAB_FIXUP macro. + * config/tc-hppa.c: Likewise. + + * config/tc-hppa.c (md_apply_fix_1): Use elf_symbol_type, instead + of elf32_symbol_type. + (pa_export_args): Likewise. + (elf_hppa_final_processing): Likewise. + (pa_desc): Do not call obj_elf_desc. (Is pa_desc even needed + anymore?) + (hppa_tc_make_sections): Do not declare elf_get_symtab_map any + ore. + + * config/tc-hppa.c: (md_section_align): Align all sections to + a multiple of the section alignment rather than always a + multiple of 8. + + * config/tc-hppa.c (hppa_tc_symbol): If the argument relocation + bits are zero (eg they specify no relocations), then do not even + bother adding their entries to thesymextn section. + +Thu Oct 21 15:44:55 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-sparc.c (md_parse_option): Accept and ignore -sparc + option, which is used by the SunOS make default .s.o rule. + +Wed Oct 20 12:26:33 1993 Ken Raeburn (raeburn@rover.cygnus.com) + + * config/tc-sparc.c (sparc_ip, label "immediate"): Convert relocs + operating on upper 32 bits of immediate constants to lower-half + relocs with adjusted constants. + +Tue Oct 19 18:13:26 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-m68k.h (AOUT_MACHTYPE): Define to be external variable + m68k_aout_machtype. + * config/tc-m68k.c (omagic): Remove obsolete and unused variable. + (m68k_aout_machtype): New variable, if OBJ_AOUT. + (md_assemble): Initialize m68k_aout_machtype based on + current_architecture, if OBJ_AOUT. + (md_parse_option): Remove obsolete reference to omagic. + +Thu Oct 14 16:51:00 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-mips.c (md_pseudo_table): Ignore .livereg pseudo-op. + (s_option): Ignore .option O* and .option pic*. + (s_ent): Skip whitespace between symbol and optional digit. + (my_getSmallExpression): Handle ($xx) correctly: assume 0($xx). + + * app.c (do_scrub_next_char): Always accept 'x' and 'X' as escape + characters in state 6. + * read.c (next_char_of_string): Accept \Xh* and \xh* where h* are + hexidecimal digits. + + * config/tc-i386.c (md_apply_fix_1): Make cross segment calls work + for ELF by hacking around bizarre bfd_perform_relocation behaviour + that I don't dare change. + +Thu Oct 14 11:33:25 1993 Michael Meissner (meissner@osf.org) + + * config/tc-i386.c: (md_begin): Do not zero static arrays. Don't + call strchr for each character to see if it is a special char, + instead add a second loop over special_chars. Set alignment + of text, data and bss sections to 4. + (pi, te, pt, pe, ps): Add declarations so that DEBUG386 can be + used again. + (reloc): Don't return 8 and 16 bit non-PC relative relocations on + ELF, since the ELF object format does not have these type of + relocations. Change the abort into as as_bad and return + BFD_RELOC_NONE to silence compiler warnings. + (md_assemble): Keep track of the instruction size. Allow white + space between the $ and the constant for compatibility with older + gases and other assemblers. + (i386_operand): Skip spaces between $ and expression. + (tc_gen_reloc): Don't allow anything but 32 bit relocations on + ELF. Convert abort into an as_bad and assert into as_fatal. + +Wed Oct 13 16:50:55 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * config/obj-coffbfd.c (fixup_segment) [DIFF_EXPR_OK]: If + sub_symbolP is in the current segment, convert to a PC-relative + fixup and discard the symbol. + +Wed Oct 13 14:00:02 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/obj-ecoff.c (ecoff_build_symbols): Handle st_End symbol + for st_StaticProc just like st_Proc. + + * write.c (relax_and_size_all_segments): Moved #endif for OBJ_BOUT + so that OBJ_BOUT doesn't forget to adjust all the fragments in the + .bss section. + +Tue Oct 12 17:26:15 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-mips.c: If OBJ_ELF, include elf/mips.h. + (mips_regmask_frag): New static variable, if OBJ_ELF. + (md_begin): If OBJ_ELF, create .reginfo section and set + mips_regmask_frag to a frag. + (mips_elf_final_processing): New function, if OBJ_ELF. Set + mips_regmask_frag to register mask information. + * config/tc-mips.h (elf_tc_final_processing): New macro, defined + if OBJ_ELF. + +Tue Oct 12 03:33:26 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * messages.c (as_fatal): Use myname when printing messages. + + * config/tc-i960.c (md_begin): Use null pointer, not empty string, + as initial "return" value in case hashing isn't needed. + + * config/tc-a29k.c (md_atof): Return null, not empty string, on + success. + * config/tc-h8300.c (md_atof), config/tc-h8500.c (md_atof), + config/tc-hppa.c (md_atof), config/tc-i860.c (md_atof), + config/tc-i960.c (md_atof), config/tc-m88k.c (md_atof), + config/tc-ns32k.c (md_atof), config/tc-sh.c (md_atof): Ditto. + +Mon Oct 11 16:46:31 1993 Steve Chamberlain (sac@phydeaux.cygnus.com) + + fix for pr 3571 + * config/tc-h8300.c (get_specific): Special action if 8 bit + address seen. (check_operand): Don't complain if truncating top + bits of an 8 bit address. (build_bytes): Allow an immediate and + an absolute in the same insn. + +Mon Oct 11 17:18:51 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * write.c (write_contents): Don't crash if seginfo is NULL. + + * config/obj-ecoff.c (ecoff_frob_file): Write out register masks + by modifying .reginfo section, not by directly modifying BFD + backend data. + +Mon Oct 11 14:11:32 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com) + + * config/ho-sunos.h: remove extern time declaration + +Mon Oct 11 16:14:43 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * messages.c (as_fatal): Do mention that it's the assembler that + got the fatal error. + +Fri Oct 8 14:09:35 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-mips.c (mips_gprmask, mips_cprmask): New variables to + hold register masks. + (md_begin): Initialize them to zero. + (append_insn): Update mips_gprmask and mips_cprmask. Also add + register variables pinfo and prev_pinfo. + * config/tc-mips.h (mips_gprmask, mips_cprmask): Declare. + * config/obj-ecoff.c (ecoff_frob_file): If TC_MIPS, set gprmask + and cprmask from mips_gprmask and mips_cprmask. + + * config/tc-mips.h: Define TARGET_FORMAT if OBJ_ELF. + * config/tc-mips.c (GPOPT): Define if OBJ_ECOFF or OBJ_ELF. + (various): Change all references to GP references to apply if + GPOPT, not if OBJ_ECOFF. + (s_change_sec): Rearrange somewhat. If OBJ_ELF, use .rodata + instead of .rdata. If OBJ_ELF, set section flags for .rodata and + .sdata sections. + (s_frame, s_loc, s_mask): Comment out entire functions, rather + than just body. They're not used anyhow. + * configure.in: Set cpu_type to mips for mips*. Accept + mips-*-elfl* and mips-*-elf*. + +Thu Oct 7 18:36:29 1993 Michael Meissner (meissner@osf.org) + + * config/obj-elf.c (obj_elf_common): Allow the alignment field to + not be specified. + +Wed Oct 6 13:01:34 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-mips.c (cons_fix_new_mips): New function. Turn + BFD_RELOC_64 into BFD_RELOC_32. + * config/tc-mips.h (TC_CONS_FIX_NEW): Define. + (cons_fix_new_mips): Declare. + + Changes to let cons handle bignums like general expressions. + * expr.h (expressionS): New field X_unsigned. + * expr.c (operand): Initialize X_unsigned to 1. Set it to 0 for + unary minus case. + (expr) Fix typo resultP to right if missing operand. Set + X_unsigned to 1 when building new expression. + * read.c (potable): Make "octa" and "quad" call cons, not + big_cons. + (cons): Handle bignums. If given an O_constant (small integer) to + fill a big space, turn it into a bignum. + (parse_bitfield_cons): Set X_unsigned field. + (bignum_low, bignum_limit, bignum_high, grow_bignum, big_cons): + Removed. + * read.h (big_cons): Remove prototype. + * symbols.c (resolve_symbol_value): Don't give a warning if a + symbol in expr_section can not be resolved. + (S_SET_VALUE): Clear X_unsigned. + * write.c (write_object_file): If resolve_symbol_value failed on a + symbol we are writing out, give a warning. + * config/tc-h8500.c (parse_reglist): Set X_unsigned. + * config/tc-hppa.c (md_pseudo_table): Change "octa" and "quad" to + call pa_cons, not pa_big_cons. + (pa_big_cons): Remove. + * config/tc-hppa.h (pa_big_cons): Remove declaration. + * config/tc-i960.c (md_pseudo_table): Change "quad" to call cons, + not big_cons. + +Tue Oct 5 10:53:36 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com) + + * doc/as.texinfo (Copying): new node, to handle the recent changes + in the texinfo/gpl.texinfo file + +Mon Oct 4 17:10:15 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * read.c (big_cons): Handle "0" correctly. + + * config/tc-mips.c (md_begin): Set target_big_endian correctly. + +Mon Oct 4 15:37:57 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * config/tc-m68k.c (m68k_ip): Mode 7.3 operand using PC should + have pc-relative fixup. + (md_parse_option): Move "-k" case down near "-pic" case. + + * configure.in: Alphabetize list of cpu type alternatives. Enable + OS values of "linux*elf*" and "linux*coff*" to select those + formats, with linux emulation. Don't bother checking for upper- + or mixed-case versions of "ose". + +Thu Sep 30 11:05:35 1993 Steve Chamberlain (sac@phydeaux.cygnus.com) + + * config/z8k.c (md_pseudo_table): add "unseg". + +Wed Sep 29 16:15:11 1993 K. Richard Pixley (rich@sendai.cygnus.com) + + * config/m88k-opcode.h (m88k_opcodes): correct a few mistakes + found while extending the dissassembler. + +Tue Sep 28 12:02:04 1993 Stan Shebs (shebs@rtl.cygnus.com) + + * configure.in: Split i386 LynxOS out from other coff targets, + add a specific Lynx emulation. + Add m68k LynxOS target. + * config/tc-i386.c: Define specific Lynx target format. + * config/tc-m68k.c: Define specific Lynx target format. + * config/te-lynx.h: New file. + + * config/obj-coffbfd.h: Don't set TARGET_FORMAT to be + "coff-{i386,m68k}" if TARGET_FORMAT already defined. + (INIT_STAB_SECTION): Define. + * config/obj-coffbfd.c: Include <time.h>. + (write_object_file): Look for .stab sections and call + adjust_stab_section. + (adjust_stab_section): New function, fills in the first symbol + of a stab section with number of symbols and string table size. + (obj_coff_init_stab_section): New function, creates the initial + symbol for a stab section. + +Mon Sep 27 15:21:55 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * config/atof-vax.c (md_atof): Return null on success instead of + empty string. + * config/atof-tahoe.c (md_atof): Ditto. + * read.c (float_cons): Expect a null pointer for success, not an + empty string. + + * hash.c (hash_insert, hash_jam, hash_grow): Return null pointer + on success, instead of empty string. All callers changed. + + * config/tc-vax.c: Use PARAMS in declarations. + (vip_op): Use NULL instead of empty string for success in error + and warning fields. + +Sun Sep 26 23:45:29 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * expr.c (expr) [DIFF_EXPR_OK]: Permit subtraction of two symbols + in different defined segments. + + * write.c (relax_segment): Localize "aim" variable. If + DIFF_EXPR_OK, don't impose checks on symbol segment types. + (fixup_segment) [DIFF_EXPR_OK]: If sub_symbolP is in the current + segment, convert to a PC-relative fixup and discard the symbol. + + * config/tc-m68k.c (flag_want_pic): New variable, mostly ignored. + (md_parse_option) [TE_SUN3]: Set it for "-k". + (m68k_ip): Generate proper fixup for mode 7.3. + * config/tc-m68k.h (DIFF_EXPR_OK): Define. + +Sat Sep 25 05:08:19 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * config/tc-m68k.c (struct m68k_incant, getone, gettwo): Moved + earlier in the file. + (insop, add_exp): Now defined as functions, for readability. + (insop): Now takes two arguments; callers changed. + +Fri Sep 24 12:37:59 1993 K. Richard Pixley (rich@sendai.cygnus.com) + + * config/tc-m88k.c (get_o6): new function. + (get_bf, get_cmp, get_cnd, get_cr, get_fcr, get_imm16, get_reg, + get_vec9, getval, get_pcr, calcop, match_name): make static and + prototype. + (s_file): remove extraneous forward decl. + (md_begin): add const to retval decl. + (calcop): cope with instructions without arguments. Handle 'o' + type argument, the o6 field of the prot insn. + (md_estimate_size_before_relax): return a dummy value. + + * config/m88k-opcode.h (m88k_opcodes): comment change; o6 field is + in bits 10 through 7. flt.[dxs]s requires an r register in the + second argument. New instruction lda.x. New instruction muls + (alias for mul). + +Fri Sep 24 13:43:30 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * Makefile.in (distclean): Recurse like clean. + * doc/Makefile.in (distclean): New target. + + * config/tc-mips.c (md_begin): Set BFD architecture and machine + based on MIPS ISA level. + +Thu Sep 23 17:58:58 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * as.c (main): "exhausted", not "exhuasted". + + * struc-symbol.h (struct symbol): Add sy_used_in_reloc field. + * write.c (adjust_reloc_syms): Set sy_used_in_reloc. + (write_object_file): Never strip symbols with sy_used_in_reloc + set. + + * config/obj-elf.c (obj_elf_section): Rewrote to handle both + Solaris and SVR4 style .section pseudo-ops. + (obj_elf_ident): Set SEC_READONLY for .comment section. + * config/tc-sparc.c (md_apply_fix): If this is ELF, and we're + generating a reloc, don't apply a fix. + +Thu Sep 23 13:16:58 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * config/obj-coffbfd.c (relax_align): Now static. + +Mon Sep 20 19:23:35 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * read.c (get_stab_string_offset): Make non-static. Make + arguments const. Don't align strings to 4 byte boundaries. + * read.h: Declare get_stab_string_offset. + * config/obj-elf.c (obj_elf_section): Set SEC_ALLOC as well as + SEC_LOAD for progbits section. + (obj_elf_init_stab_section): New function. + (adjust_stab_sections): Add casts to avoid warnings. + * config/obj-elf.h (INIT_STAB_SECTION): Call + obj_elf_init_stab_section. + (OBJ_PROCESS_STAB): Removed definition. + +Fri Sep 17 18:12:34 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/obj-elf.h (S_GET_SIZE): Define. + (obj_frob_forward_symbol): Define. + * config/tc-i386.c (line_comment_chars): Initialize in all cases. + +Thu Sep 16 14:23:08 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * tc.h: Declare tc_gen_reloc differently depending upon + RELOC_EXPANSION_POSSIBLE. + * config/obj-elf.c (obj_elf_section): Only set flags when first + creating the section. + +Wed Sep 15 12:15:53 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-mips.c (append_insn): Don't swap a trap instruction + with a branch. + +Tue Sep 14 13:31:04 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/obj-elf.c (obj_elf_data, obj_elf_text): New functions; + set previous_section and previous_subsection and then call s_data + and s_text, respectively. + (obj_pseudo_table): Add data and text. + (obj_elf_section): Add SEC_LOAD to default initialization of + flags. Treat .rodata1 like .rodata. Set SEC_LOAD as well as + SEC_ALLOC for "alloc" string. Don't bother trying to find the + section; just use subseg_new. + + * read.c (change_to_section): Removed. This is now done by + subseg_new. + (get_stab_string_offset): Rearranged somewhat. Create the section + using subseg_new. Store the string index in seg_info, rather than + in a static variable. Force the first string to be empty. Use + frag_more rather than FRAG_APPEND_1_CHAR. + (s_stab_generic): Rewrote. + * subsegs.h (segment_info_type): Added stabu union. + * subsegs.c (subseg_new): Initialize stab_string_size to 0. + * config/obj-aout.c: Don't include aout/stab_gnu.h. + (obj_aout_stab, obj_aout_desc): Removed. + (obj_pseudo_table): Removed desc and stabX entries. + * config/obj-bout.c: Same changes as config/obj-aout.c. + * config/obj-bout.h (S_SET_TYPE): Define. + (tc_bout_fix_to_chars): Declare. + * config/obj-coff.c (obj_coff_stab): Removed. + (obj_pseudo_table): Removed desc and stabX entries. + * config/obj-coff.h (SEPARATE_STAB_SECTIONS): Define. + * config/obj-coffbfd.c (current_stab_symbol): Removed. + * config/obj-coffbfd.h (obj_symbol_type): Removed n_strx, n_type, + n_other, n_desc and n_value fields. + (S_{S,G}ET_{OFFSET,OTHER,TYPE,DESC}): Removed. + (MAKE_STAB_SYMBOL): Removed. + * config/obj-ecoff.c (obj_ecoff_stab): Renamed to ecoff_stab. + Changed arguments and removed parsing code. + (obj_pseudo_table): Removed stabX entries. + * config/obj-ecoff.h (ecoff_stab): Declare. + (OBJ_PROCESS_STAB): Define. + * config/obj-elf.c: Don't include aout/stab_gnu.h. + (obj_elf_stab, obj_elf_xstab, obj_elf_desc, + elf_stab_symbol_string, elf_stab_symbol, obj_elf_stab_generic): + Removed. + (obj_pseudo_table): Removed desc, stabX and xstabs entries. + (obj_elf_version): Use subseg_new, not bfd_make_section. Don't + set SEC_LOAD for .note section. + (adjust_stab_sections): Get frag pointer from seg_info, rather + than looking through frags. + * config/obj-elf.h (S_{S,G}ET_{OTHER,TYPE,DESC}): Removed. + (SEPARATE_STAB_SECTIONS, INIT_STAB_SECTION, OBJ_PROCESS_STAB): + Define. + * config/obj-vms.c (obj_aout_stab): Removed. + (obj_pseudo_table): Removed stabX entries. + * config/obj-vms.h (S_SET_TYPE): Define. + + * as.h: Declare listing. + * read.c: Don't declare listing. + (emit_expr): Cast fix_new_exp argument. + (parse_bitfield_cons): Correct printf format. + * symbols.c (symbol_new): Add cast to avoid warning. + * write.h: Declare text_last_frag and data_last_frag. + * config/obj-bout.c (obj_bout_line): Added dummy argument. + * config/obj-coffbfd.c: Add some casts to avoid warnings. + * config/tc-a29k.c: Likewise. + * config/tc-i960.c: Likewise. Also fully bracket structure + initializations, fix printf formats, and remove unused variables. + +Mon Sep 13 16:48:38 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * read.c (s_desc): Only compile and use if S_SET_DESC is defined. + * struc-symbol.h: Declare verify_symbol_chain and + verify_symbol_chain_2 even if not SYMBOLS_NEED_BACKPOINTERS. + * symbols.c (verify_symbol_chain): Removed useless expression. + * write.c (headers, the_object_file): Only use if not + BFD_ASSEMBLER and not BFD. + (fixup_segment, cvs_frag_to_fill): Only use if BFD_ASSEMBLER or + not BFD. + (merge_data_into_text): Only use if BFD_ASSEMBLER or (not BFD and + not OBJ_AOUT). + * write.h: Declare relax_segment. + * config/obj-coffbfd.c (stack_pop, stack_push, stack_init): Made + static. + (stack_top): Commented out, since it's not used. + Fixed up pseudo-op functions to take an ignored int argument. + (size_section): Added default BAD_CASE to switch. + Changed bzero calls to memset. + * config/obj-coffbfd.h (S_IS_LOCAL): Call strchr on S_GET_NAME + (s), not on s itself. + * config/tc-a29k.c (s_use): Take ignored int argument. Only + define if OBJ_COFF is not defined. + * config/tc-i386.c: (fits_in_signed_byte, smallest_imm_type): Make + argument signed again. + * config/tc-m68k.c (s_bss, s_even, s_proc): Take ignored int + argument. + (m68k_ip): Fully bracket initialization of archs. + Correct several formats for __LINE__ to be %d rather than %s. + (init_table): Fully bracket initialization. + Cast values larger than 0x7f assigned to fr_opcode to char. + + * subsegs.c: Renamed non-BFD_ASSEMBLER subseg_new to subseg_set. + Wrote non-BFD_ASSEMBLER subseg_new. Now subseg_new always takes a + section name, and subseg_set always takes a segT. Changed all + callers as appropriate. + * config/obj-coffbfd.c (change_to_section): Renamed to + obj_coff_add_segment. Corrected. Made callers use subseg_new. + * config/obj-coffbfd.h (obj_segment_name, obj_add_segment): + Define. + +Mon Sep 13 13:15:03 1993 Doug Evans (dje@canuck.cygnus.com) + + * config/tc-sparc.h (LOCAL_LABEL): Remove test for name[0] == 'L'. + +Fri Sep 10 11:22:08 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/obj-elf.h (S_SET_SIZE): Actually set the size. + + Gcc lint. + * Added a number of casts to function calls. + * app.c (do_scrub_begin), as.c (main), expr.c (integer_constant, + operand, expr), read.c (read_begin, HANDLE_CONDITIONAL_ASSEMBLY, + read_a_source_file, s_align_bytes, demand_empty_rest_of_line, + ignore_rest_of_line, big_cons, is_it_end_of_statement, s_ignore), + read.h (is_name_beginner, is_part_of_name), config/obj-elf.c + (obj_elf_section), config/tc-i386.c (parse_register), + config/tc-sparc.c (isoctal, s_proc): Cast char + array indices to unsigned char. + * app.c (process_escape): Make static. Add prototype. Change + argument from char to int. + * as.c: Include output-file.h for prototypes. Comment out unused + function got_sig. + * Makefile.in (as.o): Depend on output-file.h. + * as.h (BAD_CASE): Cast val argument to long, and use %ld. + (pseudo_typeS): Add prototype to poc_handler field. + (print_version_id): Add prototype. + (xmalloc, xrealloc): Change size arguments to unsigned long. + (do_scrub_next_char): Add prototypes for function arguments. + (had_errors, had_warnings, scrub_from_file): Remove duplicate + declarations. + * atof-generic.c (atof_generic): Make size variables unsigned. + * cond.c (ignore_input): Removed unused local variable ptr. + * expr.c (floating_constant, integer_constant): Make static. Add + prototypes. + * flonum-copy.c (flonum_copy): Make size variables unsigned. + * frags.h: Add prototype for frag_init. + * hash.h, hash.c: Change hash values from char * to PTR, make hash + strings const, make returned error strings const char *. Added + prototypes for functions. + * input-file.h, input-file.c (input_file_buffer_size): Return + unsigned int. + * input-scrub.c (buffer_length): Make unsigned. + (input_scrub_push, input_scrub_pop): Make static. + * listing.c (list_symbol_table): Cast sprintf argument to unsigned + long and use %lx. Print name of segment rather than address of + structure. + (listing_list, listing_title): Change argument to int. + (listing_eject, listing_flags, listing_psize): Add int argument. + * listing.h: Corresponding declaration changes. + * obj.h (obj_emit_symbols): Rename prototype argument to avoid + shadowing. + * read.h: Change get_absolute_expression prototype to return + offsetT. Add prototype for next_char_of_string. Various + prototype changes. + * read.c: Remove prototype for next_char_of_string. + (pobegin): Make errtxt const. Make new_length, tmp_len and num + unsigned. + (s_abort, s_align_ptwo, s_comm, s_data, s_app_line, s_fill, + s_globl, s_lsym, s_org, s_set, s_text, s_desc): Add int argument. + Change all callers. + (s_comm): Change temp from valueT to offsetT. Cast to long when + printing and use %ld (only for error messages anyhow). + (s_long, s_int): Remove unused functions. + (cons): Change argument to int. + (emit_expr): Use %lx when printing longs. + (get_absolute_expression): Return offsetT, not long. + (get_stab_string_offset): Comment out unless + SEPARATE_STAB_SECTIONS. + (s_stab_generic): Remove unused offset. Define seg_is_new only + if SEPARATE_STAB_SECTIONS. Use toP only in local block. + * struc-symbol.h (verify_symbol_chain_2): Add prototype. + * symbols.c: Remove nested comment. + (symbol_new): Rename value to valu. + (colon): Use %ld and cast to long in error message. + * symbols.h: Remove duplicate verify_symbol_chain declaration. + * tc.h: Remove unused md_emit_relocations declaration. + (tc_gen_reloc): Add declaration. + * write.c (cvt_frag_to_fill): Change first argument name depending + on BFD_ASSEMBLER. + (write_relocs): Remove unused offset, frags. Remove tc_gen_reloc + declarations. Make n unsigned. + (write_contents): Remove unused i, n, relocs, fixp. Rename frags + to f to avoid shadowing. + (write_object_file): Define fragP only if not BFD_ASSEMBLER or not + WORKING_DOT_WORD. Remove unused keep. Only declare punt and + punt_it if they will be used. Make i and n unsigned. + (fixup_segment): Cast to long and use %ld in error message. + * xmalloc.c (xmalloc, xrealloc): Make size argument unsigned. + * config/obj-aout.h: Remove nested comment. Add prototype for + obj_aout_frob_symbol. + (obj_aout_line, obj_aout_desc): Add int argument. + * config/obj-ecoff.c: Changed build routines to use an unsigned + offset. + (add_string): Make len unsigned long. + (obj_ecoff_stab): Use %lu in error message. + * config/obj-elf.c (obj_elf_common): Comment out unused label + allocate_bss. + (obj_elf_frob_symbol): Return 0 (currently broken). + (obj_elf_desc, obj_elf_version, obj_elf_size, obj_elf_type, + obj_elf_ident, obj_elf_weak, obj_elf_local, obj_elf_common, + obj_elf_line, obj_elf_previous): Add int argument. + (obj_elf_write_symbol_p): Make static. + * config/obj-elf.h (obj_elf_write_symbol): Add prototype. + * config/tc-hppa.h: Remove declarations of functions declared in + read.h. + * config/tc-i386.c (ENCODE_RELAX_STATE): Cast to relax_substateT. + (s_bss): Add int argument. + (fits_in_signed_byte, smallest_imm_type): Make argument unsigned. + (dummy): Remove unused function. + (md_assemble): Rename local o to op to avoid shadowing. + (tc_gen_reloc): Rename local reloc to rel to avoid shadowing. + * config/tc-m68k.c (s_data1, s_data2): Add int argument. + * config/tc-mips.c (mips_ip, md_apply_fix): Cast to long and use + %ld in error messages. + * config/tc-sparc.c: Remove duplicate declarations. + (getExpression): Rewrite condition to avoid empty conditional + body. + (s_reg, s_proc, s_reserve, s_common, s_seg, s_xword): Add int + argument. + +Thu Sep 9 17:10:00 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + Changes from Jeff Law: + + * config/tc-hppa.c (md_assemble): Fix typo. + (pa_ip): Delete unused variables and labels. Do not check for + unsigned values being < 0, it can't happen. + (is_same_frag): Return a value in recursive call case. + (pa_callinfo): Delete unused variables and labels. + (pa_comm): Likewise. + (pa_copyright): Likewise. + (pa_export): Likewise. + (pa_import): Likewise. + (pa_param): Likewise. + (pa_space): Likewise. + (pa_subspace): Likewise. + +Thu Sep 9 15:05:34 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * read.c (get_stab_string_offset, s_stab_generic): If + BFD_ASSEMBLER, call subseg_set rather than subseg_new. + +Wed Sep 8 15:09:17 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/obj-elf.c (obj_elf_section): Set SEC_LOAD when using + default flag values. + +Tue Sep 7 10:22:52 1993 Stan Shebs (shebs@rtl.cygnus.com) + + * read.c: (change_to_section): Don't include body if not MANY_SECTIONS. + + * read.c: (s_stab, s_xstab, s_desc): New functions to parse + various stab-related directives. + * read.h: (s_stab, s_xstab, s_desc): New function prototypes. + * write.c: (merge_data_into_text): Fix ifdef tangle. + * config/obj-coffbfd.c (current_stab_symbol): Fake symbol + for stab reader to use. + * config/obj-coffbfdh.h (obj_symbol_type): Added fields for + stab reader, macros to access. + +Fri Sep 3 16:44:03 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * config/obj-elf.h (elf_symbol): No longer special-cased on + sparcv9, since elf_symbol_type is now independent of size. + + * config/obj-elf.h (elf_symbol): Fixed name of elf_symbol_type. + + * config/tc-hppa.h (struct default_subspace_dict, struct + default_space_dict): Field "sort" is now unsigned char. + + * config/tc-hppa.c (pa_def_subspaces, pa_def_spaces): Align + columns for easier reading. + (bcmp, index): Deleted USG-specific definitions. Should be dealt + with in ho-*.h, or in libiberty. Changed mention of index to + strchr. + (label_symbolP, label_symbol_defined, callinfo_found, + within_entry_exit, exit_processing_complete, within_procedure, + pa_def_subspaces, pa_def_spaces, pa_pseudo_op_moves_pc, + label_symbols_rootP, pa_get_label, pa_label_is_defined, + pa_undefine_label): Now static. + (movers): Now const, in addition to pointing to const data. + * config/tc-hppa.h (label_symbolS_rootP, pa_get_label, + pa_label_is_defined, pa_undefine_label, pa_pseudo_op_moves_pc): + Delete declarations. + + Merged more changes from Jeff Law and Pete Hoogenboom: + + * config/tc-hppa.c (pa_def_subspaces, pa_def_subspaces): Remove + entries for .stab and .stabstr. + + * config/obj-elf.c: (elf_stab_symbol_string): Set the + SEC_LOAD attribute for the .stabstr section. + (obj_elf_stab_generic): Set the SEC_LOAD attribute for the + .stab section. + (obj_elf_stab_generic): Change '#if 1' to '#if 0'. + (obj_elf_stab_generic): Incorrect byte count on call to + md_number_to_chars function. + + * config/tc-hppa.c (hppa_tc_symbol): Static functions need + argument relocation bits too. + + * config/tc-hppa.c (pa_stringer): Correctly handle escaping + characters which should appear unaltered in the output string (for + example an escaped double-quote). + + * config/tc-hppa.c (pa_parse_nonneg_cmpsub_cmpltr): Always + initialize name. + (pa_parse_neg_cmpsub_cmpltr): Likewise. + (pa_parse_nonneg_add_cmpltr): Likewise. + (pa_parse_neg_add_cmpltr): Likewise. + + * config/tc-hppa.h (parse_cons_expression_hppa): Remove prototype + for now. + (cons_fix_new_hppa): Likewise. + * config/tc-hppa.c (md_apply_fix): Fix type of valp to match + prototype. + + * config/tc-hppa.c: Include libhppa.h. + + * config/tc-hppa.h: Delete extern declarations of functions + found in libhppa.h. + + * config/tc-hppa.c (pa_space): Rework to avoid unwanted #ifdef + OBJ_ELF conditionals. + * config/tc-hppa.h (LOCAL_LABEL): Correctly identify local labels + on the PA. + +Thu Sep 2 10:43:57 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-mips.c (macro_build): Accept 'z', and ignore it. + (macro): Use "z,s,t" for div instructions to match corresponding + change in opcode table. + (mips_ip): Added 'z'--must be zero register. + +Wed Sep 1 15:56:42 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * write.c (write_relocs) [RELOC_EXPANSION_POSSIBLE]: Declare + tc_gen_reloc correctly. + + * configure.in: Use "case" instead of "if" when possible. Rewrote + Makefile editing to reduce work done. Treat "hppa*" as "hppa". + +Wed Sep 1 12:19:07 1993 K. Richard Pixley (rich@sendai.cygnus.com) + + * config/obj-coffbfd.c (obj_coff_section): add 'd' as an alias for + section type of data. 'd' seems to be used for m88k. + +Wed Aug 25 22:33:22 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-mips.c (mips_align, s_stringer, s_cons, s_float_cons, + s_mips_space): Set insn_label to NULL to avoid changing it at the + next .align statement. + (append_insn): Don't swap jal with instruction that sets the + register that jal sets. + +Wed Aug 25 16:15:57 1993 K. Richard Pixley (rich@sendai.cygnus.com) + + * configure.in: recognize m88110. + +Wed Aug 25 13:37:46 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + Merged changes from Pete Hoogenboom and Jeff Law at Utah: + * config/tc-hppa.c (pa_build_unwind_subspace): SEC_ALLOC should + not be on for .hppa_unwind. + (md_pseudo_table): .PARAM and .param are valid pseudo-ops for GAS. + (pa_param): New function to handle .PARAM directives. + (pa_ip): Pass "isbranch" argument down to pa_parse_*_compltr + functions. Handle '|' for movb; allow movb,n. + (pa_parse_nonneg_cmpsub_cmpltr): Delete old useless + version. Handle cases where no completer exists for + comb,n or addb,n. + (pa_parse_neg_cmpsub_cmpltr): Handle cases where no + completer exists for comb,n or addb,n. Make logic + mirror that of pa_parse_nonneg_cmpsub_cmpltr. + (pa_parse_nonneg_add_cmpltr): Likewise. + (pa_parse_neg_add_cmpltr): Likewise. + * tc-hppa.h (pa_param): Declare. + +Tue Aug 24 15:41:35 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * config/tc-hppa.c (hppa_tc_make_symextn_section): Now static. + Added forward declaration. + + Merged changes from Pete Hoogenboom and Jeff Law at Utah: + + * config/obj-elf.c (elf_frob_file): Arguments were incorrect on + call to elf_tc_make_sections. + (obj_elf_version): A .note section shouldn't have the SEC_ALLOC + attribute. + + * config/tc-hppa.c (hppa_tc_make_sections): Add some processing to + handle symbol extension sections. + + * config/tc-hppa.c (pa_build_symextn_section): New function to + create a symbol extension section. + (pa_export_args): Make call to pa_build_symextn_section. + (hppa_tc_symbol, hppa_tc_make_sections, + hppa_tc_make_symextn_section): New functions. + * config/tc-hppa.h: Update elf_tc_symbol and elf_tc_make_sections + macros. + + * read.c (emit_expr): Place check for TC_CONS_FIX_NEW in the + BFD_ASSEMBLER branch as well. + + * config/tc-hppa.h: If ELF is the target object format, define + some ELF- and hppa-specific types and constants. + + * config/tc-hppa.c (getExpression): Fix a typo. + + * read.c (read_a_source_file): Use TC_EQUAL_IN_INSN to determine + if a `=' is part of an instruction. + (read_a_source_file): Handle case where end-of-line markers are + also used within instructions. + * config/tc-hppa.h (TC_EQUAL_IN_INSN, TC_EOL_IN_INSN): Define. + + * config/tc-hppa.c (md_apply_fix_1): Keep relocations for + out-of-range branches/'calls using "bl" or calls which may need + argument relocation stubs. Do not need/keep relocations for + conditional branches. + (elf_hppa_final_processing): Fix calculation of function size. + + * config/obj-elf.c (obj_elf_version): Mark .note section as + READONLY. + + * config/tc-hppa.c (parse_cons_expression_hppa): Pass exp, not the + address of exp, to expression. + (pa_build_unwind_subspace): Turn SEC_HAS_CONTENTS flag on. + (md_apply_fix_1): Delete unwanted comments. + (process_exit): Symbols marking the end of a function are always + BSF_LOCAL. + + * config/tc-hppa.c: Include elf32-hppa.h from BFD tree. + (pa_space): Declare and initialize gdb_section. + + * config/obj-elf.c (elf_frob_file): Change + elf_tc_final_processing_hook to elf_tc_final_processing. + + * config/tc-hppa.c (fix_new_hppa): Fix argument list to match + argument type declarations. + (getExpression): Fix typo. + (pa_export_args): Change elf_symbol_type to elf32_symbol_type. + (elf_hppa_final_processing): Likewise. Name changed from + elf_hppa_final_processing_hook. + (start_symbol_root, start_symbol_last): Deleted. + + * config/tc-hppa.h (TC_PARSE_CONS_EXPRESSION): Fix typo. + + * config/tc-hppa.h: Replace "symbolS" with "struct symbol" to + avoid changing include ordering. + + * config/tc-hppa.c (pa_ip, case 'y'): Handle just like 't'. + +Mon Aug 23 12:47:58 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-mips.c (set_at): Added unsignedp argument. Use + load_register. + (set_at_unsigned): Removed; changed callers to use set_at. + (load_register): Removed unused ip argument. Changed callers. + (append_insn): Don't swap branch and branch likely. + (macro_build): Handle 'u'. + (load_register): Handle 64 bit constants. + (macro): Added M_DABS, removed M_ABSU. Numerous changes to + support 64 bit constants. + (mips_ip): Use hex constants in range checks for clarity. + (md_number_to_chars): Support 8 byte values. + +Fri Aug 20 16:50:59 1993 K. Richard Pixley (rich@sendai.cygnus.com) + + * config/tc-m88k.h: updated copyrights. + (TC_CONS_RELOC): declare to be RELOC_32. + +Fri Aug 20 11:16:44 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-mips.c (mips_isa): New static variable. + (md_begin): Initialize mips_isa based on TARGET_CPU. Don't sanity + check macros. Set text alignment and GP size here. + (md_assemble): Don't set text alignment and GP size here. + (append_insn): Don't insert NOPs for load delays if mips_isa >= 2. + Use the right mask and shift for WRITE_FPR_T and WRITE_FPR_S. Add + a NOP after a branch likely. + (mips_emit_delays): Don't insert NOPS for load delays if mips_isa + >= 2. + (macro): Support r6000 and r4000 macros. + (mips_ip): Check insn ISA level against mips_isa before using it. + Added 'x' case for ignored register. + (md_parse_option): Handle -mipsN and -mcpu=XX. + +Fri Aug 20 01:26:52 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * config/tc-i386.c (md_pseudo_table) [OBJ_ELF]: Handle ".zero". + +Thu Aug 19 12:15:18 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * config/tc-sparc.c (s_local): Function moved and renamed... + * config/obj-elf.c (obj_elf_local): ...to here. + * config/tc-sparc.c (md_pseudo_table), config/obj-elf.c + (obj_pseudo_table): Move handling of ".local". + + * tc.h (md_parse_option): Don't declare if defined as a macro. + + * config/tc-i386.h (NO_RELOC) [BFD_ASSEMBLER]: Define as + BFD_RELOC_NONE. + (md_parse_option): New macro, converted from function. + * config/tc-i386.c (md_parse_option): Function deleted. + (comment_chars) [OBJ_ELF]: Include "/". + (line_comment_chars) [OBJ_ELF || TE_I386AIX]: Don't include "/". + (md_assemble): Cast 0xe9 to char explicitly, to avoid compiler + warning. + (md_assemble, md_estimate_size_before_relax, md_create_long_jump): + Call reloc for fix_new type, or use correct enumerator, instead of + always using NO_RELOC. + (i386_operand): Change "ifndef I386COFF" to "ifdef OBJ_AOUT" for + tests for valid section. + (md_convert_frag) [BFD_ASSEMBLER]: Compensate for frag start + address. + (md_apply_fix_1) [BFD_ASSEMBLER]: For pc-relative reloc with + symbol, compensate for location of reloc. + (reloc, BFD_RELOC_32, BFD_RELOC_32_PCREL) [!BFD_ASSEMBLER]: Define + to return zero. + +Wed Aug 18 16:51:29 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * config/obj-elf.c: Undef NO_RELOC before including aout/aout64.h. + (obj_elf_weak): New function. + (obj_pseudo_table): Handle ".weak". + (obj_elf_section): If section directive includes a string, ignore + it for now. Accept "progbits" flag. + (obj_elf_type): Accept `@' before flag name. + + * write.c (relax_and_size_seg) [BFD_ASSEMBLER]: Get rid of `if(1)' + condition. + (fixup_segment) [BFD_ASSEMBLER]: Use bfd_is_com_section, rather + than checking for bfd_com_section directly. + (fixup_segment): Simplify range check. + (fixup_segment) [OBJ_COFF && TC_I960]: Simplify cpp condition + test. + + * symbols.h (S_SET_WEAK): Declare. + * symbols.c (S_SET_WEAK): New function. + (S_SET_EXTERNAL, S_CLEAR_EXTERNAL): Don't bother with BSF_EXPORT, + it's not a separate flag any more. Clear BSF_WEAK. + + * read.c (potable): Treat "string" like "asciz". + +Wed Aug 18 15:30:29 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-mips.c (append_insn): Don't swap branch instructions + if .set nobopt or .set volatile. + (gp_reference): .lit8 and .lit4 are accessed via the GP register. + (macro): Added cases M_LI_S, M_LI_SS. Fixed M_LI_D and M_LI_DD. + (mips_ip): Added cases 'F', 'L', 'f', 'l' for floating point. + * config/obj-ecoff.c: Renamed some variables to avoid shadow + warnings. + +Mon Aug 16 14:16:02 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com) + + * config/obj-coff.h (S_IS_COMMON): add missing backslash + + * configure.in (z8k-*-{coff,sim}): use coffbfd for this target + +Thu Aug 12 11:47:58 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-mips.c (mips_ip): Suggested by + davidj@ICSI.Berkeley.EDU (David Johnson): Don't accept symbolic + names for 'E' and 'G' argument types (coprocessor registers) and + don't warn if $1 is used on the coprocessor. + (macro): Handle M_{L,S}WC{0,2,3}_AB correctly. + +Mon Aug 9 12:09:14 1993 Doug Evans (dje@canuck.cygnus.com) + + * read.c (emit_expr): Use BFD_RELOC_16 for 2-byte values. + * config/tc-sparc.c (md_apply_fix, tc_gen_reloc): Handle + BFD_RELOC_16. + * config/tc-sparc.h (WORKING_DOT_WORD): Define. + +Mon Aug 9 13:36:22 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * write.c (merge_data_into_text): Define only if BFD_ASSEMBLER is + defined or BFD is not. + (relax_and_size_all_segments): Declare local variable fragP. + +Fri Aug 6 15:22:53 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * config/tc-sparc.c (md_apply_fix, case BFD_RELOC_32): Fill in + bytes with real values, not zeros. + +Fri Aug 6 10:57:59 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * configure.in (mips-*-riscos*, mips-*-sysv*): New (untested) + targets, using ecoff and mips-big. + + * config/tc-mips.c (mips_ip): From davidj@ICSI.Berkeley.EDU (David + Johnson): Added case for 'C' for coprocessor instruction codes. + +Thu Aug 5 13:08:56 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * config/tc-sparc.c (md_apply_fix, case BFD_RELOC_64): Fill in + bytes with real values, not zeros. + (md_pseudo_table): Call cons for .uaxword. + + * config/obj-elf.c (obj_pseudo_table): Handle ".8byte". + + * read.c (emit_expr): Use BFD_RELOC_64 for 8-byte expressions. + + * write.c (write_object_file): Test DEBUG_SYMS instead of DEBUG + for verifying symbol chain. + (merge_data_into_text, relax_and_size_all_segments): New + functions, split out from write_object_file. + +Tue Aug 3 15:43:55 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * config/obj-elf.c (obj_elf_stab_generic, in disabled code): If + debug section is new, allocate an extra 12 bytes at its start. If + ".stabs" type is N_SO, fill in filename symbol field of that first + entry. Return early if "goof", to simplify later code slightly. + (adjust_stab_sections): New function. + (elf_frob_file): Apply adjust_stab_sections to each section. + + * config/obj-elf.c (obj_elf_section, obj_elf_previous): No longer + static. + * config/obj-elf.h (obj_elf_section, obj_elf_previous): Declare. + * config/tc-sparc.c (md_pseudo_table): Call them for "pushsection" + and "popsection", and call cons for "uaword" and "uahalf". + + * config/obj-elf.c (obj_elf_version): Use English in error + messages. + +Tue Aug 3 11:29:06 1993 Ian Lance Taylor (ian@cygnus.com) + + * config/obj-ecoff.c: Updated for BFD ECOFF changes. Now gets the + swapping routines and external structure sizes via the + ecoff_backend information. No longer includes coff/mips.h. + +Mon Aug 2 17:35:48 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/obj-ecoff.c (get_tag): Save tag name in permanent memory + and in hash_ptr->string. + + * app.c (do_scrub_next_char): Reset state to 0 after .appline if + file name is not seen. + +Mon Aug 2 11:51:41 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * config/tc-sparc.c (md_apply_fix, case BFD_RELOC_64): New case, + parallel to BFD_RELOC_32. + (tc_gen_reloc): Accept BFD_RELOC_64. + +Thu Jul 29 22:21:28 1993 Ian Lance Taylor (ian@cygnus.com) + + * write.c: Don't use short int in a prototype. + + * expr.c (operand): Make return value simply depend on contents of + returned expression. + +Thu Jul 29 18:38:37 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com) + + * configure.in: sparc*-aout and sparc*-vxworks are BFD assemblers + +Thu Jul 29 18:38:37 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com) + + * config/ho-sunos.h: remove some old function decls that conflict + w/ ANSI, and which weren't needed anyway + +Wed Jul 28 16:34:55 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * config/obj-elf.h (obj_frob_symbol): Renamed from tc_frob_symbol, + and disabled since it breaks Ian's new symbol-value code. + + * expr.c (integer_constant): Accept more digits if BFD64. + +Wed Jul 28 11:30:05 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-m68k.c (m68k_ip): If we have a normal constant when we + expect a bignum, turn it into a bignum. Output extra zeroes + before a short bignum, rather than after. + +Tue Jul 27 15:54:27 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * symbols.c (symbol_new): Conditionalize verify_symbol_chain call + on DEBUG_SYMS, not DEBUG. + (symbol_remove): Likewise. + (symbol_insert): Likewise. + +Tue Jul 27 08:45:05 1993 Ian Lance Taylor (ian@cygnus.com) + + * config/tc-mips.c (mips_optimize): New static variable. + (append_insn): If mips_optimize == 0, always insert NOP + instructions. If mips_optimize < 2, don't swap branches. + (md_parse_option): If -Ox or -gx, set mips_optimize accordingly. + +Mon Jul 26 18:02:43 1993 K. Richard Pixley (rich@sendai.cygnus.com) + + * Makefile.in (clean): if testsuite does not exist, then skip it. + +Fri Jul 23 14:13:25 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-mips.c (prev_insn_unreordered, + prev_prev_insn_unreordered): New static variables. + (append_insn): Don't swap branch instruction if + prev_prev_insn_unreordered (see comment). + (mips_no_prev_insn): Clear the unreordered variables. + (s_mipsset): When turning on reordering, set the unreordered + variables. + +Fri Jul 23 13:09:44 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * config/obj-elf.c (obj_elf_section): Sections ".init" and ".fini" + are also magic, and have special default flag settings. + (obj_elf_frob_symbol): Since the return value from this function + isn't used, don't bother calling obj_elf_write_symbol_p, since it + doesn't accomplish anything else. + + * config/tc-sparc.c (md_section_align): Round up section size only + for a.out format. + + * symbols.c: Don't define DEBUG by default. + +Thu Jul 22 12:09:41 1993 Ian Lance Taylor (ian@cygnus.com) + + * write.c (fix_new_exp): Handle a O_uminus expression. + + * expr.c (expr): Don't let absolute_section override + undefined_section for the return value. + + * read.c (read_a_source_file): In NO_PSEUDO_DOT case, if we find a + pseudo-op with a poc_handler field of NULL, ignore it and treat it + as an instruction instead. + * config/tc-m88k.c (md_pseudo_table): Add "set" with a NULL + poc_handler field. + + * config/tc-h8500.c (md_begin): Use a local variable when + initializing md_relax_table to avoid warnings about modifying a + supposedly const data structure. + +Thu Jul 22 10:58:51 1993 Brendan Kehoe (brendan@lisa.cygnus.com) + + * config/obj-aout.c: Only include aout/aout64.h if BFD_ASSEMBLER + is defined. + +Wed Jul 21 17:32:02 1993 Fred Fish (fnf@deneb.cygnus.com) + + * configure.in (case ${host}): Map *-*-sysv4* to gas_host=sysv. + * configure.in (case ${generic_target}): Add i[34]86-*-sysv4* + case to set obj_format=elf. Must go before i386-*-sysv* case that + sets obj_format=coffbsd. Add *-*-sysv4* to *-*-elf and + *-*-solaris case, and move to before *-sysv* case that wants to + set obj_format to coff. + * config/tc-i386.c (i386_operand): Change all 'exp.X_op' to + 'exp->X_op'. + * config/tc-i386.c (md_apply_fix): Fix valp to be 'valueT *' for + BFD_ASSEMBLER case. + +Wed Jul 21 12:47:51 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/obj-aout.c: Include aout/aout64.h. + (obj_aout_frob_symbol): Set BSF_DEBUGGING for a constructor + symbol, so that BFD doesn't tamper with the type. + + * read.c (read_a_source_file): If NO_PSEUDO_DOT is defined, look + up opcodes as pseudo-ops even if they don't start with '.'. + * config/tc-m88k.h (NO_PSEUDO_DOT): Define. + * config/tc-m88k.c (md_assemble): Removed special pseudo-op + handling. + (md_apply_fix): Set fx_offset to the upper 16 bits of the reloc. + Output the low 16 bits for RELOC_HI16, not the high 16 bits. + * config/obj-coffbfd.c (do_relocs_for): If TC_M88K, set the + r_offset field of the reloc to the fixup offset. + (fixup_segments): If TC_M88K, don't warn about fixup overflows. + * doc/as.texinfo: Minor updates. + +Tue Jul 20 19:28:56 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * Extensive changes to permit symbols to contain any expression + type and to delay the computation of the expression until the + value is actually needed. This permits setting symbols to values + calculated based on object code size. Expressions were changed to + no longer be in a section, to stop the overloading of segment and + expression type that previously occurred. + + * as.c (big_section, pass1_section, diff_section, absent_section): + Removed. + (expr_section): Added (used for dummy symbols which hold + intermediate expression values). + (perform_an_assembly_pass): Create expr_section, do not create the + sections now removed. + * as.h (segT): Removed SEG_ABSENT, SEG_PASS1, SEG_BIG, and + SEG_DIFFERENCE. Added SEG_EXPR. + (SEG_NORMAL): Corresponding changes. + * subsegs.c (seg_name, subsegs_begin): Changed accordingly. + * write.c (write_object_file): Ditto. + * config/obj-aout.c (seg_N_TYPE): Ditto. + * config/obj-bout.c (seg_N_TYPE): Ditto. + * config/obj-coff.c (seg_N_TYPE): Ditto. + * config/obj-coffbfd.c (seg_N_TYPE): Ditto. + * config/obj-vms.c (seg_N_TYPE): Ditto. + + * expr.h (operatorT): Moved in from expr.c, added some values. + (expressionS): Added X_op field, removed X_seg field; renamed + X_subtract_symbol to X_op_symbol. + * expr.c: Extensive changes to assign expression types rather than + sections and to simplify the parsing. + * write.c (fix_new_internal): New static function. + (fix_new): Removed sub_symbol argument. + (fix_new_exp): New function, takes expression argument. + * write.h: Prototype changes for fix_new and fix_new_exp. + * cond.c (s_if): Changed accordingly. + * read.c (s_lsym, pseudo_set, emit_expr, parse_bitfield_cons, + parse_repeat_cons, get_segmented_expression, + get_known_segmented_expression, get_absolute_expression): Ditto. + * symbols.c (resolve_symbol_value, S_GET_VALUE, S_SET_VALUE): + Ditto. + * write.c (write_object_file): Ditto. + * config/obj-coff.c (obj_coff_def, obj_coff_val): Ditto. + * config/obj-coffbfd.c (obj_coff_def, obj_coff_val, + obj_coff_endef, yank_symbols): Ditto. + * config/obj-elf.c (obj_elf_stab_generic, obj_elf_size): Ditto. + * config/tc-a29k.c (md_assemble, parse_operand, machine_ip, + print_insn, md_operand): Ditto. + * config/tc-h8300.c (parse_exp, colonmod24, check_operand, + do_a_fix_imm, build_bytes): Ditto. + * config/tc-h8500.c (parse_exp, skip_colonthing, parse_reglist, + get_specific, check, insert, md_convert_frag): Ditto. + * config/tc-hppa.c (the_insn, fix_new_hppa, cons_fix_new_hppa, + md_assemble, pa_ip, getExpression, getAbsoluteExpression, + evaluateAbsolute, pa_build_unwind_subspace, pa_entry, + process_exit): Ditto. + * config/tc-hppa.h (STAB_FIXUP, is_DP_relative, is_PC_relative, + is_complex): Ditto. + * config/tc-i386.c (pe, md_assemble, i386_operand, + md_estimate_size_before_relax, md_create_long_jump): Ditto. + * config/tc-i860.c (md_assemble, getExpression, print_insn): + Ditto. + * config/tc-i960.c (parse_expr, subs, segs, md_convert_frag, + get_cdisp, mem_fmt, parse_ldconst, relax_cobr, s_sysproc, + i960_handle_align): Ditto. + * config/tc-m68k.c (struct m68k_exp, struct m68k_it, seg, op, + subs, add_fix, isvar, m68k_ip, md_assemble, md_convert_frag_1, + md_estimate_size_before_relax, md_create_long_jump, get_num): + Ditto. + * config/tc-m88k.c (md_assemble, get_imm16, get_pcr, + md_create_short_jump, md_create_long_jump): Ditto. + * config/tc-mips.c (md_assemble, append_insn, gp_reference, + macro_build, macro, my_getExpression): Ditto. Also removed + get_optional_absolute_expression; just use get_absolute_expression + instead. + * config/tc-ns32k.c (get_addr_mode, evaluate_expr, convert_iif, + fix_new_ns32k, fix_new_ns32k_exp, cons_fix_new_ns32k): Ditto. + * config/tc-ns32k.h (fix_new_ns32k prototype): Ditto. + * config/tc-sh.c (parse_exp, check, insert, md_convert_frag): + Ditto. + * config/tc-sparc.c (md_assemble, sparc_ip, getExpression, + print_insn): Ditto. + * config/tc-tahoe.c (struct top, md_estimate_size_before_relax, + tip_op, md_assemble): Ditto. + * config/tc-vax.c (seg_of_operand, md_assemble, + md_estimate_size_before_relax, md_create_long_jump): Ditto. + * config/tc-z8k.c (parse_exp, check_operand, newfix): Ditto. + +Tue Jul 20 12:17:16 1993 david d `zoo' zuhn (zoo@rtl.cygnus.com) + + * configure.in: i386-lynx is the same as i386-coff + +Mon Jul 19 15:21:20 1993 Ken Raeburn (raeburn@rtl.cygnus.com) + + * config/obj-elf.c (obj_elf_previous): New function. + (previous_section, previous_subsection): New vars. + (obj_elf_section): Save current place in case DWARF code wants us + to pop back to it. Handle unquoted section name as well as quoted + section name. Don't crash on invalid strings. + (obj_pseudo_table): Handle new pseudos "previous", "2byte", and + "4byte". + + * config/obj-elf.h: Don't include struc-symbol.h. + (obj_elf_frob_symbol): Declare arg as struct symbol *. + + * tc-sparc.h (LOCAL_LABEL) [OBJ_ELF]: Local labels can start with + "L" or "_.L_". + + * write.c (write_relocs): New function, split off from + write_contents. Use memset instead of bzero. + (write_object_file): Apply write_relocs to each section before + applying write_contents. + + * read.c (read_begin): Call obstack_begin with values closer to 1K + multiples. + (read_a_source_file, big_cons, float_cons): Use memcpy instead of + bcopy. + +Mon Jul 19 14:30:00 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/tc-m68k.c (m68k_ip_op): Don't decrement strend when + calculating opP->isiz; this permits the expression size to be + determined as well, later on. + + * expr.c (clean_up_expression): Don't cancel the subtraction of + undefined symbols. + + * read.c (s_data), config/obj-coffbfd.c (obj_coff_data): If -R, + switch to text section rather than data section. + +Mon Jul 19 12:35:39 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * config/tc-m68k.c (m68k_ip, case AINDX): Add 6 to operand + expression (to take the pc-rel instruction itself into account) + before using the expression, instead of after. + +Fri Jul 16 08:56:04 1993 Ian Lance Taylor (ian@cygnus.com) + + * read.c (float_cons): Simplified parsing logic. If + REPEAT_CONS_EXPRESSIONS is defined, accept a repeat count. + + * symbols.c (colon): Rather than a special case for TC_HPPA, + use new macro tc_frob_label. + * config/tc-hppa.h (tc_frob_label): Define. + + * config/tc-mips.c: Many changes to support simple assembler + optimization. + (insn_label, prev_insn, prev_prev_insn, dummy_opcode, + prev_insn_valid, prev_insn_frag, prev_insn_where, + prev_insn_fixp, prev_insn_is_delay_slot): New static + variables. + (insn_uses_reg, mips_no_prev_insn, mips_emit_delays, + mips_align, s_stringer, s_mips_space): New static functions. + (mips_define_label): New global function. + (md_pseudo_table): For "ascii", "asciz", "asciiz", call + s_stringer. Changed argument to float_cons from 0 or 1 to 'f' + or 'd'. For "space" call s_mips_space. + (md_begin): Call mips_no_prev_insn. + (append_insn): Only insert necessary NOP instructions. + (macro): Call mips_emit_delays before setting mips_noreorder. + Increment and decrement mips_noreorder rather than using + save_reorder_condition. Don't bother to use noreorder in + M_L_DOB and M_L_DAB, since append_insn will not insert a NOP. + (md_atof): Handle floating point numbers correctly for both + big and little endian targets. + (s_align, s_cons): Call mips_align rather than frag_align. + (s_change_seg, s_cons): Call mips_emit_delays. + (s_float_cons): Let float_cons do the work. + (s_mipsset): Call mips_emit_delays when setting noreorder. + * config/tc-mips.h (tc_frob_label): Define to be + mips_define_label. + + * config/obj-ecoff.c (ecoff_build_symbols, ecoff_build_procs, + ecoff_frob_files): Consistently use S_GET_VALUE rather than + bfd_asymbol_value. Warn if taking difference of symbols in + different segments. + +Thu Jul 15 11:51:03 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * config/obj-ecoff.c (ecoff_frob_file): Discard all open scopes, + with a warning. + + * config/obj-coffbfd.c (fixup_segment): If TC_M88K, don't adjust + by md_pcrel_from if we are relocating against a symbol (we still + need md_pcrel_from for a PC relative relocation within the same + file). + * config/tc-m88k.c (md_pcrel_from): Corrected return value. + (omagic): Removed unused variable. + + * Preliminary support for m88k-coff. + * configure.in (m88k-*-coff*): New target. Use coffbfd and + m88kcoff. + * config/m88kcoff.mt: New file. + * read.c (lex_type): New macro LEX_AT to set lex type of '@'. + (pseudo_set): Handle difference of symbols in different fragments + by saving the entire expression as the value of the symbol. + * symbols.c (resolve_symbol_value): Resolve difference + expressions. + * config/obj-coffbfd.c (obj_pseudo_table): If TC_M88K, accept + "sdef" as a synonym for "def". + * config/obj-coffbfd.h: If TC_M88K, include coff/m88k.h and set + TARGET_FORMAT. + (S_IS_LOCAL): Any symbol which includes \001 in the name is local. + * config/tc-m88k.c, config/tc-m88k.h: Numerous changes to bring + m88k port up to date, and to add COFF support. + +Wed Jul 14 15:09:32 1993 Ian Lance Taylor (ian@tweedledumb.cygnus.com) + + * Removed sy_forward and replaced it with an undefined expression + as the value of a symbol. + * struc-symbol.h (struct symbol): Removed sy_forward field. Added + sy_resolved and sy_resolving single bit fields. + * symbols.c (symbol_new): Don't initialize sy_forward field. + (resolve_symbol_value): New function to adjust symbol value by + fragment address, using recursion to resolve forward symbols. + * symbols.h: Added prototype for new function. + * read.c (pseudo_set): Set symbolP->sy_value to an undefined + expression rather than setting symbolP->sy_forward. + * write.c (write_object_file): Use resolve_symbol_value on + symbols, keeping the common case (the old behaviour) inline. + * config/obj-aout.c (obj_aout_frob_symbol): Removed sy_forward + handling (subsumed by write.c change). + * config/obj-coff.c, config/obj-coffbfd.c (obj_coff_val): Set + sy_value rather than sy_forward. + * config/obj-coffbfd.c (obj_coff_endef, yank_symbols): Check + expression segment rather than sy_forward. + (yank_symbols): Use resolve_symbol_value. + (crawl_symbols): Removed extra pass over symbols. + * config/obj-aout.c, config/obj-bout.c, config/obj-coff.c, + config/obj-vms.c (obj_crawl_symbol_chain): Removed extra pass over + symbols which handled sy_forward; use resolve_symbol_value + instead. + * config/obj-coff.h, config/obj-coffbfd.h (obj_frob_forward_symbol): + Define. + * config/obj-elf.c (obj_elf_stab_generic): Check expression + segment rather than sy_forward. + * config/obj-vms.c (VMS_Check_For_Main): Don't initialize + sy_forward; do initialize sy_resolved and sy_resolving. + * config/tc-hppa.h (STAB_FIXUP): Use sy_value, not sy_forward. + + * Changes to keep a full expression as the value of a symbol, not + just a longword: + * struc-symbol.h: New field sy_value. + * as.h: Include expr.h before struc-symbol.h. + * expr.h: Use struct symbol rather than symbolS. + * symbols.c (S_GET_VALUE, S_SET_VALUE): Rewrote to retrieve value + of sy_value field; compile unconditionally, not just if + BFD_ASSEMBLER. + * symbols.h: Compile S_{SG}ET_VALUE prototypes unconditionally. + * write.c (write_object_file): Set BFD symbol value to gas symbol + value. + * config/obj-aout.h, config/obj-bout.h, config/obj-coff.h, + config/obj-coffbfd.h, config/obj-generic.h, config/obj-vms.h + (S_GET_VALUE, S_SET_VALUE): Removed macro definitions. + * config/obj-ieee.c (S_GET_VALUE, S_SET_VALUE): Removed. + * config/obj-coff.h, obj-coffbfd.h: Rewrote several macros to use + S_GET_VALUE rather than ost_entry.n_value. + * config/obj-aout.c (obj_symbol_to_chars), config/obj-bout.c + (obj_symbol_to_chars), config/obj-coff.c (obj_symbol_to_chars), + config/obj-coffbfd.c (symbol_to_chars): Get value to write out + using S_GET_VALUE--don't assume it is already set. + * config/obj-ieee.c (do_symbols): Set BFD symbol value to gas + symbol value. + * config/obj-vms.c (various): Don't assign directly to + S_GET_VALUE; use S_SET_VALUE instead. + +Wed Jul 14 09:35:23 1993 Doug Evans (dje@canuck.cygnus.com) + + * configure.in: Make sparc64-*-aout* use bfd gas. + + * configure.in: Recognize h8300h. + +Tue Jul 13 12:09:44 1993 Steve Chamberlain (sac@phydeaux.cygnus.com) + + * config/tc-h8500.c (line_comment_chars): Add hash. + (parse_exp, skip_colonthing, build_bytes): Add support for + R_H8500_HIGH16 relocation type. + +Mon Jul 12 11:15:34 1993 Ken Raeburn (raeburn@deneb.cygnus.com) + + * config/obj-elf.c (obj_elf_section): Allow `@' to introduce an + attribute name. Handle `execinstr' attribute. + +Mon Jul 12 07:22:28 1993 Ian Lance Taylor (ian@cygnus.com) + + * config/tc-mips.c (mips_ip): Don't warn on 'i' or 'j' mismatch if + there is another alternative for the instruction. + +Fri Jul 9 17:31:34 1993 Roland H. Pesch (pesch@fowanton.cygnus.com) + + * doc/as.texinfo: updates for H8/300H + +Thu Jul 8 14:41:43 1993 Mark Eichin (eichin@cygnus.com) + + * config/tc-i960.c (md_create_short_jump, md_create_long_jump, + md_number_to_chars, md_section_align): Adjusted to use valueT, + addressT, to match tc.h. + +Thu Jul 8 14:15:05 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * config/tc-sparc.c (s_common): Revamp to handle both syntaxes, + independent of format. + +Thu Jul 8 07:25:25 1993 Doug Evans (dje@canuck.cygnus.com) + + * config/tc-h8300.h (TC_CONS_RELOC): Use R_RELLONG if h8/300h. + +Wed Jul 7 18:11:07 1993 david d `zoo' zuhn (zoo at rtl.cygnus.com) + + * configure.in: define CROSS=-DCROSS_COMPILE if it is a cross + build; also recognize h8300-*-coff + +Wed Jul 7 10:21:24 1993 Ian Lance Taylor (ian@cygnus.com) + + * symbols.c (fb_label_instance, fb_label_instance_inc): Don't dump + core just because somebody uses a label before it is defined. + + * config/mips-opcode.h: Moved to opcode/mips.h. + * config/tc-mips.c: Include opcode/mips.h rather than + mips-opcode.h. + (append_insn): An extra NOP is only needed after instructions + which set HI or LO, not after instructions which read it. + (macro_build, mips_ip): Support new 'E', 'G' and 'B' arguments. + (macro): cfc1 and ctc1 now take "t,G" rather than "t,d". + * config/tc-mips.h (struct mips_opcode): Don't define. + * config/mips-big.mt, config/mips-lit.mt (TARG_CPU_DEPENDENTS): + Set to $(srcdir)/../include/opcode/mips.h. + + Get the MIPS assembler up to speed with other gas changes: + + * config/obj-ecoff.c (ecoff_set_vma, ecoff_frob_symbol): + Removed; don't change the symbol value. + (ecoff_build_symbols, ecoff_build_procs, ecoff_frob_file): Use + bfd_asymbol_value rather than S_GET_VALUE to include section + vma in symbol value. + (ecoff_frob_file): Ignore BSF_SECTION_SYM symbols, since ECOFF + doesn't output them. Set the vma of sections. + * config/obj-ecoff.h: Don't define obj_frob_symbol. + * config/tc-mips.c (tc_gen_reloc): Adjustment by section vma is no + longer necessary. + (various): use valueT rather than long. + +Wed Jul 7 08:33:30 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * config/tc-sparc.h (ENV64): Define for v9. + + * config/tc-sparc.c (s_xword): For numbers, call big_cons. + (sparc_ip, md_apply_fix, tc_gen_reloc): Handle some sparc64 + relocation types. + (md_number_to_chars): Handle 8-byte value. + + * config/obj-elf.h (elf_symbol): For v9, use 64-bit symbol type. + + * as.h (valueT): Typedef moved here. + * struc-symbol.h (valueT): ...from here. + * write.c (write_object_file): Locals from_addr, to_addr, + table_addr are now addressT. Supply prototype for bfd_alloc for + now. + (fixup_segment): Local add_number is now valueT. Correct some + range-checking bugs. + (relax_align): Type `int' should be sufficient for the exponent. + (fix_new): Argument offset is type offsetT. Locals size and + newsize are type valueT. + * write.h (struct fix): Fields fx_offset and fx_addnumber are now + type valueT. + (fix_new): Fix prototype. + * symbols.c (symbol_new): Symbol value is type valueT. + (S_SET_VALUE, S_GET_VALUE): Likewise. + (S_IS_*): Specify int return type explicitly. + * symbols.h (symbol_new, S_GET_VALUE, S_SET_VALUE): Fixed + prototypes. + * read.c (s_comm): Values read are type valueT. + * expr.h (expressionS): Field X_add_number is an offsetT. + * tc.h (md_create_long_jump, md_create_short_jump, + md_section_align): Addresses are now type addressT. + (md_number_to_chars, md_apply_fix): Pass value as valueT. + * config/tc-i386.c (md_create_short_jump, md_create_long_jump, + md_number_to_chars, md_section_align): Adjusted. + * config/tc-sparc.c (sparc_ip): Initialize `len' variable to make + gcc shut up. + (md_create_short_jump, md_create_long_jump, md_number_to_chars, + md_section_align): Adjusted. + + * config/tc-sparc.c (s_reserve): Permit use for other than a.out + format. + (s_common): Handle Solaris-2 version. + + * config/ho-generic.h (free): Returns void if __STDC__. + + * config/obj-elf.h (obj_elf_frob_symbol, elf_frob_file, + elf_file_symbol): Declare. + + * expr.c (floating_constant, integer_constant): Now return void. + +Thu Jul 1 12:13:43 1993 Ian Lance Taylor (ian@cygnus.com) + + * configure.in: Match on sparc*-fujitsu-none rather than + sparclite*-fujitsu-none. + +Wed Jun 30 11:12:02 1993 Ian Lance Taylor (ian@cygnus.com) + + * read.c (cons): Conditionalize parsing of expression. Move + putting value into object file into separate function. Separate + out MRI and WANT_BITFIELDS cases into separate functions. + (emit_expr): New function to write data into object file. + Conditionalize on TC_CONS_FIX_NEW and TC_CONS_RELOC rather than on + processor types. + (parse_bitfield_cons): New function to parse bitfield expressions + as used by i960 assemblers. Only compiled if + BITFIELD_CONS_EXPRESSIONS is defined. + (parse_mri_cons): New function to parse MRI style strings. Only + compiled if MRI is defined. + (parse_repeat_cons): New function to parse repeat counts. Only + compiled if REPEAT_CONS_EXPRESSIONS is defined. + * read.h (emit_expr): Added declaration of new function. + * config/tc-a29k.h (TC_CONS_RELOC): Define to be RELOC_32. + * config/tc-h8300.h (TC_CONS_RELOC): Define to be R_RELWORD. + * config/tc-hppa.c (parse_cons_expression_hppa): New function to + parse a HPPA expression, rather than special case in cons + function. + (cons_fix_new_hppa): New function to emit an HPPA fixup, rather + than special case in emit_expr function. + * config/tc-hppa.h (TC_PARSE_CONS_EXPRESSION, TC_CONS_FIX_NEW): + Define to use new functions from tc-hppa.c. + * config/tc-i960.h (BITFIELD_CONS_EXPRESSIONS): Define. + (WANT_BITFIELDS): Removed; now obsolete. + * config/tc-mips.h (REPEAT_CONS_EXPRESSIONS): Define. + * config/tc-ns32k.c (cons_fix_new_ns32k): New function to emit an + NS32K fixup, rather than special case in emit_expr function. + * config/tc-ns32k.h (TC_CONS_FIX_NEW): Define to be + cons_fix_new_ns32k. Also use PARAMS rather than checking + __STDC__. + * config/tc-sparc.h (TC_CONS_RELOC): Define to RELOC_32. + + * write.c (relax_and_size_seg, adjust_reloc_syms, write_contents): + Don't core dump if gas has no information about a section. + +Wed Jun 30 06:21:27 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * config/tc-sparc.c (md_begin): If sparcv9 is defined, reset + current_architecture to v9 automatically. + + * config/tc-sparc.h (TARGET_FORMAT): Use elf64-sparc for v9. + + * config/tc-sparc64.h, config/tc-sparc64.c: New files. + * configure.in: Use sparc64 cpu files for v9, and default to elf + format. + + * write.c (relax_and_size_seg): Always fully process a section. + Section size is last frag's (vm)address plus its size. If no + relocations are present, force SEC_RELOC flag clear. + (dump_section_relocs): New debugging routine. + (adjust_reloc_syms): New routine, broken out from write_contents. + Don't adjust relocs that are already relative to section symbol. + Look for obj_fix_adjustable macro to know what else to skip, + instead of obj_write_symbol. Look for section symbol stored in + section information. + (write_object_file): Map adjust_reloc_syms over all sections. + (write_contents): Clear SEC_RELOC flag if no relocations are + found. + + * as.h (__PTR_TO_INT, __INT_TO_PTR): New versions for Saber, to + keep it quiet. + + * write.c (remove_subsegs): Don't define for BFD_ASSEMBLER. + +Fri Jun 25 14:42:53 1993 K. Richard Pixley (rich@sendai.cygnus.com) + + * Makefile.in (all, dvi, info, install-info, clean-info): do not + echo recursion lines. + (install-info, clean-info): collapse into the dvi and info rule. + +Fri Jun 25 10:47:24 1993 Doug Evans (dje@canuck.cygnus.com) + + * config/tc-sparc.c (sparc_ip): Remove support for %d/%q fp regs. + All fp regs are now specified as %f. + (priv_reg_table): fpq -> fq. + +Fri Jun 25 03:43:06 1993 Ken Raeburn (raeburn@poseidon.cygnus.com) + + * as.h (strstr): Disable declaration for now. + (fprint_value, sprint_value): Declare. + + * subsegs.c (subseg_new_rest): Use memset to clear new frag. + (subseg_new) [BFD_ASSEMBLER]: Initialize all seginfo fields. + + * expr.c (expr_part): Made sanity checks a.out-specific. + (expr): Disabled sanity checks. + + * subsegs.h (segment_info_type) [BFD_ASSEMBLER]: Add field for + section symbol. + * subsegs.c (subseg_change): Initialize section symbol pointer + when setting up a new section. + + * symbols.c (symbol_new) [BFD_ASSEMBLER]: Point BFD symbol's udata + field back at gas symbol structure. + + * symbols.c (colon): Cast obstack_next_free value to char* before + doing arithmetic on it. + * subsegs.c (subseg_new_rest): Likewise. + * as.h (frag_now_fix): Likewise. + + * config/obj-elf.c (elf_file_symbol): Use subseg_new instead of + calling bfd_make_section_old_way directly, and call subseg_set + instead of subseg_change. Now returns void. + (obj_elf_write_symbol): Only check local symbols for now. + (elf_stab_symbol): Now static and void, and disabled until it + works completely. + (obj_elf_size): For expression values, fail silently for now. + (obj_symbol_new_hook): Do nothing. + + * config/tc-sparc.c (tc_gen_reloc): Handle BFD_RELOC_SPARC_WDISP22 + relocation. + (s_local) [OBJ_ELF]: New function. + (md_pseudo_table) [OBJ_ELF]: Call it for "local". + (s_common): Rearrange to handle Solaris .common pseudo, which may + sometimes use bss space instead of common. + * config/obj-elf.h (TARGET_SYMBOL_FIELDS): Add new `local' field. + +Thu Jun 24 16:33:53 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com) + + * configure.in: set host config to hpux for hppa*-hp-hpux + +Thu Jun 24 13:35:06 1993 Ken Raeburn (raeburn@poseidon.cygnus.com) + + * app.c (app_pop, app_push): Fix bug reported by Chris Arthur. + +Tue Jun 22 01:04:23 1993 Ken Raeburn (raeburn@poseidon.cygnus.com) + + * subsegs.c (subseg_new): Don't special-case a.out -R flag here. + * config/obj-aout.c (s_sect): Do it here. + + * as.h (BAD_CASE): Don't make some lame compilers think we want + substitution inside strings. + + * as.c (print_version_id): New function, split off from main. + (main): Call it. + * config/tc-sparc.c (md_parse_option) [OBJ_ELF]: Print version id + for -V. Ignore -Q and -s options for now. + +Mon Jun 21 17:37:59 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com) + + * Makefile.in: make installation & builds work again for crosses + +Sun Jun 20 18:18:26 1993 Ken Raeburn (raeburn@poseidon.cygnus.com) + + * listing.c (list_symbol_table): Rewrite to print wide (>32 bits) + symbol values correctly. + + * write.c (write_object_file): Deleted unused variables. + (fixup_segment): Use sprint_value. + + * messages.c (sprint_value, fprint_value): New routines. + + * config/obj-elf.c (elf_stab_symbol): Now returns void. + (obj_elf_stab_generic): Fix typo in logic. + + * Makefile.in (INCLUDES): Look in ../bfd for bfd.h. + + * as.h (addressT, offsetT): New types, using BFD types if + available. + (relax_addressT, struct frag): Use them. + * struc-symbol.h (valueT, struct broken_word): Likewise. + + * as.h (subseg_new) [BFD_ASSEMBLER]: Name argument is const. + * subsegs.c (subseg_new) [BFD_ASSEMBLER]: Name argument is const. + +Thu Jun 17 16:53:56 1993 david d `zoo' zuhn (zoo@cygnus.com) + + * Makefile.in: canonicalize install.sh; for use within + this directory (and subdirs) + +Sun Jun 20 02:34:04 1993 Ashley Saulsbury (ans@sics.se) + + * m88k-opcode.h : fixed tiny tiny mistake - xcr was incorrectly + specified, should have both S1 and S2 fields identical + If only finding the problem was as fast as fixing the bug !!!! + +Tue Jun 15 16:01:57 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * write.c (write_contents): Do write out non-loadable sections. + Debug sections can fall in this category. + + * read.c (s_app_file): Call elf_file_symbol for ELF files. + * config/obj-elf.c (elf_file_symbol): New function. + + * config/obj-elf.c (elf_stab_symbol_string): Renamed from pa_..., + added argument to specify section base name. + (obj_elf_stab_generic): Renamed from ..._stab. New argument + specifies section base name. + (obj_elf_stab): New function, calls obj_elf_stab_generic with + ".stab" as section base name. + (obj_elf_xstab): New function, calls obj_elf_stab_generic. + (obj_elf_type): Handle "object". Use bitwise-or to merge in + symbol flags rather than simply replacing, so global/local flags + are preserved. + (obj_elf_ident): Rewrite. + +Tue Jun 15 17:03:25 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com) + + * Makefile.in: remove parentdir support; use INSTALL_XFORM + +Wed Jun 9 11:26:07 1993 Ian Lance Taylor (ian@cygnus.com) + + * config/tc-i386.c (md_pseudo_table): .align uses a power of two + for any a.out target, not just Linux and 386BSD. + * config/tc-i386.h (DOT_LABEL_PREFIX): Do not define for any a.out + target. + +Mon Jun 7 13:33:19 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * config/tc-m88k.c: Don't include flonum.h, md.h, m88k.h. They + don't exist or duplicate other inclusions. + + * config/tc-vax.h (NO_RELOC): Define. + +Mon Jun 7 09:55:03 1993 Doug Evans (dje@canuck.cygnus.com) + + * config/tc-sparc.c (sparc_ip): Fix parsing of asi number. + Fix error message. + +Sat Jun 5 19:32:52 1993 Torbjorn Granlund (tege@nada.kth.se) + + * gas/config/m88k-opcode.h (m88k_opcodes): Add 88110 instructions. + * gas/config/tc-m88k.c (get_reg): New arg reg_prefix. Compare first + char to reg_prefix instead of to 'r'. + (calcop): Change calls to get_reg. + (calcop): Handle new case 'x' to set reg_prefix. + (calcop): Set reg_prefix to 'r' after each call to get_reg. + (cmpslot): Add 88110 conditions. + + * gas/config/m88k-opcode.h: Swap cases for "rot" for consistency. + + * gas/config/tc-m88k.c (get_bf): Always restore input_line_pointer + before returning. + + * gas/config/m88k-opcode.h (m88k_opcodes): Make equal mnemonics + adjacent; mov.s and mov.d swapped. + (m88k_opcodes): Fix typo `r2' -> `2'. + +Fri Jun 4 15:59:31 1993 Steve Chamberlain (sac@phydeaux.cygnus.com) + + * config/h8300.c: Support for H8/300-H opcodes. + + * config/obj-coffbfd.c (w_strings): String table length is 4 + bytes, no matter what the host int size is. + + * configure.in (alpha-*-osf*): New. + +Fri Jun 4 07:51:18 1993 Ian Lance Taylor (ian@cygnus.com) + + * configure.in (mips-*-ecoffl*): New target; use ecoff and + mips-lit. + (mips-*-ecoff*): Added trailing '*'. + + * config/obj-ecoff.c (ecoff_build_procs): Force the adr of the + first FDR in a file to be zero. + +Thu Jun 3 14:09:59 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * Makefile.in (VERSION): Jump to 2.1.4. + + * config/ho-hppabsd.h: New file, from Peter Hoogenboom. + + * config/tc-mips.c (md_assemble): Call bfd_set_gp_size only for + ECOFF format. + +Tue Jun 1 15:21:57 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * config/tc-m68k.c (md_assemble): The 68040 cpu doesn't want a + separate '851 mmu. + + * config/obj-elf.c, config/obj-elf.h: Update for new type, macro, + and routine names. Assuming 32 bits for now. + + * config/obj-elf.c (elf_frob_file): Look for macro + elf_tc_final_processing_hook, instead of assuming a function + always exists. + * config/tc-hppa.c (elf_hppa_final_processing_hook): Renamed from + tc_final_processing_hook. + * config/tc-hppa.h (elf_tc_final_processing_hook): Use it. + + * config/tc-hppa.h (elf_tc_symbol, elf_tc_make_sections): Macros + moved here from obj-elf.h. + * config/obj-elf.h: Don't include CPU-specific header files. + +Sun May 30 16:49:37 1993 Peter Hoogenboom (hoogen@fast.cs.utah.edu) + + * configure.in: configurations should match on 'hppa*' not 'hppa'. + + * read.c: Add support for HPPA assembly language syntax (denoted + with '#ifdef TC_HPPA'). + + * symbols.c: Add support for HPPA assembly language syntax (denoted + with '#ifdef TC_HPPA'). + + * write.c (write_contents): Add support for HPPA-style + relocations. + + * config/obj-elf.c: Stab symbols weren't written properly. + (obj_elf_version): + (obj_elf_desc): + (obj_elf_write_symbol): + (obj_elf_write_symbol_p): + (obj_elf_frob_symbol): + (elf_stab_symbol): + (elf_frob_file): + + * config/tc-hppa.c: Support for HPPA symbol extension sections. + Remove some unused code. Support for HPPA assembly language + syntax. + + * app.c: + + * symbols.c: + + * config/obj-elf.h: + (obj_write_symbol): + (obj_frob_file): + (elf_tc_symbol): + (elf_tc_make_sections): + + * config/tc-hppa.h: + +Sun May 30 21:44:45 1993 Ken Raeburn (raeburn@kr-pc.cygnus.com) + + * config/obj-ecoff.c (obj_read_begin_hook, add_file): Assume + hash_new will have succeeded if it returns. + * config/tc-a29k.c (md_begin): Likewise. + + * config/tc-i386.c (tc_aout_fix_to_chars): Now nbytes_r_length is + const. + (mode_from_disp_size, opcode_suffic_to_type): Now inline under + gcc. + (fits_in_{signed,unsigned}_{byte,word}): Likewise. + + * expr.c: Delete register declarations; gcc ignores them anyways. + +Fri May 28 19:03:32 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * hash.c (hash_new): Use xmalloc, since many callers don't check + for failure. + +Thu May 27 13:02:15 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * frags.c (zero_address_frag, bss_address_frag): These are + external. + + * tc.h (md_reloc_size): This is const. + * config/tc-{a29k,h8300,h8500,i386,i860,i960,m68k,ns32k,z8k}.c + (md_reloc_size): Now const. + + * config/aout_gnu.h (enum machine_type, enum reloc_type): Delete + trailing commas. + * as.h (enum _segT): Ditto. + + * struc-symbol.h (N_TYPE_seg): This should be const. + +Thu May 27 11:43:59 1993 Michael Meissner (meissner@osf.org) + + * config/obj-ecoff.c (add_file): Cast file_name to char * in + listing_source_file call. + + * config/obj-elf.c (elf_stab_symbol_string): Cast first argument + of subseg_new call to eliminate const attribute. + (obj_elf_stab): Ditto. + (obj_symbol_new_hook): Cast first argument of bzero call to char *. + + * read.c (s_align_bytes): Properly record alignment. + + * expr.c (__): Undefine __ macro before use, since OSF/1 uses it + for the prototype/no prototype macro. + + * as.c (got_sig): Don't do return ((SIGTY) 0), SIGTY might well be + void. + + * as.h (relax_stateT enum): Delete trailing comma. + +Thu May 27 11:07:50 1993 Ian Lance Taylor (ian@cygnus.com) + + * app.c (do_scrub_begin): Let line_comment_chars override + comment_chars. + (do_scrub_next_char): If a line comment character is not at the + start of a line, treat it as a comment character if it is one. + For a CPP line comment use pseudo-op .appline rather than .line. + * input-scrub.c (logical_input_line): Make int rather than + unsigned. + (input_scrub_push, input_scrub_begin): Initialize + logical_input_line to -1 rather than 0. + (bump_line_counters): Increment logical_input_line. + (new_logical_line): If line_number is -2, decrement + logical_input_line. + (as_where): Use logical_input_line even if it is 0. + * read.h (s_app_file prototype): Now takes an int argument. + * read.c (potable): Make .appfile call s_app_file with 1. New + .appline pseudo-op calls s_app_line. + (s_app_file): If .appfile, call new_logical_line with -2 to + account for newline inserted by do_scrub_next_char. If listing, + call listing_source_file. + (s_app_line): New function to handle fake pseudo-op .appline. + * config/obj-coff.c (obj_pseudo_table): Make .appline call + obj_coff_ln. + (obj_coff_ln): Added argument to indicate whether .appline. + * config/obj-coffbfd.c (obj_pseudo_table): Make .appline call + obj_coff_ln. + (obj_coff_ln): Added argument to indicate whether .appline. + * config/tc-mips.c (s_file): Pass argument to s_app_file. + +Tue May 25 11:59:07 1993 Ian Lance Taylor (ian@cygnus.com) + + * config/obj-bout.h (S_GET_VALUE): Removed unnecessary cast. + +Thu May 20 19:14:24 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * config/tc-m68k.c (md_apply_fix_2): Straighten out check for + invalid values. + +Wed May 19 07:33:17 1993 Steve Chamberlain (sac@phydeaux.cygnus.com) + + * config/tc-h5000.c (build_bytes): Understand @rd mode and build + relocations correctly. + +Mon May 17 15:06:26 1993 Ken Raeburn (raeburn@deneb.cygnus.com) + + * Makefile.in (FLAGS_TO_PASS): Leave out TEXI2DVI for now, because + it's wrong. + + * config/tc-m68k.c (md_apply_fix_2): Apply range checks and warn + if value is out of range. + + Patch from Minh Tran-Le: + * config/tc-i386.c (i386_operand): For in/out port register used + as base reg, include InOutPortReg in operand type. + (MATCH): Accept overlap value of InOutPortReg. + +Mon May 17 09:29:34 1993 Ian Lance Taylor (ian@cygnus.com) + + * config/obj-ecoff.c (add_file, obj_ecoff_loc, obj_ecoff_stab): + Add calls to listing routines to produce combined source/assembler + listings. + (obj_ecoff_stab): Create a file pointer if none used yet. + (ecoff_frob_file): Set symcount to correct value. + +Fri May 14 06:53:33 1993 Ken Raeburn (raeburn@deneb.cygnus.com) + + * Makefile.in (VERSION): Bump to version 2.1, in preparation for + release. + + * config/obj-aout.h (H_GET_HEADER_SIZE, H_SET_SYMBOL_TABLE_SIZE): + Define in terms of constants, not C structure sizes. + + * config/tc-rs6000.c, config/tc-rs6000.h: Delete empty files. + +Thu May 13 17:01:55 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * config/obj-aout.c (obj_header_append): Don't define if it's + defined as a macro. + * config/obj-hp300.h (obj_header_append): Define it as a macro. + * config/obj-hp300.c (hp300_header_append): New function. + + * Makefile.in (distclean): Don't bother cleaning up doc files; + they aren't going to be in this directory. + +Thu May 13 07:51:35 1993 Ian Lance Taylor (ian@cygnus.com) + + * config/obj-ecoff.c (ecoff_build_symbols): Handle absolute + symbols. + + * tc.h (TC_COFF_SIZEMACHDEP): Don't define here. + * config/tc-sh.h (TC_COFF_SIZEMACHDEP): Define here instead. + +Mon May 10 06:01:12 1993 Ken Raeburn (raeburn@kr-pc.cygnus.com) + + * config/obj-vms.c (VMS_Symbol_type_list): Don't bother with + initialization. + + * configure.in (targets): Treat m68*-*-sysv* like m68k-*-coff. + +Wed May 5 14:00:49 1993 Ian Lance Taylor (ian@cygnus.com) + + * config/tc-mips.c (macro): Correct floating point double word + loads and stores for big endian target. + +Wed May 5 08:39:21 1993 Ken Raeburn (raeburn@deneb.cygnus.com) + + * config/tc-i386.c: Replace SEG_* with *_section, fix up subseg_* + calls. Deleted some unused code. + * config/obj-coff.c: Likewise. + + ELF support, mostly contributed by Utah: + * config/obj-elf.c (obj_elf_section, obj_elf_stab, obj_elf_line, + obj_elf_type): Rewrite. + (obj_elf_frob_symbol, elf_stab_symbol_string, elf_stab_symbol, + obj_elf_desc, obj_elf_version, obj_symbol_new_hook, obj_elf_size): + New functions. + (obj_elf_ident): Dummy. + * config/obj-elf.h (FALSE, TRUE, S_*, tc_frob_symbol, + TARGET_SYMBOL_FIELDS): New macros. + (gdb_section): New variable decl. + + * config/tc-i386.c (md_atof): Return zero, not empty string, on + success. + + BFD_ASSEMBLER conditional changes: + * config/obj-coff.c (lineno_rootP, seg_N_TYPE, *_section_header): + Don't define these. + (SA_SET_SYM_ENDNDX, SA_SET_SYM_TAGNDX): New functions. + (fetch_coff_debug_section): Ditto. + (obj_coff_endef): Call fetch_coff_debug_section. + (struct line_no): New type. + (c_symbol_merge): New way for copying aux fields. + (c_dot_file_symbol): Put symbol in absolute section, and set flag + BSF_DEBUGGING. + (function_lineoff): New symbol. + (function_lineoff, text_lineno_number, our_lineno_number, + lineno_lastP): Don't define. + (c_line_new): Don't define. + (obj_emit_lineno, obj_coff_endef): Use abort calls as, uh, + placeholders, until + line-number recording gets implemented. + (obj_new_symbol_hook): New code for handling aux fields. + (add_lineno, add_linesym): New functions. + (obj_coff_ln): Call add_lineno, not c_line_new. + (obj_coff_endef): New code for handling symbol names. New lineno + code. Look for section name "*DEBUG*" for debugging section. + (align, coff_check_file_symbols, obj_coff_section, + coff_frob_file): New functions. + * config/obj-coff.h: Reordered some includes. + (BYTE_ORDERING, FILE_HEADER_MAGIC, seg_N_TYPE, N_TYPE_seg, + DEFAULT_MAGIC_NUMBER_FOR_OBJECT_FILE, AOUTHDR, AOUTHDRSIZE): Don't + define these. + (TARGET_SYMBOL_FIELDS, I960_SYM_FIELDS): New macros. + (SYM_AUXENT): New macro (for non-BFD_ASSEMBLER too) for accessing + aux entries. Most SA_* macros now use it unconditionally. + (S_*): Use `bsym' field, and access BFD private data. + (SF_*): Use `sy_flags' symbol field for most of these. + (H_*, object_headers, lineno, lineno_*P, OBJ_EMIT_LINENO): Don't + define. + (*_section_header): Don't define. + * config/tc-i386.c (md_convert_frag, md_apply_fix): Changed + interface. + (tc_gen_reloc) [I386COFF]: New function. + (tc_aout_fix_to_chars, tc_coff_fix2rtype): Don't define. + * config/tc-i386.h (TARGET_ARCH, TARGET_BYTES_BIG_ENDIAN): New + macros. + + * config/obj-coff.c (stack_init): Don't do assignments inside + conditions. + (obj_coff_def): Simplified handling of symbol name a bit. + (tag_insert): Name argument is now pointer to CONST. + (obj_crawl_symbol_chain): Commented out. + + * config/obj-coff.h: Use PARAMS macro in prototypes. + + * write.c (relax_and_size_seg) [BFD_ASSEMBLER]: Don't indirect + through frchainP pointer if it is null. + + * configure.in: Warn if BFD mode is explicitly turned off but is + required by specified target. + (mips ecoff targets): Don't need to set bfd_gas here; it gets + taken care of later. + + * config/obj-coffbfd.c (crawl_symbols): Don't clear sy_forward + field. + (yank_symbols): Merge symbols only if sy_forward is null. + + * config/tc-m68k.h (AOUT_MACHTYPE): Don't define if already + defined. + + * tc.h (md_convert_frag) [BFD_ASSEMBLER]: Section arg is not + pointer. + * config/tc-m68k.c (md_convert_frag) [BFD_ASSEMBLER]: Ditto. + + * config/tc-sparc.h (LOCAL_LABEL) [OBJ_ELF]: Anything starting + with "." is a local label. + + * config/te-hppa.h, config/tc-hppa.h, config/tc-hppa.c: New config + files. + + * config/te-linux.h, config/te-386bsd.h: New config files. + * configure.in (i386-*-linux, i386-*-bsd): Use them. + * config/tc-i386.h (TARGET_FORMAT): Select format based on target + environment. + (DOT_LABEL_PREFIX): Don't define for 386bsd or Linux. + +Wed May 5 13:14:01 1993 Ian Lance Taylor (ian@cygnus.com) + + * config/obj-ecoff.c (init_file): Set fMerge to 0 since dbx seems + to want it that way. + (ecoff_build_symbols): Turn local st_Proc symbols into + st_StaticProc symbols. Set index field of external st_Proc and + st_staticProc symbols correctly. + * config/tc-mips.h (NO_LISTING): Don't define. People might want + listings. + +Tue May 4 21:22:54 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * config/obj-hp300.h, config/obj-hp300.c, config/te-hp300.h: New + files. + * configure.in (m68k-*-hpux): Use them. + + * config/obj-aout.c (obj_pre_write_hook): Use AOUT_VERSION if + defined, otherwise zero. + + * config/aout_gnu.h (OMAGIC): Don't define if already defined. + +Mon May 3 15:59:32 1993 Steve Chamberlain (sac@thepub.cygnus.com) + + * config/tc-sparc.c (sparc_ip): Allow any abs expression as an + address space number. + +Wed Apr 28 19:11:22 1993 Ken Raeburn (raeburn@deneb.cygnus.com) + + * config/obj-aout.h (TARGET_DEFAULT): Don't default this at all. + + * config/tc-a29k.c: Include ctype.h. + (define_some_regs): Added special-purpose registers for 29050. + + * config/tc-i386.c (comment_chars) [TE_I386AIX]: Include "/". + + * config/obj-coffbfd.c (fill_section): Don't set STYP_REG here. + (change_to_section): Set it here instead. + +Wed Apr 28 13:40:29 1993 Ian Lance Taylor (ian@rtl.cygnus.com) + + * config/obj-ecoff.c (obj_symbol_new_hook): Make up a .file if one + hasn't been seen yet. + (add_ecoff_symbol): Don't refer to cur_file_ptr if it is NULL. + +Mon Apr 26 18:29:05 1993 Steve Chamberlain (sac@thepub.cygnus.com) + + * config/tc-sh.ch, config/tc-sh.h: New files supporting Hitachi + SH. + +Mon Apr 26 12:28:27 1993 Ian Lance Taylor (ian@cygnus.com) + + * expr.c (operand): Fix unary plus operator (previously was the + same as '~' operator!). + +Wed Apr 21 00:20:11 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * write.c (cvt_frag_to_fill): Define even if BFD is defined. + (write_object_file): Do define if BFD_ASSEMBLER. Invoke + obj_check_file_symbols if defined. Call verify_symbol_chain_2 + instead of open-coding it. Fix some bugs in patching up symbol + chain. + (relax_segment): Make some code we "ought to be able to" use for + all targets no longer conditionalized on ns32k target; instead, do + it always, and if the appropriate conditions fail, abort. + + * symbols.c (DEBUG): Enabled. + (symbol_new): Make sure bfd_make_empty_symbol works. + (verify_symbol_chain_2): New function; takes one symbol as + argument, anywhere in the chain. + (dollar_label*): Use default initializers. + + * as.c (perform_an_assembly_pass): Call md_begin here... + (main): ...and not here. + + * config/tc-m68k.h (TARGET_FORMAT): Use a.out-sunos-big for a.out. + (tc_frob_symbol): New macro: Get rid of symbols in reg_section. + + * config/tc-m68k.c (omagic): Don't define for BFD_ASSEMBLER. + (add_fix, add_frag): Now functions instead of macros. + (m68k_reg_parse, m68k_ip, md_estimate_size_before_relax, get_num, + s_data1, s_data2, s_bss): Use new *_section names, for + compatibility with BFD_ASSEMBLER mode; rewrite switch statements + to handle non-integral segT. + (tc_coff_fix2rtype, tc_aout_fix_to_chars, + tc_coff_symbol_emit_hook): Don't define for BFD_ASSEMBLER. + (tc_gen_reloc): New routine for BFD_ASSEMBLER. + (md_apply_fix, md_apply_fix_2): Renamed old md_apply_fix to + md_apply_fix_2; new md_apply_fix definition varies interface + depending on BFD_ASSEMBLER. + (md_convert_frag, md_convert_frag_1): Likewise. Use new *_section + names. + + * config/obj-vms.c: Include config.h. + (version_string): Delete declaration. + (Write_VMS_MHD_Records): Use GAS_VERSION instead. + (vms_resolve_symbol_redef): New function, taken from VMS code in + symbols.c. + (_doprnt): Deleted. + (VMS_Store_Struct, VMS_Def_Struct, VMS_Set_Struct, + VMS_TBT_Block_End, get_VMS_time_on_unix, generate_suffix, + VMS_Psect_Spec): Fixed to compile under traditional C. + * config/obj-vms.h: Use PARAMS macro. + (vms_resolve_symbol_redef): Declare. + (RESOLVE_SYMBOL_REDEFINITION): New macro. + * symbols.c (colon): Remove some VMS-specific code, look for + RESOLVE_SYMBOL_REDEFINITION macro instead. + + * config/tc-m68k.c (m68k_ip): Don't try expanding DBcc + instructions. + + * config/tc-i386.c: Reordered some functions so inlining might + work. Use PARAMS in function declarations. + (reloc): New routine. + (md_assemble): Rearrange switch statements to work with + non-integral segT. + + * struc-symbol.h [BFD_ASSEMBLER]: Undefine + SYMBOLS_NEED_BACKPOINTERS before defining it. + + * subsegs.c (subseg_new_rest): Now static. + + * read.c (pseudo_set): Better error message for difference of + symbols in different frags. + + * Makefile.in (check): Pass down some new variables, indicating + pathname or program name for cc, nm, objdump. + + * as.h (OUTPUT_FLAVOR): New macro. + * config/tc-sparc.c (tc_gen_reloc): Use OUTPUT_FLAVOR. + + * configure.in: Initialize bfd_gas properly. Warn that ELF + support is incomplete. + +Thu Apr 15 22:39:05 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * read.c (float_cons): Accept null pointer return from md_atof. + * config/tc-m68k.c (md_atof): Return null for success. + * config/tc-sparc.c (md_atof): Ditto. + +Thu Apr 15 16:04:39 1993 Roland H. Pesch (pesch@fowanton.cygnus.com) + + * doc/as.texinfo: formatting and comment cleanups; show SPARC + alternative options in same style as other machines; simplify some + conditional use; include GPL as separate file (from texinfo dir) + + * doc/Makefile.in: (as.info) include directory containing GPL in + makeinfo search path + + * doc/h8.texi: new file; conditional settings for GAS manual + on Hitachi chips + +Tue Apr 13 15:31:40 1993 Roland H. Pesch (pesch@fowanton.cygnus.com) + + * doc/as.texinfo: mention SPARC architecture options. + +Fri Apr 9 17:43:11 1993 Ken Raeburn (raeburn@cygnus.com) + + * configure.in: Rearranged whitespace in per-host/per-target + sections. Added hooks for dropping in HPPA support (not included + yet). Separate out overrides of variables based on target format + and bfd-gas selection from actual target-specific commands. Add + error message for recognized but unsupported format name. + +Fri Apr 9 09:05:47 1993 Ian Lance Taylor (ian@cygnus.com) + + * config/obj-ecoff.h (ecoff_build_lineno): Make ilineMax in + symbolic header match cline in FDR; the native linker seems to + want that. + +Thu Apr 8 15:51:28 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com) + + * doc/Makefile.in: as.texinfo is in $(srcdir). Use + $(srcdir)/as.texinfo explicitly in several places + +Thu Apr 8 15:15:02 1993 Roland H. Pesch (pesch@fowanton.cygnus.com) + + * doc/Makefile.in: update dvi, clean targets for new source + file structure + +Thu Apr 8 12:52:46 1993 Ian Lance Taylor (ian@cygnus.com) + + * config/ho-decstatn.h: Define BROKEN_ASSERT if not __GNUC__, + rather than undefining know. + * configure.in: Match ultrix*, not just ultrix. + +Wed Apr 7 20:18:10 1993 Roland H. Pesch (pesch@fowanton.cygnus.com) + + * doc/as.texinfo: converted conditional markup to use new + Texinfo facilities, avoiding m4. + + * doc/as-all.texinfo, all.m4, pretex.m4: deleted. + + * doc/Makefile.in: recast doc configuration to use a link to an + included texinfo file. + + * doc/all.texi: settings for generic form of documentation. + +Tue Apr 6 11:56:21 1993 Ian Lance Taylor (ian@cygnus.com) + + * read.c (cons): Zero out frag when creating reloc. + +Mon Apr 5 09:41:58 1993 Ian Lance Taylor (ian@cygnus.com) + + * config/tc-mips.c (gp_reference): Certain magic symbols can never + be referenced off the GP register. + + * app.c (do_scrub_next_char): Handle states 9 and 10 correctly + when dealing with characters of type LEX_IS_TWOCHAR_COMMENT_1ST, + LEX_IS_STRINGQUOTE, and LEX_IS_ONECHAR_QUOTE. + + * config/te-irix.h: New file; irix needs a different LOCAL_LABEL + definition from other MIPS targets. + * configure.in (mips-*-irix): Use emulation irix. + +Sun Apr 4 15:21:09 1993 Steve Chamberlain (sac@thepub.cygnus.com) + + * config/tc-h8500.c: Get relax size of branch instructions right, + (get_operand): Parse @sp+ correctly. + +Fri Apr 2 15:59:49 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * subsegs.h (segment_info_type) [BFD_ASSEMBLER]: Don't include + COFF section header field. + + * configure.in: Print error message if host or target is not + supported. + + * configure.in: If with-bfd-assembler, use obj-coff instead of + obj-coffbfd. + + * config/ho-generic.h: Include string.h. + +Fri Apr 2 08:54:57 1993 Ian Lance Taylor (ian@cygnus.com) + + * config/tc-mips.h (LOCAL_LABEL): Treat any label starting with + '$' as local, for any object file format. + + * config/tc-mips.c (macro): Optimizations to branching code and a + couple of bug fixes from ralphc@pyrps5.eng.pyramid.com (Ralph + Campbell). + + * config/ho-irix.h: New file; if not gcc, define BROKEN_ASSERT. + * configure.in (mips-sgi-irix*): Set gas_host to irix. + +Wed Mar 31 17:53:54 1993 Ian Lance Taylor (ian@cygnus.com) + + * subsegs.c (subseg_new): Set output_section of new section. + * as.c (perform_an_assemly_pass): Don't set output_section here. + * expr.c (expr_part, expr): Turn off section assertions for ECOFF, + since it has additional sections. + * read.c (s_lcomm): For MIPS ECOFF, put small objects in .sbss, + not bss_section. + * config/obj-ecoff.h (TARGET_SYMBOL_FIELDS): Added + ecoff_undefined field. + * config/obj-ecoff.c (obj_symbol_new_hook): Initialize + ecoff_undefined field. + (add_file): If using stabs, just output a stabs symbol rather than + creating a new fdr. + (obj_ecoff_begin, obj_ecoff_bend): Ignore line number by reading + it with get_absolute_expression, rather than skipping it by hand. + (obj_ecoff_loc): If using stabs, just output a stabs symbol rather + than ECOFF line number information. + (obj_ecoff_stab): Accept non-zero values for stabs line number. + (ecoff_build_symbols): Set ifilesym correctly. Set storage class + to small, undefined and/or readonly sections if appropriate. + Don't output symbol names containing \001 characters. + (ecoff_frob_file): Make sure at least one fdr is output. + * config/tc-mips.h: Define TC_MIPS. + * config/tc-mips.c (g_switch_value): New static variable. + (md_assemble): Set gp size of output BFD. + (gp_reference): New function; returns 1 if expression can be + accesssed via gp. Always returns 0 if not using ECOFF. + (macro_build): Convert BFD_RELOC_LO16 to BFD_RELOC_MIPS_GPREL if + possible. + (macro): Generate sequences using gp if possible. + (md_parse_option): Ignore -EL and -EB. Parse -G. + (md_apply_fix): Added BFD_RELOC_MIPS_GPREL to ignored case. + (s_change_sec): Handle .rdata and .sdata for ECOFF. + (s_extern): Mark symbol as external. Set ecoff_undefined field. + +Tue Mar 30 10:11:41 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * output-file.c (output_file_create): Don't call as_perror for + filename rejected by application. + + * as.c (main) [BFD_ASSEMBLER]: If errors occur, close and unlink + the output file. + + * doc/as.texinfo: Don't use @value in node names for the moment; + references don't appear to work right. + + * as.h (const, volatile): Put these definitions back, and use + them. + + * doc/as.texinfo: First pass at using new texinfo features -- + variables, conditional tests. Far from complete. + +Mon Mar 29 16:05:40 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * read.c: Temporary hack to handle some 64-bit constants. This + should be redone later. + (target_big_endian): Declare. + (big_cons): If it's set, reverse order of bytes being copied. + * config/tc-sparc.c (md_begin): Set target_big_endian. + + * read.c (s_ignore): Delete declaration of is_end_of_line. + + * config/obj-coffbfd.c (yank_symbols): Build list of file symbol + forward pointers properly. + +Mon Mar 29 13:47:33 1993 Steve Chamberlain (sac@thepub.cygnus.com) + + * config/obj-coffbfd.c (do_relocs_for): Fix bug where nrelocs + wasn't being stored into scnhdr. + * config/obj-coffbfd.h: Add prototype of s_get_segment. + * read.c (TC_START_LABEL): Default definition. + (read_a_source_file): Use TC_START_LABEL macro to work out + if a label has been seen. + +Mon Mar 29 12:56:56 1993 Ian Lance Taylor (ian@cygnus.com) + + * configure.in: Set BFDDEF and BFDLIB at the top of Makefile, not + the bottom (make expands variables in dependencies when the + dependencies are read, not when they are used). + + * config/obj-coffbfd.c (fill_section): Don't set NOLOAD bit for + a29k .bss section; the mondfe program doesn't like it. + +Sun Mar 28 08:12:53 1993 Ken Raeburn (raeburn@kr-pc.cygnus.com) + + * config/tc-m68k.c: Use PARAMS macro, and use CONST instead of + const. + (current_architecture): Don't need initializer. + +Fri Mar 26 08:12:48 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * doc/none.m4: Define Z8000. + * doc/Makefile.in (as-*.texinfo): Refer to $(srcdir). Remove the + texinfo file before recreating it. + (TEXI2DVI): Need to set TEXINPUTS if "make as.dvi" is to work in + this directory. + (srcdir): Delete second, bogus definition. + (as.info): Look for as-*.texinfo in current directory rather than + in $(srcdir). + (as.dvi): Ditto. + (dvi): New rule. + * doc/configure.in: Create links to all as-*.texinfo files in the + source directory, if that's not the current directory. + + * configure.in (per-host): Accept MIPS host with BSD version + number. + (per-target): Classify i486 as i386. Use generic cpu_type instead + of target_cpu in selecting format etc. + + * app.c (do_scrub_next_char): Use .appfile, not .app-file. + * read.c (potable): Change .app-file to .appfile. + + * config/ho-decstatn.h: Renamed from ho-decstation.h. + * configure.in: Adjusted. + + * config/obj-bfd-sunos.*: Unused; deleted. + + * Makefile.in (version.c, vers-stamp): Deleted. + (config.h): Define GAS_VERSION. + * as.c (version_string): Deleted declaration. + (main): Look for GAS_VERSION instead. + + * doc/as.texinfo: Updated description of -a* (listing) options, + and describe how to pass them through from gcc. + + * config/obj-coffbfd.c (do_relocs_for): Don't allocate storage or + process relocs if there aren't any relocs to process. Avoids + malloc/free bug on SCO too. + + * as.h: Move local include files below system include files, to + avoid some redefinition complaints on some systems. + (const, volatile): Don't need these conditionally defined if we + use CONST and VOLATILE from ansidecl.h. + (seg_name): Use CONST, not const. + +Fri Mar 26 10:22:04 1993 Ian Lance Taylor (ian@cygnus.com) + + * config/tc-mips.c: Reindented to GNU standards. + +Thu Mar 25 08:59:14 1993 Ian Lance Taylor (ian@cygnus.com) + + * config/obj-coffbfd.c (do_relocs_for): Remove a29k special case. + (fixup_segment): Add a29k special case; the linker is not prepared + to see a segment offset here. + + * app.c (do_scrub_next_char): Added new state, 10, modifying state + 9 to only keep a space in between identifier characters. + +Wed Mar 24 02:16:22 1993 david d `zoo' zuhn (zoo at poseidon.cygnus.com) + + * Makefile.in: add dvi target; as-$(config).texinfo might live in + srcdir, might be in objdir. + + * doc/Makefile.in: dvi depends on as.dvi + +Mon Mar 22 23:59:13 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com) + + * Makefile.in: add installcheck target + +Mon Mar 22 16:25:57 1993 Jim Wilson (wilson@sphagnum.cygnus.com) + + * config/tc-sparc.c (sparc_ip): Add support for membar mask names. + Add missing colons in prefetch error messages. Add support for + ASI names. + +Mon Mar 22 10:19:00 1993 Ian Lance Taylor (ian@cygnus.com) + + * config/tc-mips.c (macro): Use $AT for any floating point load. + +Sat Mar 20 12:50:51 1993 Ken Raeburn (raeburn@urth.cygnus.com) + + * config/tc-m68k.c (m68k_ip): For operand type 'M', reject + bignums, but don't emit error message. + +Fri Mar 19 21:02:19 1993 Jim Wilson (wilson@sphagnum.cygnus.com) + + * Makefile.in (targ-cpu.o): Depend on config.h. + +Wed Mar 17 16:44:06 1993 Ian Lance Taylor (ian@cygnus.com) + + * app.c (do_scrub_next_char): Added new state, 9, to avoid + dropping a space immediately following an identifier. + * expr.c, write.c: Rewrote assert expressions to not use multiple + lines; I don't think that can be done portably. + * config/tc-mips.c (macro): Use $AT if target register is zero in + load instruction, which it can be for a floating point load. + +Mon Mar 15 12:17:28 1993 Ian Lance Taylor (ian@cygnus.com) + + * write.c (write_contents): Compute the relocs before writing out + the section contents. + * config/obj-ecoff.h, config/obj-ecoff.c: Numerous changes to get + symbol table and values right. + * config/tc-mips.h (LOCAL_LABEL): If OBJ_ECOFF, any label starting + with $L is local. + * config/tc-mips.c (tc_gen_reloc): If OBJ_ECOFF, adjust the addend + by the section vma. + + * config/z8k.mt (TARG_CPU_DEPENDENTS): The relevant file is + z8k-opc.h, not z8k.h. + + * config/obj-coffbfd.c (obj_coff_endef): Correct test for .bf + symbol. + +Fri Mar 12 18:33:36 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com) + + * configure.in: recognize sparc-sun-solaris2* instead of -solaris2 + +Fri Mar 12 12:00:07 1993 Ian Lance Taylor (ian@cygnus.com) + + * expr.c, write.c: Ultrix native 4.2 cc requires assert condition + to be on a single line. + +Thu Mar 11 17:56:22 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * Makefile.in (config.h): Create file, writing out definitions of + target cpu, alias, and canonical name. + (ALL_CFLAGS): No longer define TARGET_CPU. + + * Makefile.in (check): Print a message, instead of quitting + silently. + + * as.c (main): Don't catch any signals, for now. + + * version.c: Deleted. + * Makefile.in: Generate it, putting in only the version number + itself. + (VERSION): New variable. + * as.c: Include config.h. + (main): Reformatted version string. Include target alias. Don't + print if not requested (i.e., unknown -v argument). + + * as.c (stralloc): Deleted. + (main): Call strdup instead. + + * configure.in: Handle all 68300 series chips. + * config/tc-m68k.c: Include config.h. + (md_assemble): Assume TARGET_CPU is defined. Accept some 68300 + series cpus as defaults. + (md_parse_option): Accept some m68300 series CPUs as defaults. + +Wed Mar 10 17:41:16 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * as.c (EXIT_SUCCESS, EXIT_FAILURE): Define to normal values if + not already defined. + (main, got_sig): Use them. + * config/ho-vms.h (EXIT_SUCCESS, EXIT_FAILURE): Reverse default + values. + +Tue Mar 9 07:40:06 1993 Ian Lance Taylor (ian@cygnus.com) + + * config/obj-ecoff.c, config/obj-ecoff.h: Preliminary ECOFF + support. + + * config/tc-mips.h (TARGET_FORMAT): Define based on OBJ_AOUT vs. + OBJ_ECOFF as well as TARGET_BYTES_*_ENDIAN. + (struct loc, struct proc, struct file): Moved to tc-mips.c within + #ifndef OBJ_ECOFF block, since ECOFF uses different versions. + * config/tc-mips.c: Rearranged for ECOFF support. Added + prototypes for all static functions. Moved existing minimal + debugging format support info #ifndef OBJ_ECOFF blocks. + (macro_build_lui): Eliminated sign_extend argument, because ECOFF + does not support a non sign extended high 16 bits reloc. Adjusted + all callers accordingly. + (tc_get_register): Renamed from get_register, and made non-static. + + * config/mips-big.mt, config/mips-lit.mt: New files. Define + TARGET_BYTES_BIG_ENDIAN and TARGET_BYTES_LITTLE_ENDIAN, + respectively. + * configure.in (mips-*-bsd*): Use gas_target mips-lit. + (mips-*-ultrix*, mips-*-irix*, mips-*-ecoff): New targets, using + obj_format ecoff and gas_target mips-lit or mips-big. + +Tue Mar 9 07:43:01 1993 Ken Raeburn (raeburn@cygnus.com) + + * version.c: Bump to version 2.0.1. + +Tue Mar 9 07:40:06 1993 Ian Lance Taylor (ian@cygnus.com) + + * write.c (chain_frchains_together): Check that seg_info (section) + is not NULL. + (write_object_file): Call obj_frob_file after setting the symbols, + not before. + +Tue Mar 9 00:00:00 1993 Ken Raeburn (raeburn@cygnus.com) + + * Version 2.0 released. + +Mon Mar 8 14:57:10 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * config/tc-i386.h (TC_COUNT_RELOC): Look for fx_addsy only. + +Fri Mar 5 09:05:55 1993 Ian Lance Taylor (ian@cygnus.com) + + * read.h: Define stringer here. + read.c, config/obj-ieee.c, config/obj-tcm88k.c: Not any of these + places. + +Thu Mar 4 11:52:23 1993 Steve Chamberlain (sac@thepub.cygnus.com) + + * read.c (s_space): Multiply repeat count by mult, not fill. + +Thu Mar 4 05:20:42 1993 Ken Raeburn (raeburn@cygnus.com) + + * read.c: Include ctype.h. + +Wed Mar 3 10:41:46 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + Patches from Eric Youngdale: + * make-gas.com: Find obstack.obj if it's not in the current + directory. + * read.c (s_ignore): Don't declare is_end_of_line. It's + redundant, and triggers a VMS gcc compiler bug. + + * write.c (write_object_file): Macro SUB_SEGMENT_ALIGN now takes + current segment as an argument. (Ignored in all cases but VMS.) + All callers and definitions changed. + +Tue Mar 2 11:56:19 1993 Ian Lance Taylor (ian@cygnus.com) + + * listing.c: Cleaned up a bit, added prototypes, made NO_LISTING + case compile again. + +Tue Mar 2 08:53:34 1993 Ken Raeburn (raeburn@cygnus.com) + + * config/tc-m68k.c (isbyte): Accept all values from -255 to +255, + so "~0x80" won't be rejected. + + * config/obj-elf.c: No longer include elf/reloc.h. + (obj_elf_section): Set SEC_READONLY and SEC_CODE for text section. + (obj_elf_stab, obj_elf_desc): Deleted do-nothing and commented-out + routines. + (obj_elf_xstab): New routine. + (obj_elf_set_size): Call as_warn, not fprintf. Pass desired + argument to s_ignore. Put "#if 0" around unused code. + (obj_pseudo_table): Use s_ignore instead of do-nothing routines. + Call elf_xstabs for .stabs and .xstabs operators. + + * config/tc-sparc.h (TARGET_FORMAT) [OBJ_ELF]: Now "elf32-sparc". + + * write.c (relax_and_size_seg): Set SEC_RELOC only if fixups are + present. + + * configure.in: mips-bsd configuration was missing format spec. + Should use aout. + + * Makefile.in (Makefile): Depends on configure.in. + + * config/tc-mips.c (append_insn): Don't check for alignment of + frag in memory; alignment of instructions in section is a separate + matter. + + * config/tc-mips.c (macro_build_lui): Fix some assumptions of ANSI + C availability. + + * listing.h: Always provide function declarations, not macros, so + pcc won't lose. + +Tue Mar 2 00:50:43 1993 John Gilmore (gnu@cygnus.com) + + * CONTRIBUTORS: Update Gilmore entry. + +Mon Mar 1 12:03:16 1993 Jim Wilson (wilson@sphagnum.cygnus.com) + + * config/tc-sparc.c (sparc_ip): Correctly assemble prefetch + instructions. Accept integer prefetch function numbers. + +Wed Feb 24 14:58:19 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * config/tc-sparc.c (s_xword): Now call big_cons, so large + constants are accepted, but symbolic values are not. GCC will not + generate the latter currently. + + * frags.c (frag_init): New function. + (zero_address_frag, bss_address_frag): Now initialized at run + time. + * as.c (main): Call frag_init. + +Wed Feb 24 10:32:42 1993 Ian Lance Taylor (ian@cygnus.com) + + * app.c (do_scrub_next_char): In LEX_IS_LINE_COMMENT_START case: + Don't unget ch2 if we didn't get it. + +Wed Feb 24 04:14:07 1993 Ken Raeburn (raeburn@kr-pc.cygnus.com) + + * doc/Makefile.in (TEXIDIR): Updated for new layout. + + * config/tc-sparc.c (s_common): Add support for ELF version. + (tc_gen_reloc) [BFD_ASSEMBLER]: New function. + * config/tc-sparc.h (TARGET_ARCH, TARGET_FORMAT) [BFD_ASSEMBLER]: + New macros. + (md_convert_frag): New macro. + + * config/tc-m68k.c (m68k_ip): For PC-relative addressing of a + symbol, fix the offset so "+2" isn't required. + + * config/tc-i960.c (line_comment_chars, line_separator_chars): + Define as common/bss. + (op_hash, reg_hash, areg_hash, iclasses_seen, br_cnt): Default C + initializers are sufficient. + + * config/obj-aout.h [BFD_ASSEMBLER]: Include libaout.h from bfd. + (TARGET_FORMAT) [BFD_ASSEMBLER]: Default to "a.out". + (S_SET_*, S_GET_*, obj_frob_symbol) [BFD_ASSEMBLER]: New macros. + (S_SET_TYPE) [!BFD_ASSEMBLER]: New macro. + * config/obj-aout.c: Use PARAMS macro for declarations. Remove + "IGNORE_DEBUG" conditional, since both branches are identical. + Use S_SET_TYPE, S_GET_TYPE, and S_GET_DESC instead of directly + referencing symbol structure members. + (obj_aout_frob_symbol) [BFD_ASSEMBLER]: New function. + + * as.h (struct frag): Reordered a couple of fields for better + packing. + + * write.c (record_alignment) [BFD_ASSEMBLER]: Record it in the + section info. + (write_contents) [BFD_ASSEMBLER]: New function. + (write_object_file) [BFD_ASSEMBLER]: Always handle -R here. Call + fix_new with BFD_RELOC_NONE instead of 0 or NO_RELOC. Call + obj_frob_file, obj_frob_symbol, tc_frob_symbol if defined. + (fixup_segment): Make sure common-section symbols get treated the + same as undefined symbols. + (fix_new) [BFD_ASSEMBLER]: Argument r_type is of type + bfd_reloc_code_real_type. Use seg_fix_{root,tail}P derived from + section info. + * write.h (fix_new): Update prototype. + + * tc.h (md_operand, md_convert_frag, tc_headers_hook, + md_section_align, md_undefined_symbol): Don't provide prototypes + if these are defined as macros. + (md_convert_frag) [BFD_ASSEMBLER]: BFD version needs bfd and + section passed. + + * symbols.c (symbol_new): Argument NAME is now pointer to const. + Simplified STRIP_UNDERSCORE code. Remove assumptions about null + pointers in freshly allocated storage. [BFD_ASSEMBLER]: Get new + BFD symbol. + (colon): Display other/desc fields of redefined symbol only if + S_GET_OTHER and S_GET_DESC are defined. + (symbol_make): Argument NAME is now pointer to const. + (symbol_find, symbol_find_base): Likewise. + (S_IS_*, S_GET_*, S_SET_*) [BFD_ASSEMBLER]: New functions. + * symbols.h: Fix prototypes for new const arguments. Add + prototypes for BFD_ASSEMBLER S_* functions. + + * subsegs.c (subseg_change) [BFD_ASSEMBLER]: BFD version of code + for changing to an existing section. + (subseg_new_rest) [BFD_ASSEMBLER]: Split off from subseg_new, + called by subseg_new and subseg_set. + (subseg_new) [BFD_ASSEMBLER]: Rewritten to change to new section, + given section name and subseg number. + (subseg_set) [BFD_ASSEMBLER]: New function; change to a possibly + new section/subsection. + + * read.c: Don't include ctype.h. + (cons) [BFD_ASSEMBLER]: For undefined symbols, use BFD_RELOC_32 + for now; should be machine-dependent. + + * configure.in: Accept *-*-elf and *-*-solaris* as ELF format + targets, forcing BFD use. + +Wed Feb 17 18:59:03 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * config/tc-sparc.c: Use PARAMS macro for static function + declarations. Use BFD_RELOC_ macros everywhere, with + compatibility macros declared for non-BFD mode. + (struct sparc_it) [BFD_ASSEMBLER]: Use bfd_reloc_code_real_type + instead of enum reloc_type. + (emit_sparc_reloc): Commented-out function deleted. + (md_convert_frag): Deleted. + (tc_aout_pre_write_hook): Don't define for BFD_ASSEMBLER. + (md_apply_fix): Changed calling sequence (conditionally) for BFD + version. + * config/tc-sparc.h (md_convert_frag): New macro. + + * config/obj-aout.c (obj_aout_stab): Refer to undefined_section, + not SEG_UNKNOWN. Use S_SET_TYPE, S_GET_TYPE, S_GET_DESC instead + of referencing fields directly. + + * write.c (cvt_frag_to_fill): New function; extracted from + write_object_file. + (write_object_file) [! BFD_ASSEMBLER]: Call it. + (relax_and_size_seg) [BFD_ASSEMBLER]: New function; relax section + and set its size and flags. + + * struc-symbol.h (struct symbol) [BFD_ASSEMBLER]: Replace some + fields with BFD equivalents. Turn on back-pointers, and add + target-specific fields at end. + +Thu Feb 11 09:20:37 1993 Ian Lance Taylor (ian@cygnus.com) + + * config/obj-coffbfd.c (fill_section): Don't set vaddr here. + (write_object_file): Set it here instead, so that fixup_segment + can see the correct value. + +Mon Feb 8 13:56:17 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * write.c (write_object_file): Check for errors and warnings and + bail out before processing contents. + (chain_frchains_together_1): New function, does most of the work + of remove_subsegs. + (chain_frchains_together) [BFD_ASSEMBLER]: New function. + (remove_subsegs) [! BFD]: Call it. + (write_object_file) [BFD_ASSEMBLER]: Converted to use BFD + structures and routines. + + * config/obj-elf.*: New files. + + * config/mips.mt, config/rs6000.mt: Deleted. + + * config/h8300.mt: Don't specify compiler here. + + * config/z8k.mt: The z8k code depends on the z8k opcode table, + not the h8300 one. + * config/tc-z8k.h: Comment fix. + + * write.c: Reordered some functions for better inlining. + (fixup_segment): Linkrelax code is no longer conditional on + TC_I960. + +Thu Feb 4 12:45:16 1993 Steve Chamberlain (sac@thepub.cygnus.com) + + * config/{h8500.mt, tc-h8500.c, tc-h8500.h, obj-coffbfd.c, + obj-coffbfd.h}: support for the H8/500 + +Wed Feb 3 19:28:18 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * config/obj-vms.h (SUB_SEGMENT_ALIGN): Define VMS version here. + * write.c (write_object_file): Not here. + (fix_new): Initialize fx_addnumber. + + * listing.c: Don't include target-cpu.h explicitly, since as.h + includes it. + +Thu Jan 28 00:35:40 1993 Ken Raeburn (raeburn@kr-pc.cygnus.com) + + * write.h [BFD_ASSEMBLER]: Don't declare next_object_file_charP, + *_fix_root, *_fix_tail, seg_fix_rootP, seg_fix_tailP. + (struct fix): Reordered fields for compactness and efficiency. + Converted some logical fields to 1-bit fields. + + * config/obj-aout.h: Use PARAMS. + [BFD_ASSEMBLER]: Don't define/declare AOUT_MACHTYPE, seg_N_TYPE, + N_TYPE_seg, DEFAULT_MAGIC_NUMBER_FOR_OBJECT_FILE. + + * read.c: Don't include listing.h; as.h includes it. Removed + DONTDEF code. + [BFD_ASSEMBLER]: Include subsegs.h. + (old_buffer, new_broken_words): Default initialization is + sufficient. + + * output-file.c [BFD_ASSEMBLER]: Include bfd.h, default TARGET_MACH + to 0, define stdoutput. + (output_file_create) [BFD_ASSEMBLER]: Call bfd_perror on failure. + Call bfd_set_arch_mach. + (output_file_close) [BFD_ASSEMBLER]: Call bfd_close, not + bfd_close_all_done. Call bfd_perror on failure. + (output_file_append) [BFD_ASSEMBLER]: Don't define. + + * config/m68kcoff.mt (LOCAL_LOADLIBES): Delete definition. + + * subsegs.h (segment_info_type): Always define. Omit field scnhdr + if not MANY_SEGMENTS. Define new field bfd_section if + BFD_ASSEMBLER. + (seg_info): New macro. + + * expr.c, input-scrub.c: Use PARAMS macro. Deleted unused + variables, and some irrelevant comments. + + * Makefile.in (ALL_CFLAGS): Include $(BFDDEF). + (LIBS): Include $(BFDLIB). Don't bother with $(CLIB). + * configure.in: Permit --with-bfd-assembler now, with a warning. + Variable need_bfd is now a boolean, as is new variable bfd_gas. + Set BFDDEF and BFDLIB in Makefile when appropriate. + + * as.c: Removed "#ifdef DONTDEF" and "#ifdef comment" code. + (main): Refer to flag_always_generate_output instead of + flagseen['Z']. + + * as.c (main) [BFD_ASSEMBLER]: Open output bfd. + (*_section) [BFD_ASSEMBLER]: Define them. + (perform_an_assembly_pass) [BFD_ASSEMBLER]: Initialize them, and + set section flags when appropriate. + * as.h (SEG_NORMAL) [BFD_ASSEMBLER]: Require that the specified + section is not absolute, undefined, or an assembler internal one. + (absolute_section, undefined_section): Always define. + * expr.c, read.c, symbols.c: Refer to *_section, not SEG_*; break + switch statements into if-else trees. + * symbols.c [MANY_SEGMENTS]: Deleted redundant definitions of + SEG_BSS and SEG_DATA. + + * as.h (frag_now_fix): New macro. + * symbols.c (colon): Use it. + +Wed Jan 27 21:43:53 PST 1993 Ralph Campbell (ralphc@pyramid.com) + + * config/tc-mips.c: Added mips support for mips-dec-bsd. + * config/tc-mips.h: Added mips support for mips-dec-bsd. + * config/ho-mipsbsd.h: Added mips support for mips-dec-bsd. + * config/mips-opcode.h: Added mips support for mips-dec-bsd. + * configure.in: Added mips support for mips-dec-bsd. + * atof-generic.c: Define TRUE and FALSE if not defined. + +Thu Jan 21 12:48:19 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * version.c: Bumped version number to 1.93.05. + +Wed Jan 20 17:11:53 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * config/obj-coff.c (obj_emit_relocations): Don't use #elif. + (obj_emit_lineno): Don't need return at end of void function. + (obj_symbol_new_hook): Ditto. + + * config/tc-m68k.c: Removed some unused code. + (tc_aout_fix_to_chars): Array nbytes_r_length is now const. + + * config/tc-m68k.h (TC_COUNT_RELOC): Don't emit reloc if only + offset field is set. + +Fri Jan 8 05:44:49 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * config/tc-sparc.c (sparc_ip): For %uhi and %ulo, if not + ENV64, emit no reloc. + (md_pseudo_table): For ".xword", call s_xword. + (s_xword): New function. + + * config/tc-sparc.c (architecture_requested, warn_on_bump, + md_relax_table): Use default zero initialization. + (s_reserve): Since SEG_E2 is equivalent to SEG_BSS, just use the + latter, instead of selecting with preprocessor conditionals. + +Thu Jan 7 08:58:21 1993 david d `zoo' zuhn (zoo at cirdan.cygnus.com) + + * configure.in: recognise all sparclite variants + +Thu Jan 7 05:25:25 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * read.c (s_data) [!BFD_ASSEMBLER]: Fix typo in 4 Jan change -- + accidentally changed to use subseg_change where it should have + been subseg_new. + +Tue Jan 5 08:42:16 1993 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * expr.c (operand): If character other than comma or newline is a + logical end-of-line character, use the newline case. + From Eric Youngdale: + (operand): Set X_add_number field for floating-point numbers. + (operand): Treat zero byte as end-of-operand. + + * configure.in (per-target): Look for with_bfd_assembler option. + For now, only accept "no", until the merge is done. + + Merged changes from Eric Youngdale (youngdale@v6550c.nrl.navy.mil): + * as.c, flonum-konst.c, hex-value.c, input-file.c, version.c, + config/obj-aout.h, config/obj-vms.c: VMS -> HO_VMS. + * read.c: Finish conversion to S_* macros in the VMS only + parts of the program. Add "const" modifier to hex_value. + * as.c, read.c, symbols.c, write.c: Change "ifdef VMS" to + "ifdef OBJ_VMS". + * expr.c: Add "const" modifier to hex_value. + * symbols.c: Finish conversion to S_* macros in the VMS only + parts of the program. Add "const" modifier to + md_[long,short]_jump_size. Remove declaration of const_flag + (which will be declared in obj-vms.h). + * write.c: Add "const" modifier to md_[long,short]_jump_size. + Fix arguments to VMS_write_object_file. + * config-gas.com: New file. Script for VMS systems to set up the + configuration to build gas for VMS, and create config.status. + * make-gas.com: Redone to work with new scheme. + * obj-vms.c: Patch to fix bug where we were not correctly parsing the + stabs directives. + * obj-vms.c: Define macros COPY_LONG and COPY_SHORT which + will swap bytes if needed on a big endian system. Use throughout + as needed. + * obj-vms.c (obj_aout_stab): Add code to generate listing file. + * obj-vms.c (VMS_typedef_parse): Add alias to correctly handle certain + types of malformed stabs. Change parsing algorithm so that we are + more certain of having all of the information that we need on hand. + * obj-vms.c (final_forward_reference): New function, used to help + resolve the data types of as many struct elements as possible + when some part of the struct is not fully defined by the compiler. + * obj-vms.c (VMS_LSYM_Parse): Correctly handle case of continuation + stabs directives. + * obj-vms.c (VMS_write_object_file): Define all vtable psects + as symbols as well in the object file. Look for external functions + that start with "__vt.", and turn them into variables, since the + g++ compiler is incapable of doing this. + * tc-vax.c: Add '1' option for backward compatibility with older GCC + versions. + * bignum-copy.c (bignum_copy): Fix bug where we pad with zeroes. + * input-scrub.c (as_where): Fix bug where as would crash if we did not + have the name of the source file yet. + * config/ho-vms.h: define HO_VMS, not HO_VAX. + +Mon Jan 4 05:17:26 1993 Ken Raeburn (raeburn@cygnus.com) + + * read.c (s_data): Always use "data_section", since it'll map to + SEG_DATA or SEG_E1 if needed. + (s_lcomm): Likewise with bss_section. + (s_fill): Use memset, not bzero. + +Thu Dec 31 04:29:27 1992 Ken Raeburn (raeburn@kr-pc.cygnus.com) + + * read.c: Deleted some code under "#ifdef DONTDEF" that was for + handling GDB symbol table data. + + * config/obj-aout.h (segment_name): Delete definition. + (seg_name): Delete declaration. + * config/obj-bout.h (segment_name, seg_name): Ditto. + * config/obj-vms.h (segment_name, seg_name): Ditto. + * config/obj-coff.h (segment_name): Ditto. + * config/obj-coffbfd.h (segment_name): Ditto. + + * Changes for BFD_ASSEMBLER: + * obj.h (obj_crawl_symbol_chain): Declare only if not + BFD_ASSEMBLER. + (obj_header_append, obj_pre_write_hook): Ditto. + * as.h (stdoutput): New var, defined only if BFD_ASSEMBLER. + (segT) [BFD_ASSEMBLER]: New typedef for "asection *". + (segment_name) If BFD_ASSEMBLER, look up BFD section name; + otherwise, use seg_name array. + (seg_name): Declare only if not BFD_ASSEMBLER. + (section_alignment): Declare only if not BFD_ASSEMBLER. + (big_section, reg_section, pass1_section, diff_section, + absent_section, text_section, data_section, bss_section): If + BFD_ASSEMBLER, declare as variables; otherwise, declare as macros, + mapping to segT enum values. + (tc_aout_fix_to_chars, next_object_file_charP): Force parse errors + if these are used or defined, if BFD_ASSEMBLER. + (subseg_set, subseg_new) [BFD_ASSEMBLER]: Functionality of old + subseg_new split into two functions. + (SEG_NORMAL): For BFD_ASSEMBLER, always return true, for now. + + * as.h (volatile): Don't define if already defined. + (had_errors, had_warnings): Provide prototypes for ANSI C even if + NO_STDARG. + (as_bad, as_fatal, as_tsktsk, as_warn): For GNU C version 2, + declare with format attribute for -Wformat checking. + +Wed Dec 30 10:18:57 1992 Ian Lance Taylor (ian@cygnus.com) + + * app.c, config/tc-*.c: Don't include read.h, since it is already + included by as.h. + + * These are based on patches from Minh Tran-le + <mtranle@paris.intellicorp.com>. + * configure.in (i[34]86-ibm-aix*): Accept i486 for host. Use + obj_format coffbfd and gas_target i386coff for target. + (i[34]86-*-isc*): New host (uses sysv). + * config/i386aix.mt: Removed (no longer used). + * config/mh-i386aix (RANLIB): Use true rather than /bin/true. + (MINUS_G): Removed. + (LDFLAGS): Added, defined as -shlib. + * config/te-i386aix.h (REVERSE_SORT_RELOCS): Undefine. + * config/te-sco386.h (LOCAL_LABEL): Don't define. + (DOT_LABEL_PREFIX): Define. + * expr.c (operand): If DOT_LABEL_PREFIX, use .L0\001 as a label + name rather than L0\001. + * read.c (s_lcomm): Make a frag in SEG_BSS rather than using + local_bss_counter. + * symbols.c, symbols.h (local_bss_counter): Removed. + * write.c (write_object_file): bss no longer uses + local_bss_counter. Pass correct data and bss size to + VMS_write_object_file. + * config/obj-vms.c (VMS_write_object_file): Accept bss size as + argument, rather than using local_bss_counter. + * config/tc-m88k.c (s_bss): Don't use local_bss_counter. + * config/tc-sparc.c (s_reserve): Don't use local_bss_counter. + * config/obj-coffbfd.c (had_lineno, had_reloc): Removed. + (size_section): Restored sanity check. + (do_relocs_for): Base section address on s_paddr rather than + computing it. Adjust a29k R_IHIHALF special case to account for + section paddr (used to require paddr to be zero). If there are no + reclos, set s_relptr to 0. Set relocation size in object_headers. + (fill_section): Always set s_vaddr here, removing + ZERO_BASED_SEGMENTS case. Force s_scnptr for bss to 0. Don't set + NOLOAD for i386 .bss, because it confuses the SVR3 native linker. + Set STYP_INFO for .comment. + (coff_header_append): Use object headers and H_{SET,GET}_* macros. + Make aouthdr writing depend on OBJ_COFF_OMIT_OPTIONAL_HEADER. + (crawl_symbols): Handle 8 character section name correctly. Use + H_{SET,GET}_* macros. + (do_linenos_for): Set lineno size in object_headers. + (write_object_file): Use H_{SET,GET}_* macros. Don't bother to + set s_vaddr here. If string_byte_count remains 4, set it back to + 0, and only write strings out if there are some. Call + fill_section before do_relocs_for and do_linenos_for. + (obj_coff_section): Handle optional quoted second argument giving + section characteristics. + (obj_coff_bss): Added to handle .bss. + (obj_coff_ident): Added to handle .ident (puts string in .comment + section). + (obj_coff_lcomm): Put common symbols in .bss, not .data. + (fixup_mdeps): Change to segment. Call frag_wane after + md_convert_frag. + (fixup_segment): Explicitly check S_IS_COMMON before making 386 + adjustment (already happened only for common symbols, but this is + clearer). + * config/obj-coffbfd.h (OBJ_COFF_OMIT_OPTIONAL_HEADER): Define. + * config/tc-i386.c (s_bss): Don't use if I386COFF. + (md_pseudo_table): Ignore .optim and .noopt. + (tc_coff_sizemachdep): New function. + * config/tc-i386.h (REVERSE_SORT_RELOCS): Undef, for SVR3 + compatibility. + (LOCAL_LABEL): Removed definition. + (DOT_LABEL_PREFIX): Defined. + +Mon Dec 28 10:32:05 1992 Ken Raeburn (raeburn@cygnus.com) + + * app.c (app_push): Use memcpy, not bcopy. + (do_scrub_next_char): For \", return " not '. + (symbol_chars): Now const. + + * expr.c (operand): If not LOCAL_LABELS_FB, don't look for "0f" + and "0b". If LOCAL_LABELS_DOLLAR, check for "0$". + + * config/obj-coff.h: Don't use #elif. + + * config/ho-sunos.h: Don't include sys/stdtypes.h; 4.0.3 doesn't + have it. (Reported by Noah Friedman, friedman@gnu.ai.mit.edu.) + +Wed Dec 16 12:12:33 1992 Ian Lance Taylor (ian@cygnus.com) + + * write.c, obj-ieee.c: don't define SUB_SEGMENT_ALIGN if it is + already defined. + +Tue Dec 15 12:40:11 1992 Steve Chamberlain (sac@thepub.cygnus.com) + + * app.c (do_scrub_begin): allow single quote strings if so + configured. + + * config/*z8k*: checkpoint + +Sun Dec 13 00:04:38 1992 Ian Lance Taylor (ian@cygnus.com) + + * read.c (read_a_source_file): avoid calling xmalloc (0). + +Sat Dec 12 15:26:34 1992 Ian Lance Taylor (ian@cygnus.com) + + * listing.c: Call xmalloc, not malloc; don't declare malloc. + + * Changes to support SCO 3.2v4: + * read.c (s_align_bytes, s_align_ptwo): If not SEG_DATA or + SEG_BSS, fill with NOP_OPCODE. + * config/i386coff.mt: Add opcode/i386.h to TARG_CPU_DEPENDENTS. + * config/obj-coffbfd.c (do_relocs_for): Increment addr even if not + using ZERO_BASED_SEGMENTS. + (fill_section): If ZERO_BASED_SEGMENTS, set segment addresses, but + never set segment address for SEG_E2 (.bss) and don't write out + SEG_E2 contents. Set .init and .fini sections to STYP_TEXT. + (obj_coff_endef): Don't merge labels or symbols awaiting forward + definitions, and don't merge tags with non-tags. Check for .bf + rather than just checking whether the second character is b and + the third character is f. + (obj_coff_val): gcc can generate values which we don't handle + correctly; discard information for now, since it only affects the + debugging information. + (tag_find_or_name): Don't insert tags in the symbol table. + (yank_symbols): Don't merge labels. + (write_object_file): Don't define SUB_SEGMENT_ALIGN if it is + already defined. Fill subsegments with NOP_OPCODE, not 0. Don't + set segment address if ZERO_BASED_SEGMENTS. + (obj_coff_section): Accept and ignore a trailing quoted string, as + used in AT&T i386 syntax. + (fixup_segment): Take segment as argument. On the i386, adjust PC + relative addends by the segment vaddr. + * tc-i386.h: Define SUB_SEGMENT_ALIGN. + * tc-a29k.h: Define ZERO_BASED_SEGMENTS. + * tc-i386.c: (i386_operand): If I386COFF, accept any segment type. + +Tue Dec 8 00:06:48 1992 Ken Raeburn (raeburn@rtl.cygnus.com) + + * config/obj-coffbfd.c: Include libcoff.h. + + * version.c: Now version 1.93. + +Mon Dec 7 00:39:09 1992 Ken Raeburn (raeburn@cygnus.com) + + * config/tc-i386.c (md_pseudo_table): For 386bsd and linux, do + power-of-two alignment for .align. + + * as.h: If BROKEN_ASSERT, just redefine `assert' to be trivial, + and leave everything else alone. + +Fri Dec 4 16:58:42 1992 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * Makefile.in (as.new): Don't bother saving as.old. + + * write.c: Conditionalize on OBJ_VMS, not VMS. + (magic_number_for_object_file): Don't define if OBJ_VMS. + + * config/obj-vms.c: Changes for traditional C. + +Thu Dec 3 01:24:07 1992 Ken Raeburn (raeburn@kr-pc.cygnus.com) + + * config/ho-generic.h (malloc, realloc): Declare. + + * Lots of comment/whitespace changes. + + * write.h (struct fix): Some fields reordered, narrowed. + + * read.c (MASK_CHAR): Define using C types, not magic number. + + * as.c, input-file.c: Deleted some unused code. + + * app.c, as.h: Doc fix. + + * flonum-konst.c, flonum-mult.c: Include ansidecl.h. + + * as.h (xmalloc): Argument is long. + + * xmalloc.c (error): Remove declaration; as.h takes care of it. + + * doc/as.texinfo: Regrouped documentation of some command-line + options. Updated options documentation for m68k. Some minor + wording/punctuation changes. + +Mon Nov 30 11:42:11 1992 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * configure.in: Accept target OS "vms". + + * symbols.c: Merged ANSI and non-ANSI function decls, using + PARAMS macro. + + * xmalloc.c: Just include as.h, don't bother trying to figure out + other header files. + + * strstr.c, strerror.c: Deleted. + * Makefile.in: Deleted references. + + * config/tc-ns32k.c: Don't include header file for string + declarations; leave that to ho-*.h. + +Fri Nov 27 04:11:36 1992 Ken Raeburn (raeburn at cambridge-laptop.cygnus.com) + + * config/coff_gnu.h [TC_I860]: Guesses for reloc type values, + imported from FSF sources. + + * messages.c (strerror): Declare unconditionally. + + * as.h: Delete alloca and register definitions. + + * config/atof-ieee.c (mask): Now const. + + * obstack.c, obstack.h: Deleted. + + * as.h (flag_readonly_data_in_text): New flag. + * as.c (main): Set it for -R. + + * as.h (flag_suppress_warnings): New flag. + * as.c (main): Set it for -W. + * messages.c (as_warn): Check it instead of flagseen['W']. + + * as.h (flag_always_generate_output): New flag. + * as.c (main): Set it for -Z. + + * config/tc-sparc.h: Define NEED_FX_R_TYPE. + * config/tc-a29k.h: Ditto. + * write.h (struct fix): Don't conditionalize fx_r_type field on TC + macros. + + * as.h: Merged ANSI and non-ANSI function decls, using PARAMS + macro. + * bignum.h, expr.h, flonum.h, frags.h, input-file.h, listing.h, + obj.h, output-file.h, read.h, struc-symbol.h, symbols.h, tc.h, + write.h: Likewise. + * read.c: Likewise. + + * xmalloc.c: Conditionalize on HAVE_MALLOC_H, not USG. Fold in + xrealloc from xrealloc.c. + * xrealloc.c: Deleted. + * Makefile.in (REAL_SOURCES, OBJS): Adjusted. + + * configure.in: For host CPU a29k, rs6000, vax, consider using bsd + or vms ho- files. + + * config/ho-sysv.h (setbuffer, HO_USG): Deleted. + + * config/atof-ieee.c (atof_ieee): Exponent field isn't a pointer; + don't initialize it with NULL. + + * config/ho-vax.h (M_VAX): Deleted; was unused. + + * README-vms, config/ho-vms.h, config/obj-vms.c, config/obj-vms.h: + New files imported from FSF version, contributed by Eric Youngdale. + * README-vms-dbg, config/vms: Deleted. + + * ChangeLog, config/ChangeLog: Merged. + + * config/*tahoe*, configure.in: Tahoe support brought in from FSF + version. + + * input-file.c (input_file_open): Eliminate call to setvbuf. + [USG] (setbuffer): Deleted macro. + +Mon Nov 23 11:00:16 1992 Ken Raeburn (raeburn@cygnus.com) + + * all files: Whitespace changes for GNU indentation style, done by + GNU `indent'. Some cleanup still needed, especially of comments. + + * configure.in: No te-386bsd.h file exists; don't try to use it. + + * obj-coff.c (obj_coff_endef): Use as_warn, not fprintf. + + * tc-m68k.c (md_assemble): Don't complain about 68000 with 68881; + could be doing emulation. + +Thu Nov 19 11:47:19 1992 Steve Chamberlain (sac@thepub.cygnus.com) + + z8000 documentation + * doc/Makefile.in, doc/all.m4, doc/as-all.texinfo, doc/as.texinfo: + all modified. + +Tue Nov 10 09:49:24 1992 Ian Lance Taylor (ian@cygnus.com) + + * Makefile.in (as.o, obj-format.o): added dependency on subsegs.h. + + * subsegs.h: add extern to segment_info declaration. + + * read.h: added extern declarations for comment_chars, + line_comment_chars, and line_separator_chars. + read.c, app.c: removed definitions of comment_chars, + line_comment_chars, and line_separator_chars. + + * tc-m68k.c (m68k_reg_parse): If REGISTER_PREFIX isn't defined, + still accept (but don't require) OPTIONAL_REGISTER_PREFIX before + the register name. + (insert_reg): put REGISTER_PREFIX before register names before + putting them in the symbol table. + * tc-m68k.h (OPTIONAL_REGISTER_PREFIX): Define to be "%", if not + M68KCOFF. + + * obj-coffbfd.c (fill_section): set STYP_NOLOAD bit for .bss + section. + + * atof-ieee.c, atof-ns32k.c, tc-*.c: made EXP_CHARS, FLT_CHARS, + comment_chars, line_comment_chars and line_seperator_chars + consistently const, and always initialized them. Included read.h. + +Thu Nov 5 17:55:41 1992 Jim Wilson (wilson@sphagnum.cygnus.com) + + * tc-sparc.c (sparc_ip): Add code to flag error if an absolute + constant will not fit in an immediate field. + (md_apply_fix, RELOC_BASE13 case): Check for relocation overflow. + +Wed Nov 4 07:50:46 1992 Ken Raeburn (raeburn@cygnus.com) + + * obj-coff.c (callj_table): Delete global variable. + (obj_emit_relocations): Define it locally here, and only if + TC_I960 is defined. + + * tc-m68k.c (m68k_reg_parse): Underscore is part of a symbol name. + (m68k_ip): Don't warn about bignum used as float bit-pattern. + + * obj-coff.c: Replaced ANSI and non-ANSI function declarations + with a single set using PARAMS macro. + + * tc-i960.c (tc_bout_fix_to_chars): Bit-field fixups want a length + of 2. + + * tc-i960.c: Missed a couple of 0->NO_RELOC conversions. + + * tc-i960.h (N_BALNAME, N_CALLNAME): Define as char-type values, + so widening works consistently. + +Wed Oct 28 08:52:34 1992 Ken Raeburn (raeburn@cygnus.com) + + * version.c: Put conditional "const" before version_string, not + before dummy function for VMS. Now version 1.91.03. + + * app.c (do_scrub_next_char): Need double-\ before `000' to show + printed rep of null character. + +Fri Oct 23 14:40:38 1992 Ian Lance Taylor (ian@cygnus.com) + + * obj-coffbfd.c (write_object_file): check return value of + bfd_close_all_done. + +Tue Oct 20 12:18:08 1992 Ian Lance Taylor (ian@cygnus.com) + + * Support for i386-sysv. + obj-coffbfd.c (do_relocs_for, write_object_file): set segment + addresses to reasonable sizes. New define ZERO_BASED_SEGMENTS can + be used to set them all to zero as was done before. + (fill_section): segment addresses now set in write_object_file. + (fill_section): Don't set STYP_NOLOAD for .bss section. + (fixup_segment): 386 uses strange common symbol format. + tc-i386.c (tc_coff_fix2rtype): use R_DIR32, not R_RELLONG, for + compatibility with SVR3.2 linker. + * configure.in: i386-sysv and i386-sco use coffbfd. + + * app.c (do_scrub_next_char): discard whitespace after a label. + +Sat Oct 10 12:33:45 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com) + + * configure.in: differentiate between SunOS 4 and Solaris2 for Sun4 + hosts, use the sysv configuration for solaris2 + +Mon Oct 5 09:28:57 1992 Steve Chamberlain (sac@thepub.cygnus.com) + + fix i960+non-bfd coff bit rot. + * obj-coff.c (c_dot_file_symbol, obj_coff_ln, obj_coff_line): + support for C source listings. (obj_coff_endef): look in the right + part of the symbol for the symbol name + + * tc-m68k.c (get_num): make it work for all segments, not just the + first three. + +Mon Oct 5 03:30:36 1992 Mark Eichin (eichin at tweedledumber.cygnus.com) + + * configure.in: recognize i386-*-bsd emulation. + +Thu Oct 1 23:05:12 1992 david d `zoo' zuhn (zoo at cirdan.cygnus.com) + + * configure.in: use the cpu-vendor-os triple for host and target + +Tue Sep 29 12:22:52 1992 Steve Chamberlain (sac@thepub.cygnus.com) + + * obj-coffbfd.c (write_object_file): don't fixup for the z8k + * tc-z8k.c: lots of bug fixes + +Tue Sep 29 10:51:55 1992 Ian Lance Taylor (ian@cygnus.com) + + * tc-i960.h, tc-i960.c: avoid the ANSI preprocessor addition + #elif, since it is not supported by old compilers. + ho-rs6000.h, tc-m68k.c: the native RS/6000 compiler miscompiles a + couple of expressions in tc-m68k.c. + +Mon Sep 28 21:18:24 1992 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * read.c (cons): If NO_RELOC is defined, use it. + + * tc-i960.c (get_cdisp): Use NO_RELOC, not 0, in call to fix_new. + +Fri Sep 25 18:18:52 1992 Ian Lance Taylor (ian@cygnus.com) + + * tc-m68k.h: if M68KCOFF, define DOT_LABEL_PREFIX (to require + local labels to start with a .) and set REGISTER_PREFIX to %. + tc-m68k.c (m68k_reg_parse): accept REGISTER_PREFIX if defined. + +Fri Sep 25 17:53:43 1992 John Gilmore (gnu@cygnus.com) + + * messages.c: Comment changes. + +Fri Sep 25 14:12:58 1992 Ken Raeburn (raeburn@kyriath.cygnus.com) + + * as.h: Test if __STDC__ is defined only, don't test its value. + * messages.c: If __STDC__ is not defined, define NO_STDARG. + +Thu Sep 24 12:42:32 1992 Brendan Kehoe (brendan@rtl.cygnus.com) + + * listing.c (debugging_pseudo): Add stabs and stabn as things to + ignore. + +Tue Sep 22 13:02:07 1992 Sean Eric Fagan (sef@cygnus.com) + + * obj-coffbfd.c (do_relocs_for,fill_section): now allocate all + sections starting from zero, rather than making them consecutive. + This makes subsequent reloc calculations easier, esp if the object + format doesn't understand addends. (obj_coff_lcomm): (maybe temporarily) + allocate lcomm in .data rather than in .bss. It seems that some + tools can't cope with a non-zero sized bss before linkage. + +Tue Sep 22 15:10:51 1992 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * tc-m68k.c: Replace "enum m68k_architecture" with "int" + throughout. That enum no longer means what we thought it meant. + + * tc-m68k.c (md_assemble, md_parse_option): Handle new + "-mno-688[58]1" options. + + * tc-m68k.c: Added CPU32 support. + +Fri Sep 18 08:02:18 1992 Steve Chamberlain (sac@thepub.cygnus.com) + + * tc-m68k.c (m68k_ip): An(disp) is not pc relative. + +Tue Sep 15 17:25:05 1992 Jim Wilson (wilson@sphagnum.cygnus.com) + + * Makefile.in (as.new): Remove dependence on LOCAL_LOADLIBES. + Change LIBDEPS dependence to LIBS. + +Tue Sep 15 15:32:02 1992 Ian Lance Taylor (ian@cygnus.com) + + * Makefile.in (install): if $(tooldir) exists, install as in + $(tooldir)/bin. + +Sun Sep 13 20:30:10 1992 Ian Lance Taylor (ian@cygnus.com) + + * Added WARN_SIGNED_OVERFLOW_WORD define to give an error if any + .word is < -32768 or > 32767. The -J flag causes the error to be + ignored. This is to catch over-sized switches generated by gcc on + systems which don't support the broken .word hack. + as.c (main): permit -J if WARN_SIGNED_OVERFLOW_WORD. + write.c (fixup_segment): check for signed .word overflow if + WARN_SIGNED_OVERFLOW_WORD. + + * write.c (fixup_segment): fixed missing parens in expression + checking for byte or word overflow. + + * obj-coffbfd.h: define WARN_SIGNED_OVERFLOW_WORD. + obj-coffbfd.c (fixup_segment): check for signed .word overflow if + WARN_SIGNED_OVERFLOW_WORD. + + * obj-coffbfd.c (fixup_segment): fixed missing parens in + expression checking for byte or word overflow. + +Fri Sep 11 10:21:04 1992 Steve Chamberlain (sac@thepub.cygnus.com) + + Support for i386 coff + * obj-coffbfd.h : added stuff + * tc-i386.c (tc_coff_fix2rtype): new function + * tc-i386.h : new coff defines + +Thu Sep 10 09:23:15 1992 Ian Lance Taylor (ian@cygnus.com) + + * input-scrub.c (input_scrub_push): call input_file_begin, not + input_scrub_begin. + messages.c (as_perror): print ": " between the passed in error and + the strerror, like perror does. + +Wed Sep 9 11:06:25 1992 Ian Lance Taylor (ian@cygnus.com) + + * Makefile.in: use gas_target instead of modifying target_cpu. + From Steve Chamberlain: + Makefile.in: Handle m68*-*-coff*. + read.c, read.h: add mult argument to s_space + + * tc-m68k.c (m68k_ip, m68k_ip_op, get_num, try_moto_index): merge + Motorola and MIT syntax; gas can now assemble either type of + file. + tc-m68kmote.c, tc-m68kmote.h: removed now superfluous files. + From Steve Chamberlain: + m68kcoff.mt: for m68k COFF. + obj-coffbfd.c: (fixup_mdeps) added + (size_section) removed bad sanity check + (fill_section) added rs_machine_dependent case + (write_object_file) call fixup_mdeps + (fixup_segment) set fx_subsy to 0. + obj-coffbfd.h: define WORKING_DOT_WORD (too hard to support) and + handle m68k. + tc-m68k.c, config/tc-m68k.h: added m68k COFF support and Motorala + pseudo ops. + +Tue Sep 8 17:10:58 1992 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * Makefile.in (LIBS): Include opcode library. + +Fri Sep 4 18:20:56 1992 Ken Raeburn (raeburn@cygnus.com) + + * config/tc-m68k.c (get_num, case SEG_BIG): If only small integers + including zero are accepted, pass +0.0. + +Sun Aug 30 21:24:46 1992 Ian Lance Taylor (ian@cygnus.com) + + * Makefile.in: map "as" through program_transform_name when + installing. + + * doc/Makefile.in: map "as" through program_transform_name when + installing. + +Sat Aug 29 12:11:12 1992 Jim Wilson (wilson@sphagnum.cygnus.com) + + * Makefile.in (as.new): Depend on LOCAL_LOADLIBES. + +Fri Aug 28 16:25:22 1992 Ian Lance Taylor (ian@cygnus.com) + + * obj-bout.h, obj-bout.c (obj_header_append, obj_symbol_to_chars), + tc-i960.c (md_ri_to_chars): Always output bout object file in + little endian byte order (used to use endianness of host). + +Tue Aug 25 15:50:48 1992 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * config/tc-m68k.c (init_table): Now const. Always include 68851 + data, so that "bc" is available to 68040 cache instructions. + Added "tt0", "tt1", and 68ec030 variants. + (md_assemble): Complain if 68000 (only) and 68881 are specified. + (enum _register): Added TT0, TT1. + (m68k_ip, cases '3' and 't'): Handle new operand type codes. Pass + line number correctly in "internal error" messages. Don't print + architecture-mismatch message for operand errors. + + From Colin Smith (colin@wrs.com): + * config/tc-m68k.c (m68k_ip, case '_'): Use addword twice rather + than install_operand. + +Tue Aug 25 15:13:48 1992 Steve Chamberlain (sac@thepub.cygnus.com) + + * listing.c (buffer_line): rewind to the start of include + files, they might be included twice. + + * z8k.c, z8k.h, z8k.mt: z8000 support stuff + +Mon Aug 24 12:45:43 1992 Ian Lance Taylor (ian@cygnus.com) + + * Makefile.in: defined TARGET_CPU for C code so that it can choose + one element of a family. + + * tc-m68k.c: use TARGET_CPU to choose default cpu type. + + * te-generic.h: default to LOCAL_LABELS_DOLLAR and LOCAL_LABELS_FB + so that we can assemble hand-written libgcc code. + +Fri Aug 21 14:38:44 1992 Ken Raeburn (raeburn@cambridge.cygnus.com) + + * messages.c (as_warn): Use fputs, not fprintf, with a buffer that + has already been formatted (but may still contain %-characters). + (as_bad): Likewise. + +Wed Aug 19 11:20:59 1992 Ian Lance Taylor (ian@cygnus.com) + + * tc-m68k.c, tc-m68kmote.c: the cas2 instruction is supposed to be + written with indirection on the last two operands, which can be + either data or address registers. Added a new operand type 'r' + which accepts either register type. Added '(' to notend stuff in + tc-m68kmote.c to accept (a0):(a2) in cas2 instruction. + +Wed Aug 19 09:25:09 1992 Ken Raeburn (raeburn@cygnus.com) + + * as.h (enum _relax_state): Start off at one, not zero, to better + catch uninitialized-variable errors. + (linkrelax): Declare new variable. + + * messages.c (warning_count, error_count): Default initializer is + sufficient. + + * write.c: Merged some declarations, using PARMS macro. + (text_frag_root, data_frag_root, bss_frag_root, text_last_frag, + data_last_frag): No longer static. + (write_object_file, case rs_align or rs_org): If HANDLE_ALIGN is + defined, call it. Change segments before calling fixup_segment. + (relax_align): If linkrelax, provide extra padding. + + * obj-bout.c (obj_emit_relocations): Emit alignment relocs despite + their not having symbols associated. + + * tc-i960.c (norelax, instrument_branches): Default initializer is + sufficient. + (linkrelax): Delete variable definition. + (mem_fmt): Call fix_new with NO_RELOC. + (tc_bout_fix_to_chars): Handle alignment relocs. + (i960_handle_align): New function. + * tc-i960.h (linkrelax): Delete declaration. + (HANDLE_ALIGN): New macro; calls i960_handle_align. + (NEED_FX_R_TYPE, NO_RELOC): New macros. + +Tue Aug 18 14:59:21 1992 Ken Raeburn (raeburn@cygnus.com) + + * config/sparc.mt: New file. Grab sparc opcode table from bfd + library. + +Tue Aug 18 14:16:38 1992 Ian Lance Taylor (ian@cygnus.com) + + * Makefile.in: always create installation directories. Removed + MINUS_G, set CFLAGS to default to -g, added FLAGS_TO_PASS, passed + FLAGS_TO_PASS to recursive makes. + + * doc/Makefile.in: always create installation directories. + +Mon Aug 17 15:09:56 1992 Steve Chamberlain (sac@thepub.cygnus.com) + + * input-scrub.c (input_scrub_pop, input_scrub_push): memcpy was + being used with args swapped, causing occasional lossage when + refilling buffers after an include file. + +Mon Aug 17 13:18:51 1992 Ken Raeburn (raeburn@cygnus.com) + + * messages.c (as_tsktsk): Use correct ANSI form for stdarg + version. Discard bogus DONTDEF version. + (as_warn, as_bad, as_fatal): Likewise. + +Fri Aug 14 18:31:14 1992 Ken Raeburn (raeburn@cygnus.com) + + * config/tc-m68k.c (m68k_ip): If instruction is invalid for the + selected architecture, print a message saying so and listing what + processors support it, rather than saying "operands mismatch". + +Thu Aug 13 13:53:19 1992 Ken Raeburn (raeburn@cygnus.com) + + * as.h [BROKEN_ASSERT]: If defined, turn off all assertion checks. + + * config/ho-rs6000.h (M_RS6000): Don't define it. + (free): Declare it. + (BROKEN_ASSERT): Define it if not __STDC__. + +Tue Aug 11 12:58:14 1992 Ken Raeburn (raeburn@cygnus.com) + + * sparc.mt: New file. + +Mon Aug 10 14:37:08 1992 Per Bothner (bothner@cygnus.com) + + * tc-m68k.c: ".align N" means align to N-byte boundary *only* + if TN_SUN3; otherwise align to 2**N-byte bounary. + +Thu Aug 6 12:10:39 1992 Steve Chamberlain (sac@thepub.cygnus.com) + + * read.c (s_fill): make the .fill size clamped error a warn and + fix bug where 0's were always placed. + + * config/tc-h8300.c: if a :8 is seen after an operand, fill top + two bytes of any constant with 0xff: + +Wed Aug 5 12:02:40 1992 Steve Chamberlain (sac@thepub.cygnus.com) + + * config/tc-m68k.c (md_pseudo_table): fix the .align thing + the right way; for just the 68k. Sun 3 .align is nbytes, not ptwo. + +Wed Aug 5 01:54:34 1992 John Gilmore (gnu at cygnus.com) + + * tc-m68k.c (try_index): Error if index scaling specified and + assembling for an older CPU than a 68020. + +Sat Aug 1 19:10:13 1992 Ken Raeburn (raeburn@cygnus.com) + + * config/tc-sparc.c (tc_aout_fix_to_chars): If pc-relative, take + fx_offset into account. + +Fri Jul 31 21:53:28 1992 Ken Raeburn (raeburn@cygnus.com) + + * configure.in (mips host): Accept "ultrix" with version number. + + * expr.c (floating_constant): Separate "=-" to avoid confusing + ancient or broken compilers. + + * config/tc-m68k.c (m68k_ip): Mismatch error could also indicate + processor/opcode mismatch, so reword the error message. + (md_assemble): If no CPU has been set (even if FPU/PMMU + characteristics have been), default to 68020. Don't need extra + quotes around error string. + +Fri Jul 31 12:26:34 1992 Jim Wilson (wilson@sphagnum.cygnus.com) + + * read.c (potable): Revert sac's incorrect change made Jul 13. + Align really is supposed to be ptwo not nbytes. + +Mon Jul 20 02:51:59 1992 D. V. Henkel-Wallace (gumby@cygnus.com) + + * Makefile.in: _Do_ include libiberty. (from sef) + +Fri Jul 17 15:15:28 1992 Ken Raeburn (raeburn@cygnus.com) + + * expr.c (integer_constant): Handle "0f" and "0b" label references + properly. + +Thu Jul 16 08:20:17 1992 Steve Chamberlain (sac@thepub.cygnus.com) + + * write.c (fixup_segment): if relaxing, don't do anything. + * config/obj-bout.[ch] : maintain the a_relaxable file header info + * config/tc-i960.c: new option -linkrelax + +Mon Jul 13 14:11:36 1992 Steve Chamberlain (sac@thepub.cygnus.com) + + * expr.c (expr): allow SEG_BSS in expressions + * read.c (potable): align should be nbytes, not ptwo! + * write.c (write_object_file): extra glue for new bss attributes + (relax_segment): SEG_BSS is ok now + * config/tc-m68k.c (m68k_ip_op): can now parse more @( modes + +Mon Jul 6 17:09:32 1992 Steve Chamberlain (sac@cygnus.com) + + * obj-coffbfd.c (fill_section): mark .lit sections as STYP_LIT + +Mon Jun 1 16:20:22 1992 Michael Tiemann (tiemann@cygnus.com) + + * configure.in: recognize m680x0 as having sun3 emulation mode for + vxworks environment. + + +Tue Jun 30 20:25:54 1992 D. V. Henkel-Wallace (gumby@cygnus.com) + + * Makefile.in: Add program_suffix (parallel to program_prefix) + +Wed Jun 24 10:57:54 1992 Steve Chamberlain (sac@thepub.cygnus.com) + + * app.c (process_escape): new function to handle escapes the right + way, (do_scrub_next_char): use new function + * cond.c (s_ifdef): do ifdef/ifndef right + * read.c (s_fill): make the , expressions optional like the doc + says + * config/tc-h8300.[ch]: better warnings + +Tue Jun 9 07:54:54 1992 Steve Chamberlain (sac@thepub.cygnus.com) + + * subsegs.c (subsegs_begin): create bss0_frchainP in the same was + as data0_frchainP + + * write.c (write_object_file): various changes to handle data in + the BSS segment in much the same was as stuff in the DATA segment. + + * tc-m68k.c (m68kip): Fix typo so that only arch's >=68020 do + pcrel data stuff. (md_estimate_size_before_relax): when relaxing a + 68010 bxx into a bra+6 jmpxx, put the bytes of the jmp opcode into + the right place. (s_bss): Don't put .bss stuff into SEG_DATA, put + it into SEG_BSS + +Thu Jun 4 11:59:13 1992 Steve Chamberlain (sac@thepub.cygnus.com) + + * expr.c(expr): allow SEG_REGISTER in expressions. + * read.c(pseudo_set): register expressions can be the source of a + set. + * subsegs.c (subseg_new): Now -R forces all changes to SEG_DATA to + goto SEG_TEXT (if a.out) + * write.c (write_object_file): If a.out don't use the old way for + -R. + * config/obj-a.out (s_sect): complain if the user tries to use a + subsegment with a value which might interfere with out -R hackery. + * config/tc-m68k.c (m68k_reg_parse): lookup names in symbol table + rather than use ugly if tree. (init_regtable): insert register + names into symbol table. + +Tue Jun 2 16:47:09 1992 Steve Chamberlain (sac@cygnus.com) + + * write.c (write_object_file): keep the fix_tail clean, which + fixes a bug in -R where relocations were being lost. + +Mon Jun 1 16:20:22 1992 Michael Tiemann (tiemann@cygnus.com) + + * configure.in: recognize m680x0 as having sun3 emulation mode for + vxworks environment. + +Sun May 31 05:33:00 1992 david d `zoo' zuhn (zoo@cygnus.com) + + * configure.in: recognize m680x0 as an m68k + +Thu May 28 11:22:02 1992 Jim Wilson (wilson@sphagnum.cygnus.com) + + * configure.in: Recognize sparclite as a sparc variant. + + * tc-sparc.c: Use new ARCHITECTURES_CONFLICT_P macro. Mention new + -Asparclite flag. + +Tue May 26 16:47:56 1992 Steve Chamberlain (sac@thepub.cygnus.com) + + * config/tc-a29k.c: lint + * listing.c, expr.c: patches from Andrew Smith + +Thu May 14 17:22:48 1992 K. Richard Pixley (rich@rtl.cygnus.com) + + * doc/Makefile.in: use m4 rather than gm4. + +Mon May 4 18:56:19 1992 Steve Chamberlain (sac@thepub.cygnus.com) + + * obj-coffbfd.c: use is a synonym for section, (do_relocs_for): + calc the base of relocs correctly. + * tc-a29k.c (parse_operand): allow expressions to be in any section. + +Mon Apr 27 13:13:31 1992 K. Richard Pixley (rich@cygnus.com) + + * as.c, write.c: use -K rather than -k for the broken word warning + option. + +Tue Apr 21 13:35:30 1992 K. Richard Pixley (rich@cygnus.com) + + * Makefile.in: do not print recursion lines. + +Wed Apr 15 21:19:31 1992 K. Richard Pixley (rich@rtl.cygnus.com) + + * Makefile.in: the tooldir copy of gas goes directly in tooldir. + +Tue Apr 14 14:50:22 1992 Ken Raeburn (Raeburn@Cygnus.COM) + + * write.c (write_object_file): For b.out format, round up section + start addresses to match required alignment. + +Thu Apr 9 05:45:29 1992 Ken Raeburn (Raeburn@Cygnus.COM) + + * Makefile.in (install): Install into $(tooldir)/bin, since that's + where gcc looks for it. + +Tue Apr 7 15:12:15 1992 Sean Eric Fagan (sef@cygnus.com) + + * Makefile.in: Changed some lines to be less confusing for some + makes. + + * input-file.c: Conditionalize on _IOFBF, not VMS. + + * read.c, write.c: Change a series of ifdef/elif to + ifdef/else/ifdef etc. + +Fri Mar 27 12:21:16 1992 K. Richard Pixley (rich@cygnus.com) + + * symbols.c (fb_label_init): fix sizeof to memset. + +Fri Mar 13 15:45:44 1992 K. Richard Pixley (rich@cygnus.com) + + * Makefile.in: install the man page. + + * Makefile.in: pass down MAKEINFO explicitly on info. + + * doc/Makefile.in: use $(MAKEINFO) not makeinfo. + +Fri Mar 13 08:03:03 1992 Steve Chamberlain (sac@thepub.cygnus.com) + + * flonum-const.c: renamed flonum-konst.c to stop dos name + conflict. + +Thu Mar 12 04:42:38 1992 K. Richard Pixley (rich@cygnus.com) + + * tc-m68k.h, te-sun3.h: moved LOCAL_LABELS_FB definition from + tc-m68k.h to te-sun3.h. + +Wed Mar 11 23:32:42 1992 K. Richard Pixley (rich@cygnus.com) + + * configure.in: vxworks68 gets te-sun3.h. + + * expr.c: remove limitation that local_labels_dollar or + local_labels_fb must be < 10. + + * symbols.c: remove local_labels_dollar, replace with a function + interface for a sparse array. All users adjusted. + + * te-sun3.h: add LOCAL_LABELS_DOLLAR. + +Sat Mar 7 00:06:25 1992 K. Richard Pixley (rich@rtl.cygnus.com) + + * doc/Makefile.in: commented out line for building as-all.texinfo. + This is temporary. + + * doc/as.texinfo, doc/as-all.texinfo: added menu item hooks. + +Fri Mar 6 21:57:18 1992 K. Richard Pixley (rich@cygnus.com) + + * Makefile.in: added check target. + +Tue Mar 3 15:45:56 1992 K. Richard Pixley (rich@rtl.cygnus.com) + + * Makefile.in: added tooldir and program_prefix. + +Sun Mar 1 04:43:19 1992 Michael Tiemann (tiemann@cygnus.com) + + * write.{c,h} (fix_new): Make these declarations consistent. + +Sat Feb 29 13:59:10 1992 Michael Tiemann (tiemann@cygnus.com) + + * Makefile.in (strerror.o): Add rule so that broken Sun make can + work in subdirs. + +Wed Feb 26 19:26:28 1992 Steve Chamberlain (sac at thepub.cygnus.com) + + * read.c, obj-coffbfd.c : fix h8300 specific bit rot + + * expr.c (operand): if can't work out what sort of operand it is, + then look through FLT_CHARS for a hint. + +Wed Feb 26 18:04:40 1992 K. Richard Pixley (rich@cygnus.com) + + * Makefile.in, configure.in: removed traces of namesubdir, + -subdirs, $(subdir), $(unsubdir), some rcs triggers. Forced + copyrights to '92, changed some from Cygnus to FSF. + + * doc/Makefile.in, doc/configure.in: removed traces of namesubdir, + -subdirs, $(subdir), $(unsubdir), some rcs triggers. Forced + copyrights to '92, changed some from Cygnus to FSF. + +Tue Feb 25 14:17:15 1992 Steve Chamberlain (sac at rtl.cygnus.com) + + * expr.c: If an expression is single comma, then return with + SEG_ABSENT rather than an error - since the sparc front end does + really strange things with things like fbge,a + + * as.h: include bfd.h if using many sections + * expr.c: LOCAL_LABELS_FB had been changed to lower case - so + local labels didn't work. + * listing.c (list_symbol_table): don't core dump when there's no + symbol there. + * write.c, write.h: call fix_new with the right number of args on + the H8. + * config/tc-h8300.[ch] : fix bugs reported by HMSI, and make + errors nices + +Sat Feb 22 12:26:28 1992 Steve Chamberlain (sac at rtl.cygnus.com) + + * app.c: MRI compatibility - allow single quote to start a string. + * as.c: fix typo recently introduced. + * as.h : Don't include aout/reloc.h - it's not right for COFF! + * expr.c: Much rewriting, to accomodate MRI syntax for + expressions. Also easier to read now. + * listing.c: Put back defuns + * read.c: modified to accept MRI syntax, put back listing pseudo + ops so that an assembler built with NO_LISTING ignores list ops + rather than pukes. + * write.c, write.h: fixs - only keep a reloc type in a fix if the target + machine is a SPARC or a 29K. + * config/obj-aout.c: added s_sect pseudo op + * config/obj-coffbfd.c: lints, set the filehdr flags right and + fill in the timestamp. + * config/obj-coffbfd.h: Since we don't include aout/reloc.h + anymore, define all the relocs which the tc-<x> bit will use so we + can translate from them to the coff types. + * config/tc-a29k.c: reloc_type isn't ane enum any more + * config/tc-m68k.c: Added NO_RELOC definition. + +Fri Feb 21 06:21:07 1992 K. Richard Pixley (rich@rtl.cygnus.com) + + * Makefile.in: put header files before C source for TAGS; remove + references to non-existent syscalls.h. + + * read.c, write.c subsegs.c: back out the .bss changes. + + * obj-aout.c: do not include stab.gnu.h if NO_LISTING. + + * tc-i860.c, a.out.gnu.h: move i860 relocs to a proper place. + + * a.out.h: removed. + +Fri Feb 21 01:08:48 1992 Minh Tran-Le (TRANLE@INTELLICORP.COM) + + * symbols.c (local_label_name): symbols now start with ^A. + + * read.c, subsegs.c, write.c obj-coff.c: added handling of + `.bss` pseudo op for unitialized data. The new gcc (1.37.9x) + generate these sections. .align: will use NOP_OPCODE or 0 + for padding. This is just for being nice to the + disassembler. + + * expr.c (operand): changed to generate local label "\001L0" + starting with a ^A so that it is recognized as a local label. + + * as.c (perform_an_assembly_pass): zero bss_fix_root, too. + + * tc-i386.c: tc-i386.c: added handling of the following opcodes: + i/o opcodes - inb, inw, outb and outw. string manipulation with + att syntax - scmp, slod, smov, ssca, ssto. + + * obj-coff.c: (for aix386) Moved the symbols .text, .data and .bss + to just after .file . + + In obj_crawl_symbol_chain() where it tries to put the external + symbols apart, with the condition: + (!S_IS_DEFINED(symbolP) && + !S_IS_DEBUG(symbolP) && + !SF_GET_STATICS(symbolP)) + it was moving too many symbols out. So I switch it back to the + condition: + (S_GET_STORAGE_CLASS(symbolP) == C_EXT && !SF_GET_FUNCTION(symbolP)) + + In obj_emit_relocations() added the conditional on KEEP_RELOC_INFO + so that we don't use the F_RELFLG which make the linker complain + that somebody has stripped the relocation info. + + Also, the AIX ld program require that the relocation table + is sorted by r_vaddr like the standard ATT assembler does. + + [he also changed the sizeof(struct ...)'s into the coff + style FOOSZ macros. I'm not sure this is right, but I can't + remember why. xoxorich.] + +Fri Feb 21 01:08:48 1992 K. Richard Pixley (rich@cygnus.com) + + * Makefile.in, configure.in, doc: use the doc. Build it, install + it, clean it, etc. + +Tue Feb 18 02:21:25 1992 K. Richard Pixley (rich at cygnus.com) + + * read.c: white space and comments only. + + * configure.in: use the new atof-ns32.c for ns32k. + + * write.c: comment change only. + + * tc-m88k.[hc]: pulled in from hack's unfinished work. These + aren't yet integrated. + + * tc-i860.[hc]: blew off the dust. Something must still be done + about conflicting relocation types. + + * tc-ns32k.c: Replaced previous tc_aout_fix_to_chars stub with the + real thing. + + * tc-i960.c, tc-sparc.c: white space and comments only. + + * tc-a29k.h: delete duplicate macro definition. + + * new file atof-ns32k.c copied from hack's last unreleased gas. + +Mon Feb 17 07:51:06 1992 K. Richard Pixley (rich at cygnus.com) + + * config/tc-ns32k.c: actually make tc_aout_fix_to_chars work + rather than abort. + + * nearly everything. flush ChangeLog, package as gas-1.92.1. + ChangeLog's prior to this are sketchy at best. I have logs. + They just aren't ChangeLogs. |