Commit graph

1704 commits

Author SHA1 Message Date
Ian Lance Taylor
7a5157080c * Makefile.in (itbl-parse.c itbl-parse.h): Use $(BISON) and
$(BISONFLAGS), not $(YACC) and $(YACCFLAGS).
1997-02-26 16:57:38 +00:00
Ian Lance Taylor
034988c662 Based on patches from Robert Lipe <robertl@dgii.com>:
* configure.in: Add i386coff and i386elf to emulation list.
	* configure: Rebuild.
	* as.c (i386coff, i386elf): Declare.
	* obj.h (coff_format_ops): Declare.
	* config/obj-coff.c (OBJ_HEADER): Define.
	(coff_obj_symbol_new_hook): Rename from obj_symbol_new_hook.
	(coff_obj_read_begin_hook): Rename from obj_read_begin_hook.
	(obj_pseudo_table): Add "version".
	(coff_pop_insert): New static function.
	(coff_sec_sym_ok_for_reloc): New static function.
	(no_func): New static function.
	(coff_format_ops): New variable.
	* config/obj-coff.h (coff_obj_symbol_new_hook): Declare.
	(obj_symbol_new_hook): Define.
	(coff_obj_read_begin_hook): Declare.
	(obj_read_begin_hook): Define.
	* config/tc-i386.h (i386_target_format): Declare.
	* config/tc-i386.c: Check OBJ_MAYBE_ELF as well as OBJ_ELF; check
	OUTPUT_FLAVOR when appropriate.
	(i386_target_format): New function.
	* Makefile.in (obj-coff.o): New target.
	(e-i386coff.o, e-i386elf.o): New targets.
1997-02-26 04:33:08 +00:00
Ian Lance Taylor
55be99d643 Tue Feb 25 22:02:23 1997 Philippe De Muyter <phdm@info.ucl.ac.be>
* config/tc-m68k.c (instring): Useless local declaration of
	crack_operand removed.
	* expr.h (expressionS): Changed type of X_op field to operatorT if
	__GNUC__.
1997-02-26 03:04:05 +00:00
Ian Lance Taylor
a0c4a2413e From Stephen Williams <steve@icarus.icarus.com>:
* config/tc-i960.h (TC_SYMFIELD_TYPE): Define if OBJ_COFF.
	(_tc_get_bal_of_call): Don't declare.
	(tc_get_bal_of_call): Declare as function, don't define as macro.
	* config/tc-i960.c (tc_set_bal_of_call): If OBJ_COFF, store balP
	in sy_tc field, not x_balntry field.
	(tc_get_bal_of_call): Rename from _tc_get_bal_of_call.  Change
	return type to symbolS *.  If OBJ_COFF, retrieve value from sy_tc
	field, not x_balntry field.
1997-02-26 02:55:31 +00:00
Ian Lance Taylor
a90512ade8 * Makefile.in ($(OBJS)): Don't depend upon $(IT_HDRS).
(TARG_CPU_DEP_mips): Depend upon $(srcdir)/itbl-ops.h.
	(itbl-lex.o): Depend upon itbl-parse.h.

	* itbl-parse.y (yyerror): Change return type to int.  Change to
	use old style function declaration.
1997-02-25 19:36:18 +00:00
Ian Lance Taylor
ee5cb7fe02 * Makefile.in (itbl-lex.o): Remove -Wall.
(itbl-parse.o): Likewise.
1997-02-25 19:28:05 +00:00
Ian Lance Taylor
28d8c67124 * cond.c (s_ifdef): If we should omit conditionals from listings,
call listing_list.
	(s_if, s_ifc, s_endif, s_else, s_ifeqs): Likewise.
	* listing.c (list_info_struct): Add EDICT_NOLIST_NEXT.
	(listing_listing): Handle EDICT_NOLIST_NEXT.
	(listing_list): An argument of 2 means EDICT_NOLIST_NEXT.
	* listing.h (LISTING_NOCOND): Define.
	(LISTING_SKIP_COND): Define.
	* as.c (show_usage): Mention c as a suboption of -a.
	(parse_args): Handle c as a suboption of -a.
	* doc/as.texinfo: Document -alc.
