Commit graph

1275 commits

Author SHA1 Message Date
David Edelsohn
9f719a5652 m32r support. 1997-04-05 00:09:41 +00:00
Ian Lance Taylor
dc966dadf7 * config/tc-hppa.h (TC_EOL_IN_INSN): Check explicitly for '!',
rather than for any end of line character.
1997-04-04 22:49:21 +00:00
Ian Lance Taylor
5c11dba28a * config/tc-hppa.c (tc_gen_reloc): If hppa_ren_reloc_type fails,
call abort (i.e., as_abort) rather than crashing.
1997-04-04 22:48:24 +00:00
Ian Lance Taylor
08438bef4a * config/tc-mips.c (mips16_macro): Handle M_DMUL and M_MUL.
PR 11982.
1997-04-02 17:24:44 +00:00
Jim Wilson
3c83da8ac4 * config/tc-mips.c (md_begin): Don't set interlocks for 4100. 1997-04-02 02:33:47 +00:00
Michael Meissner
64251de516 Make # a line comment character 1997-04-01 16:29:10 +00:00
Ian Lance Taylor
acdc7ce30e * config/obj-elf.c (obj_elf_section_change_hook): New function.
* config/obj-elf.h (obj_elf_section_change_hook): Declare it.
	* config/tc-mips.c (s_change_sec): Call it if OBJ_ELF.
1997-03-28 18:10:09 +00:00
Ian Lance Taylor
23ac3ca1f0 * read.c (s_comm): Check S_IS_COMMON as well as S_IS_DEFINED.
(s_mri_common): Check S_IS_COMMON unconditionally.
	* symbols.c (colon): Check S_IS_COMMON as well as S_IS_DEFINED.
	* config/tc-alpha.c (s_alpha_comm): Likewise.
	* config/tc-mips.c (nopic_need_relax): Likewise.
	* config/tc-ppc.c (ppc_elf_lcomm): Likewise.
	(ppc_pe_comm): Likewise.
	* config/obj-elf.c (obj_elf_common): Likewise.  Set segment of
	common symbol to bfd_com_section_ptr.
	* config/tc-sparc.c (s_common): Likewise.
	(tc_gen_reloc): Likewise.
1997-03-27 17:31:06 +00:00
Ian Lance Taylor
2fb44892b1 * config/tc-i386.h (iclrKludge): Define.
* config/tc-i386.c (md_assemble): Handle iclrKludge.
1997-03-24 19:37:05 +00:00
Martin Hunt
2c268a8551 Sun Mar 23 18:03:31 1997 Martin M. Hunt <hunt@pizza.cygnus.com>
* tc-d30v.c (build_insn): Enable range-checking code.
	(postfix): Stop at space or comma. Fixes PR 11862.
	(md_assemble): Change error message.
1997-03-24 02:27:09 +00:00
Ian Lance Taylor
7cad1a894b * config/obj-ieee.c (segment_name): Don't define function if this
is a macro.
1997-03-21 23:52:29 +00:00
Ian Lance Taylor
f062ec459f * config/obj-coff.h (DO_STRIP): Don't define.
* config/tc-h8300.h (DO_STRIP): Don't define.
	* config/tc-h8500.h (DO_STRIP): Don't define.
	* config/tc-w65.h (DO_STRIP): Don't define.
	* config/tc-z8k.h (DO_STRIP): Don't define.
1997-03-21 23:13:26 +00:00
Ian Lance Taylor
a71dc20461 * symbols.c (colon): Call obj_frob_label if it is defined.
* config/obj-vms.h (obj_frob_label): Rename from tc_frob_label.
1997-03-21 23:06:08 +00:00
Ian Lance Taylor
f59fb6cac7 Thu Mar 20 13:42:01 1997 H.J. Lu <hjl@lucon.org>
* frags.c (frag_var): Change offset parameter to offsetT.
	(frag_variant): Likewise.
	* frags.h (frag_variant, frag_var): Update declarations.
	* config/tc-m68k.c (struct m68k_it): Change foff field to
	offsetT.
	(add_frag): Change off parameter to offsetT.
	* Several files: Add casts to calls to frag_var.
