Commit graph

1779 commits

Author SHA1 Message Date
Ian Lance Taylor
3b320c48cf * config/tc-mips.c (md_apply_fix): Make a branch to an odd address
an error rather than a warning.
1997-01-28 21:09:52 +00:00
Ian Lance Taylor
31a2c6ffd7 * config/tc-mips.c (md_convert_frag): If the user explicitly
requested an extended opcode, pass warn as true to mips16_immed.
1997-01-28 20:37:27 +00:00
Ian Lance Taylor
645cb4dc28 * config/tc-mips.c (mips16_ip): Handle a missing expression like
an explicit 0, so that explicitly extended instructions work
	correctly.
1997-01-28 20:28:18 +00:00
Ian Lance Taylor
0192b099bd * ecoff.c (ecoff_build_symbols): Don't generate a local ECOFF
symbol for a common symbol.
1997-01-27 22:41:43 +00:00
David Edelsohn
f7ab94418c Patch presumed to have been checked in awhile ago but wasn't.
Mon Nov 25 10:45:14 1996  Doug Evans  <dje@seba.cygnus.com>
	* write.c: Delete "ifndef md_relax_frag" around is_dnrange.
	(relax_segment, case rs_org): Move code inside braces.  Move locals
	target,after inside too.
	(relax_segment, case rs_machine_dependent): Guts moved to ...
	(relax_frag): New function.
	Call md_prepare_relax_scan if defined.
1997-01-22 18:41:50 +00:00
Ian Lance Taylor
b3a64736a1 * config/tc-mips.c (md_begin): Don't set SEC_ALLOC or SEC_LOAD for
the .reginfo or .MIPS.options section if configured for an
	embedded target.
1997-01-20 19:27:11 +00:00
J.T. Conklin
0ce48081b2 * config/tc-m68k.c (m68k_ip): Reject pc-relative addresses for the
'p' operand specifier.
1997-01-20 19:00:03 +00:00
J.T. Conklin
ffecfc8b60 * config/tc-m68k.c (HAVE_LONG_BRANCH): New macro, returns true for
m68k family cpus which support long branch addressing modes.
(m68k_ip, md_convert_frag_1, md_estimate_size_before_relax,
md_create_long_jump): Use it.
1997-01-20 18:47:48 +00:00
Ian Lance Taylor
c36a90ef65 * config/tc-mips.c (md_begin): Don't set interlocks for
mips_4650.
PR 11507.
1997-01-20 17:43:43 +00:00
Ian Lance Taylor
ad423373db * read.c (read_a_source_file): Make sure the symbol ends with
whitespace before checking whether the next character is '='.
PR 11461.
1997-01-15 18:52:53 +00:00
Ian Lance Taylor
03b240371f * config/tc-i386.c (sco_id): Moved from here...
* config/obj-elf.c (sco_id): ...to here.  Adding the identifier
	really is an SCO ELF specific thing, not just a SCO x86 specific
	thing.
1997-01-14 20:08:43 +00:00
Michael Meissner
4af93ad0dc Allow tic80-*-*, not just tic80-*-coff 1997-01-14 03:45:03 +00:00
Ian Lance Taylor
6468dabdec * read.c (emit_expr): Check for overflow of a negative value
correctly.
	* write.c (fixup_segment): Likewise.
	* config/obj-coff.c (fixup_segment): Likewise.
PR 11411.
1997-01-09 19:13:42 +00:00
Ian Lance Taylor
d703b5a783 * config/tc-m68k.c (struct label_line): Define.
(labels, current_label): New static variables.
	(md_assemble): Mark current_label as text, and clear it.
	(m68k_frob_label): New function.
	(m68k_flush_pending_output): New function.
	(m68k_frob_symbol): New function.
	* config/tc-m68k.h (tc_frob_label): Define.
	(md_flush_pending_output): Define.
	(tc_frob_symbol): Don't warn, just call m68k_frob_symbol.
	(tc_frob_coff_symbol): Likewise.
PR 11417.
1997-01-09 18:18:01 +00:00
Ian Lance Taylor
8ff750011b * read.c (read_a_source_file): When defining a macro in MRI mode,
don't add the symbol to the symbol table.
PR 11423.
1997-01-09 17:10:09 +00:00
Jeff Law
7899862954 * config/tc-mn10300.c (tc_gen_reloc): Handle sym1-sym2 fixups
here since fixup_segment doesn't (linkrelax is set).
        * config/tc-mn10200.c (tc_gen_reloc): Likewise.
Should fix line # stabs & block scope stabs.
1997-01-07 18:27:20 +00:00
Jeff Law
62b2acbabf * config/tc-mn10200.c (md_assemble): Tweak fx_offset for pc-relative
relocs.
Relocs for the mn10200.
1997-01-06 22:25:05 +00:00
Jeff Law
ac866582d9 * config/tc-hppa.c (struct hppa_fix_struct): Steak fx_r_field's type
to avoid warnings with the native HP compiler.
        (fix_new_hppa): Similarly for the r_type argument.
        (pa_build_unwind_subspace, hppa_elf_mark_end_of_function): Enclose
        in an #if OBJ_ELF to keep gcc -Wall quiet.
        (md_apply_fix): Always initialize "result".
Minor maintenance.

        * config/tc-mn10200.c (md_assemble): Generate relocations.
mn10200 has relocs now!
1997-01-03 23:55:22 +00:00
Ian Lance Taylor
79811f6f41 Fri Jan 3 18:17:23 1997 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* config/tc-m68k.c (s_even): Adjust the alignment of the current
	section.
1997-01-03 23:20:21 +00:00
Ian Lance Taylor
3df036e9d2 tipo 1997-01-03 23:15:44 +00:00
Ian Lance Taylor
9f94df3847 * config/obj-coff.c (yank_symbols): If tc_frob_coff_symbol is
defined, call it.
	* config/tc-m68k.c (tc_frob_symbol): Check whether text label is
	aligned to odd boundary.
	(tc_frob_coff_symbol): Define.
1997-01-03 22:41:26 +00:00
Ian Lance Taylor
8185fc28bd revert last patch 1997-01-03 22:27:24 +00:00
Ian Lance Taylor
ba8f9c0955 Fri Jan 3 17:10:33 1997 Richard Henderson <rth@tamu.edu>
* config/obj-elf.c (elf_file_symbol): When using ECOFF debugging,
	pass on the new file hook.

	* config/tc-alpha.c (alpha_fix_adjustable): Not quite the same as
	!alpha_force_relocation, as local LITERALs can be adjusted to be
	relative to the section.
1997-01-03 22:13:05 +00:00
Ian Lance Taylor
039d5a6040 * doc/as.texinfo (Set): Change parenthesized @xref to @pxref. 1997-01-03 18:02:55 +00:00
Ian Lance Taylor
de9df5fa1d * config/tc-m68k.h (tc_frob_label): Define to warn about a
misaligned text label.  Based on patch from Ronald F. Guilmette
 	<rfg@monkeys.com>.
1997-01-03 17:50:06 +00:00
Ian Lance Taylor
7b0688dff7 * macro.c (macro_expand_body): In MRI mode, just copy a single &. 1997-01-03 17:40:43 +00:00
Ian Lance Taylor
2156d0d747 * config/tc-m68k.c (m68k_ip): Call frag_grow before adding a
PCINDEX frag.  From Ronald F. Guilmette <rfg@monkeys.com>.
1997-01-03 17:22:34 +00:00
Ian Lance Taylor
a78bc55196 * config/tc-m68k.c (m68k_ip): Accept 'B' as a size for an
immediate value.
	(md_assemble): If the size is 'B', set fx_signed.
	(md_apply_fix_2): Use fx_signed when checking for overflow.

	* write.h (struct fix): Add fx_signed field.
	* write.c (fix_new_internal): Initialize fx_no_overflow and
	fx_signed fields.
	(fixup_segment): Use fx_signed when checking for overflow.
	* config/obj-coff.c (fixup_segment): Check fx_no_overflow and
	fx_signed when checking for overflow.