1997-02-25 18:45:17 +00:00
Fred Fish
b16a8c8e09 * config/tc-tic80.c (md_apply_fix): Handle R_ABS type fixups.
(fixes several failures in generic part of GAS testsuite)
1997-02-25 06:37:51 +00:00
Martin Hunt
4d3410fd99 Mon Feb 24 15:19:57 1997 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d10v.c: Change pre_defined_registers to
	d10v_predefined_registers and reg_name_cnt to d10v_reg_name_cnt.
1997-02-24 23:22:13 +00:00
Fred Fish
ec72a26633 * config/obj-coff.c: Fix typo in comment section.
start-sanitize-tic80
	* config/tc-tic80.c (md_pseudo_table): Add entry for bss, which takes
 	an additional alignment argument.
	(find_opcode): Allow O_symbol relocs for any 32 bit field, not just
 	base relative ones.
	(build_insn): Handle O_symbol relocs for any 32 bit field, not just
 	base relative ones.
end-sanitize-tic80
1997-02-24 20:21:13 +00:00
Dawn Perchik
16aef5b049 * Makefile.in: Remove dependancies on itbl-cpu.h.
* as.c: Define stubs for itbl_parse and itbl_init if HAVE_ITBL_CPU
	is not defined.
1997-02-24 10:42:50 +00:00
Dawn Perchik
ac6c6bdb34 * itbl-ops.h: Include as.h. 1997-02-24 10:01:19 +00:00
Dawn Perchik
72797ffaa0 * as.c: Remove -t option.
* configure, configure.in: Move itbl-cpu.h to mips specific configure.
	* itbl-ops.h: Include itbl-cpu.h only if HAVE_ITBL_CPU is defined.
	* config/tc-mips.h: Define HAVE_ITBL_CPU.
1997-02-24 09:21:31 +00:00
Dawn Perchik
2f671f8415 * itbl-ops.c: Don't define DEBUG. 1997-02-24 01:57:55 +00:00
Dawn Perchik
f9f0539f36 * Makefile.in: Update itbl-test.c to reflect its new location. 1997-02-24 01:44:47 +00:00
Dawn Perchik
8d8a790b81 * itbl-ops.c: Add test for itbl_have_entries.
* config/tc-mips.c: Remove test for itbl_have_entries.
	* config/tc-mips.h: Define tc_init_after_args to mips_init_after_args.
1997-02-23 23:46:12 +00:00
Ian Lance Taylor
7b9f3d46c6 * Makefile.in (DISTSTUFF): Remove itbl-parse.y, itbl-lex.l, and
itbl-ops.c.  Add itbl-parse.c and itbl-lex.c.
	(LEX, LEXFLAGS): Define.
	* itbl-ops.c (append_insns_as_macros): Remove bogus ASSERT.
1997-02-23 23:15:09 +00:00
Dawn Perchik
efec4a282c * itbl-parse.y: Fix indentation mistakes from indent program.
* itbl-lex.l: Fix indentation mistakes from indent program.
	* itbl-ops.h: Add include for ansidecl.h.
	Add PARAMS around function arguments.
	Add declaration for itbl_have_entries.
	* itbl-ops.c: Add PARAMS around function arguments.
	* Makefile.in: Add itbl build rules.
	Add dependancies for itbl files to mips target.
	* as.c: Add itbl support.
	Add new option "--insttbl" for dynamically extending instruction set.
	* as.h: Declare insttbl_file_name;
	the name of file defining extensions to the basic instruction set
	* configure.in, configure: Add itbl-parse.o, itbl-lex.o, and
	itbl-ops.o to extra_objects for mips configuration.
	Add include file link from itbl-cpu.h to
	config/itbl-${target_cpu_type}.h.
	* config/tc-mips.c: Allow copz instructions.
	Add notes for future additions to the itbl support.
	Add debug macros.
	(macro): Call itbl_assemble to assemble itbl instructions.
	See if an unknown register is specified in an itbl entry.