1997-03-20 19:08:35 +00:00
Ian Lance Taylor
9afc66310f Thu Mar 20 12:48:45 1997 Philippe De Muyter <phdm@info.ucl.ac.be>
* config/te-delta.h (COFF_COMMON_ADDEND): Define.
	* config/obj-coff.c (fixup_segment): Check COFF_COMMON_ADDEND when
	storing the value of a common symbol.
1997-03-20 17:50:41 +00:00
Ian Lance Taylor
7cd06f4400 Tue Mar 18 15:50:13 1997 H.J. Lu <hjl@lucon.org>
* Many files: Add function prototypes.
	* as.c (show_usage, parse_args): Make static.
	* frags.h (frag_alloc): Declare.
	* subsegs.c (subseg_set_rest): Don't declare frag_alloc.
	* symbols.c (dollar_label_instance): Change return type to long.
	* symbols.h (print_symbol_value): Declare.
	(print_expr, print_expr_1, print_symbol_value_1): Declare.
	* write.c (fix_new_exp): Don't declare make_expr_symbol.
	(remove_subsegs, relax_frag): Make static.
	* config/atof-vax.c (atof_vax_sizeof): Change letter to int.
	(what_kind_of_float): Likewise.
	(atof_vax): Make static.  Change what_kind to int.
	(md_atof): Change what_statement_type to int.
	* config/obj-ecoff.h (obj_ecoff_set_ext): Declare.
	* config/tc-alpha.c (vax_md_atof): Declare.
	(md_atof): Don't declare atof_ieee and vax_md_atof.
	* config/tc-i386.c (set_16bit_code_flag): Make static.
	* config/tc-i386.h (tc_i386_fix_adjustable): Declare.
	* config/tc-m68k.c (add_fix): Change width to int.
	(insert_reg): Change regname to const.
	(md_atof): Don't declare atof_ieee.
	(demand_empty_rest_of_line): Don't declare.
	* config/tc-m88k.c (md_atof): Don't declare atof_ieee.
	* config/tc-sparc.c (cmp_reg_entry): Change args to const PTR.
	(parse_keyword_arg): Change lookup_fn to take const arg.
	(md_atof): Don't declare atof_ieee.
	* config/tc-sparc.h: Add ifdef for multiple inclusion.
	(tc_aout_pre_write_hook): Don't declare.
1997-03-18 21:04:18 +00:00
Ian Lance Taylor
590c50d82c * as.h (bfd_alloc_by_size_t): Don't declare.
* Many files: Use xmalloc rather than bfd_alloc_by_size_t.
1997-03-17 16:29:29 +00:00
Ian Lance Taylor
18f7e3dc7f * config/tc-mips.c (md_apply_fix): Improve error message for out
of range branch.
1997-03-16 00:16:52 +00:00
Ian Lance Taylor
46a92fde53 * config/tc-mips.c (md_estimate_size_before_relax): Handle the
case of a symbol equated to another symbol when using SVR4_PIC.
1997-03-15 02:14:44 +00:00
Ian Lance Taylor
2e9974a450 * config/obj-elf.c (obj_elf_data): Call md_flush_pending_output
and md_elf_section_change_hook if they are defined.
	(obj_elf_text, obj_elf_previous): Likewise.
1997-03-13 16:21:34 +00:00
Ian Lance Taylor
e053e8c1e5 * config/tc-m88k.c (m88k_do_align): Don't use a special nop
alignment if a zero fill pattern was explicitly specified.
	* config/tc-sh.c (sh_do_align): Likewise.
1997-03-11 20:10:20 +00:00
Ian Lance Taylor
d88cc85dbb From Eric Youngdale <eric@andante.jic.com>:
* config/obj-elf.h (struct elf_obj_sy): Define.
	(OBJ_SYMFIELD_TYPE): Define to elf_obj_sy struct.  Change all
	users.
	* config/obj-elf.c (obj_elf_symver): Just record the name.
	(obj_symbol_new_hook): Initialized versioned_name field.
	(elf_frob_symbol): If there is a versioned_name, either rename the
	symbol, or add an alias with that name.