1997-01-03 17:14:02 +00:00
Ian Lance Taylor
0abdf2800c * NOTES, NOTES.config: Removed. These are rarely, if ever,
updated, and all the useful information is in doc/internals.texi.
1997-01-03 03:13:47 +00:00
Ian Lance Taylor
a986926b11 Based on patch from Ronald F. Guilmette <rfg@monkeys.com>:
* read.c (read_a_source_file): Check for conditional operators
	before doing an MRI pending alignment.
	* config/tc-m68k.h (m68k_conditional_pseudoop): Declare.
	(tc_conditional_pseudop): Define.
	* config/tc-m68k.c (m68k_conditional_pseudop): New function.
	* doc/internals.texi (CPU backend): Describe
	tc_conditional_pseudoop.
1997-01-03 03:07:01 +00:00
Ian Lance Taylor
924160b0d6 Based on patch from Ronald F. Guilmette <rfg@monkeys.com>:
* config/tc-m68k.c (m68k_rel32_from_cmdline): New static
	variable.
	(md_begin): Check m68k_rel32_from_cmdline before setting
	m68k_rel32.
	(m68k_mri_mode_change): Likewise.
	(md_longopts): Add --disp-size-default-16 and
	--disp-size-default-32.
	(md_parse_option): Handle new options.
	(md_show_usage): Mention new options.
	* doc/c-m68k.texi (M68K-Opts): Document new options.
1997-01-03 00:03:28 +00:00
Ian Lance Taylor
b4d51f3dd4 Based on patch from Ronald F. Guilmette <rfg@monkeys.com>:
* config/tc-m68k.c (m68k_index_width_default): New static
	variable.
	(m68k_ip): Use m68k_index_width_default to set the size of a base
	register whose size was not given.
	(md_longopts): Add --base-size-default-16 and
	--base-size-default-32.
	(md_parse_option): Handle new options.
	(md_show_usage): Mention new options.
	* doc/c-m68k.texi (M68K-Opts): Document new options.
1997-01-02 23:48:20 +00:00
Ian Lance Taylor
103e1158ca * doc/c-mips.texi: Mention ISA level 4, and the -mips16 option. 1997-01-02 23:07:09 +00:00
Ian Lance Taylor
e16b9537c1 * configure.in: Recognize mips-*-linux* target.
* configure: Rebuild.
1997-01-02 21:53:52 +00:00
Ian Lance Taylor
a162a49000 * config/tc-mips.c (load_register): Rewrite 64 bit handling to
work if valueT is only 32 bits.
1997-01-02 21:51:58 +00:00
Ian Lance Taylor
b9129c6fcd * config/tc-mips.c: Throughout, check target_big_endian rather
than byte_order.
 	(byte_order): Remove.
	(mips_init_after_args): Remove.
	* config/tc-mips.h (LITTLE_ENDIAN, BIG_ENDIAN): Don't define.
	(mips_init_after_args): Don't declare.
	(tc_init_after_args): Don't define.

	* config/tc-mips.h (tc_frob_after_relocs): Define if
	OBJ_MAYBE_ELF.
	(mips_elf_final_processing): Likewise.
	(ELF_TC_SPECIAL_SECTIONS): Likewise.
1997-01-02 20:13:05 +00:00
Ian Lance Taylor
20868ec647 * read.c (read_a_source_file): Check mri_pending_align after
checking for a macro.  From Ronald F. Guilmette
	<rfg@monkeys.com>.
1996-12-31 22:11:23 +00:00
Ian Lance Taylor
6ded661565 * Makefile.in (ALL_CFLAGS): Add -D_GNU_SOURCE. 1996-12-31 20:43:28 +00:00
Michael Meissner
6e7d54625f Fix relocatable tda offsets with non-zero addends 1996-12-31 20:14:21 +00:00
Ian Lance Taylor
38fc0ba614 * config/tc-sparc.c (md_apply_fix3): Rename from md_apply_fix, and
add segment argument.  If OBJ_ELF, treat a relocation against a
 	symbol in a linkonce section like a relocation against an external
 	symbol.
	* config/tc-sparc.h (MD_APPLY_FIX3): Define.
1996-12-31 18:03:09 +00:00
Ian Lance Taylor
18e0764dd5 * config/tc-mips.c (mips16_macro): Add case for M_ABS. 1996-12-30 16:36:37 +00:00
Fred Fish
6455664321 * NOTES.config (Implementation): as.h #define's "GAS" not "gas",
includes config.h instead of host.h, tc.h instead of tp.h, and
	targ-env.h instead of target-environment.h.
	Also, obj-format.h includes targ-cpu.h instead of
 	target-processor.h.
start-sanitize-tic80
	(Laying groundwork, that will be incrementally fleshed out,
	 for TIc80 support)
	* configure.in (case ${generic_target}): Add tic80-*-coff entry.
	* configure: Rebuild with autoconf.
	* config/obj-coff.h (coff/tic80.h): Include if TC_TIC80 defined.
	(TARGET_FORMAT): Define to "coff-tic80".
	* config/tc-tic80.c: New file for TIc80 support.
	* config/tc-tic80.h: New file for TIc80 support.
end-sanitize-tic80
1996-12-28 05:59:26 +00:00
Ian Lance Taylor
7d99e8afc3 * doc/as.texinfo (M): Mention explicitly that -M changes macro
handling.
PR 11259.
1996-12-27 16:43:15 +00:00
Stan Shebs
51cd0ae7db * mpw-make.sed: Use NewFolderRecursive for installation. 1996-12-19 19:29:38 +00:00
Ian Lance Taylor
9c199842e5 * write.c (adjust_reloc_syms): If the fixup symbol has been
equated to an undefined symbol, convert the fixup to being against
	the target symbol.  Remove obsolete code handling a special case
	for i386 PIC.
1996-12-19 17:07:14 +00:00
Martin Hunt
cb07aaeb2b Wed Dec 18 16:00:42 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d10v.c (do_assemble): Correct previous bug fix.
1996-12-19 00:01:58 +00:00
Martin Hunt
575453fb7d Wed Dec 18 15:27:40 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d10v.c (md_assemble): Fix bug which caused
	second instruction in a line to be case sensitize. PR11312
1996-12-18 23:38:22 +00:00
Jeff Law
5545556dc8 * config/tc-mn10200.c (mn10200_insert_operand): Don't
range check operands with MN10200_OPERAND_NOCHECK set.
        (check_operand): Likewise.
So the assembler won't check on "and -1,dn".
1996-12-18 17:14:10 +00:00
Ian Lance Taylor
f5e38044df * config/tc-mips.c: Undo part of last Friday's alignment changes.
(md_begin): Always align the text section to a four byte
	boundary.
	(append_insn): Remove call to record_align.