1997-02-23 22:23:12 +00:00
Fred Fish
d160b69e74 * doc/internals.texi (CPU backend): Fix typo in md_section_align
description.
start-sanitize-tic80
	* config/tc-tic80.h (NEED_FX_R_TYPE): Define.
	* config/tc-tic80.c (find_opcode): Add code to support O_symbol
	operands.
	(build_insn): Grab a frag early so we can use the address in
 	fixups.  Take one's complement of BITNUM values before insertion
 	in opcode.  Add code to support O_symbol operands.
	(md_apply_fix): Replace unimplemented warning with implementation.
	(md_pcrel_from): Ditto.
	(tc_coff_fix2rtype): Ditto.
end-sanitize-tic80
1997-02-23 04:01:39 +00:00
Martin Hunt
1b52469766 Fri Feb 21 14:34:31 1997 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d30v.c (parallel_ok): New function.
	* config/tc-d30v.h: Define TARGET_BYTES_BIG_ENDIAN.
1997-02-22 00:29:55 +00:00
Martin Hunt
09d9ef26c9 Fri Feb 21 14:34:31 1997 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d10v.c (md_pcrel_from_section): Return 0 if
        relocation is in different section. Fixes PR11574.
1997-02-21 22:36:21 +00:00
Ian Lance Taylor
b2f7cdd005 * config/tc-m68k.c (line_comment_chars): Add '*'. 1997-02-21 19:54:34 +00:00
Jim Wilson
e2e5acfa75 Fix linker relocation overflow errors for the NEC vr4300/ddb toolchain.
These changes are related to Ian's gas/libgloss changes of Dec 13/Dec 18.
	* tc-mips.c (mips_ip): If configured for an embedded ELF system,
	don't set the section alignment to 2**4.
	* mips/ddb.ld: Align the location counter before setting _gp, and
	before setting edata.  Remove ALIGN from _gp computation.
	* mips/idt.ld, mips/pmon.ld: Before setting _gp, use ALIGN(8) instead
	of ALIGN(16).  Remove ALIGN from _gp computation.
1997-02-21 18:28:36 +00:00
Ian Lance Taylor
830ce6319a * app.c (LEX_IS_TWOCHAR_COMMENT_2ND): Don't define.
(do_scrub_begin): Don't set lex['*'].
	(do_scrub_chars): When handling LEX_IS_TWOCHAR_COMMENT_1ST, don't
 	check for LEX_IS_TWOCHAR_COMMENT_2ND.  Instead, just check for
	a literal '*'.