1997-03-10 04:53:55 +00:00
Jeff Law
a405bb3eb0 * config/tc-mn10300.c (md_assemble): Don't use any MN10300 specific
relocs anymore.  Tweak fx_offset for pc-relative relocs.
Cleanup/simplification of mn10300 port.  Bring over changes from mn10200 port.
1997-03-06 20:58:22 +00:00
Fred Fish
1ea5264653 * config/tc-tic80.c (md_pseudo_table): Add "sect" and "section"
pseudo-ops.
1997-03-05 06:18:28 +00:00
Fred Fish
e74539b876 * config/tc-tic80.c (md_begin): Declare external variable
coff_flags and insert an F_AR32WR bit into it.
1997-03-05 02:35:36 +00:00
Ian Lance Taylor
a941619c0b * config/tc-mips.c (mips16_extended_frag): Don't assume that we
can rely on the frag address to determine whether a frag is
	earlier or later.
1997-03-01 06:10:58 +00:00
Ian Lance Taylor
2360492176 * write.h (LOCAL_LABEL): Only define if not BFD_ASSEMBLER.
(S_LOCAL_NAME): Likewise.
	(FAKE_LABEL_NAME): Define unconditionally.
	* symbols.c (colon): Call bfd_is_local_label, not LOCAL_LABEL, if
	BFD_ASSEMBLER.
	(S_IS_LOCAL): Call bfd_is_local_label_name, not LOCAL_LABEL.
	* config/tc-*.h: Only define LOCAL_LABEL if not BFD_ASSEMBLER.
	Don't define FAKE_LABEL_NAME.
	* config/te-ic960.h: Likewise.
	* config/tc-mips.h (tc_frob_file_before_adjust): Define.
	(mips_frob_file_before_adjust): Declare.
	* config/tc-mips.c (mips_frob_file_before_adjust): New function.
	(mips_local_label): Remove.
1997-02-28 20:04:39 +00:00
Ian Lance Taylor
e691320ea4 * config/te-sco386.h: Remove; not used. 1997-02-28 19:42:04 +00:00
Ian Lance Taylor
8a683c6720 remove d10v sanitization 1997-02-27 23:34:14 +00:00
Fred Fish
a88ce21e33 * config/tc-tic80 (md_pseudo_table): Add align pseudo op to do
byte alignment rather than power-of-two alignment that is the
	GAS default.
1997-02-27 22:55:12 +00:00
Angela Marie Thomas
54d5e0fb22 fix random missing Sanitize bits 1997-02-27 18:59:07 +00:00
Fred Fish
1e12595d64 * config/tc-tic80.c (FLT_CHARS): Change from "dD" to "fF".
(find_opcode): Match operands that can be floats.
	(build_insn): Handle O_big (float) expressions and build
	correct opcode.
1997-02-27 04:05:18 +00:00
Stan Shebs
d3ecee3912 always keep te-lnews.h 1997-02-27 02:42:38 +00:00
Stan Shebs
af942793a8 * configure.in (mips*-*-lnews*): New target, also make empty
emulation list for this target.
	* configure: Update.
	* tc-mips.c (ECOFF_LITTLE_FORMAT): Define.
	(mips_target_format): Use.
	* te-lnews.h: New file.
1997-02-27 02:40:44 +00:00
Fred Fish
f92f247b2d * config/tc-tic80.c (find_opcode, build_insn): Changes to match
operands with :m or :s modifiers and generate the right opcodes
	for them.
1997-02-26 22:42:51 +00:00
Ian Lance Taylor
034988c662 Based on patches from Robert Lipe <robertl@dgii.com>:
* configure.in: Add i386coff and i386elf to emulation list.
	* configure: Rebuild.
	* as.c (i386coff, i386elf): Declare.
	* obj.h (coff_format_ops): Declare.
	* config/obj-coff.c (OBJ_HEADER): Define.
	(coff_obj_symbol_new_hook): Rename from obj_symbol_new_hook.
	(coff_obj_read_begin_hook): Rename from obj_read_begin_hook.
	(obj_pseudo_table): Add "version".
	(coff_pop_insert): New static function.
	(coff_sec_sym_ok_for_reloc): New static function.
	(no_func): New static function.
	(coff_format_ops): New variable.
	* config/obj-coff.h (coff_obj_symbol_new_hook): Declare.
	(obj_symbol_new_hook): Define.
	(coff_obj_read_begin_hook): Declare.
	(obj_read_begin_hook): Define.
	* config/tc-i386.h (i386_target_format): Declare.
	* config/tc-i386.c: Check OBJ_MAYBE_ELF as well as OBJ_ELF; check
	OUTPUT_FLAVOR when appropriate.
	(i386_target_format): New function.
	* Makefile.in (obj-coff.o): New target.
	(e-i386coff.o, e-i386elf.o): New targets.
