Commit graph

304 commits

Author SHA1 Message Date
Ian Lance Taylor
c978e704a9 * Preliminary support for m88k-coff.
* configure.in (m88k-*-coff*): New target.  Use coffbfd and
	m88kcoff.
	* config/m88kcoff.mt: New file.
	* read.c (lex_type): New macro LEX_AT to set lex type of '@'.
	(pseudo_set): Handle difference of symbols in different fragments
	by saving the entire expression as the value of the symbol.
	* symbols.c (resolve_symbol_value): Resolve difference
	expressions.
	* config/obj-coffbfd.c (obj_pseudo_table): If TC_M88K, accept
	"sdef" as a synonym for "def".
	* config/obj-coffbfd.h: If TC_M88K, include coff/m88k.h and set
	TARGET_FORMAT.
	(S_IS_LOCAL): Any symbol which includes \001 in the name is local.
	* config/tc-m88k.c, config/tc-m88k.h: Numerous changes to bring
	m88k port up to date, and to add COFF support.
1993-07-15 16:02:21 +00:00
Ian Lance Taylor
5868b1fe68 * Removed sy_forward and replaced it with an undefined expression
as the value of a symbol.
	* struc-symbol.h (struct symbol): Removed sy_forward field.  Added
	sy_resolved and sy_resolving single bit fields.
	* symbols.c (symbol_new): Don't initialize sy_forward field.
	(resolve_symbol_value): New function to adjust symbol value by
	fragment address, using recursion to resolve forward symbols.
	* symbols.h: Added prototype for new function.
	* read.c (pseudo_set): Set symbolP->sy_value to an undefined
	expression rather than setting symbolP->sy_forward.
	* write.c (write_object_file): Use resolve_symbol_value on
	symbols, keeping the common case (the old behaviour) inline.
	* config/obj-aout.c (obj_aout_frob_symbol): Removed sy_forward
	handling (subsumed by write.c change).
	* config/obj-coff.c, config/obj-coffbfd.c (obj_coff_val): Set
	sy_value rather than sy_forward.
	* config/obj-coffbfd.c (obj_coff_endef, yank_symbols): Check
	expression segment rather than sy_forward.
	(yank_symbols): Use resolve_symbol_value.
	(crawl_symbols): Removed extra pass over symbols.
	* config/obj-aout.c, config/obj-bout.c, config/obj-coff.c,
	config/obj-vms.c (obj_crawl_symbol_chain): Removed extra pass over
	symbols which handled sy_forward; use resolve_symbol_value
	instead.
	* config/obj-coff.h, config/obj-coffbfd.h (obj_frob_forward_symbol):
	Define.
	* config/obj-elf.c (obj_elf_stab_generic): Check expression
	segment rather than sy_forward.
	* config/obj-vms.c (VMS_Check_For_Main): Don't initialize
	sy_forward; do initialize sy_resolved and sy_resolving.
	* config/tc-hppa.h (STAB_FIXUP): Use sy_value, not sy_forward.
1993-07-14 22:21:25 +00:00
Ian Lance Taylor
85051959f4 * Changes to keep a full expression as the value of a symbol, not
just a longword:
	* struc-symbol.h: New field sy_value.
	* as.h: Include expr.h before struc-symbol.h.
	* expr.h: Use struct symbol rather than symbolS.
	* symbols.c (S_GET_VALUE, S_SET_VALUE): Rewrote to retrieve value
	of sy_value field; compile unconditionally, not just if
	BFD_ASSEMBLER.
	* symbols.h: Compile S_{SG}ET_VALUE prototypes unconditionally.
	* write.c (write_object_file): Set BFD symbol value to gas symbol
	value.
	* config/obj-aout.h, config/obj-bout.h, config/obj-coff.h,
	config/obj-coffbfd.h, config/obj-generic.h, config/obj-vms.h
	(S_GET_VALUE, S_SET_VALUE): Removed macro definitions.
	* config/obj-ieee.c (S_GET_VALUE, S_SET_VALUE): Removed.
	* config/obj-coff.h, obj-coffbfd.h: Rewrote several macros to use
	S_GET_VALUE rather than ost_entry.n_value.
	* config/obj-aout.c (obj_symbol_to_chars), config/obj-bout.c
	(obj_symbol_to_chars), config/obj-coff.c (obj_symbol_to_chars),
	config/obj-coffbfd.c (symbol_to_chars): Get value to write out
	using S_GET_VALUE--don't assume it is already set.
	* config/obj-ieee.c (do_symbols): Set BFD symbol value to gas
	symbol value.
	* config/obj-vms.c (various): Don't assign directly to
	S_GET_VALUE; use S_SET_VALUE instead.