1997-02-21 17:21:09 +00:00
Ian Lance Taylor
fee3e248a6 * configure.in: Set em=svr4 for m68k-*-sysv4*.
* configure: Rebuild.
	* config/te-svr4.h: New file.
	* config/tc-m68k.c (m68k_comment_chars): Only include `#' if
	TE_SVR4 or TE_DELTA.
1997-02-21 17:00:45 +00:00
Jeff Law
48242b28d6 * config/tc-mn10200.c (md_convert_frag): Create a fixup for the
short conditional branch around a long unconditional branch.
Showing the reloc will allow the linker to shorten the long unconditional
branch or remove the long unconditional branch entirely when relaxing.
1997-02-21 05:27:10 +00:00
Ian Lance Taylor
64c5df8d21 * config/obj-coff.c (obj_coff_ln [both versions]): Call
new_logical_line.
PR 11725.
1997-02-20 19:12:05 +00:00
Ian Lance Taylor
1af411e17e * symbols.c (resolve_symbol_value): If both left and right
operands are undefined, warn about both of them.
PR 11724.
1997-02-20 18:58:40 +00:00
Michael Meissner
c6c7035cfb Since d10v is public now, remove all sanitization statements 1997-02-20 16:05:18 +00:00
Ian Lance Taylor
dd7feeb5ce Based on patches from Eric Youngdale <eric@andante.jic.com>:
* config/obj-elf.c (elf_pseudo_table): Add "symver".
	(obj_elf_symver): New static function.
	* config/obj-elf.h (OBJ_COPY_SYMBOL_ATTRIBUTES): Copy the st_other
	field.
1997-02-19 21:33:00 +00:00
Ian Lance Taylor
78673fc661 * read.c (get_line_sb): Don't end the line on a semicolon inside a
string.
PR 11715.
1997-02-19 05:54:00 +00:00
Martin Hunt
14f23c288c Tue Feb 18 18:42:51 1997 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d30v.c, config/tc-d30v.h: New files.

 	* configure: Rebuilt.

	* configure.in: Add case for d30v.
1997-02-19 02:53:39 +00:00
Ian Lance Taylor
f5ed78de1f Based on notes from Peter Eriksson <peter@ifm.liu.se>. The target
does not actually work, though:
	* configure.in (i386-sequent-bsd*): New target.
	* configure: Rebuild.
	* config/tc-dynix.h: New file.
	* config/tc-i386.h: Define TARGET_FORMAT if TE_DYNIX.
1997-02-14 23:40:49 +00:00
Ian Lance Taylor
b253dcffc8 Fri Feb 14 18:09:59 1997 Philippe De Muyter <phdm@info.ucl.ac.be>
* config/tc-m68k.c (LOCAL_LABEL): Macro redefined if TE_DELTA.
	(tc_canonicalize_symbol_name): Macro defined if TE_DELTA.
 	* config/obj-coff.c (obj_coff_def): Use
	tc_canonicalize_symbol_name if defined.
	(obj_coff_tag, obj_coff_val): Likewise.
	* expr.c (operand): Reject '~' as operator if is_name_beginner.
1997-02-14 23:12:29 +00:00
Ian Lance Taylor
d7bf6158eb * read.c (do_align): Add max parameter. Change all callers.
Remove useless static variables.
	(s_align): New static function.  Do common portion of
	s_align_bytes and s_align_ptwo.
	(s_align_bytes, s_align_ptwo): Just call s_align.
	* frags.c (frag_align): Add max parameter.  Change all callers.
	(frag_align_pattern): Likewise.
	* frags.h (frag_align, frag_align_pattern): Update declarations.
	* write.c (relax_segment): Limit alignment change to fr_subtype.
	Fix some types to be addressT.
	* config/obj-coff.c (size_section): Likewise.
	* config/obj-ieee.c (size_section): Likewise.
	* config/tc-d10v.h (md_do_align): Add max parameter.
	* config/tc-i386.h (md_do_align): Likewise.
	* config/tc-m88k.h (md_do_align): Likewise.
	* config/tc-m88k.c (m88k_do_align): Likewise.
	* config/tc-sh.h (md_do_align): Likewise.
	* config/tc-sh.c (sh_do_align): Likewise.
	* as.h: Improve comments on rs_align and rs_align_code.
	* doc/as.texinfo: Document new alignment arguments.
	* doc/internals.texi (Frags): Document use of fr_subtype field for
	rs_align and rs_align_code.
1997-02-14 22:49:25 +00:00
Fred Fish
16171d7127 * config/{tc-alpha.h, tc-arc.h, tc-d10v.h, tc-generic.h, tc-i960.h,
tc-mn10200.h, tc-mn10300.h, tc-sh.h, tc-v850.h, tc-vax.h, tc-w65.h}:
	Add default definition of zero for TARGET_BYTES_BIG_ENDIAN.
	* config/{tc-arm.h, tc-hppa.h, tc-i386.h, tc-mips.h, tc-ns32k.h,
 	tc-ppc.h, tc-sparc.h}: Move definition of TARGET_BYTES_BIG_ENDIAN
	to a location consistent with the rest of the target include files.
	* config/tc-i386.c: Remove misleading comment.
	* doc/internals.texi (CPU backend): Add description of function
	md_undefined_symbol.
start-sanitize-tic80
	* config/tc-tic80.c: Add code to insert predefined symbols into the
	symbol table so they can be parsed by the standard expression parser.
	Remove custom code that use to parse them.
	* config/tc-tic80.h: Move definition of TARGET_BYTES_BIG_ENDIAN
	to a location consistent with the rest of the target include files.
end-sanitize-tic80
1997-02-14 07:53:14 +00:00
Ian Lance Taylor
3de9d78cef * config/tc-sparc.c (md_show_usage): Add missing backslash at end
of continued line.
1997-02-14 03:09:46 +00:00
Ian Lance Taylor
9f13ead922 Thu Feb 13 21:44:18 1997 Klaus Kaempf <kkaempf@progis.de>
* as.h: GNU c provides unlink() function.

	Unify section handling on openVMS/Alpha:
	* config/tc-alpha.c(s_alpha_link): Remove.
	(s_alpha_section): New function.
	Remove case-hacking of symbols
	Add .code_address pseudo-op.
	(BFD_RELOC_ALPHA_CODEADDR): New relocation.
	(s_alpha_code_address): New function.
	(alpha_ctors_section, alpha_dtors_section): New sections for C++
	static constructors/destructors.
	Add debug code for crash debugs, to be removed when traceback code
	is added to object code.
	(s_alpha_name): New function for .name pseudo-op.
	(alpha_print_token): New function to print token expressions with
	alpha specific extensions.

	* makefile.vms: Allow compilation with current gcc snapshot.
1997-02-14 02:55:29 +00:00
Fred Fish
af16e4115d * doc/Makefile.in (TEXI2DVI): Set to just name of program.
(DVIPS): Set to dvips.
	(ps, as.ps, gasp.ps): New targets.
	(internals.info, gasp.dvi, internals.dvi): Set both TEXINPUTS
 	and MAKEINFO env variables.
	(internals.ps): Use DVIPS macro.
	(clean): Remove core and backup files.
	(distclean): Remove temporary files from building internals.
	(clean-dvi): Ditto.
	* doc/internals.texi (Frags): Fix typo.
	(GAS processing): Ditto.
	(CPU backend): Ditto.
	* ecoff.c (init_file): Use TARGET_BYTES_BIG_ENDIAN value directly.
	* mpw-config.in: Define TARGET_BYTES_BIG_ENDIAN as 1.
	* read.c: Remove ugly hack that dealt with config files not
	correctly defining TARGET_BYTES_BIG_ENDIAN.
	(target_big_endian): Use TARGET_BYTES_BIG_ENDIAN directly.
	* config/arm-big.mt: Define TARGET_BYTES_BIG_ENDIAN to 1.
	* config/arm-lit.mt: Define TARGET_BYTES_BIG_ENDIAN to 0.
	* config/mips-big.mt: Define TARGET_BYTES_BIG_ENDIAN to 1.
	* config/mips-lit.mt: Define TARGET_BYTES_BIG_ENDIAN to 0.
	* config/ppc-lit.mt: Define TARGET_BYTES_BIG_ENDIAN to 1.
	* config/ppc-sol.mt: Replace TARGET_BYTES_LITTLE_ENDIAN
	with TARGET_BYTES_BIG_ENDIAN defined to 0.
	* config/tc-arm.h: Remove use of TARGET_BYTES_LITTLE_ENDIAN
	and simplify.  Test value of TARGET_BYTES_BIG_ENDIAN, not just
	whether it is defined or not.
	* config/tc-mips.h: Remove use of TARGET_BYTES_LITTLE_ENDIAN.
	* config/tc-ppc.h: Remove use of TARGET_BYTES_LITTLE_ENDIAN
	and simplify. Test value of TARGET_BYTES_BIG_ENDIAN, not just
	whether it is defined or not.
start-sanitize-tic80
	* config/tic80.h (TARGET_FORMAT): Define to coff-tic80.
	(TARGET_BYTES_BIG_ENDIAN): Define to 0.
end-sanitize-tic80
1997-02-14 01:04:19 +00:00
David Edelsohn
89b41978ab * write.c (write_relocs): Correct text in as_fatal error message,
bfd_perform_relocation -> bfd_install_relocation.
1997-02-13 23:08:52 +00:00
Ian Lance Taylor
151c3ec043 Thu Feb 13 14:48:03 1997 Philippe De Muyter <phdm@info.ucl.ac.be>
* config/tc-m68k.c (LEX_TILDE): Define if TE_DELTA.
	* read.c (LEX_TILDE): Define if not defined.
	(lex_type): Use LEX_TILDE.
	* expr.c (get_symbol_end): Check first char with is_name_beginner,
	not is_part_of_name.
1997-02-13 19:50:01 +00:00
Ian Lance Taylor
319305a75f * config/tc-mips.c (mips16_extended_frag): Correct base address
for an extended PC relative instruction.
	(md_convert_frag): Likewise.
1997-02-13 18:33:26 +00:00
Ian Lance Taylor
4a1cb5078b * config/tc-mips.c (prev_nop_frag): New static variable.
(prev_nop_frag_holds): New static variable.
	(prev_nop_frag_required): New static variable.
	(prev_nop_frag_since): New static variable.
	(append_insn): If we aren't reordering, and prev_nop_frag is not
	NULL, and we don't need any nops, then decrease the size of
	prev_nop_frag.  Don't insert nops because of instructions in
	noreorder sections.  Remember whether the previous instructions
	where in noreorder sections even when not reordering.
	(mips_no_prev_insn): Add preserver parameter.  Change all
	callers.  Refer prev_nop_frag variables when appropriate.
	(mips_emit_delays): Set up prev_nop_frag.
	(s_mipsset): Clear prev_nop_frag if reordering.
1997-02-13 17:25:10 +00:00
Ian Lance Taylor
9cd4e6cc51 * config/tc-mips.c (append_insn): Remove useless code which
handled swapping a mips16 jump with a mips16 instruction with a
	reloc.
1997-02-13 01:29:39 +00:00
Ian Lance Taylor
c0df26bb95 revert earlier patch to set prev_insn_valid when not reordering 1997-02-12 21:36:17 +00:00
Ian Lance Taylor
05874c2e35 * config/tc-mips.c (md_parse_option): When debugging, set
mips_optimize to 1, not 0.
1997-02-12 21:30:02 +00:00
Ian Lance Taylor
56bb6eeef7 * config/tc-mips.c (mips16_ip): Handle an extend operand. 1997-02-12 20:43:15 +00:00
Ian Lance Taylor
eb17f56cf5 * config/tc-mips.c (my_getExpression): In mips16 mode, if it looks
like the expression was based on `.', adjust the value of the
	symbol.
1997-02-12 20:38:20 +00:00
Ian Lance Taylor
035936da05 * config/tc-mips.c (append_insn): Warn about an attempt to put an
extended instruction in a delay slot when not reordering.  Set
 	prev_insn_valid even if not reordering.
	(md_convert_frag): Warn if an extended instruction appears in a
	delay slot.
1997-02-12 20:20:11 +00:00
Ian Lance Taylor
ed3eb78691 * config/tc-mips.c (mips_pseudo_table): Add "insn".
(s_insn): New static function.
	* doc/c-mips.texi: Document .insn.
1997-02-12 20:00:15 +00:00