1996-12-18 01:01:56 +00:00
Ian Lance Taylor
fbcfacb75d * config/tc-mips.c (insn_label): Remove.
(struct insn_label_list): Define.
	(insn_labels, free_insn_labels): New static variables.
	(mips_clear_insn_labels): New static function.
	(append_insn): Mark all mips16 text labels, and make them odd.
	Handle all labels after emitting a nop, not just one.  Call
	mips_clear_insn_labels rather than just clearing insn_label.
	(mips_emit_delays): Add insns parameter, and use it to decide
	whether to mark mips16 labels.  Handle all labels, not just one.
	Force mips16 labels to be odd.  Change all callers.
	(mips16_immed): Don't check for an odd branch target.
	(md_apply_fix): Don't check mips16 mode for a branch reloc.
	(mips16_extended_frag): Ignore the low bit in a branch target.
	(md_convert_frag): Likewise.
	(mips_no_prev_insn): Call mips_clear_insn_labels rather than just
	clearing insn_label.
	(mips_align, mips_flush_pending_output, s_cons): Likewise.
	(s_float_cons, s_gpword): Likewise.
	(s_align): Use insn_labels rather than insn_label.
	(s_cons, s_float_cons, s_gpword): Likewise.
	(mips_frob_file_after_relocs): New function.
	(mips_define_label): Rewrite to add to insn_labels list.
	* config/tc-mips.h (tc_frob_file_after_relocs): Define.
	* ecoff.c (ecoff_build_symbols): If the size of a function comes
	out odd, increment it.
1996-12-17 20:58:57 +00:00
Ian Lance Taylor
c0dea4956d * config/tc-mips.c (mips16_ip): Check for a missing expression
when using the register indirect addressing mode.
1996-12-17 16:00:55 +00:00
Jeff Law
d4ba37afa0 * config/tc-mn10200.c (mn10200_insert_operand): Don't
check 24bit operands for overflow.
        (check_operand): Likewise.
1996-12-16 17:13:38 +00:00
Ian Lance Taylor
868c351306 * doc/as.texinfo (Section): Document how to use the .section
pseudo-op for COFF and ELF.
1996-12-16 16:54:10 +00:00
Ian Lance Taylor
6259c65f73 * write.c (adjust_reloc_syms): Fix linkonce check for ELF. 1996-12-15 20:27:08 +00:00
Ian Lance Taylor
a677feeba4 * config/tc-mips.c (prev_insn_reloc_type): New static variable.
(RELAX_MIPS16_ENCODE): Add dslot and jal_dslot arguments, and
	store them.  Adjust other RELAX_MIPS16 macros.
	(RELAX_MIPS16_DSLOT): Define.
	(RELAX_MIPS16_JAL_DSLOT): Define.
	(append_insn): Pass new arguments to RELAX_MIPS16_ENCODE.  Correct
	handling of whether previous instruction has a fixup.  Set
	prev_insn_reloc_type.
	(mips_no_prev_insn): Clear prev_insn_reloc_type.
	(mips16_extended_frag): Use the right base address for a PC
	relative add or load.
	(md_convert_frag): Likewise.  If a PC relative add or load is
	used, record the alignment for the section.
1996-12-15 03:42:36 +00:00
Ian Lance Taylor
54815b9a08 * write.c (adjust_reloc_syms): Don't reduce a reloc against a
linkonce section into a reloc against the section symbol.
1996-12-13 18:27:28 +00:00
Ian Lance Taylor
8a8121d51b * config/tc-mips.c (mips16_macro): Remove nop instructions after
branch instructions.
1996-12-13 18:13:05 +00:00
Ian Lance Taylor
08e17202ee * config/tc-mips.c (md_begin): If configured for an embedded ELF
system, don't set the section alignment to 2**4.
	(s_change_sec): Likewise.
	(append_insn): Call record_alignment for the section.
	(md_section_align): Don't align the section size for an embedded
	ELF system.
1996-12-13 18:02:35 +00:00
Ian Lance Taylor
8dd6fde3e5 * config/obj-coff.c (fixup_segment): Make sure that symbols are
resolved; expression symbols may have been skipped.
1996-12-12 22:41:22 +00:00
Ian Lance Taylor
73d2578427 * write.c (adjust_reloc_syms): Make sure that symbols are
resolved; expression symbols may have been skipped.
PR 11240.
1996-12-12 21:55:28 +00:00
Michael Meissner
a460cd7827 Support BFD_RELOC_24_PLT_PCREL relocation 1996-12-12 20:20:08 +00:00
Martin Hunt
60b43c4bde Tue Dec 10 13:51:55 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d10v.c (write_2_short): Remove code that called
	parallel_ok() when the programmer specified parallel instructions.
1996-12-10 21:53:34 +00:00
Ian Lance Taylor
9b2ac02954 * config/tc-mips.c (append_insn): Make sure there is enough room
in a frag after a mips16 instruction to switch it with a jump
	instruction.
1996-12-10 21:18:38 +00:00
Jeff Law
42aa243574 * config/tc-mn10200.c (md_assemble): Opcode 0x0 is valid!
* config/tc-mn10300.c (md_assemble): Likewise.
Found by mn10200 gas testsuite.
1996-12-10 19:33:48 +00:00
Ian Lance Taylor
41a0ed225b * config/tc-mips.c (mips16_extended_frag): Give an error for an
attempt to use a non absolute symbol in an extending frag.
1996-12-10 16:38:22 +00:00
Ian Lance Taylor
a7dd20e839 * app.c (do_scrub_chars): At the end of a C comment, pass space to
UNGET rather than PUT.  Set old_state before setting state to -2.
PR 11229.
1996-12-10 03:47:41 +00:00
Jeff Law
dc1f8a2115 * config/tc-mn10200.c: Flesh out assembler support for MN10200.
* config/tc-mn10200.h: Likewise.
Actually assembles some mn10200 stuff (everything but mov* instructions!)
1996-12-09 23:53:37 +00:00
Ian Lance Taylor
559c664adb * config/tc-mips.c (mips16_extended_frag): Avoid an infinite loop
when extending because the value is exactly maxtiny + 1.
1996-12-09 23:34:20 +00:00
Ian Lance Taylor
8728fa9263 * config/tc-mips.c (RELAX_MIPS16_ENCODE): Add small and ext
arguments, and store them.  Adjust other RELAX_MIPS16 macros.
	(RELAX_MIPS16_USER_SMALL): Define.
	(RELAX_MIPS16_USER_EXT): Define.
	(mips16_small, mips16_ext): New static variables.
	(append_insn): Pass mips16_small and mips16_ext to
	RELAX_MIPS16_ENCODE.
	(mips16_ip): Set mips16_small and mips16_ext.
	(mips16_immed): Don't check mips16_autoextend.
	(mips16_extended_frag): Check USER_SMALL and USER_EXT.
1996-12-09 23:26:15 +00:00
Ian Lance Taylor
102633cecf * write.c (write_relocs): Print an error for an out of range
fixup, rather than calling abort.

	* as.c (main): Unlink the output file if there are errors while
	generating the fixups.
1996-12-09 22:11:24 +00:00
Ian Lance Taylor
f74ba7a3d9 * config/tc-mips.c (mips16_extended_frag): Don't call
S_GET_VALUE.
	(md_convert_frag): Call resolve_symbol_value before calling
	S_GET_VALUE, and don't add in the frag address.
1996-12-07 00:32:05 +00:00
Ian Lance Taylor
15e69f9816 * config/tc-mips.c (mips16_immed): Add file and line parameters,
and use them when reporting errors.  Change all callers.
1996-12-06 23:51:01 +00:00
Jeff Law
ca82e4ebdb * config/tc-mn10300.c: Fix various gcc -Wall warnings.
Remove '$' prefixing for registers.
1996-12-06 22:44:30 +00:00
Martin Hunt
f787a8d9b8 Fri Dec 6 00:55:48 1996 Martin <hunt@cygnus.com>
* config/tc-d10v.c (md_assemble): Check to see if prev_seg
	is initialized before using it.
	(d10v_cleanup): No longer uses its argument, so make it void.

	* config/tc-d10v.h (d10v_cleanup): Change prototype.