1993-07-14 19:35:45 +00:00
Steve Chamberlain
1728686e66 cvs core dumps again... 1993-07-13 19:13:18 +00:00
Steve Chamberlain
489a93f3c3 * config/tc-h8500.c (line_comment_chars): Add hash.
(parse_exp, skip_colonthing, build_bytes): Add support for
	R_H8500_HIGH16 relocation type.
1993-07-13 19:12:10 +00:00
Mark Eichin
025b030243 fix definitions of md_create_long_jump, md_create_short_jump,
md_number_to_chars, and md_section_align to correctly use valueT and addressT
1993-07-12 19:42:32 +00:00
Mark Eichin
c463189d53 update use of valueT and addressT 1993-07-12 18:58:50 +00:00
Ken Raeburn
5d4ef2968b config/obj-elf.c (obj_elf_section): Allow `@' to introduce an attribute name.
Handle `execinstr' attribute.
1993-07-12 15:17:10 +00:00
Ian Lance Taylor
99c24539c5 * config/tc-mips.c (mips_ip): Don't warn on 'i' or 'j' mismatch if
there is another alternative for the instruction.
1993-07-12 14:24:20 +00:00
Ian Lance Taylor
332fc09ff0 Clean up some of the obvious m88k bitrot.
It still doesn't actually compile, though.
1993-07-09 18:31:36 +00:00
Ken Raeburn
b25654337a Oops, not all of the tc-sparc.c change was format-independent.
Still handles both syntaxes independent of format.
1993-07-08 19:09:19 +00:00
Mark Eichin
c47d388b75 Thu Jul 8 14:41:43 1993 Mark Eichin (eichin@cygnus.com)
* config/tc-i960.c (md_create_short_jump, md_create_long_jump,
	md_number_to_chars, md_section_align): Adjusted to use valueT,
	addressT, to match tc.h.
1993-07-08 18:44:32 +00:00
Ken Raeburn
ff4cac3854 config/tc-sparc.c (s_common): Revamp to handle both syntaxes, and not be
target-specific.
1993-07-08 18:40:50 +00:00
Ian Lance Taylor
4e2e8744c5 This file was not removed last time. Why?? 1993-07-07 17:29:12 +00:00
Ian Lance Taylor
918692a5cc * config/mips-opcode.h: Moved to opcode/mips.h.
* config/tc-mips.c: Include opcode/mips.h rather than
	mips-opcode.h.
	(append_insn): An extra NOP is only needed after instructions
	which set HI or LO, not after instructions which read it.
	(macro_build, mips_ip): Support new 'E', 'G' and 'B' arguments.
	(macro): cfc1 and ctc1 now take "t,G" rather than "t,d".
	* config/tc-mips.h (struct mips_opcode): Don't define.
	* config/mips-big.mt, config/mips-lit.mt (TARG_CPU_DEPENDENTS):
	Set to $(srcdir)/../include/opcode/mips.h.

	Get the MIPS assembler up to speed with other gas changes:

	* config/obj-ecoff.c (ecoff_set_vma, ecoff_frob_symbol):
	Removed; don't change the symbol value.
	(ecoff_build_symbols, ecoff_build_procs, ecoff_frob_file): Use
	bfd_asymbol_value rather than S_GET_VALUE to include section
	vma in symbol value.
	(ecoff_frob_file): Ignore BSF_SECTION_SYM symbols, since ECOFF
	doesn't output them.  Set the vma of sections.
	* config/obj-ecoff.h: Don't define obj_frob_symbol.
	* config/tc-mips.c (tc_gen_reloc): Adjustment by section vma is no
	longer necessary.
	(various): use valueT rather than long.