1997-02-26 04:33:08 +00:00
Fred Fish
b16a8c8e09 * config/tc-tic80.c (md_apply_fix): Handle R_ABS type fixups.
(fixes several failures in generic part of GAS testsuite)
1997-02-25 06:37:51 +00:00
Fred Fish
ec72a26633 * config/obj-coff.c: Fix typo in comment section.
start-sanitize-tic80
	* config/tc-tic80.c (md_pseudo_table): Add entry for bss, which takes
 	an additional alignment argument.
	(find_opcode): Allow O_symbol relocs for any 32 bit field, not just
 	base relative ones.
	(build_insn): Handle O_symbol relocs for any 32 bit field, not just
 	base relative ones.
end-sanitize-tic80
1997-02-24 20:21:13 +00:00
Dawn Perchik
8d8a790b81 * itbl-ops.c: Add test for itbl_have_entries.
* config/tc-mips.c: Remove test for itbl_have_entries.
	* config/tc-mips.h: Define tc_init_after_args to mips_init_after_args.
1997-02-23 23:46:12 +00:00
Ian Lance Taylor
1857d1e67d fix minor formatting problem 1997-02-23 23:14:39 +00:00
Ian Lance Taylor
9218cee06b minor formatting fixes 1997-02-23 22:47:20 +00:00
Dawn Perchik
efec4a282c * itbl-parse.y: Fix indentation mistakes from indent program.
* itbl-lex.l: Fix indentation mistakes from indent program.
	* itbl-ops.h: Add include for ansidecl.h.
	Add PARAMS around function arguments.
	Add declaration for itbl_have_entries.
	* itbl-ops.c: Add PARAMS around function arguments.
	* Makefile.in: Add itbl build rules.
	Add dependancies for itbl files to mips target.
	* as.c: Add itbl support.
	Add new option "--insttbl" for dynamically extending instruction set.
	* as.h: Declare insttbl_file_name;
	the name of file defining extensions to the basic instruction set
	* configure.in, configure: Add itbl-parse.o, itbl-lex.o, and
	itbl-ops.o to extra_objects for mips configuration.
	Add include file link from itbl-cpu.h to
	config/itbl-${target_cpu_type}.h.
	* config/tc-mips.c: Allow copz instructions.
	Add notes for future additions to the itbl support.
	Add debug macros.
	(macro): Call itbl_assemble to assemble itbl instructions.
	See if an unknown register is specified in an itbl entry.
1997-02-23 22:23:12 +00:00
Fred Fish
d160b69e74 * doc/internals.texi (CPU backend): Fix typo in md_section_align
description.
start-sanitize-tic80
	* config/tc-tic80.h (NEED_FX_R_TYPE): Define.
	* config/tc-tic80.c (find_opcode): Add code to support O_symbol
	operands.
	(build_insn): Grab a frag early so we can use the address in
 	fixups.  Take one's complement of BITNUM values before insertion
 	in opcode.  Add code to support O_symbol operands.
	(md_apply_fix): Replace unimplemented warning with implementation.
	(md_pcrel_from): Ditto.
	(tc_coff_fix2rtype): Ditto.
end-sanitize-tic80
1997-02-23 04:01:39 +00:00
Martin Hunt
1b52469766 Fri Feb 21 14:34:31 1997 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d30v.c (parallel_ok): New function.
	* config/tc-d30v.h: Define TARGET_BYTES_BIG_ENDIAN.
1997-02-22 00:29:55 +00:00
Martin Hunt
09d9ef26c9 Fri Feb 21 14:34:31 1997 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d10v.c (md_pcrel_from_section): Return 0 if
        relocation is in different section. Fixes PR11574.