1996-12-06 09:13:25 +00:00
Michael Meissner
6cc03ed378 Fix recent breakage 1996-12-06 04:46:19 +00:00
Ian Lance Taylor
00a69b895a * write.c (fixup_segment): Don't discard the symbol for a PC
relative fixup to an absolute symbol.
PR 11204.
1996-12-05 16:06:14 +00:00
Martin Hunt
996bee906f Wed Dec 4 15:42:41 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d10v.c (md_assemble, d10v_cleanup): Fix bug
	with multiple sections.
1996-12-04 23:47:16 +00:00
Ian Lance Taylor
943321c07d * config/tc-mips.c (md_longopts): Rename mips-16 to mips16, and
no-mips-16 to no-mips16.
	(s_mipsset): Accept .set mips16 and .set nomips16.
1996-12-04 18:01:48 +00:00
Michael Meissner
8b1e9f129b Allow foo@suffix+constant relocations 1996-12-04 15:42:14 +00:00
Michael Meissner
b61802e7cb Add -m{,no-}solaris support to enable/disable solaris comments & setting ppc flags 1996-12-04 04:26:04 +00:00
Jeff Law
a9f2e3e24f * config/tc-mn10300.c (tc_gen_reloc): Get the addend from
fx_offset, not fx_addnumber.

Along with some simulator, compiler, bfd changes this fixes 90 or so
c-torture execution failures.
1996-12-02 07:41:52 +00:00
Jeff Law
5840a0e553 * config/tc-mn10300.h (tc_fix_adjustable): Don't do any
reloc adjustments.
reloc adjusting is of minimal value, and quite problematical for
machines which do linker relaxing...
1996-12-02 04:50:26 +00:00
Ian Lance Taylor
b608274a89 Sat Nov 30 17:34:48 1996 Eliot Dresselhaus <eliot@wally.edc.com>
* config/tc-i386.c: Correct misspelling: balenced to balanced.
1996-11-30 22:35:57 +00:00
Ian Lance Taylor
caeea0b47b * config/tc-mips.c (md_section_align): Check for an alignment of
4, not an alignment of 16.  Corrects August 7 patch.
1996-11-27 18:32:52 +00:00
Ian Lance Taylor
775c64a97f * configure, conf.in: Rebuild with autoconf 2.12. 1996-11-26 22:08:11 +00:00
Ian Lance Taylor
c830c9ead7 * config/tc-ppc.c (ppc_elf_lcomm): Don't give an error if no
alignment is specified.
PR 11164.
1996-11-26 20:42:34 +00:00
Ian Lance Taylor
cc5703cd74 Add support for mips16 (16 bit MIPS implementation):
* config/tc-mips.c: Extensive additions for mips16 support, not
	listed here.
	(RELAX_OLD, RELAX_NEW): Use only 7 bits each.
	(insn_uses_reg): Change last parameter to an enum.
	* config/tc-mips.h (LOCAL_LABELS_DOLLAR): Define as 0.
	(md_relax_frag): Define as mips_relax_frag.
	(mips_relax_frag): Declare.
	(struct mips_cl_insn): Add use_extend and extend fields.
	(tc_fix_adjustable): Define.
	* config/obj-elf.h (S_GET_OTHER): Define.
	(S_SET_OTHER): Define.
1996-11-26 16:44:22 +00:00
J.T. Conklin
3ab410cd65 * config/tc-m68k.c (m68k_ip): Implement cases for new <, >, m, n,
o and p operand specifiers.
1996-11-26 02:07:49 +00:00
David Edelsohn
a0a2af4f95 * write.c: Delete "ifndef md_relax_frag" around is_dnrange.
(relax_segment, case rs_org): Move code inside braces.  Move locals
	target,after inside too.
	(relax_segment, case rs_machine_dependent): Guts moved to ...
	(relax_frag): New function.
	Call md_prepare_relax_scan if defined.
	* config/tc-m68k.h (md_prepare_relax_scan): Renamed from
	M68K_AIM_KLUDGE.
1996-11-25 21:25:54 +00:00
Jeff Law
f98905f13d * config/tc-mn10300.c (address_registers): Use '%' prefix for regs.
(data_registers, other_registers, md_assemble): Likewise.
1996-11-25 18:24:14 +00:00
Jeff Law
0671e7f6c6 * config/tc-mn10300.c (md_assemble): Correctly determine the
correct location and type for each relocation.
        (md_pcrel_from): Simplify.
Last week's reloc work.
1996-11-25 15:54:43 +00:00
Ian Lance Taylor
5895d3f225 * config/tc-sh.c (md_convert_frag): Improve warning when branch is
converted into branch around branch.
PR 11103.
1996-11-22 20:48:05 +00:00
Jeff Law
d9a9c18fad * config/tc-mn10300.h (DIFF_EXPR_OK): Don't define this.
(tc_fix_adjustable): Don't adjust relocs against weak symbols or
        pc-relative relocs.
        * config/tc-mn10300.c (md_begin): Set linkrelax.
        (md_assemble): Create fixups as needed.
        (md_apply_fix3): Gut.  It shouldn't ever get called anymore.
First stab at fixups/relocs.
1996-11-21 18:58:26 +00:00
Michael Meissner
5e9b714f18 Do not convert short branch followed by short instruction into a parallel op if -O 1996-11-19 22:52:04 +00:00
Jeff Law
7f02192d13 * config/tc-mn10300.c (md_assemble): Handle MN10300_OPERAND_REG_LIST.
So GCC can use movm in prologue/epilogues.
1996-11-19 20:35:19 +00:00
Jeff Law
43d695a1e9 * config/tc-mn10300.c (mn10300_insert_operand): Provide prototype
via PARAMS.
        (check_operand): Likewise.
1996-11-18 23:05:06 +00:00
Michael Meissner
ec5e212be2 Check validity of user parallel operations 1996-11-18 20:31:30 +00:00
Michael Meissner
228835a9b6 Branch and link instructions modify r13 1996-11-18 20:24:47 +00:00
Martin Hunt
edb89bfc5b Thu Nov 14 11:17:49 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d10v.c (write_2_short): Fix bug that wouldn't
	allow a branch and link in parallel with an exe instruction.
1996-11-14 19:20:02 +00:00
Jeff Law
efba8af01d * config/tc-mn10300.c (mn10300_insert_operand): MN10300_OPERAND_SPLIT
operands are assumed to be 32bits.  Use "bits" field to hold the
        number of bits in the main instruction word for MN10300_OPERAND_SPLIT.
        (mn10300_check_operand): MN10300_OPERAND_SPLIT operands are assumed
        to be 32bits.
1996-11-06 22:04:42 +00:00
Jeff Law
bdd91d4f41 * config/tc-mn10300.c (mn10300_insert_operand): Shift low part
of a MN10300_OPERAND_SPLIT operand by operand->shift.
For bset, bclr & btst.
1996-11-06 21:20:56 +00:00
Jeff Law
cdde2f5cee * config/tc-mn10300.c (mn10300_insert_operand): Handle
MN10300_OPERAND_SPLIT.
For handling of 32bit operands.
1996-11-06 20:48:36 +00:00
Jeff Law
bfe5059c70 * config/tc-mn10300.c (md_assemble): Insert operands into
the extension part of the instruction if necessary.
        (mn10300_insert_operand): Accept pointer to extension word
        argument.  Make insn a pointer argument too.  Return type
        is now void.  All callers changed.
So we can correct insert operands into any instruction except those
which have 32bit operands.
1996-11-05 20:32:07 +00:00
Jeff Law
68328dc6bd * config/tc-mn10300.c (mn10300_insert_operand): Handle
repeated register operands.
For mov imm8,dn
    mov imm8,an
    cmp imm8,dn
    cmp imm8,an

