Commit graph

898 commits

Author SHA1 Message Date
David Edelsohn
e86d5cf30f * config/tc-sparc.c (parse_keyword_arg): Accept leadling '%'.
(sparc_ip): Accept %asr[1..31] for v8 and %asr[%16..31] for v9.
	Recognize [uU] format args as sparclet cpregs.
1996-02-21 05:50:03 +00:00
Ian Lance Taylor
8a2e1fdd3c * config/tc-sh.c (sh_handle_align): Don't emit R_SH_ALIGN relocs
in bss_section.
PR 9044.
1996-02-21 03:30:01 +00:00
Ian Lance Taylor
21965655ed * config/tc-sparc.h (TC_RELOC_RTSYM_LOC_FIXUP): Check S_IS_WEAK as
well as S_IS_EXTERNAL.
	(tc_fix_adjustable): Likewise.
	* config/tc-sparc.c (md_apply_fix): In OBJ_ELF case, check for
	S_IS_WEAK as well as S_IS_EXTERNAL when deciding whether to return
	early.
	(tc_gen_reloc): Check S_IS_WEAK as wel as S_IS_EXTERNAL when
	deciding whether to convert BFD_RELOC_32_PCREL_S2 if PIC.
1996-02-19 19:29:17 +00:00
David Edelsohn
d8b42b96d1 * config/tc-sparc.c (max_architecture): Change to sparclite for
32 bit arch.
	(default_compatible): Delete.
	(sparc_ffs): New function.
	(md_begin): Only call SPARC_OPCODE_CONFLICT_P once.
	(sparc_ip): Rewrite architecture match and bump logic.
1996-02-19 10:43:01 +00:00
Michael Meissner
59011c328c Do not set undefined symbols to BSF_OBJECT. 1996-02-15 21:47:33 +00:00
Michael Meissner
28910c57ce Force all PPC symbols that otherwise do not have a symbol type to be BSF_OBJECT 1996-02-15 19:54:38 +00:00
Ian Lance Taylor
8a6f53e91b Wed Feb 14 16:33:12 1996 Martin Anantharaman <martin@mail.imech.uni-duisburg.de>
* read.c (s_mri_sect): Don't return '\0' in type.  Set all
	appropriate flags in BFD section.

	* configure.in (m68k-*-psos*): New target.
	* configure: Rebuild.
	* config/te-psos.h: New file.
	* config/tc-m68k.c (comment_chars): Don't include '#' if TE_PSOS
	is defined.
1996-02-14 21:37:16 +00:00
Ian Lance Taylor
fb251650e9 * config/tc-mips.c (mips_big_got): New static variable.
(s_extern): Don't declare.
	(reg_needs_delay): New static function.
	(macro_build): Permit GOT/CALL_HI/LO relocs.
	(macro_build_lui): If place is not NULL, use the number in the
	expression.
	(load_address): Handle mips_big_got case.
	(macro): Handle mips_big_got for M_LA_AB, M_JAL_A, and load and
	store macros.
	(OPTION_XGOT): Define.
	(md_longopts): Add "xgot" if OBJ_ELF.
	(md_parse_option): Handle -xgot.
	(md_show_usage): Mention -xgot.
	(md_apply_fix): Permit GOT/CALL_HI/LO relocs.
	(tc_gen_reloc): Handle GOT/CALL_HI/LO relocs.
1996-02-14 18:49:27 +00:00
Ian Lance Taylor
d9396c16ce Wed Feb 14 11:22:27 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* config/tc-m68k.c (m68k_ip) [operand kind '#']: When fixing
	the byte relocation, point it to the low byte of the word.
1996-02-14 16:23:19 +00:00
Ian Lance Taylor
20710f1c0c * read.c (potable): Add "mri" and ".mri".
(s_mri): New function.
	* read.h (s_mri): Declare.
	* app.c (scrub_m68k_mri): New static variable.
	(mri_pseudo): New static variable.
	(do_scrub_begin): Add m68k_mri parameter.  Use it rather than
	flag_m68k_mri.  Initialize scrub_m68k_mri.
	(mri_state, mri_last_ch): New static variables.
	(struct app_save): Add scrub_m68k_mri, mri_state, and mri_last_ch
	fields.
	(app_push): Save new fields.
	(app_pop): Restore new fields.
	(do_scrub_chars): Check scrub_m68k_mri rather than flag_mri_mri.
	If TC_M68K, use a trivial state machine to look for occurrences of
	the .mri pseudo-op, and change the mode appropriately.
	* as.h (do_scrub_begin): Update prototype.
	* input-scrub.c (input_scrub_begin): Pass flag_m68k_mri to
	do_scrub_begin.
	* config/tc-m68k.c (reg_prefix_optional_seen): New static
	variable.
	(m68k_mri_mode_change): New function.
	(md_parse_option): Set reg_prefix_optional_seen.
	* config/tc-m68k.h (m68k_mri_mode_change): Declare.
	(MRI_MODE_CHANGE): Define.
	* doc/as.texinfo: Document .mri pseudo-op.
