Commit graph

922 commits

Author SHA1 Message Date
Ian Lance Taylor
6648d3ae63 * config/obj-coff.c (yank_symbols): Check that FNAME_OFFSET is
non-zero before assuming this is a long file name.
	(w_strings): Likewise.
	(c_dot_file_symbol): Set FNAME_OFFSET to 1 for a long file name.

	* config/obj-coff.c (w_strings): Move declaration of i inside
	#ifdef block which uses it.
1996-05-07 15:34:25 +00:00
Ian Lance Taylor
d4d7d98cbf * config/obj-coff.c (coff_frob_symbol): Don't merge a symbol with
SF_GET_STATICS set.
	(yank_symbols): Likewise.
1996-05-04 01:00:04 +00:00
Ian Lance Taylor
ba97ba7e35 tweak last change 1996-05-02 03:11:26 +00:00
Ian Lance Taylor
7681eb9df7 * subsegs.h (segment_info_type): If MANY_SEGMENTS and not
BFD_ASSEMBLER, add name field.
	* config/obj-coff.c (coff_header_append): Handle long section
	names.
	(crawl_symbols): Just use the name field for the symbol name,
	without worrying about null byte termination.
	(w_strings): Handle long section names.
	(write_object_file): Likewise.  Also, use the name field, rather
	than scnhdr.s_name.
	(obj_coff_add_segment): Permit long section names.
	(obj_coff_init_stab_section): Use the name field, rather than
	scnhdr.s_name.
	(adjust_stab_section): Likewise.
	* config/te-pe.h (COFF_LONG_SECTION_NAMES): Define.
1996-05-02 02:32:52 +00:00
Ian Lance Taylor
912e424518 * config/tc-m68k.c (m68k_ip): Prevent attempts to use long offsets
in 68000 mode.
1996-04-24 21:05:20 +00:00
Ian Lance Taylor
116bf30f41 * config/obj-coff.c (obj_coff_section): BFD_ASSEMBLER version:
call demand_empty_rest_of_line.  Non BFD_ASSEMBLER version:
	correct handling of input line pointer, and call
	demand_empty_rest_of_line.
PR 9525.
1996-04-24 15:30:56 +00:00
Ian Lance Taylor
ff406bd3bf * config/obj-coff.c: BFD_ASSEMBLER:
(coff_last_bf): New static variable.
	(coff_frob_symbol): Set endndx of a .bf symbol.
	Non BFD_ASSEMBLER:
	(obj_coff_endef): Call SF_SET_PROCESS on a .bf symbol.
	(last_bfP): New static variable.
	(yank_symbols): Set endndx of a .bf symbol.
PR 9467.
1996-04-18 23:00:29 +00:00
Michael Meissner
47d12b2ce0 Add -le/-be/-s from Solaris. 1996-04-18 15:56:03 +00:00
Michael Meissner
159e6ef88f Add -m{,no-}regnames support; Add Solaris/linux support 1996-04-16 14:41:45 +00:00
Ian Lance Taylor
7a15a226ad * config/tc-mips.c (load_address): Cast X_add_number to valueT
before comparing against MAX_GPREL_OFFSET, so that negative
	numbers are handled correctly.
	(macro): Likewise.
1996-04-15 16:28:19 +00:00
Ian Lance Taylor
ed94c2b89d * config/tc-sparc.c (last_insn): New static variable.
(md_assemble): Warn about putting floating point branches in a
	delay slot.  If architecture is less than v9, insert NOP
	instructions between floating point instructions and floating
	point branches.  (The SunOS assembler does both these operations.)
	Save the last instruction opcode.
	(sparc_ip): Add pinsn parameter.  Change caller.
PR 355.
1996-04-11 21:35:01 +00:00
Ian Lance Taylor
024e177923 fix typo in comment 1996-04-11 16:44:19 +00:00
Ian Lance Taylor
65feb78d13 * config/tc-m68k.c (md_estimate_size_before_relax): Correct check
for byte jump to next instruction to skip empty frags.
PR 7044.
1996-04-11 16:41:48 +00:00
Jeff Law
dcb195f8fa * config/tc-h8300.c (get_specific): Remove some #if 0 code.
(build_bytes): Remove all ABSMOV related code; it's unnecessary.
ABSMOV is gone... Cleaning up.  hmse.
1996-04-06 00:06:10 +00:00
Ian Lance Taylor
867a58b368 * config/tc-mips.h (tc_frob_file): Define.
(mips_frob_file): Declare.
	* config/tc-mips.c (struct mips_hi_fixup): Define.
	(mips_hi_fixup_list): New static variable.
	(imm_unmatched_hi): New static variable.
	(md_assemble): Clear imm_reloc, imm_unmatched_hi, and
	offset_reloc.  Pass imm_unmatched_hi to append_insn.
	(append_insn): Add unmatched_hi parameter.  If it is set, add the
	new fixup to mips_hi_fixup_list.  Change all callers.
	(mips_ip): Set imm_unmatched_hi when appropriate.
	(mips_frob_file): New function.
1996-03-28 20:37:02 +00:00
Ian Lance Taylor
649d87fe30 Wed Mar 20 17:05:16 1996 David Mosberger-Tang <davidm@azstarnet.com>
* config/alpha-opcode.h: Added cvtst instruction.
1996-03-20 22:10:07 +00:00
Jim Wilson
6a413d6f3e * tc-sh.c (sh_do_align): Pass 1 not 2 to frag_align. 1996-03-06 18:50:20 +00:00
Jeff Law
eff5fcda23 * config/tc-hppa.c (tc_gen_reloc): Fix typo in R_COMP2 code.
Set "sym_ptr_ptr" and "addend" fields to dummy values for
        R_N0SEL and R_N1SEL.
Net buglet, and something I just noticed was wrong.
1996-03-04 17:15:23 +00:00
Michael Meissner
30510276e6 All predefined sections to be of NOBITS type 1996-02-29 19:04:49 +00:00
Jeff Law
24b216e1dd * config/tc-hppa.c (hppa_fix_adjustable): For SOM, don't
reduce relocs using e_nlrsel field selectors.
1996-02-29 00:51:00 +00:00
Jeff Law
83b59013fb * config/tc-hppa.c (selector_table): Add "n", "nl", and "nlr" to
the selector table.
        (pa_chk_field_selector): Handle new field selectors for SOM.
More new stuff for hpux10.
1996-02-28 18:34:32 +00:00
David Edelsohn
110b814dba * config/tc-sparc.c (sparc_ip): Print all architectures that support
the insn on mismatch.
1996-02-26 18:38:33 +00:00
Ian Lance Taylor
101a23469f * config/tc-sh.c (sh_coff_frob_file): Don't consider the address
of the section when looking for the R_SH_USES fixup, because the
	frag addresses have not yet been adjusted.
PR 9072.
1996-02-23 01:15:39 +00:00
David Edelsohn
2cb1807e13 (sparc_ip): Recognize %asr0.
Yes, matra really wants this.
1996-02-21 17:25:13 +00:00
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