The register appears twice in the bit pattern...  Egad.
1996-11-04 19:54:50 +00:00
Ian Lance Taylor
9a5acea834 * doc/as.texinfo: Added section on reporting bugs. 1996-11-01 19:37:24 +00:00
Ian Lance Taylor
eb1b89196c add missing d10v sanitization 1996-11-01 19:05:55 +00:00
Ian Lance Taylor
9af4021772 * config/tc-alpha.c: Change uses of void * to PTR. Change the
alpha_macro emit field to expect a const argument, and change the
	arg field to be const.  Fix some spacing to follow the GNU
	standard.

Fri Nov  1 10:32:03 1996  Richard Henderson  <rth@tamu.edu>

	* config/tc-alpha.c (md_parse_option): Add knowledge of 21164pc
	(pca56) and 21264 (ev6) cpus.
	(md_apply_fix): Private relocation types are now negative.
	(alpha_force_relocation): Likewise.
	(tc_gen_reloc): Likewise.
	(emit_insn): Likewise.
	(emit_ldXu): Do the right thing when the hardware can do byte insns.
	(emit_stX): Likewise.
	(emit_sextX): Likewise.
1996-11-01 18:44:14 +00:00
Ian Lance Taylor
527dc0c9ed * symbols.c (resolve_symbol_value): Improve the error message if
an undefined symbol is used in an expression.
1996-11-01 00:35:00 +00:00
Ian Lance Taylor
fe7e5bdf73 * doc/internals.texi: Rewrite, and add a lot of documentation.
* doc/Makefile.in (internals.info): New target.
1996-10-31 04:16:52 +00:00
Jeff Law
193e41979c * config/tc-v850.h (tc_fix_adjustable): Don't adjust relocs
against weak symbols.
Fixing RW failures.
1996-10-30 21:58:38 +00:00
Jeff Law
baf385b5fc * config/tc-v850.c (md_assemble): Don't lose for relaxable
addresses like .+6.
Fixing more problems with new relaxing code.
1996-10-29 21:16:17 +00:00
Jeff Law
2385d90a81 * config/tc-v850.c (md_convert_frag): Make sure we insert the
fixup at the right address within the frag.
1996-10-29 20:07:13 +00:00
Jeff Law
bc49fab8ea * config/tc-v850.c (md_convert_frag): Don't set fragP->fr_fix
to an absolute value, instead increment it as needed.
1996-10-29 19:48:18 +00:00
Jeff Law
a334533c1b * config/tc-v850.h (TC_GENERIC_RELAX_TABLE): Define.
* config/tc-v850.c: Fix some indention problems.
        (md_relax_table): Define for D9->D99 branch displacement
        relaxing.
        (md_convert_frag): Do something useful instead of aborting.
        (md_estimate_size_before_relax): Likewise.
        (md_assemble): Note if the matching instruction has a relaxable
        operand.  If it does, allocate frag with frag_var and don't
        do any fixups.
So we can do 9bit displacement to 22bit displacement relaxing.
1996-10-29 19:32:56 +00:00
Martin Hunt
9051e56fd4 Mon Oct 28 10:43:45 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* read.c (read_a_source_file): New hook md_cleanup().
1996-10-28 18:45:00 +00:00
Ian Lance Taylor
07f9de2ad1 * write.c (fix_new_exp): Use make_expr_symbol to build an
expression symbol for a complex fixup.
1996-10-25 04:01:54 +00:00
Jeff Law
d3bbd9dc3e * config/tc-v850.c (v850_reloc_prefix): Several disgusting
hacks to improve parsing of complex hi, lo, zda, etc
        expressions.
        (md_assemble): Don't demand and eat a trailing ')' after finding
        a v850 relocation prefix.  Sign extend the constant in a
        BFD_RELOC_LO16 expression.  Do eat a trailing ')' after a complete
        operand.
        (parse_cons_expression_v850): Don't eat a trailing ')' after
        finding a v850 relocation prefix.
Trying to get nec's sample code to assemble.  Why oh why didn't JT try
to assemble any of their code...
1996-10-25 01:14:34 +00:00
Jeff Law
10fba7f14e * config/tc-v850.h (TC_PARSE_CONS_EXPRESSION): Define.
(TC_CONS_FIX_NEW): Likewise.
        * config/tc-v850.c (parse_cons_expression_v850): New function.
        (cons_fix_new_v850): Likewise.
So we can handle ".hword lo(_foo)".
1996-10-24 22:55:22 +00:00
Jeff Law
3723a1a9f1 * config/tc-v850.h (tc_fix_adjustable): Don't adjust TDA relocs.
Fixing more tda stuff.
1996-10-24 20:32:36 +00:00
Ian Lance Taylor
20fbbb592b * config/tc-ppc.c (md_apply_fix3): Give a better warning message
for an unknown relocation type.
PR 10944.
1996-10-23 22:28:21 +00:00
Jeff Law
7e96935e77 * config/tc-v850.c (md_pseudo_table): Add .word; allocates
4 bytes of space.
Something off the todo list.
1996-10-23 22:23:38 +00:00
Jeff Law
8ea15b863f * config/tc-v850.c (md_assemble): Handle TDAOFF relocs
differently for movea & sst/sld insns.
Working on tda for the v850.
1996-10-23 04:06:04 +00:00
Michael Meissner
39176dfe06 Do not allow IU,IU or MU,MU, or both instructions to be parallelized with -O 1996-10-22 21:14:47 +00:00
Ian Lance Taylor
87dd0a9336 * obj.h (struct format_ops): Add frob_file_after_relocs field.
* config/obj-multi.h (obj_frob_file_after_relocs): Define.
	* config/obj-ecoff.c (ecoff_format_ops): Initialize new
	frob_file_after_relocs field.
	* config/obj-elf.c (elf_format_ops): Likewise.
	* config/tc-mips.c: Undefine obj_frob_file_after_relocs before
	including obj-elf.h.
1996-10-22 15:31:03 +00:00
Ian Lance Taylor
bf39474f15 * config/tc-mips.c (cons_fix_new_mips): Only treat 8 byte reloc
specially if not ELF.
	(md_apply_fix): Handle BFD_RELOC_64.
	(tc_gen_reloc): Handle BFD_RELOC_64.
1996-10-22 00:01:33 +00:00
Ian Lance Taylor
3030e86478 * config/tc-i386.c (md_apply_fix3): Don't increment value for a PC
relative reloc when BFD_ASSEMBLER and OBJ_AOUT (more ugly gas
 	reloc hacking).
1996-10-21 15:51:15 +00:00
Ian Lance Taylor
d12d1f6ce4 * config/obj-aout.h (S_IS_DEFINE): non BFD_ASSEMBLER version:
Don't check S_GET_OTHER.
1996-10-21 15:39:17 +00:00
Ian Lance Taylor
538034cfb5 * config/tc-mips.c (mips_ip): Accept an odd floating point
register with l.s or s.s.
1996-10-18 19:33:03 +00:00
Ian Lance Taylor
b70795e990 * config/obj-aout.c (obj_pseudo_table): Use obj_aout_type for
.type pseudo-op.
	(obj_aout_type): New static function.
1996-10-18 18:07:55 +00:00
Ian Lance Taylor
b9d55d9634 * Makefile.in ($(OBJS)): Depend upon libiberty.h. 1996-10-17 22:00:04 +00:00
Jeff Law
548ddc7174 * config/tc-v850.c (v850_reloc_prefix): Recognize zdaoff, tdaoff
and sdaoff expressions.
1996-10-17 04:48:07 +00:00
Jeff Law
0f8e50bb76 * write.c (fixup_segment): Don't add symbol value to addend if
TC_V850 and OBJ_ELF.
        * config/tc-v850.h (tc_fix_adjustable): Don't adjust any
        pc-relative fixups.