1993-07-07 17:23:39 +00:00
Ken Raeburn
125f0b0d84 (sparc_ip): Initialize `len' variable to make gcc shut up.
(md_create_short_jump, md_create_long_jump, md_number_to_chars,
md_section_align): Adjusted for new interface.

(s_reserve): Permit use for other than a.out format.
(s_common): Handle Solaris-2 version.

(s_xword): For numbers, call big_cons.
(sparc_ip, md_apply_fix, tc_gen_reloc): Handle some sparc64 reloc types.
(md_number_to_chars): Handle 8-byte values.
1993-07-07 16:58:29 +00:00
Ken Raeburn
3c8df4ba76 (md_create_short_jump, md_create_long_jump,
md_number_to_chars, md_section_align): Adjusted for new interface.
1993-07-07 16:56:24 +00:00
Ken Raeburn
6e3785155d Change various calls (e.g., to symbol_new, md_number_to_chars) to cast
valueT or addressT arguments to correct types.
1993-07-07 16:40:30 +00:00
Ken Raeburn
bd4d4b8aca (obj_elf_frob_symbol, elf_frob_file, elf_file_symbol): Declare.
(elf_symbol): For sparc v9, use 64-bit symbol type.
1993-07-07 16:22:12 +00:00
Ken Raeburn
dee576a0a7 clean v9 from obj-elf.h 1993-07-07 16:19:59 +00:00
Ken Raeburn
25c09bbf44 Define ENV64 for sparc v9. 1993-07-07 16:17:29 +00:00
Ken Raeburn
7d0ed38fc3 (free): Returns void if __STDC__. 1993-07-07 16:14:44 +00:00
David D. Zuhn
bb554e9423 fix decls 1993-07-02 01:33:33 +00:00
Ian Lance Taylor
267389df6d * read.c (cons): Conditionalize parsing of expression. Move
putting value into object file into separate function.  Separate
	out MRI and WANT_BITFIELDS cases into separate functions.
	(emit_expr): New function to write data into object file.
	Conditionalize on TC_CONS_FIX_NEW and TC_CONS_RELOC rather than on
	processor types.
	(parse_bitfield_cons): New function to parse bitfield expressions
	as used by i960 assemblers.  Only compiled if
	BITFIELD_CONS_EXPRESSIONS is defined.
	(parse_mri_cons): New function to parse MRI style strings.  Only
	compiled if MRI is defined.
	(parse_repeat_cons): New function to parse repeat counts.  Only
	compiled if REPEAT_CONS_EXPRESSIONS is defined.
	* read.h (emit_expr): Added declaration of new function.
	* config/tc-a29k.h (TC_CONS_RELOC): Define to be RELOC_32.
	* config/tc-h8300.h (TC_CONS_RELOC): Define to be R_RELWORD.
	* config/tc-hppa.c (parse_cons_expression_hppa): New function to
	parse a HPPA expression, rather than special case in cons
	function.
	(cons_fix_new_hppa): New function to emit an HPPA fixup, rather
	than special case in emit_expr function.
	* config/tc-hppa.h (TC_PARSE_CONS_EXPRESSION, TC_CONS_FIX_NEW):
	Define to use new functions from tc-hppa.c.
	* config/tc-i960.h (BITFIELD_CONS_EXPRESSIONS): Define.
	(WANT_BITFIELDS): Removed; now obsolete.
	* config/tc-mips.h (REPEAT_CONS_EXPRESSIONS): Define.
	* config/tc-ns32k.c (cons_fix_new_ns32k): New function to emit an
	NS32K fixup, rather than special case in emit_expr function.
	* config/tc-ns32k.h (TC_CONS_FIX_NEW): Define to be
	cons_fix_new_ns32k.  Also use PARAMS rather than checking
	__STDC__.
	* config/tc-sparc.h (TC_CONS_RELOC): Define to RELOC_32.

	* write.c (relax_and_size_seg, adjust_reloc_syms, write_contents):
	Don't core dump if gas has no information about a section.
1993-06-30 18:27:41 +00:00
Ken Raeburn
d4ac2d09fd New files for sparc64 cpu. 1993-06-30 10:30:54 +00:00
Ken Raeburn
ed9638af53 (tc_gen_reloc): Handle BFD_RELOC_SPARC_WDISP22 relocation.
(s_local) [OBJ_ELF]: New function.
(md_pseudo_table) [OBJ_ELF]: Call it for "local".
(s_common): Rearrange to handle Solaris .common pseudo, which may sometimes use
bss space instead of common.
(md_parse_option) [OBJ_ELF]: Print version id for -V.  Ignore -Q and -s options
for now.
1993-06-25 09:51:47 +00:00
Ken Raeburn
17145ba27a Sun Jun 20 02:34:04 1993 Ashley Saulsbury (ans@sics.se)
* m88k-opcode.h : fixed tiny tiny mistake - xcr was incorrectly
	specified, should have both S1 and S2 fields identical
	If only finding the problem was as fast as fixing the bug !!!!
1993-06-20 21:56:23 +00:00
Steve Chamberlain
115147fbb0 * config/obj-coffbfd.c (fill_section): Don't allow fills backwards.
* config/tc-sh (get_specific, md_convert_frag,
	md_estimate_size_before_relax): Add support for rest of opcodes.
1993-06-17 21:58:28 +00:00
Ken Raeburn
610648001b I don't think this file is needed any more 1993-06-10 01:35:17 +00:00
Ken Raeburn
9317b3fad8 patches from tege 1993-06-10 01:33:42 +00:00
Steve Chamberlain
ad86fa7047 * config/h8300.c: Support for H8/300-H opcodes.
* config/obj-coffbfd.c (w_strings): String table length is 4
	bytes, no matter what the host int size is.
1993-06-04 23:03:00 +00:00
Ken Raeburn
31fb7d23a0 keep ho-hppabsd.h 1993-06-03 21:23:53 +00:00
Ken Raeburn
f853f5435d new file, from utah 1993-06-03 19:58:32 +00:00
Ken Raeburn
0c6eb684cc don't bother checking return value from hash_new 1993-06-01 22:46:47 +00:00
Ken Raeburn
49864cfa6c read.c (s_align_bytes): Properly record alignment.
expr.c (__): Undefine before defining.
as.c (got_sig): Don't return anything; return type might be void.
Whitespace/comment cleanup in frags.c.
Some patches for `-pedantic' or `-fno-common' compilation.
(Some of these changes are from Michael Meissner; see change log.)
1993-05-27 19:42:23 +00:00
Ian Lance Taylor
9a7d824a26 * app.c (do_scrub_begin): Let line_comment_chars override
comment_chars.
	(do_scrub_next_char): If a line comment character is not at the
	start of a line, treat it as a comment character if it is one.
	For a CPP line comment use pseudo-op .appline rather than .line.
	* input-scrub.c (logical_input_line): Make int rather than
	unsigned.
	(input_scrub_push, input_scrub_begin): Initialize
	logical_input_line to -1 rather than 0.
	(bump_line_counters): Increment logical_input_line.
	(new_logical_line): If line_number is -2, decrement
	logical_input_line.
	(as_where): Use logical_input_line even if it is 0.
	* read.h (s_app_file prototype): Now takes an int argument.
	* read.c (potable): Make .appfile call s_app_file with 1.  New
	.appline pseudo-op calls s_app_line.
	(s_app_file): If .appfile, call new_logical_line with -2 to
	account for newline inserted by do_scrub_next_char.  If listing,
	call listing_source_file.
	(s_app_line): New function to handle fake pseudo-op .appline.
	* config/obj-coff.c (obj_pseudo_table): Make .appline call
	obj_coff_ln.
	(obj_coff_ln): Added argument to indicate whether .appline.
	* config/obj-coffbfd.c (obj_pseudo_table): Make .appline call
	obj_coff_ln.
	(obj_coff_ln): Added argument to indicate whether .appline.
	* config/tc-mips.c (s_file): Pass argument to s_app_file.