1997-02-21 22:36:21 +00:00
Jim Wilson
e2e5acfa75 Fix linker relocation overflow errors for the NEC vr4300/ddb toolchain.
These changes are related to Ian's gas/libgloss changes of Dec 13/Dec 18.
	* tc-mips.c (mips_ip): If configured for an embedded ELF system,
	don't set the section alignment to 2**4.
	* mips/ddb.ld: Align the location counter before setting _gp, and
	before setting edata.  Remove ALIGN from _gp computation.
	* mips/idt.ld, mips/pmon.ld: Before setting _gp, use ALIGN(8) instead
	of ALIGN(16).  Remove ALIGN from _gp computation.
1997-02-21 18:28:36 +00:00
Ian Lance Taylor
fee3e248a6 * configure.in: Set em=svr4 for m68k-*-sysv4*.
* configure: Rebuild.
	* config/te-svr4.h: New file.
	* config/tc-m68k.c (m68k_comment_chars): Only include `#' if
	TE_SVR4 or TE_DELTA.
1997-02-21 17:00:45 +00:00
Ian Lance Taylor
64c5df8d21 * config/obj-coff.c (obj_coff_ln [both versions]): Call
new_logical_line.
PR 11725.
1997-02-20 19:12:05 +00:00
Martin Hunt
9b1168d6e7 Tue Feb 18 18:42:51 1997 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d30v.c, config/tc-d30v.h: New files.
1997-02-19 02:47:03 +00:00
Fred Fish
e0706ea899 * config/tc-alpha.h (md_operand): Define with a null expansion,
like all the other targets.
	* doc/internals.texi (CPU backend): Add missing word in
	md_flush_pending_output description.  Fix typo in md_convert_frag
	description.
start-sanitize-tic80
	* config/tc-tic80: Minor comment additions/changes.
end-sanitize-tic80
1997-02-17 01:01:00 +00:00
Ian Lance Taylor
f5ed78de1f Based on notes from Peter Eriksson <peter@ifm.liu.se>. The target
does not actually work, though:
	* configure.in (i386-sequent-bsd*): New target.
	* configure: Rebuild.
	* config/tc-dynix.h: New file.
	* config/tc-i386.h: Define TARGET_FORMAT if TE_DYNIX.
1997-02-14 23:40:49 +00:00
Ian Lance Taylor
414a1069b7 random copyright and formatting fixes 1997-02-14 23:05:36 +00:00
Ian Lance Taylor
d7bf6158eb * read.c (do_align): Add max parameter. Change all callers.
Remove useless static variables.
	(s_align): New static function.  Do common portion of
	s_align_bytes and s_align_ptwo.
	(s_align_bytes, s_align_ptwo): Just call s_align.
	* frags.c (frag_align): Add max parameter.  Change all callers.
	(frag_align_pattern): Likewise.
	* frags.h (frag_align, frag_align_pattern): Update declarations.
	* write.c (relax_segment): Limit alignment change to fr_subtype.
	Fix some types to be addressT.
	* config/obj-coff.c (size_section): Likewise.
	* config/obj-ieee.c (size_section): Likewise.
	* config/tc-d10v.h (md_do_align): Add max parameter.
	* config/tc-i386.h (md_do_align): Likewise.
	* config/tc-m88k.h (md_do_align): Likewise.
	* config/tc-m88k.c (m88k_do_align): Likewise.
	* config/tc-sh.h (md_do_align): Likewise.
	* config/tc-sh.c (sh_do_align): Likewise.
	* as.h: Improve comments on rs_align and rs_align_code.
	* doc/as.texinfo: Document new alignment arguments.
	* doc/internals.texi (Frags): Document use of fr_subtype field for
	rs_align and rs_align_code.
1997-02-14 22:49:25 +00:00
Fred Fish
16171d7127 * config/{tc-alpha.h, tc-arc.h, tc-d10v.h, tc-generic.h, tc-i960.h,
tc-mn10200.h, tc-mn10300.h, tc-sh.h, tc-v850.h, tc-vax.h, tc-w65.h}:
	Add default definition of zero for TARGET_BYTES_BIG_ENDIAN.
	* config/{tc-arm.h, tc-hppa.h, tc-i386.h, tc-mips.h, tc-ns32k.h,
 	tc-ppc.h, tc-sparc.h}: Move definition of TARGET_BYTES_BIG_ENDIAN
	to a location consistent with the rest of the target include files.
	* config/tc-i386.c: Remove misleading comment.
	* doc/internals.texi (CPU backend): Add description of function
	md_undefined_symbol.
start-sanitize-tic80
	* config/tc-tic80.c: Add code to insert predefined symbols into the
	symbol table so they can be parsed by the standard expression parser.
	Remove custom code that use to parse them.
	* config/tc-tic80.h: Move definition of TARGET_BYTES_BIG_ENDIAN
	to a location consistent with the rest of the target include files.
end-sanitize-tic80
1997-02-14 07:53:14 +00:00
Fred Fish
af16e4115d * doc/Makefile.in (TEXI2DVI): Set to just name of program.
(DVIPS): Set to dvips.
	(ps, as.ps, gasp.ps): New targets.
	(internals.info, gasp.dvi, internals.dvi): Set both TEXINPUTS
 	and MAKEINFO env variables.
	(internals.ps): Use DVIPS macro.
	(clean): Remove core and backup files.
	(distclean): Remove temporary files from building internals.
	(clean-dvi): Ditto.
	* doc/internals.texi (Frags): Fix typo.
	(GAS processing): Ditto.
	(CPU backend): Ditto.
	* ecoff.c (init_file): Use TARGET_BYTES_BIG_ENDIAN value directly.
	* mpw-config.in: Define TARGET_BYTES_BIG_ENDIAN as 1.
	* read.c: Remove ugly hack that dealt with config files not
	correctly defining TARGET_BYTES_BIG_ENDIAN.
	(target_big_endian): Use TARGET_BYTES_BIG_ENDIAN directly.
	* config/arm-big.mt: Define TARGET_BYTES_BIG_ENDIAN to 1.
	* config/arm-lit.mt: Define TARGET_BYTES_BIG_ENDIAN to 0.
	* config/mips-big.mt: Define TARGET_BYTES_BIG_ENDIAN to 1.
	* config/mips-lit.mt: Define TARGET_BYTES_BIG_ENDIAN to 0.
	* config/ppc-lit.mt: Define TARGET_BYTES_BIG_ENDIAN to 1.
	* config/ppc-sol.mt: Replace TARGET_BYTES_LITTLE_ENDIAN
	with TARGET_BYTES_BIG_ENDIAN defined to 0.
	* config/tc-arm.h: Remove use of TARGET_BYTES_LITTLE_ENDIAN
	and simplify.  Test value of TARGET_BYTES_BIG_ENDIAN, not just
	whether it is defined or not.
	* config/tc-mips.h: Remove use of TARGET_BYTES_LITTLE_ENDIAN.
	* config/tc-ppc.h: Remove use of TARGET_BYTES_LITTLE_ENDIAN
	and simplify. Test value of TARGET_BYTES_BIG_ENDIAN, not just
	whether it is defined or not.
start-sanitize-tic80
	* config/tic80.h (TARGET_FORMAT): Define to coff-tic80.
	(TARGET_BYTES_BIG_ENDIAN): Define to 0.
end-sanitize-tic80
1997-02-14 01:04:19 +00:00
David Edelsohn
9e6f4c6b9d Correct errors in some comments (bfd_perform_relocation was refered to
instead of bfd_install_relocation).
1997-02-13 23:12:14 +00:00
Ian Lance Taylor
319305a75f * config/tc-mips.c (mips16_extended_frag): Correct base address
for an extended PC relative instruction.
	(md_convert_frag): Likewise.
1997-02-13 18:33:26 +00:00
Ian Lance Taylor
4a1cb5078b * config/tc-mips.c (prev_nop_frag): New static variable.
(prev_nop_frag_holds): New static variable.
	(prev_nop_frag_required): New static variable.
	(prev_nop_frag_since): New static variable.
	(append_insn): If we aren't reordering, and prev_nop_frag is not
	NULL, and we don't need any nops, then decrease the size of
	prev_nop_frag.  Don't insert nops because of instructions in
	noreorder sections.  Remember whether the previous instructions
	where in noreorder sections even when not reordering.
	(mips_no_prev_insn): Add preserver parameter.  Change all
	callers.  Refer prev_nop_frag variables when appropriate.
	(mips_emit_delays): Set up prev_nop_frag.
	(s_mipsset): Clear prev_nop_frag if reordering.
1997-02-13 17:25:10 +00:00
Ian Lance Taylor
9cd4e6cc51 * config/tc-mips.c (append_insn): Remove useless code which
handled swapping a mips16 jump with a mips16 instruction with a
	reloc.
1997-02-13 01:29:39 +00:00
Ian Lance Taylor
c0df26bb95 revert earlier patch to set prev_insn_valid when not reordering 1997-02-12 21:36:17 +00:00
Ian Lance Taylor
05874c2e35 * config/tc-mips.c (md_parse_option): When debugging, set
mips_optimize to 1, not 0.
1997-02-12 21:30:02 +00:00
Ian Lance Taylor
56bb6eeef7 * config/tc-mips.c (mips16_ip): Handle an extend operand. 1997-02-12 20:43:15 +00:00
Ian Lance Taylor
eb17f56cf5 * config/tc-mips.c (my_getExpression): In mips16 mode, if it looks
like the expression was based on `.', adjust the value of the
	symbol.