Fixing more failures in the g++ testsuite.
1996-10-16 17:32:39 +00:00
Jeff Law
f964b01d90 * config/tc-v850.c (md_pcrel_from): Delete unused function.
(md_pcrel_from_section): New function.
        * config/tc-v850.h (MD_PCREL_FROM_SECTION): Define.
So we don't screw up pc-relative jumps/calls from one section
into another section within the same .o file.

Fixes global ctors/dtors to work with DECL_ONE_ONLY stuff.
1996-10-16 06:21:23 +00:00
Ian Lance Taylor
0267c6c9c2 * config/tc-mips.c (load_register): Add cast to offsetT when using
a constant with &~.
1996-10-14 18:00:19 +00:00
Ian Lance Taylor
5d0cd0b87e Mon Oct 14 11:24:28 1996 Richard Henderson <rth@tamu.edu>
* config/obj-elf.c (elf_frob_file): Move ECOFF debug processing to ...
	(elf_frob_file_after_relocs): ... here.  New function.
	* config/obj-elf.h (obj_from_file_after_relocs): New macro.
	* write.c (write_object_file): Call *frob_after_relocs after the
	call to write_relocs.

	* config/tc-alpha.c: Use new BFD_RELOC_ALPHA_ELF_LITERAL reloc.

	* config/tc-alpha.c (load_expression): Don't SET_VALUE on the section
	symbol, as this messes up linking.  Instead, expand the recursive call
	inline and change up the appropriate bits to get the 0x8000 offset
	in the reloc addend.
1996-10-14 15:40:15 +00:00
Ian Lance Taylor
1491f2eaee * config/tc-sparc.h (tc_fix_adjustable): Permit the difference of
two symbols in the same segment to be adjusted.
1996-10-10 22:34:06 +00:00
Jeff Law
3ab9337b4b * config/mn10300.c (md_assemble): Pass an extra shift count
to mn10300_insert_operand based on the opcode format.
        (mn10300_insert_operand): Accept and use extra shift count
        parameter.
Matsushita
1996-10-10 22:03:16 +00:00
Ian Lance Taylor
914f899869 * configure.in: Don't get confused by CPU-VENDOR-linux-gnu.
* configure: Rebuild.
1996-10-10 21:31:27 +00:00
Michael Meissner
f8a011cfa5 Turn most warnings into errors 1996-10-10 21:26:59 +00:00
Jeff Law
778c521b85 * config/tc-mn10300.c (md_assemble): Use FMT_* macros for
formats rather than hard-coded constants.
Minor cleanup.
1996-10-10 20:33:47 +00:00
Jeff Law
1c3ae169f7 * config/tc-mn10300.c (md_assemble): Format D5 instructions
are 7 bytes long.  Write out instructions in big-endian format.

Matsushita.
1996-10-10 18:07:37 +00:00
Jeff Law
a6be605a1a * config/tc-mn10300.h (md_assemble): Tweak further so
that all instructions are parsed correctly.
1996-10-08 20:59:28 +00:00
Ian Lance Taylor
5e1e8f23cf * as.h: Include libiberty.h.
(xmalloc, xrealloc): Don't declare.
	* as.c: Don't include libiberty.h.
	* expr.c, read.c, stabs.c, config/obj-coff.c: Likewise.
	* config/tc-mips.c: Likewise.
	* messages.c: Likewise.
	(xstrerror): Don't declare.
	* xmalloc.c: Remove.
1996-10-08 17:15:20 +00:00
Jeff Law
1217102f2c * config/tc-mn10300.h (pre_defined_registers) Remove.
(system_registers, cc_names): Likewise.
        (address_registers, data_registers, other_registers): New register
        arrays.
        (register_name, system_register_name, cc_name): Remove.
        (mn10300_reloc_prefix): Likewise.
        (data_register_name): New function.
        (address_register_name, other_register_name): Likewise.
        (md_assemble): Rough cut at parsing operands.  Remove lots of
        unwanted code.
        (md_apply_fix3): Disable for now.
Checkpointing today's Matsushita work.
1996-10-07 22:59:04 +00:00
Ian Lance Taylor
99e3ccb64c Mon Oct 7 11:38:34 1996 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
* config/tc-m68k.c (select_control_regs): New function, extracted
	out of m68k_init_after_args.
	(m68k_init_after_args): Use it.
	(mri_chip): Use it here as well to update set of allowed control
	regs for movec.
1996-10-07 15:40:59 +00:00
Ian Lance Taylor
0bd28bc4f4 * config/obj-elf.c (elf_begin): New function.
(obj_elf_section): Add the section symbol to the symbol table.
	* config/obj-elf.h (obj_begin): Define.
	(elf_begin): Declare.
	* as.c (perform_an_assembly_pass): Call obj_begin if it is
	defined.
1996-10-07 15:25:58 +00:00
Ian Lance Taylor
eb0dafdc04 * config/obj-coff.c (fixup_segment): Subtract the section address
from a PC relative reloc if TC_M68K.
1996-10-04 22:38:44 +00:00
Ian Lance Taylor
76f841e600 * config/tc-sparc.c (md_pseudo_table): Make .uahalf, .uaword, and
.uaxword available even if not OBJ_ELF.
	(md_atof): Remove unused local variable wordP.
1996-10-03 19:16:36 +00:00
Jeff Law
0f91d7632c * config/tc-mn10x00.c, config/tc-mn10x00.h: New files
for Matsushita MN10x00 support.
        * configure.in: Recognize mn10x00-*-*
        * configure: Rebuilt.
More Matsushita stuff.
1996-10-03 06:19:06 +00:00
Ian Lance Taylor
7c328bc7ff Wed Oct 2 15:54:03 1996 Klaus Kaempf <kkaempf@progis.de>
* obj-evax.h: move openvms definitions from here to tc-alpha.c.
	* tc-alpha.c: add support for vms_case_hack like in vax/vms.
	(load_expression): track clobbering of base reg before jmp/jsr.
	(s_alpha_file): pass case_hack flags and source filename via
	symbol table to bfd.
	* tc-alpha.h (TC_CONS_FIX_NEW): define
1996-10-02 19:55:33 +00:00
Ian Lance Taylor
a69e5977e2 * read.c (s_macro): Warn if a macro has the same name as a
pseudo-op.
	(s_space): In m68k MRI mode, align to a word boundary.
	* macro.c (define_macro): Add namep parameter.  Change all
	callers.
	* macro.h (define_macro): Update declaration.
1996-10-01 21:51:15 +00:00
Ian Lance Taylor
fed13a5ec9 Tue Oct 1 16:16:01 1996 Joel Sherrill <joel@oarcorp.com>
* configure.in (mips-*-rtems*): New target, like mips-*-elf*.
	* configure: Rebuild.
1996-10-01 20:17:23 +00:00
Ian Lance Taylor
bfc94743ea * as.c (show_usage): Print bug report address.
(parse_args): Change version printing to match current GNU
	standards.
	* gasp.c (show_usage): Print bug report address.
	(main): Change version printing to match current GNU standards.
1996-10-01 19:31:06 +00:00
Ian Lance Taylor
0b810a6ee0 * config/tc-m68k.c (init_table): Correct access control unit
register numbers.  From Ken Rose <rose@netcom.com>.
1996-10-01 17:59:56 +00:00
Ian Lance Taylor
ffef69a368 * config/tc-alpha.c: Add some static function prototypes.
(alpha_macros): Move to top of file.  Make static.
	(alpha_num_macros): Move to top of file.
