Commit graph

3001 commits

Author SHA1 Message Date
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
feb5b33137 Fix copyrights. 1997-01-03 23:56:40 +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
4d32706e4a fix copyright 1997-01-02 23:44:47 +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
d899ee85b4 * gas/mips/mips16.s, gas/mips/mips16.d: New test.
* gas/mips/mips.exp: Run mips16 test.

	* gas/mips/mips.exp: Run dli test unconditionally.
	* gas/mips/dli.s: Add text symbol.  Add nops to round to 16 byte
	boundary.
	* gas/mips/dli.d: Corresponding changes.
1997-01-02 21:51:31 +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
3421c0cc29 improve format 1996-12-31 19:23:32 +00:00
Ian Lance Taylor
4f1da13f33 * gas/sparc/synth.d: Use --prefix-addresses for objdump.
* gas/sparc/synth64.d: Likewise.
1996-12-31 18:03:58 +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
Angela Marie Thomas
e98c90e6ce change regexps to resemble disass output 1996-12-25 00:37:33 +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
59808ea7c8 Wed Dec 18 15:27:40 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* tc-d10v.c (md_assemble): Fix bug which caused
	second instruction in a line to be case sensitize. PR11312
1996-12-18 23:38:41 +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
Angela Marie Thomas
e682debfa3 fix typo 1996-12-17 20:02:15 +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
c8f580cec6 mention mips16 1996-12-15 20:26:46 +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
029b826182 * gas/mips/*.[sd]: Add explicit nops, sometimes controlled by
.ifdef, to accomodate change to avoid default alignment on
	embedded systems.
1996-12-13 18:06:41 +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
Jeff Law
dfd832cb9b * gas/mn10300/basic.exp: Update after endianness changes to
the assembler.
1996-12-11 06:20:40 +00:00
Jeff Law
8ca7163145 * config/tc-mn10300.c (md_assemble): Update to handle endianness
issues correctly.
1996-12-11 06:19:43 +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
3b159258ad * gas/mn10200/{mov1.s,mov2.s,mov3.s,mov4.s,movx.s}: New tests.
* gas/mn10200/{movb.s, movbu.s}: Likewise.
        * gas/mn10200/basic.exp: Run them.
We correctly assemble & insert operands for all mn10200 instructions.
1996-12-10 20:06:33 +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
9d49699b24 * gas/mn10200/*.s: New tests for the mn10200 assembler.
* gas/mn10200/basic.exp: Run them.
Tests for all instructions except mov*.
1996-12-10 00:14:35 +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
Jeff Law
8fbb3e909a * gas/mn10300/*.s: Remove '$' register prefixing. 1996-12-06 22:39:18 +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
fa1e3be84c Wed Dec 4 15:42:41 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* tc-d10v.c (md_assemble, d10v_cleanup): Fix bug
	with multiple sections.
1996-12-04 23:47:30 +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
a0cb629bde * gas/mn10300/*.s: Use '$' as register prefix for
all register operands.
1996-11-25 18:42:32 +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
Jeff Law
d3931e9311 * gas/all/gas.exp: xfail a couple tests for the mn10300.
For now...
1996-11-21 18:51:56 +00:00
Jeff Law
b47b320db3 * gas/mn10300/other.s: Update for correct syntax on a
few instructions (those with register lists).
        * gas/mn10300/basic.exp: Corresponding changes.
Stuff noticed while working on the disassembler.
1996-11-20 18:31:12 +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
440e84b262 * gas/mn10300/movm.s: Update for correct syntax.
* gas/mn10300/basic.exp: Update expected movm bit patterns.
1996-11-19 20:36:18 +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
d39e0e6d61 Fix previous change 1996-11-18 20:36:48 +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
Angela Marie Thomas
ff0bc27973 finally remove errant mentions of Sanitize 1996-11-18 03:13:31 +00:00
Jeff Law
2583a05ba2 * gas/mn10300/other.s: Put parens around register
argument in calls and jmp instructions.
1996-11-15 20:57:53 +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
7e405d7ed7 * gas/h8300/ffxx1.d: Update for recent disassembler changes.
Bring over from h8s beta branch.
1996-11-13 20:19:06 +00:00
Jeff Law
f8b8cdf8cc * gas/mn10300/basic.exp: Check opcode insertion for
extended instructions.
        * gas/mn10300/extend.s: Tweak constants for better
        testsuite coverage.
1996-11-07 07:27:44 +00:00
Jeff Law
4ba3a7a445 * gas/mn10300/basic.exp: Test insertion of operands
into call and jmp instructions with 32bit offsets.
        Fix typo in bit test patterns.
        * gas/mn10300/other.s: Tweak constants to improve
        testsuite coverage.
1996-11-06 22:08:38 +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
7ebc8b47ef * gas/mn10300/basic.exp: Test insertion of 32bit operand
in calls, btst, bclr & bset instructions.
1996-11-06 21:23:32 +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
a28b95d71d * gas/mn10300/*.s: Tweak constants in 32bit insns for
better testing coverage.
        * gas/mn10300/basic.exp: Test insertion of most 32bit
        operands.
1996-11-06 20:51:36 +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
b4f2bb63da * gas/mn10300/basic.exp: Check bit patterns for indexed mov,
movbu, movhu instructions.  Check bit patterns for more bit
        operations.  Check bit patterns for various 16bit call, retf
        and ret instructions.
        * gas/mn10300/other.s: Update operands for better test coverage.
Improving testsuite coverage.
1996-11-05 20:35:04 +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
9eb0125b6c * gas/mn10300/basic.exp: Check bit patterns for a
couple more mov and cmp instructions.
1996-11-04 19:56:27 +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
Ian Lance Taylor
3c02d99662 * gas/mips/*.d: Update for disassembler changes. 1996-10-29 22:22:35 +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
Ian Lance Taylor
edc4ed85c8 add write.c to v850_files 1996-10-28 23:13:44 +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
148b365e90 * gas/v850/reloc.s: New tests.
* gas/v850/basic.exp: Run them.
1996-10-17 04:41:24 +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