blob: 2ea3bb382a91aa6a107a2febbeb2a9d73e199011 [file] [log] [blame]
Sat Dec 30 23:42:51 1995 Jeffrey A Law (
* ecoff.c (ecoff_stab): Simplify. Correctly handle sym + offset
addresses for static variables.
Thu Dec 21 12:54:32 1995 Michael Meissner <>
* 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 <>
* config/tc-mips.c (load_address): Correctly handle a constant in
SVR4_PIC case. From Richard Kenner <>.
Fri Dec 15 14:25:07 1995 J.T. Conklin <>
* 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 <>
* ecoff.c (ecoff_build_aux): Use new bfd_big_endian macro.
Fri Dec 15 12:11:48 1995 Raymond Jou <>
* mpw-make.sed: If linking, edit ALL_CFLAGS to CFLAGS.
Thu Dec 14 15:09:52 1995 Ian Lance Taylor <>
* 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 <>
* (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/ (maintainer-clean realclean): Split out from
distclean. Depend upon clean-info and distclean.
Mon Dec 11 16:23:51 1995 Stan Shebs <>
* 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 <>
* 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 <>
* config/obj-multi.h: If OBJ_MAYBE_ELF, define OBJ_SYMFIELD_TYPE.
Tue Dec 5 13:26:34 1995 Ken Raeburn <>
* read.c (s_fill): If md_flush_pending_output is defined, call
Mon Dec 4 15:10:53 1995 Ken Raeburn <>
* 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 (
* 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 <>
* 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 <>
* 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 <>
* 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 <>
* 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 <>
* 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 <>
* 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 <>
* stabs.c (s_stab_generic): In 's' case, free string from
* config/obj-elf.h (ELF_TARGET_SYMBOL_FIELDS): Remove unused field
* config/obj-multi.h (ELF_TARGET_SYMBOL_FIELDS) [OBJ_MAYBE_ELF]:
* 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
* 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.
* symbols.c (symbol_print_statistics): New function.
* symbols.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
* 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.
(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 <>
* configure: Rebuild with autoconf 2.7.
Tue Nov 21 18:39:01 1995 Ian Lance Taylor <>
* aclocal.m4 (AC_PROG_CC): Remove local definition.
* configure: Rebuild with autoconf 2.6.
Mon Nov 20 17:26:00 1995 Ian Lance Taylor <>
* 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 <>
* (TARG_CPU_DEP_alpha): Mention alpha-opcode.h.
* config/alpha-opcode.h: Include one-operand variants of jmp and
* config/te-delt88.h: Renamed from te-delta88.h, to avoid conflict
with te-delta.h in 8.3 file systems.
* Adjusted.
Thu Nov 16 12:49:38 1995 Ian Lance Taylor <>
* 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
* expr.c (operand): Handle MRI suffixes after unadorned 0.
Thu Nov 16 00:21:44 1995 Ken Raeburn <>
Version 2.6 released.
* (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 <>
* 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 <>
* config/tc-i386.h (md_do_align): cast fill and 0x90 to char
before comparing
Mon May 1 10:91:49 1995 Alan Modra <>
* 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 <>
* 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 <>
* config/tc-m68k.c (s_mri_until): Call pop_mri_control.
Mon Nov 13 20:39:06 1995 Stan Shebs <>
* (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 (
* 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 <>
* 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 <>
* 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
* 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 <>
* (a29k-nyu-sym1): New target, just like other a29k
Wed Nov 8 11:38:48 1995 Ian Lance Taylor <>
* config/obj-coff.c (c_dot_file_symbol): Cast xmalloc return.
Tue Nov 7 09:14:35 1995 Kim Knuttila <>
* 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 <>
* 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 <>
* 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 <>
* 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 <>
* 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 <>
* (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
* 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.
Wed Nov 1 16:07:43 1995 Ken Raeburn <>
* 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 <>
* config/obj-elf.h: Include bfd/elf-bfd.h rather than
Tue Oct 31 16:34:28 1995 David Mosberger-Tang <>
* (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
* config/tc-mips.c (mips_pseudo_table): Remove "extern".
(s_extern): Remove.
Tue Oct 31 13:29:08 1995 Ian Lance Taylor <>
* 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
(ppc_frob_symbol): Set BSF_NOT_AT_END for symbols with csect aux
* input-scrub.c (input_scrub_push): Reset sb_index.
Mon Oct 30 17:52:46 1995 Ian Lance Taylor <>
* listing.c (listing_newline): Don't create a frag in the absolute
Sat Oct 28 01:02:05 1995 Ian Lance Taylor <>
* config/tc-ppc.c (md_pseudo_table): Add "data" and "text".
(ppc_csect): Move most of the code to ppc_change_csect, and call
(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 <>
* 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 (
* config/tc-arm.c (do_ldst): Assemble ldr/str r0, [r1] as a
pre-increment instruction.
Wed Oct 25 11:59:24 1995 Per Bothner <>
* (diststuff): Also make info.
(maintainer-clean realclean): Also make clean-info.
Tue Oct 24 15:21:33 1995 Jeffrey A Law (
* 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 <>
* 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.
* 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
Mon Oct 23 16:20:04 1995 Ken Raeburn <>
* 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 <>
* 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 <>
* 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
(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
* 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
* as.h (chunksize): Declare it.
* read.c (read_begin): Use it.
* config/tc-alpha.c (md_shortopts): Include 'g'.
(md_parse_option): Ignore it.
* (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
Wed Oct 18 12:22:59 1995 Ken Raeburn <>
* 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 <>
* 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 <>
* 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 <>
* 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 <>
* 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 <>
* config/tc-mips.c: Correct s_cons arguments. From Michael
Joosten <>.
Mon Oct 9 19:59:53 1995 Ian Lance Taylor <>
* 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 <>
Mon Sep 25 22:49:32 1995 Andreas Schwab <>
* (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 <>
* 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 <>
* (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 <>
* 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.
* (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 <>
* 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 <>
* 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 <>
* 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 <>
* 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 <>
* config/m68k-parse.y (m68k_reg_parse): In MRI mode, permit
periods in register names.
Sat Sep 30 23:03:31 1995 Jeff Law (
* config/tc-hppa.c (hppa_fix_adjustable): DP relative relocs
are not adjustable in SOM to avoid confusing the optimizing
Fri Sep 29 15:18:08 1995 Ian Lance Taylor <>
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
* expr.c (operand): Treat '!' as logical not operator. If
TC_I960, in MRI mode permit `sizeof secname' and `startof
(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_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 <>
* 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.
* 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 <>
* 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 <>
* config/tc-arm.h (TARGET_FORMAT): Define for arm-coff.
Wed Sep 27 12:53:58 1995 Ian Lance Taylor <>
* 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
(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 '?'.
* No need to check whether ${cpu_type} is powerpc;
it never will be.
* configure: Rebuild.
Wed Sep 27 11:33:38 1995 Michael Meissner <>
* 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.
* (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 <>
* config/tc-ppc.c (ppc_elf_suffix): Support all of the V.4
(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 <>
* config/tc-ppc.c (ppc_elf_suffix): Lower case reloc before
(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 <>
* 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,
* Fix typo: fmt-elf to fmt=elf.
Fri Sep 22 16:34:46 1995 Michael Meissner <>
* 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 <>
* config/tc-ppc.c (md_parse_option): -mrelocatable-lib now only
Thu Sep 21 16:30:56 1995 Ian Lance Taylor <>
* subsegs.c (subseg_set): Permit SEG_ABSOLUTE in know expression.
* expr.c (expr): Account for new operatorT values in know
* write.c (fixup_segment): Clear fixp->fx_subsy if the relocation
is fully resolved.
Thu Sep 21 14:11:49 1995 Michael Meissner <>
* 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 <>
* (maintainer-clean): New target, synonym for
realclean. Add GNU standard maintainer-clean echos.
* doc/ (maintainer-clean): New target, synonym for
Tue Sep 19 11:31:31 1995 Ian Lance Taylor <>
* 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 <>
* 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
* 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
(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 <>
* (mips-dec-netbsd*): New target.
* configure: Rebuild.
Sun Sep 17 22:17:43 1995 Ian Lance Taylor <>
* Set endian to little for mips-*-ultrix*.
* configure: Rebuild.
Fri Sep 15 13:16:55 1995 Ian Lance Taylor <>
* 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 (
* config/tc-m68k.c: Change some "CONST" references to "const".
Fri Sep 15 17:27:41 1995 Ken Raeburn <>
Tue Sep 12 17:08:23 1995 Pat Rankin <>
* 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 <>
* (EXPECT): New variable.
(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.
* 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
(md_convert_frag_1): Don't call subseg_change.
(md_estimate_size_before_relax): Likewise.
Tue Sep 12 10:36:40 1995 Doug Evans <>
* 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 <>
* doc/ 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 <>
* 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.
* (install): Don't install gasp in $(tooldir).
* config/tc-mips.c (macro): Handle a non zero base register for
* gasp.c (show_usage): Put program_name argument in first fprintf,
not second.
Thu Sep 7 12:33:58 1995 Ian Lance Taylor <>
* 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 <>
* 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 <>
* 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 <>
* 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 <>
* 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 <>
* When testing for a free() declaration in system
header files, cast the address to a function pointer, not to an
* 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
* config/tc-ns32k.h (TC_FIX_TYPE, fx_bsr, TC_INIT_FIX_DATA): New
* 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:
* 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 <>
* write.c (fixup_segment): Get TC_FORCE_RELOCATION up the
right way!
Fri Sep 1 08:20:19 1995 James G. Smith <>
* 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 <>
* 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 <>
* 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 <>
* config/tc-arm.c (tc_gen_reloc): Delete duplicated code.
Wed Aug 30 23:51:57 1995 Ian Lance Taylor <>
* 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 <>
* 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 <>
* config/tc-sparc.c (membar_masks): Deleted.
(sparc_ip): Clean up ASI and membar support.
Tue Aug 29 13:20:27 1995 steve chamberlain <>
* 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 <>
* config/tc-arm.c (do_swi): Allow optional leading '#'.
Sat Aug 26 17:24:20 1995 Ian Lance Taylor (
* config/tc-m68k.c (comment_chars): If TE_DELTA is defined,
include '#'.
* config/tc-m68k.h (NO_PSEUDO_DOT): Define if TE_DELTA is
* 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
* 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
Thu Aug 24 18:50:19 1995 Ian Lance Taylor (
* gasp.c (as_abort): New function.
* sb.c (sb_build): Revert yesterday's patch.
* ( Depend upon ../libiberty/libiberty.a.
Just link against libiberty, not against $(LIBS).
Wed Aug 23 15:18:20 1995 Ian Lance Taylor (
* 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 <>
* 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
(md_begin): Only set target_big_endian if !set_target_endian.
Tue Aug 22 03:00:33 1995 Ken Raeburn <>
Sat Aug 19 18:08:16 1995 Pat Rankin <>
* 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 <>
* 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 (
* messages.c (as_perror): Use xstrerror instead of strerror.
Mon Aug 21 13:57:20 1995 Ian Lance Taylor <>
* 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
(parse_mri_control_operand): Adjust start and stop to remove
(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
* 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
(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.
* (OBJS): Add sb.o and macro.o
(GASPOBJS): Define.
( 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
Mon Aug 21 13:41:33 1995 Michael Meissner <>
* config/tc-ppc.c (md_assemble): Allow @HA, @L, and @H suffixes on
constant expressions.
Sun Aug 20 15:54:37 1995 Jim Wilson <>
* config/tc-arm.c (md_reloc_size): Add const to declaration.
Fri Aug 18 10:58:09 1995 Ian Lance Taylor <>
* 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
(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 <>
* as.h (alloca): Use void* declaration on HP/UX.
Wed Aug 16 12:49:17 1995 Ian Lance Taylor <>
* 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
* 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
* doc/as.texinfo: Take out note that .startof. and .sizeof. are
not supported.
Tue Aug 15 15:08:49 1995 Ian Lance Taylor <>
* 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 <>
* 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 (
* 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 <>
* 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): 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 <>
* 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 (
* 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 <>
* (TE_OBJS): Add empty definition.
Fri Aug 11 19:16:08 1995 Ian Lance Taylor <>
* 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_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
(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
* config/tc-h8300.h (TARGET_BYTES_BIG_ENDIAN): Define.
Fri Aug 11 13:23:56 1995 Michael Meissner <>
* 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 <>
* 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 <>
* 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.
* (m68k-parse.o): Depend upon m68k-parse.h, not
* 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,
(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 <>
* 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
* 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
* 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,
(read_a_source_file): If pseudo-op handler is s_end, quit
(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.
* Move random special target handling before
possible break.
* configure: Rebuild.
Tue Aug 8 23:41:25 1995 Alan Modra <>
* Consistently use ${target_cpu_type} rather than
${cpu_type} after the loop.
* configure: Rebuild.
* (targ-cpu.o): Use @target_cpu_type@ rather than
Tue Aug 8 17:27:17 1995 Ken Raeburn <>
* 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 <>
* 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 <>
* 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
Tue Aug 8 02:31:38 1995 Ken Raeburn <>
* write.c (relax_align): Add extra padding for linkrelax only if
* config/tc-i960.h (LINKER_RELAXING_SHRINKS_ONLY): Define it.
* doc/internals.texi (Relaxation): Write up some stuff on linker
Mon Aug 7 17:18:10 1995 Ian Lance Taylor <>
* 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
(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.
(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.
* If cpu_type is m68k, put m68k-parse.o in
* configure: Rebuild.
* (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 (
* 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 <>
* expr.c (op_encoding): Make non-const. Don't set '"' to
(expr_begin): Set op_encoding['"'] in MRI mode.
Wed Aug 2 18:39:43 1995 Ian Lance Taylor <>
* 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
Tue Aug 1 17:35:26 1995 Ian Lance Taylor <>
* 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
* 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
* 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
(cons): In MRI mode, always call parse_mri_cons rather than
(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 <>
* config/tc-sh.c (md_convert_frag): Make some error messages
more explicit.
Mon Jul 31 21:40:47 1995 Ken Raeburn <>
Sat Jul 29 18:55:23 1995 Pat Rankin <>
* 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 <>
* 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 <>
* config/tc-ppc.h (SUB_SEGMENT_ALIGN): Define. From Niclas
Andersson <>.
Thu Jul 27 20:47:12 1995 Ken Raeburn <>
* 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.
* (i386-*-linuxoldld): Add as synonym for
i386-*-linux*aout*. From Fred Fish.
* configure: Regenerated.
Thu Jul 27 16:14:56 1995 Pat Rankin <>
* 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 <>
* 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 <>
* 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
Fri Jul 21 15:28:18 1995 Pat Rankin <>
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 <>
* 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.
(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
* config/tc-sh.h (HANDLE_ALIGN): Define.
(sh_handle_align): Declare.
(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 <>
* config/tc-ppc.c (ppc_elf_suffix): Add support for R_PPC_SDAREL
(md_apply_fix3): Ditto.
Thu Jul 20 13:00:56 1995 Ken Raeburn <>
* config/tc-m68k.c (md_convert_frag): Rename argument seg to sec,
since seg is a macro name in this file.
* (arm-*-riscix*): Don't set emulation.
Wed Jul 19 16:08:29 1995 Doug Evans <>
* 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 <>
* 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
(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.
(sh_coff_reloc_mangle): Declare.
(tc_coff_sizemachdep): Declare.
* tc.h (md_convert_frag): Add segT parameter to non BFD_ASSEMBLER
* 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
(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 <>
* 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 <>
* config/tc-ppc.c (ppc_elf_suffix): Add @fixup so that the
compiler can mark which relocs not to complain about with
(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 <>
Add support for SPARC SunOS PIC:
* config/tc-sparc.h (sparc_pic_code): Always declare, not just
when OBJ_ELF.
(tc_fix_adjustable): New definition for OBJ_AOUT.
* config/tc-sparc.c (sparc_pic_code): Always define, not just when
(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
Thu Jul 13 21:16:43 1995 Jeff Law (
* 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
Wed Jul 12 23:33:40 1995 Ian Lance Taylor <>
* config/obj-coff.c (fixup_segment): Support MD_APPLY_FIX3.
Wed Jul 12 01:12:12 1995 Ken Raeburn <>
* write.c (fix_new): Use int, not short int, for argument type.
(fix_new_exp): Ditto.
* (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
* 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 <>
* doc/c-mips.texi: Document -m4010 and -mno-4010.
Tue Jul 11 14:28:55 1995 Jeff Spiegel <>
* 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
(md_show_usage): Document -m4010 and -no-m4010.
Tue Jul 11 13:22:50 1995 Ian Lance Taylor <>
* 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
Mon Jul 10 16:01:31 1995 Ken Raeburn <>
* doc/as.texinfo: Split out most cpu chapters...
* doc/c-*.texi: here.
* read.c (po_hash): Now static.
Mon Jul 10 13:47:22 1995 Ian Lance Taylor <>
Based on patches from H.J. Lu <>:
* 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.
* When switching on ${cpu}, use ${cpu}, not
$[target_cpu}, in default case.
* configure: Rebuild.
Sat Jul 8 13:27:55 1995 Ian Lance Taylor <>
* 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 <>
* 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
(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_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): Add dependency on, so that conf
is rebuilt when changes.
Thu Jul 6 16:49:38 1995 Ken Raeburn <>
* All files: Updated FSF address.
Thu Jul 6 16:30:34 1995 Jim Wilson <>
* 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 <>
Patches from Jerry Blakely <>:
* 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
* 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
(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
(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 <>
* Regenerate with autoreconf.
Mon Jul 3 19:47:53 1995 Pat Rankin (
* 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 <>
* 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.
* 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_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.
* 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
* 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.
* config/tc-mips.h (LOCAL_LABEL): Call mips_local_label.
(mips_local_label): Declare.
Wed Jul 5 00:59:22 1995 Fred Fish (
* as.c (main): Only use sbrk when HAVE_SBRK defined.
* Add test for sbrk.
* configure: Regenerate using autoconf 2.4.
Mon Jul 3 15:58:16 1995 Jeff Law (
* 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)
(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 <>
* configure[.in] (i386-*-win32): New host and target.
Thu Jun 29 17:25:43 1995 Steve Chamberlain <>
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 <>
* config/obj-coff.c (fixup_segment): PE doesn't use
the strange common symbol format that other 386s formats
* 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 <>
* 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 <>
Sun May 7 11:53:41 MDT 1995 Bryan Ford <>
* Added i386-*-moss* target.
Thu Jun 22 14:41:23 1995 Michael Meissner <>
* 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 <>
Changes from Andreas Schwab <>:
* config/tc-m68k.c (insword): Increment the frag offsets.
(struct m68k_it): Add reloc[].pcrel_fix field to hold pc-rel
(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
(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
(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
* 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 <>
* gasp.c (do_print, do_form, buffer_and_nest): Use case insensitive
string compares.
Tue Jun 20 14:55:02 1995 Ken Raeburn <>
* config/obj-coff.c (write_object_file): Cast time() argument to
time_t *.
Tue Jun 20 12:00:53 1995 Jeff Law (
* config/tc-hppa.c (pa_build_unwind_subspace): Fix typo in last
Mon Jun 19 15:27:17 1995 Jeff Law (
* config/tc-hppa.c (pa_build_unwind_subspace): Zero out memory
from frag_more calls.
Thu Jun 15 16:53:37 1995 Stan Shebs <>
* config/obj-coff.c: Don't use "bfd/" when including libbfd.h
and libcoff.h.
(fill_section): Call PROGRESS.
* (INCLUDES): Add bfd srcdir.
* Add bfd_gas flag and set for each config.
(i386-unknown-go32, m68k-unknown-coff): Recognize.
Thu Jun 15 10:04:26 1995 Doug Evans <>
* config/tc-arm.h (LOCAL_LABEL): Prepend '.' if not OBJ_AOUT.
(FAKE_LABEL_NAME): Likewise.
Mon Jun 12 22:25:39 1995 Jeff Law (
* 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 (
* 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.
(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 <>
* 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 (
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 <>
* config/tc-arm.h (LOCAL_LABELS_FB): Define.
Mon Jun 5 02:17:58 1995 Ken Raeburn <>
* (i386-*-gnu*): Always use GNU ELF config.
Wed May 31 17:49:18 1995 Pat Rankin (
* 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 (
* (architecture variants, cases armeb and arm*): Remove
spaces round assignment to endian.
Tue May 30 12:31:31 1995 Ken Raeburn <>
* 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 <>
* config/te-dpx2.h: Include obj-format.h.
Wed May 24 13:45:32 1995 Steve Chamberlain <>
* configure,, config/obj-coff.c, config/obj-coff.h:
Add support for ARM pe
Tue May 23 17:00:32 1995 Doug Evans <>
* config/tc-sparc.c (tc_gen_reloc): Handle BFD_RELOC_SPARC_WDISP16
Tue May 23 19:18:33 1995 Ken Raeburn <>
* as.c (parse_args) [! USE_EMULATIONS]: Always print an error
* doc/internals.texi: Document obj_app_file and
Mon May 22 20:03:23 1995 Ken Raeburn <>
* ecoff.c (ecoff_stab): Add extra leading argument, for 4 May
* 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.
* (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 (
* 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 <>
Added improved VMS support from Pat Rankin:
Fri 19 May 16:51:40 1995 Pat Rankin (
* 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 (
* (VMS_OTHER_OBJS): delete this.
* ( build ../libiberty/liberty.olb
first if necessary; link gas against it.
Fri May 19 16:37:39 1995 Richard Earnshaw (
* gasp.c (istrue): Correctly test for string inequality.
Thu May 18 04:25:11 1995 Ken Raeburn <>
Wed May 10 14:28:16 1995 Richard Earnshaw (
* config/tc-arm.c (CP_T_{Pre,UD,WB}): Define, bits in co-processor
([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
(FPU_{CORE,FPA10,FPA11,NONE,ALL,MEMMULTI}): Define floating point
({CPU,FPU}_DEFAULT): Define.
(cpu_variant): New variable.
(asm_flg): Change more_flags to flag_bits.
Add prototypes for new functions.
(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 (
* (architecture variants): Check for "armeb" and "arm*",
set endianness accordingly.
* read.c (read_a_source_file): New hooks md_start_line_hook and
* 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
(LONGEST_FLAG, flags[]): Delete.
(arm_psr): New structure.
(psrs[]): New variable.
(PSR_ALL): Define.
(LONGEST_INST): Bump to 5.
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
(struct literalS): New structure.
(literals, next_literal_pool_place, lit_pool_num, current_poolP): New
(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
(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
Wed May 17 05:25:16 1995 Michael Meissner <>
* 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 <>
* 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 <>
* 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 <>
* 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
Fri May 12 14:17:47 1995 Steve Chamberlain <>
Initial support for PE object files.
*, 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 <>
* config/obj-elf.c (NEED_ECOFF_DEBUG): Define if ECOFF_DEBUGGING
was defined by header files. Test in preprocessor conditionals
(ecoff_debug_pseudo_table): Make empty if NEED_ECOFF_DEBUG is not
(obj_read_begin_hook, obj_symbol_new_hook, elf_frob_symbol,
elf_frob_file): Only call ecoff routines if NEED_ECOFF_DEBUG is
(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
Wed May 10 18:09:12 1995 Ken Raeburn <>
* (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
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
* emul.h: New file.
* as.h [USE_EMULATIONS]: Include it.
* 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.
* Define I386COFF, M68KCOFF, M88KCOFF for those
* 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
(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
Tue May 9 17:07:41 1995 Michael Meissner <>
* Add little endian PowerPC support.
* configure: Rebuild with autoconf.
* config/ New file for big endian PowerPC systems.
* config/ 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 (
* 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 (
* 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 <>
* 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
Fri May 5 14:47:13 1995 Ken Raeburn <>
* config/obj-coff.h (SEPARATE_STAB_SECTIONS): Define to 1, not
* 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 <>
* 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,
* 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 <>
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
Wed May 3 13:08:53 1995 Jeff Law (
* 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 (
* configure (hppa*-*-lites*): Handle just like hppa*-*-*elf*.
* Likewise.
Tue May 2 11:22:00 1995 Ken Raeburn <>
* 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
* 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
* config/tc-mips.c (g_switch_value, g_switch_seen): Define
(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):
(OPTION_CALL_SHARED, OPTION_NON_SHARED, mips_regmask_frag): Define
Tue May 2 00:17:04 1995 Ken Raeburn (
* (TARG_CPU_DEP_*): New variables.
(targ-cpu.o): Depend on one, selected by autoconf substitution,
* Substitute $cpu_type, $obj_format, $atof, and
$emulation into
* config/ Deleted.
* config/ Deleted.
* config/ (TARG_CPU_DEPENDENTS): Deleted.
* config/ Deleted.
* config/ (TARG_CPU_DEPENDENTS): Deleted.
* config/ (TARG_CPU_DEPENDENTS): Deleted.
* config/ (TARG_CPU_DEPENDENTS): Deleted.
* config/ (TARG_CPU_DEPENDENTS): Deleted.
* config/ Deleted.
* config/ Deleted.
* config/ 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 <>
* 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
* 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 <>
* (RUNTEST): Use one in srcdir if present.
Wed Apr 26 15:54:10 1995 Ken Raeburn <>
Support for more portable alignment handling in assembly code,
based on patches from Bryan Ford <>:
* 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 <>
* configure, Look for m68k-*-vxworks* rather than
just m68k-wrs-vxworks so gas can be configured for
Fri Apr 21 15:19:06 1995 Ken Raeburn <>
* 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 <>
* 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 <>
* 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 <>
* config/tc-m68k.c (m68k_init_after_args): Test for m68360.
(md_parse_option): Likewise.
(md_show_usage): Mention m68360.
* config/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 <>
* 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 <>
* (TDEFINES): Put empty definition into
makefile fragment.
* (xmalloc.c.o): Remove.
( Depend on Version.r.
(Version.r): Generate from version info.
* Delete references to hex-value.c.
* Add mapping from configs to object file formats,
get VERSION from and add to mk.tmp.
* (VERSION, gC): Don't define.
(ALL_CFLAGS): Remove -d flags.
(config.h): Remove definition of MPW, add HAVE_STDARG_H,
* (ALL_CFLAGS): Add definition of HAVE_STDARG_H,
include of ::libiberty:.
(config.h): Ifdef contents on GAS_VERSION.
* (as.c): Compile with C not gC.
(config-stamp): Touch correctly.
(install-only): New target.
(install): Depend on all and install-only.
* Parse target and use to generate forward includes
to tc-, obj-, and atof- files, use te-generic.h for emulation.
* (VERSION): Define.
(as.c): Compile with GCC.
(config.h, config-stamp): Build.
* (C, CFLAGS): Removed definitions.
(ALL_CFLAGS): Define.
Set default rule to use {CC} instead of {C}.
* (install): Moved here from
* Removed, functionality in
* (CFLAGS): Add more include paths.
* (varargs.h, sys/*.h): Don't create when
* (CFLAGS): Add -w flag.
* Replace 8-bit chars with their names.
* New file, MPW version of
* New file, MPW version of
Tue Apr 11 01:42:36 1995 Ken Raeburn <>
* Require at least autoconf 2.3, because earlier
versions lose on some AIX versions.
* configure: Regenerated.
* 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.
these the same way for OBJ_ELF as for M68KCOFF.
* 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
(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:
* 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):
* 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
Mon Apr 10 15:57:42 1995 Ken Raeburn <>
* 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
(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): Fix rule for running config.status.
(internals.dvi,, 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 (
* 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 <>
* 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 <>
* config/tc-mips.c (md_show_usage): Mention -mips4 and -m4650.
Fri Mar 17 16:47:13 1995 Stan Shebs <>
* write.c (write_object_file): Add PROGRESS macros.
Fri Mar 17 12:40:34 1995 Jeff Law (
* 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 <>
* 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 <>
* 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 <>
* config/tc-mips.c (load_register): Don't use addiu for dli of an
unsigned seemingly negative number. Don't bother shifting a zero
(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 <>
* 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 <>
* 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 (
* 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 <>
* 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 <>
* config/obj-coff.c (coff_header_append): Check return value of
Thu Mar 9 13:51:30 1995 Doug Evans <>
Delete this patch, it breaks the h8300 assembler.
Tue Jan 10 13:34:14 1995 Ken Raeburn <>
* 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 <>
* 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 <>
* 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_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 <>
* 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 <>
* 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 <>
* doc/as.texinfo: Add documentation for SPARC V9, from Doug Evans
Mon Mar 6 09:58:34 1995 Jeff Law (
* 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
(need_pa11_opcode): Likewise.
Sun Mar 5 19:38:09 1995 Jeff Law (
* 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 <>
* config/tc-h8300.* (md_operand): Change empty function to empty
* config/tc-h8300.c (build_bytes): Make H8/300-H warning message
* 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 <>
* tc.h (md_apply_fix3): If MD_APPLY_FIX3 is defined, declare
* 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 <>
* config/tc-i386.h (AOUT_MACHTYPE): Define as 100, not 0.
Tue Feb 28 18:29:27 1995 Ken Raeburn <>
* 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
* read.c (s_app_line): Ignore non-positive line numbers.
Tue Feb 28 15:34:14 1995 Ian Lance Taylor <>
* 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 <>
* add a29k-*-vxworks configuration.
Fri Feb 24 14:41:15 1995 Ian Lance Taylor <>
* config/tc-mips.c (load_register): Take dbl argument to determine
handling of signed 32 bit values in 64 bit modes. Change all
(macro): Handle M_DLI and M_DLA_AB.
Wed Feb 22 23:10:56 1995 Jeff Law (
* 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 <>
* 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 <>
* 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 <>
* config/tc-ppc.c (md_pseudo_table): Don't redefine byte under
(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 <>
* expr.c (operand): Move md_operand handling to default case
(so it works).
Wed Feb 15 16:08:47 1995 Jason Molenda <>
* config/tc-h8500.c (tc_coff_symbol_emit_hook): Add ignored
parameter, to match prototype.
Wed Feb 15 15:07:00 1995 Michael Meissner <>
* 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
(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_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 <>
* 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 <>
* 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 <>
* 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 <>
* 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 <>.
* 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 (
* 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 <>
* messages.c (as_abort): New function.
* as.h (as_abort): Declare it.
(abort): New macro.
Thu Jan 19 18:10:05 1995 Pat Rankin (
* config/vms-conf.h (HAVE_UNISTD_H): define it unconditionally.
* test for availability of <unistd.h>; create a
rudimentary one if necessary.
Tue Feb 7 13:34:46 1995 Michael Meissner <>
* Add powerpc-*-eabi support, which is the same as
(configure): Rebuild with autoconf.
Mon Feb 6 03:37:00 1995 Ken Raeburn <>
Changes from Bryan Ford <> 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.
* (i386-*-msdos*): New target, using a.out format.
* configure: Regenerated.
Thu Feb 2 15:21:24 1995 Ken Raeburn <>
* 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 (
* 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 (
* 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 (
* 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 <>
* config/tc-ppc.h (NO_STRING_ESCAPES): Don't define if we are
using ELF.
Thu Jan 26 19:03:42 1995 Ken Raeburn <>
* 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 <>
* 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 <>
* 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 <>
* config/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.
Correct minimum and maximum branch offsets. Add comments explaining
why these numbers are correct.
Wed Jan 25 15:32:09 1995 David Edelsohn <>
* 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 <>
* 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 (
* 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 (
* 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 <>
* configure: Regenerated.
* config/tc-mips.c: Include libiberty.h.
Mon Jan 23 14:07:58 1995 Ian Lance Taylor <>
* 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.
* (i386-*-gnu*elf*): New target.
Sat Jan 21 19:02:23 1995 Ian Lance Taylor <>
* 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 <>
* hash.c (hash_code): Undo last change.
Thu Jan 19 14:49:47 1995 Ken Raeburn <>
* 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"
* 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
Wed Jan 18 13:49:26 1995 Ken Raeburn <>
* 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 <>
* 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
(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.
* config/tc-h8300.h (tc_reloc_mangle): Declare.
Tue Jan 17 10:58:06 1995 Ian Lance Taylor <>
* 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
* 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/ Newfiles.
* config/obj-coff.h: Cope with w65.
* configure, Recognize w65.
Thu Jan 12 17:56:24 1995 Ken Raeburn <>
* 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.
* (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 <>
* 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
* 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 <>
* 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 <>
* 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 <>
* 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 <>
* 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 <>
* 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
* (dependencies): Make $(OBJS) depend on as.h and
everything it includes. Delete those files from per-file
* 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.
* 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 (
* 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 <>
* subsegs.h: Include obstack.h.
Tue Dec 27 18:16:04 1994 Ken Raeburn <>
* as.h (struct frag): Enable align* components now.
Tue Dec 20 14:56:31 1994 Ken Raeburn <>
* 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
* 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'
Tue Dec 20 13:40:36 1994 Ian Lance Taylor <>
* config/obj-coff.h: Include bfd/libcoff.h, not libcoff.h.
Mon Dec 19 16:53:36 1994 Ian Lance Taylor <>
* config/tc-mips.c (load_register): Rewrite to handle O_big 64 bit
(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 (
* 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 <>
* Recognize mips-sony-bsd and mips-dec-bsd, but
reject other vendors until we can be sure we're consistent with
* 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 <>
* 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.
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 <>
* 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 <>
* 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 <>
* 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 <>
* 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 <>
* 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 legal expression difference to
correspond to changes in pseudo_set in read.c.
Fri Dec 9 21:04:17 1994 Ken Raeburn <>
* write.c (write_relocs) [RELOC_EXPANSION_POSSIBLE]: Use
* 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 <>
* (NM_FOR_TARGET): Use ../binutils/, not just
plain nm.
* (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 <>
Use libiberty version of xmalloc:
* (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
* 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
(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
* 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
(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 <>
* 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 (
* 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 (
* config/obj-coff.h (TARGET_FORMAT): Select between coff-shl and
* config/ (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 (
* config/tc-hppa.c (tc_gen_reloc, ELF variant): Revert last