1996-10-01 16:41:19 +00:00
Stu Grossman
8940a5834f * tc-v850.h: Define LOCAL_LABEL to recognise _.L_* symbols
generated by DWARF.
1996-10-01 16:38:44 +00:00
Ian Lance Taylor
4fc2c99a4a * expr.c (expr): Change >>= to >> (fix typo). (From meissner). 1996-09-26 20:04:56 +00:00
Ian Lance Taylor
97f8e6ff76 * read.c (float_cons): Call md_flush_pending_output if it is
defined.
PR 10716.
1996-09-24 23:06:05 +00:00
Ian Lance Taylor
6e4f3f096f * config/tc-m68k.c (add_fix): Treat a width of '3' like 'B'.
(md_assemble): A fixup width of '3' means a 1 byte reloc.
1996-09-23 16:32:24 +00:00
Ian Lance Taylor
72f70020f3 * config/obj-coff.c (fixup_segment): Don't adjust PC relative
reloc for the i960 for a reloc in the same section.  This undoes
	one of the two changes made Aug 19.
PR 10672.
1996-09-19 16:25:11 +00:00
Ian Lance Taylor
ab2998440b * config/obj-coff.c (obj_coff_endef): Both versions: Move C_STAT
symbols to the position of the debugging information.
PR 10668.
1996-09-18 16:14:29 +00:00
Ian Lance Taylor
1540599959 * expr.c (expr): Always use unsigned right shifts for >>.
PR 10630.
1996-09-16 15:42:47 +00:00
Jackie Smith Cashion
f17be6588b Thu Sep 12 10:25:45 1996 James G. Smith <jsmith@cygnus.co.uk>
* config/tc-arm.c (md_apply_fix3): Update two thumb instruction
 	slots when processing BL fixups.

	* config/tc-arm.c (output_inst): Ensure Thumb BL fixup is marked
 	on the first half of the instruction.

Thu Sep 12 10:28:44 1996  James G. Smith  <jsmith@cygnus.co.uk>

	* gas/arm/thumb.s (back): Check assembly of Thumb BL.
1996-09-12 09:31:02 +00:00
Ian Lance Taylor
1decafee51 * ecoff.c (ecoff_stab): Create an expression symbol for a complex
stabs expression, rather than giving an error.
1996-09-11 18:40:25 +00:00
Ian Lance Taylor
475c826bb4 * ecoff.c (ecoff_new_file): Don't do anything if we are still in
the same file.
PR 10595.
1996-09-11 04:14:35 +00:00
Ian Lance Taylor
8a3bdc3d2a * config/tc-mips.c (append_insn): Fill in the value for a constant
jump, rather than creating a reloc.
PR 10589.
1996-09-10 15:47:16 +00:00
Ian Lance Taylor
ca296aab0e Don't set interlocks for r5000. Rely on -mips4 settings. 1996-09-10 01:12:35 +00:00
Ian Lance Taylor
d31a3f5e76 * config/tc-mips.c (append_insn): Don't swap an instruction which
sets a condition code with an instruction which uses a condition
	code.
	(mips_ip): In cases 'N' and 'M', look for $fccN rather than an
	immediate value.
1996-09-09 18:37:10 +00:00
Ian Lance Taylor
517078c1b3 * config/tc-mips.c (md_begin): Recognize r5000 for cpu. If
mips_cpu is 5000, set interlocks and cop_interlocks.
	(mips_ip): Give a better error message if the ISA level is wrong.
	(md_parse_option): Recognize -mcpu=[v][r]5000.
1996-09-09 15:04:59 +00:00
Martin Hunt
5e6c6406e6 Fri Sep 6 17:07:12 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d10v.c (d10v_dot_word): New function to support
	"@word" with the word pseudo-op.
	(md_apply_fix3): Cleanup and changes to support correct sizes
	for 16 and 18-bit relocs.
1996-09-07 00:12:56 +00:00
David Edelsohn
df4021c176 * configure.in (sparc-*-aout): Set `em'.
* configure: Regenerated.
	* config/te-sparcaout.h: New file.
	* config/tc-sparc.h (TARGET_BYTES_BIG_ENDIAN): Define.
	Ifdef TE_SPARCOUT define TARGET_FORMAT and SPARC_BIENDIAN.
	* config/tc-sparc.c (INSN_BIG_ENDIAN): New macro.
	(SPECIAL_CASE_{SETSW,SETX}): Define.
	({NOP,OR,FMOVS,SETHI,SLLX,SRA}_INSN): Define.
	(md_begin): Delete setting of `target_big_endian'.
	(output_insn): New function.
	(md_assemble): Rewrite.  Add `setx' support.
	(sparc_ip): Handle `0' operand char.  Recognize setuw, setsw, setx
	special cases.
	(md_atof): Add little endian support.
	(md_number_to_chars): Likewise.
	(md_apply_fix): Likewise.
	(md_longopts): Recognize -EL,-EB ifdef SPARC_BIENDIAN.
	(md_parse_option): Likewise.
	(md_show_usage): Print -EL, -EB ifdef SPARC_BIENDIAN.
1996-09-06 23:05:12 +00:00
Ian Lance Taylor
cfc71c6d3a * ecoff.c (ecoff_new_file): New function.
* ecoff.h (ecoff_new_file): Declare.
	* config/obj-ecoff.h (obj_app_file): Define.
PR 10548.
1996-09-05 17:43:06 +00:00
Ian Lance Taylor
711254da6c * config/tc-mips.c (load_register): Remove unused variable tmp. 1996-09-04 14:26:20 +00:00
Jackie Smith Cashion
1b68deb599 Wed Sep 4 11:24:29 1996 James G. Smith <jsmith@cygnus.co.uk>
* config/tc-mips.c (load_register): Remove unnecessary code that
 	was causing the high 32bits of 64bit constants to be lost.

Fixes PR10503. The compiler was producing the assembler code:
	dli $3,0xfffffffffffff
when constructing the softfloat library. Unfortunately it was being
incorrectly assembled.
1996-09-04 13:15:28 +00:00
Jeff Law
05fd83edd4 * config/tc-v850.c: Remove commented out and #if 0'd code.
(v850_reloc_prefix): Provide prototype.
        (postfix, get_reloc, build_insn): Remove prototypes for nonexistant
        functions.
        (md_begin, md_assemble, md_apply_fix3): Remove unused variables.
        (md_assemble): Add default to case statement.
Minor cleanups.
1996-09-03 17:59:16 +00:00
Jeff Law
270fd2adc3 * config/tc-v850.c (md_assemble): Compute size of the instrction
from the opcode.
1996-08-31 22:04:08 +00:00
Jeff Law
2d56269edf * config/tc-v850.c (md_apply_fix3): Do simple byte, short and
word fixups too.
Fixes "difference between forward references".
1996-08-31 18:36:19 +00:00
Jeff Law
74dd0c0786 * config/tc-v850.c (md_apply_fix3): Use little endian get/put
routines to fetch/store the updated instruction from/to memory.
        (v850_insert_operand): If the operand has a specialized insert
        routine, call it.