1993-05-27 19:29:38 +00:00
K. Richard Pixley
87756e15db added things-to-lose sections 1993-05-27 06:44:29 +00:00
Ian Lance Taylor
61f14fb0da * config/obj-bout.h (S_GET_VALUE): Removed unnecessary cast. 1993-05-25 19:16:16 +00:00
Steve Chamberlain
1f55e556cc (build_bytes): Understand @rd mode and build relocations correctly. 1993-05-19 14:44:00 +00:00
Ken Raeburn
74fa454788 override obj_header_append from obj-aout.c 1993-05-14 10:56:24 +00:00
Ken Raeburn
bbbb0da30e discard empty rs6000 files 1993-05-14 10:54:34 +00:00
Ken Raeburn
54f10da0da whitespace changes; rely on default initialization for a var 1993-05-10 19:07:57 +00:00
Ken Raeburn
daae8c92f1 keep new files 1993-05-06 02:03:00 +00:00
Ken Raeburn
b27caf27c8 PR fix for debug symbols referring to other symbols, then same name defined
as common.
(crawl_symbols): Don't clear sy_forward field.
(yank_symbols): Merge symbols only if sy_forward is null.
1993-05-05 20:32:12 +00:00
Ken Raeburn
80fa125df7 hppa configuration 1993-05-05 12:43:06 +00:00
Ken Raeburn
c77809b592 hp300 hpux configuration 1993-05-05 12:41:52 +00:00
Ken Raeburn
d6f72574a2 include ctype.h, and some special-purpose regs for 29050 1993-04-28 23:12:04 +00:00
Steve Chamberlain
4a1bbbe75b Support for Hitachi SH 1993-04-27 01:32:09 +00:00
Ken Raeburn
db4e0f90ba Get version string from config.h now.
Fix several functions to compile under traditional C.  Deleted _doprnt.
Moved some VMS-specific code here from ../symbols.c.
1993-04-21 04:54:05 +00:00
Ian Lance Taylor
349f20de4e * config/obj-ecoff.h (ecoff_build_lineno): Make ilineMax in
symbolic header match cline in FDR; the native liinker seems to
	want that.
1993-04-09 16:08:29 +00:00