Commit Graph

1563 Commits

Author SHA1 Message Date
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