1997-02-12 20:38:20 +00:00
Ian Lance Taylor
035936da05 * config/tc-mips.c (append_insn): Warn about an attempt to put an
extended instruction in a delay slot when not reordering.  Set
 	prev_insn_valid even if not reordering.
	(md_convert_frag): Warn if an extended instruction appears in a
	delay slot.
1997-02-12 20:20:11 +00:00
Ian Lance Taylor
ed3eb78691 * config/tc-mips.c (mips_pseudo_table): Add "insn".
(s_insn): New static function.
	* doc/c-mips.texi: Document .insn.
1997-02-12 20:00:15 +00:00
Ian Lance Taylor
ebf2837264 * config/tc-mips.c (md_begin): Add the general registers to the
symbol table.
	(mips16_ip): First parse the expression, and then see whether it
	came up with a register, rather than trying to first see whether
	we are looking at a register.
1997-02-12 19:37:58 +00:00
Fred Fish
11e081968e * config/tc-tic80.c: Numerous changes and additions to flesh
out functions that were previously just stubs, and fix some
	problems found using the new TIc80 testsuite cases.
1997-02-11 22:44:10 +00:00
Ian Lance Taylor
16262668ac * config/tc-mips.c (mips16_ip): Handle %gprel modifier.
(md_apply_fix): Handle BFD_RELOC_MIPS16_GPREL.

	* config/tc-mips.c (append_insn): Output jump instruction as a
	pair of 2 byte instructions, rather than as a single 4 byte
	instruction.