Getting fixups closer.  At least br <target> works now.
1996-08-31 05:52:38 +00:00
J.T. Conklin
c84615bc23 * config/tc-v850.c (reg_name_search): Align calling convention to
be like identical function found in tc-ppc.c.
(get_reloc): Removed.
(v850_reloc_prefix): New function, parse lo(), hi() and hi0().
(md_assemble): emit fixups.
(md_pcrel_from): renamed from md_pcrel_from_section, emit proper
displacement.
(md_apply_fix3): handle fixups/relocs.
* config/tc-v850.h (MD_PCREL_FROM_SECTION): Removed definition.
1996-08-31 01:42:46 +00:00
Ian Lance Taylor
0f616818c0 Add SH ELF support.
* configure.in (sh-*-elf*): New target.
	* config/tc-sh.h (TARGET_ARCH): Define.
	(WORKING_DOT_WORD): Define.
 	(TC_COFF_FIX2RTYPE): Only define if OBJ_COFF.
	(BFD_ARCH, COFF_MAGIC, TC_COUNT_RELOC): Likewise.
	(TC_RELOC_MANGLE, tc_coff_symbol_emit_hook): Likewise.
	(DO_NOT_STRIP, NEED_FX_R_TYPE, TC_KEEP_FX_OFFSET): Likewise.
	(TC_COFF_SIZEMACHDEP, tc_frob_file): Likewise.
	(SUB_SEGMENT_ALIGN): Likewise.
	(RELOC_32): Don't define.
	(tc_frob_file_before_adjust): Define if BFD_ASSEMBLER.
	(target_big_endian): Declare if OBJ_ELF.
	(TARGET_FORMAT): Define if OBJ_ELF.
	* config/tc-sh.c: Use BFD reloc codes instead of SH COFF reloc
	numbers throughout.
	(tc_crawl_symbol_chain): Only define if OBJ_COFF.
	(tc_headers_hook, tc_coff_sizemachdep): Likewise.
	(struct sh_count_relocs): Define.
	(sh_count_relocs): New static function, broken out of
	sh_frob_file.  Add BFD_ASSEMBLER code.
	(sh_frob_section): Likewise.
	(sh_frob_file): Call sh_frob_section.
	(md_convert_frag): If BFD_ASSEMBLER, change type of headers, and
	call section_symbol rather than seg_info (seg)->dot.
	(md_section_align): Add OBJ_ELF version.
	(SWITCH_TABLE_CONS): Define.
	(SWITCH_TABLE): Use SWITCH_TABLE_CONS.
	(md_apply_fix): Change parameter types if BFD_ASSEMBLER.  Only
	handle fx_r_type == 0 if not BFD_ASSEMBLER.  Return 0 if
	BFD_ASSEMBLER.
	(struct reloc_map): Define if not BFD_ASSEMBLER.
	(coff_reloc_map): Likewise.
	(sh_coff_reloc_mangle): Use coff_reloc_map to convert fx_r_type.
	(tc_gen_reloc): New function if BFD_ASSEMBLER.
	* write.c (write_relocs): Ifdef out fx_where test which triggers
	inappropriately for SH ELF.
	(write_object_file): Call tc_frob_file_before_adjust and
	obj_frob_file_before_adjust if they are defined.

	* write.c (write_object_file): Use BFD_RELOC_16, not
	BFD_RELOC_NONE, when calling fix_new_exp for a broken word.
1996-08-30 22:29:42 +00:00
Martin Hunt
20dbcd5c31 Fri Aug 30 14:47:38 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d10v.c (find_opcode): Fix problem with calculating
	branch sizes in across sections.
1996-08-30 21:50:52 +00:00
Jeff Law
05631de266 * config/tc-850.c (md_assemble): Handle hi() correctly. Handle
hi0() too.
Bugfix.
1996-08-30 06:44:44 +00:00
Martin Hunt
e592d28fa4 Wed Aug 28 19:20:04 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d10v.c (find_opcode): Fix a bug which could generate
	the wrong opcode for cases like st2w where there are many forms
	of the same instruction.
1996-08-29 02:22:25 +00:00
Ian Lance Taylor
6fce31a64b * expr.c (operand): If md_parse_name is defined, call it before
calling symbol_find_or_make.
	* config/tc-ppc.h (md_parse_name): Define.
	(ppc_parse_name): Declare.
	* config/tc-ppc.c (reg_name_search): Add regs and regcount
	parameters.
	(register_name): Update call to reg_name_search.
	(cr_operand): New static variable.
	(cr_names): New static const array.
	(ppc_parse_name): New function.
	(md_assemble): If PPC_OPERAND_CR is set in the operand flags, set
	cr_operand before calling expression.
PR 10460.
1996-08-27 17:56:47 +00:00
Jeff Law
a58b037adc * config/tc-hppa.c (tc_gen_reloc): Add new argument to
hppa_gen_reloc_type call.
Fixing a problem with -mlinker-opt.
1996-08-27 15:21:30 +00:00
Martin Hunt
3017263b68 Mon Aug 26 18:24:51 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d10v.c: Fixed ".word".  Fixed problem with range checking
	on addresses.  Improved error messages.
	* doc/c-d10v.texi: Added docs for register pairs.
1996-08-27 01:28:10 +00:00
Martin Hunt
f9085532dd Mon Aug 26 13:39:27 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d10v.c (parallel_ok): Fix bug in parallel
	checking code.
1996-08-26 20:42:19 +00:00
Ian Lance Taylor
58275724ff * ecoff.c (init_file): Initialize fMerge to 1.
(add_file): Restore old file merging code, but only merge files if
	fMerge is set.
	(ecoff_directive_loc): Clear fMerge field of current file.
	(ecoff_generate_asm_lineno): Likewise.
1996-08-26 19:07:06 +00:00
Jeff Law
88b47a8521 * config/tc-v850.c (md_assemble): Rough cut at demanding
"ep" or "r30" in sst and sld instructions.
        (md_apply_fix3): Don't abort.  Just warn that we don't
        have relocs yet.
1996-08-23 20:58:13 +00:00
Jeff Law
c9f1b2d9c7 * config/tc-v850.c (CC_NAME_CNT): Define.
(cc_name): New function.
        (md_assemble): Handle V850_OPERAND_CC correctly.
setf stuff
1996-08-23 19:01:37 +00:00
Martin Hunt
b1c28263c9 Fri Aug 23 11:40:47 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* doc/c-d10v.texi: Fix typo.
1996-08-23 18:43:48 +00:00
Jeff Law
d5974c571c * config/tc-v850.c (md_assemble): Don't forget to initialize
"insn"!
1996-08-23 18:19:08 +00:00
Jeff Law
0e8f9bd15e * config/tc-v850.c (reg_name_search): Generalize to search
any given register table.
        (register_name): Pass appropriate table and size to reg_name_search.
        (system_register_name): New function.
        (SYSREG_NAME_CNT): Define.
        (md_assemble): Handle operands which are system registers.
Still working on the parser..
1996-08-23 17:39:43 +00:00
Jeff Law
c9a32d6ca7 * config/tc-v850.c (md_assemble): If we find a register, but the
opcode doesn't want a register, then we don't have a match.
        (md_assemble): Get size of the instruction from the opcode table.
So we choose the right opcode and so that we get the sizes right.
1996-08-23 16:43:23 +00:00
Ian Lance Taylor
8ee90d359b * configure.in: Set and substitute HLDENV.
* configure: Rebuild.
	* Makefile.in (HLDENV): New variable.
	(as.new): Use $(HLDENV).
1996-08-23 00:10:40 +00:00
Ian Lance Taylor
eeef602f20 * ecoff.c (ecoff_directive_endef): Avoid a division by zero error
if an array dimension is not known.
PR 10426.
1996-08-22 21:00:36 +00:00
Martin Hunt
6be9ec8d75 Thu Aug 22 10:50:00 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d10v.c: Fix a reloc bug caused by my last change.
	* doc/c-d10v.texi: Cleanup.
1996-08-22 17:53:59 +00:00
J.T. Conklin
c6aa56bca9 * config/tc-v850.c: New file.
* config/tc-v850.h: New file.
* configure (v850-*-elf): New target.
* configure.in (v850-*-elf): New target.
1996-08-21 23:37:04 +00:00
Martin Hunt
2c2e562634 Wed Aug 21 15:50:54 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* doc/c-d10v.texi: New file.
	* doc/all.texi: Added D10V stuff.
	* doc/as.texinfo: Added D10V stuff.
1996-08-21 22:53:14 +00:00
Martin Hunt
ab457c4c0b Tue Aug 20 14:10:02 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d10v.c: All references to defined symbols should
 	now use the optimal instruction.  .float and .double now work.
1996-08-20 21:15:05 +00:00