1996-02-13 00:20:13 +00:00
Ian Lance Taylor
a043f579df Mon Feb 12 15:16:29 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
Support for OBJ_ELF on m68k, mostly inside #ifdef OBJ_ELF:
	* config/m68k-parse.h (enum pic_relocation): Define.
	(struct m68k_exp): Add pic_reloc field.
	* config/tc-m68k.h (TC_RELOC_RTSYM_LOC_FIXUP): Define.
	(tc_fix_adjustable): Define to call tc_m68k_fix_adjustable.
	(NO_RELOC): Define to BFD_RELOC_NONE if BFD_ASSEMBLER, to zero
	otherwise.
	* config/tc-m68k.c: Delete definition of NO_RELOC.
 	(struct m68k_it): Add pic_reloc field.
	(add_fix): Copy over pic_reloc field.
	(md_pseudo_table): Interpret .align parameter as byte count.
	(mote_pseudo_table): Likewise.
	(tc_m68k_fix_adjustable): New function.
	(get_reloc_code): New function.
	(md_assemble): Use it as last argument to fix_new_exp.
	(md_apply_fix_2): For a relocation against a symbol don't put the
	addend into the data.
	(tc_gen_reloc): Different addend computation for OBJ_ELF.
	(m68k_ip): Don't relax an operand that requires pic relocation.
	(md_begin): Align .text, .data and .bss on 4 byte boundary by
	default.
	* write.c (fixup_segment): Don't add symbol value to addend if
 	TC_M68K and OBJ_ELF.
	* config/m68k-parse.y (yylex): Handle @PLTPC, etc.
	(motorola_operand): Add rule for `(zapc, EXPR)'.
1996-02-12 20:33:06 +00:00
Ian Lance Taylor
fcee3e24c2 * config/tc-sh.c (sh_do_align): Align to a 2 byte boundary before
inserting nop instructions.
PR 8974.
1996-02-12 05:12:40 +00:00
Ian Lance Taylor
3e1c964dfa * config/te-aux.h: Change include of aux.h to aux-coff.h. 1996-02-09 15:55:06 +00:00
Ian Lance Taylor
71dd3c40ca * read.c (potable): Add balignw, balignl, p2alignw, and p2alignl.
(do_align): Take new len parameter.  Change all callers.  Pass it
	to md_do_align.
	(s_align_bytes): Arg now indicates the length of the fill pattern.
	(s_align_ptwo): Likewise.
	* config/obj-coff.c (write_object_file): Pass length to
	md_do_align.
	* config/tc-i386.h (md_do_align): Take new len parameter.
	* 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.
	* doc/as.texinfo: Document new pseudo-ops.

	* config/obj-coff.c (fixup_mdeps): Divide offset by fr_var, as is
	done in cvt_frag_to_fill.
PR 8974.
1996-02-08 00:22:02 +00:00
Ian Lance Taylor
9addcbb182 * config/tc-sh.h (sh_do_align): Declare.
(md_do_align): Define.
	* config/tc-sh.c (sh_do_align): New function.
PR 8974.
1996-02-07 22:00:28 +00:00
Ian Lance Taylor
011d16ac04 update copyrights 1996-02-07 19:36:48 +00:00
Ian Lance Taylor
9e64486e44 * config/tc-m68k.c (struct m68k_cpu): Add alias field.
(archs): Initialize new field.
	(m68k_ip): Don't list alias names when listing CPUs which support
	an instruction.
1996-02-07 19:35:15 +00:00
Ian Lance Taylor
172727c059 Rename XL to JX, and remove sanitization. 1996-02-06 19:10:04 +00:00
Ian Lance Taylor
f9e90c2ec6 * config/tc-i960.c (ARCH_HX): Define.
(arch_tab): Add HX.
	(targ_has_sfr): Handle ARCH_HX.
	(targ_has_iclass): Handle ARCH_HX.
	(tc_coff_fix2rtype): Add return 0 to avoid warning.
	(tc_headers_hook): If the architecture was specified explicitly,
	use it when setting the flags.  Set the extern variable coff_flags
	rather than headers->filehdr.f_flags, since the latter is set
	unconditionally in obj-coff.c.
	(i960_handle_align): Remove unused variable fixp.
1996-02-05 23:52:42 +00:00
Ian Lance Taylor
e24cf2b556 * write.c (write_relocs): Use S_IS_DEFINED and S_IS_COMMON rather
than comparing S_GET_SEGMENT to undefined_section.
	(write_object_file): Skip symbols which were equated to an
	undefined or common symbol.
	* symbols.c (resolve_symbol_value): Use S_IS_DEFINED and
	S_IS_COMMON rather than comparing S_GET_SEGMENT to
	undefined_section.
	(S_GET_VALUE): Likewise.  Avoid recursion problems if S_IS_DEFINED
	or S_IS_COMMON call S_GET_VALUE.
	* config/obj-aout.h (S_IS_COMMON): Define if not BFD_ASSEMBLER.
	* config/obj-aout.c (obj_emit_relocations): If a reloc is equated
	to an undefined or common symbol, convert the reloc to be against
	the target symbol.
	(obj_crawl_symbol_chain): Skip symbols which were equated to an
	undefined or common symbol.
	* config/obj-bout.h (S_IS_COMMON): Define if not BFD_ASSEMBLER.
	* config/obj-bout.c (obj_emit_relocations): If a reloc is equated
	to an undefined or common symbol, convert the reloc to be against
	the target symbol.
	(obj_crawl_symbol_chain): Skip symbols which were equated to an
	undefined or common symbol.
	* config/obj-coff.c (do_relocs_for): Use S_IS_DEFINED and
	S_IS_COMMON rather than comparing S_GET_SEGMENT to
	undefined_section.
	(yank_symbols): Skip symbols which were equated to an undefined or
	common symbol.
1996-02-02 17:46:05 +00:00
Ian Lance Taylor
9e396994aa * config/obj-aout.h (S_IS_LOCAL): Check for \002 as well as \001.
* config/obj-bout.h (S_IS_LOCAL): Likewise.
1996-02-01 21:24:15 +00:00
Ian Lance Taylor
66b935dace Wed Jan 31 14:03:17 1996 Richard Henderson <rth@tamu.edu>
* configure.in (m68*-apple-aux*): New target.
	* config/te-aux.h: New file.
	* config/obj-coff.c (compare_external_relocs): New static function
	if TE_AUX.
	(do_relocs_for): Sort relocs if TE_AUX.
	(fixup_segment): If TE_AUX, store common symbol value in segment.
	* config/tc-m68k.h (TARGET_FORMAT): Define if TE_AUX.
1996-01-31 19:06:17 +00:00
Ken Raeburn
0e6f2f82d2 * config/tc-i960.c (parse_memop): In MRI mode, don't use implicit scaling of
index.

* expr.c (operand): Accept 0x hex constants in MRI mode if not on m68k.

(PR 8836)
1996-01-30 18:12:41 +00:00
Ian Lance Taylor
3e78d07241 * config/obj-elf.c (obj_elf_type): Set BSF_OBJECT flag for a type
of object.  From Ronald F. Guilmette <rfg@monkeys.com>.
1996-01-29 22:11:12 +00:00
Ian Lance Taylor
4fe0fdddfb SCO ELF support from Robert Lipe <robertl@arnet.com>:
* configure.in (i386-*-sco*elf*): Use fmt elf, targ sco5.
	* configure: Rebuild.
	* config/sco5.mt: New file; set TDEFINES to -DSCO_ELF.
	* config/tc-i386.c (sco_id): New function, if SCO_ELF.
	* config/tc-i386.h (tc_init_after_args): Define if SCO_ELF.
	(sco_id): Declare if SCO_ELF.
1996-01-25 17:25:25 +00:00
David Edelsohn
e70ad5d561 * config/tc-sparc.c (initial_architecture,can_bump_v9_p): Deleted.
({max,warn_after}_architecture): New static locals.
	(md_begin): Replace NUMOPCODES with sparc_num_opcodes.
	If both architecture and -bump requested, set max_architecture to max.
	(sparc_md_end): Simplify.
	(sparc_ip): Replace references to can_bump_v9_p with max_architecture.
	Rewrite code to bump architecture and check for conflicts.
	(md_longopts): Recognize -xarch={v8plus,v8plusa} for compatibility
	with Solaris assembler.
	(md_parse_option): Likewise.  Call sparc_opcode_lookup_arch.
	(md_show_usage): Update.
1996-01-25 11:20:06 +00:00
David Edelsohn
60abd84937 (sparc_md_end): Fix leftover from earlier version. 1996-01-22 18:09:08 +00:00
David Edelsohn
6df07e7f7e * config/tc-sparc.h (TARGET_FORMAT): Use #ifdef SPARC_ARCH64 instead of
#ifdef sparcv9 when choosing value.
	(ENV64): Delete.
	(md_end): Define.
	(sparc_md_end): Declare.
	* config/tc-sparc.c (SPARC_V9): Renamed from sparcv9.
	(initial_architecture): New static local.
	(can_bump_v9_p): Likewise.
	(NO_V9): Delete all occurrences.
	(sparc_md_end): New function.
	(sparc_ip): New local v9_arg_p.  Rework fp reg number test.
	Don't bump architecture to v9 unless can_bump_v9_p set.
	(md_parse_option): -A<arch> passed, set can_bump_v9_p accordingly.
	* configure.in (sparc64 target cpu): Don't set obj_format here.
	(SPARC_V9): Renamed from sparcv9.
	(sparc64-*-elf*): Define SPARC_ARCH64.
	* configure: Regenerated.
	* acconfig.h (SPARC_V9): Renamed from sparcv9.
	(SPARC_ARCH64): Add.
	* config/vmsconf.h: Update.
1996-01-22 17:53:34 +00:00
Ian Lance Taylor
bf4b090cec update copyright 1996-01-22 17:23:09 +00:00
Ian Lance Taylor
07ce72c9bb * config/tc-ppc.c (ppc_csect): An unnamed csect is storage class
XMC_PR.
1996-01-22 16:53:42 +00:00
Michael Meissner
d971d39e46 Add support for eabi relocations and sections 1996-01-22 16:02:29 +00:00
Kim Knuttila
0291f0f543 Changed alignment on .pdata and .reldata 1996-01-18 23:03:48 +00:00
Jim Wilson
130c6e3d59 Remove sh3e sanitization. 1996-01-16 19:59:48 +00:00
Michael Meissner
c682be533c Add more relocation suffixes 1996-01-15 22:46:10 +00:00
Michael Meissner
ee4fdbb93d Allow .gcc_except_table to have unfixed pointers with -mrelocatable 1996-01-15 02:34:07 +00:00
Michael Meissner
747b98fe5d Make elf section functions ELF specific 1996-01-13 16:10:33 +00:00
Michael Meissner
f99d287b2a Add support for exclude section flag and ordered section type 1996-01-12 20:35:38 +00:00
Jim Wilson
10c8c95ec0 For SH port, make relocation overflow an error instead of a warning. 1996-01-02 20:45:49 +00:00
Ian Lance Taylor
1b10f50d90 * 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.
1995-12-11 19:23:10 +00:00
Ken Raeburn
9e4b3a2329 * config/obj-coff.c (size_section, fill_section, fixup_mdeps): Treat
rs_align_code like rs_align.
1995-12-04 23:11:02 +00:00
Ian Lance Taylor
d4c8a45ee7 * config/tc-m88k.c (m88k_do_align): Correct check for whether fill
pattern is zero.  From Manfred Hollstein.
1995-12-01 15:56:25 +00:00
Kim Knuttila
531a1af274 idata alignment in .s files 1995-11-30 18:47:11 +00:00
Ian Lance Taylor
464070de43 Thu Nov 30 11:23:42 1995 Manfred Hollstein KS/EF4A 60/1F/110 #40283 <manfred@lts.sel.alcatel.de>
* config/obj-coff.c (fixup_segment): If TC_M88K is defined, do not
	add section's paddr to add_number; compatibility to native as and
	ld forbids.
1995-11-30 16:25:27 +00:00
Michael Meissner
77fa4d98a8 Fix -mrelocatable 1995-11-29 18:17:24 +00:00
Ken Raeburn
da954cd7b6 Remove unused sy_name_offset from ELF_TARGET_SYMBOL_FIELDS. 1995-11-28 19:09:58 +00:00
Ian Lance Taylor
520dd8d5d9 * 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.
1995-11-20 22:27:49 +00:00
Ken Raeburn
b6f783b773 one-operand versions of jmp, jsr 1995-11-20 21:08:05 +00:00
Ken Raeburn
880b742924 rename te-delta88.h to avoid 8.3 conflict 1995-11-20 18:48:32 +00:00
Ken Raeburn
46618ae6e7 move md_end use, and make use of it in cpu back ends. clean up empty, unused
md_end functions.

i386 changes from Alan Modra for using multi-byte sequences instead of
single nops for code alignment.
1995-11-15 10:56:07 +00:00
Stan Shebs
75d1d87aa1 Keep te-macos.h. 1995-11-14 04:46:32 +00:00