start-sanitize-r5900
	* config/tc-mips.c (md_begin): Correct test of mips_5900.
	(mips_ip): Don't check INSN_ISA for a macro.

end-sanitize-r5900
1997-02-11 20:56:00 +00:00
Gavin Romig-Koch
276c2d7dc8 Add r5900 1997-02-11 13:26:34 +00:00
Dawn Perchik
8e5c905e99 * itbl-ops.c: New file. Add support for dynamically read
instruction registers, opcodes and formats.  Build internal table
	for new instructions and provide callbacks for assembler and
	disassembler.
	* itbl-lex.l, itbl-parse.y: Lex and yacc parsers for instruction
	spec table.
	* itbl-ops.h: New file.  Header file for itbl support.
	* config/itbl-mips.h: New file.  Mips specific definitions for
	itbl support.
1997-02-11 02:07:57 +00:00
Jeff Law
e58035e374 * config/tc-mn10200.c (md_estimate_size_before_relax): Treat
a jsr target in a different section just like a jsr to
        an undefined target.
Bug triggerd by c++ tests.
1997-02-07 03:09:52 +00:00
Ian Lance Taylor
6927c24d3c * config/tc-mips.c (mips_fix_adjustable): Don't adjust relocations
against any mips16 symbols, not just externally visible ones.
	(md_apply_fix): Corresponding change.
1997-02-06 21:54:07 +00:00
Ian Lance Taylor
c916764078 * config/tc-mips.c (mips16_ip): Accept floating point registers in
the operand of the exit instruction.
1997-02-05 16:12:04 +00:00
Ian Lance Taylor
2dffd20a0c fix spacing error 1997-02-04 21:35:47 +00:00
Ian Lance Taylor
1748b9d8f0 * config/tc-mips.c (md_apply_fix): If we aren't adjusting this
fixup to be against the section symbol, adjust the value
	accordingly.
1997-02-03 17:56:00 +00:00
Jeff Law
f5d7f6fb53 * config/tc-mn10200.c (md_relax_table): Add entries to allow
jmp -> bra relaxing.
        (md_convert_frag): Handle jmp->bra relaxing.
        (md_assemble): Handle jmp->bra relaxing.
        (md_estimate_size_before_relax): Likewise.
1997-01-31 22:23:10 +00:00
Ian Lance Taylor
2b063e6d64 * config/tc-sparc.c (enforce_aligned_data): New static variable.
(sparc_cons_align): Don't do anything unless enforce_aligned_data
	is set.
	(md_longopts): Add "enforce-aligned-data".
	(md_show_usage): Mention --enforce-aligned-data.
	* doc/c-sparc.texi (Sparc-Aligned-Data): New node; document
	enforce-aligned-data.
1997-01-31 20:34:22 +00:00
Ian Lance Taylor
fbd929fd05 * config/tc-ppc.c (md_pseudo_table): If OBJ_XCOFF, add "long",
"word", and "short".
	(ppc_xcoff_cons): New static function.
1997-01-31 19:57:31 +00:00
Ian Lance Taylor
fb50cd4ef2 Fri Jan 31 13:15:05 1997 Alan Modra <alan@spri.levels.unisa.edu.au>
* config/tc-i386.c (i386_align_code): Add comments explaining the
	nop instructions.
1997-01-31 18:16:15 +00:00
Ian Lance Taylor
0d7f9025b9 * config/tc-mips.c (mips_fix_adjustable): New function.
* config/tc-mips.h (tc_fix_adjustable): Call mips_fix_adjustable.
	(mips_fix_adjustable): Declare.
1997-01-30 21:19:36 +00:00
Fred Fish
f1ce6af4fe * config/tc-d10v.c (find_opcode): Remove unused variable "numops".
* config/tc-tic80.c: Many additions to previous placeholder file.
      * config/tc-tic80.h: Ditto.
1997-01-30 20:35:02 +00:00
Ian Lance Taylor
0b476c533b Thu Jan 30 12:28:18 1997 Alan Modra <alan@spri.levels.unisa.edu.au>
* config/tc-i386.c (i386_align_code): Improve the nop patterns.
1997-01-30 17:29:28 +00:00
Martin Hunt
daa04fa206 Wed Jan 29 15:31:12 1997 Martin M. Hunt <hunt@pizza.cygnus.com>
* config/tc-d10v.h (md_do_align): Add this hook to call
	d10v_cleanup() when a ".align" is detected.  Fixes PR11487.

	* config/tc-d10v.c (find_opcode): Correctly calculate
	branch displacement when .aligns are present.
1997-01-29 23:36:06 +00:00
Jeff Law
33a4c28dc0 * config/tc-mn10200.c (md_relax_table): Define.
(md_convert_frag): Implement.
        (md_assemble): Handle relaxable operands/instructions correctly.
        (md_estimate_size_before_relax): Implement.
        * config/tc-mn10200.h (TC_GENERIC_RELAX_TABLE): Define.
Some simple branch relaxing.
1997-01-29 16:46:31 +00:00
Ian Lance Taylor
39bb58e0ad * config/tc-mips.c (append_insn): Give an error for jumps to a
misaligned address.
1997-01-28 21:14:37 +00:00
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Jeff Law
8ca7163145 * config/tc-mn10300.c (md_assemble): Update to handle endianness
issues correctly.
1996-12-11 06:19:43 +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
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
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
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
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
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
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
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
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
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
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
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
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