Commit Graph

3175 Commits

Author SHA1 Message Date
Ian Lance Taylor
7b12877f0b * gas/all/align.d, gas/all/align.s: New test.
* gas/all/gas.exp: Run it.
1997-02-14 22:58:34 +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
Ian Lance Taylor
3de9d78cef * config/tc-sparc.c (md_show_usage): Add missing backslash at end
of continued line.
1997-02-14 03:09:46 +00:00
Ian Lance Taylor
9f13ead922 Thu Feb 13 21:44:18 1997 Klaus Kaempf <kkaempf@progis.de>
* as.h: GNU c provides unlink() function.

	Unify section handling on openVMS/Alpha:
	* config/tc-alpha.c(s_alpha_link): Remove.
	(s_alpha_section): New function.
	Remove case-hacking of symbols
	Add .code_address pseudo-op.
	(BFD_RELOC_ALPHA_CODEADDR): New relocation.
	(s_alpha_code_address): New function.
	(alpha_ctors_section, alpha_dtors_section): New sections for C++
	static constructors/destructors.
	Add debug code for crash debugs, to be removed when traceback code
	is added to object code.
	(s_alpha_name): New function for .name pseudo-op.
	(alpha_print_token): New function to print token expressions with
	alpha specific extensions.

	* makefile.vms: Allow compilation with current gcc snapshot.
1997-02-14 02:55:29 +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
David Edelsohn
89b41978ab * write.c (write_relocs): Correct text in as_fatal error message,
bfd_perform_relocation -> bfd_install_relocation.
1997-02-13 23:08:52 +00:00
Ian Lance Taylor
151c3ec043 Thu Feb 13 14:48:03 1997 Philippe De Muyter <phdm@info.ucl.ac.be>
* config/tc-m68k.c (LEX_TILDE): Define if TE_DELTA.
	* read.c (LEX_TILDE): Define if not defined.
	(lex_type): Use LEX_TILDE.
	* expr.c (get_symbol_end): Check first char with is_name_beginner,
	not is_part_of_name.
1997-02-13 19:50:01 +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
19336eb964 * gas/mips/lif-svr4pic.d: Pass -EB when running the assembler.
* gas/mips/lif-xgot.d: Likewise.
	* gas/mips/ulh-svr4pic.d: Likewise.
	* gas/mips/ulh-xgot.d: Likewise.
1997-02-12 21:48:50 +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
Ian Lance Taylor
508f2139b6 * gas/mips/mips16.d: Update for yet another change in disassembly
output (this one is spacing only).
1997-02-12 17:33:41 +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
Fred Fish
28ddd87e57 * gas/tic80/{add.d, add.lst, add.s, bitnum.d, bitnum.lst, bitnum.s,
ccode.d, ccode.lst, ccode.s, cregops.d, cregops.lst, cregops.s,
	endmask.d, endmask.lst, endmask.s, regops.d, regops.lst, regops.s,
	tic80.exp}: New files for TIc80 test cases.
1997-02-11 22:04:35 +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
Ian Lance Taylor
b0c0b41ab1 * gas/mips/mips16.d: Update for change in disassembly output. 1997-02-11 20:47:25 +00:00
Gavin Romig-Koch
276c2d7dc8 Add r5900 1997-02-11 13:26:34 +00:00
Dawn Perchik
a7f081a5be * gas/mips/itbl-test.c: Add copyright message and fix indentation. 1997-02-11 08:22:27 +00:00
Dawn Perchik
c674507349 * itbl-ops.c, itbl-lex.l, itbl-parse.y, itbl-ops.h,
config/itbl-mips.h: Add copyright message and fix indentation.
1997-02-11 08:11:03 +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
Dawn Perchik
242ce3d857 * itbl-test.c: New file. Stand-alone assembler and dissassembler for
itbl support.
1997-02-11 01:57:34 +00:00
Dawn Perchik
a3c2c0f44e * gas/mips/itbl: New file. Instruction Spec for testing --itbl option.
* gas/mips/itbl.s: New file.  Assembly with ne2w instructions specified
	in itbl.
1997-02-11 01:21:14 +00:00
Fred Fish
ba35784cc8 Add tic80 directory to keep_these_too or lose_these_too. 1997-02-10 17:36:26 +00:00
Bob Manson
dfe6379731 Changes to replace references to "prune_system_crud" with
"prune_warnings".
1997-02-08 01:03:37 +00:00
Jeff Law
a7355c4d87 * config/tc-mn10200.c (md_assemble): If a constant operand won't
fit into the constant field of a relaxable operand, then it does
        not match.
Fixes mn10200/other.s failures due to new relaxing code.
1997-02-07 16:54:05 +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
76801700d7 * symbols.c (resolve_symbol_value): If we leave an equated symbol
as O_symbol, copy over the segment.
1997-02-04 19:13:11 +00:00
Ian Lance Taylor
7b43bcb28c * gas/arm/inst.d, gas/arm/arm7t.d: Pass --prefix-addresses to
objdump.  Update for current relocation printing style.
1997-02-03 20:46:51 +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
Ian Lance Taylor
3569064fb5 * symbols.c (resolve_symbol_value): Don't change X_add_number for
an equated symbol.
	* write.c (write_relocs): Avoid looping on equated symbols.
	Adjust fx_offset by X_add_number for each symbol.
	* config/obj-coff.c (do_relocs_for): Avoid looping on equated
	symbols.
	(fixup_segment): Add a loop to track down equated symbols and
	adjust fx_offset appropriately.
1997-02-03 17:38:41 +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
a75abb6f0a * write.c (relax_segment): Give an error if a .space symbol is
common or undefined.

	* read.c (read_a_source_file): Don't handle mri_pending_align if
	the handler is s_globl or s_ignore.
1997-01-31 15:47:41 +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
Ian Lance Taylor
a6b200da04 Ideas from Srinivas Addagarla <srinivas@cdotd.ernet.in>:
* read.c (read_a_source_file): After doing an mri_pending_align,
	adjust the line_label if there is one.
	(s_space): Set mri_pending_align if an odd number of bytes were
	output.
1997-01-30 17:10:28 +00:00
Ian Lance Taylor
bcc4cbcef3 * gas/mips/mips16.d: Update for disassembler changes. 1997-01-30 16:57:54 +00:00
Martin Hunt
9073144e40 Wed Jan 29 15:31:12 1997 Martin M. Hunt <hunt@pizza.cygnus.com>
* tc-d10v.h (md_do_align): Add this hook to call
	d10v_cleanup() when a ".align" is detected.  Fixes PR11487.

	* tc-d10v.c (find_opcode): Correctly calculate
	branch displacement when .aligns are present.
1997-01-29 23:36:25 +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
Bob Manson
787f622077 Major revision to testsuites for cross-testing and DOS testing support. 1997-01-29 09:40: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
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
Angela Marie Thomas
b48daf747b handle all 4100/4300, not just elf 1997-01-23 11:15:19 +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
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
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
f5587846ed * gas/mips: Add symbols to several testsuites, since the ELF
assembler now always builds a symbol table, which means that
	objdump will no longer report `No symbols in FILE'.  Change the
	expected output accordingly.
1996-10-14 17:54:49 +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
301ee34af4 * gas/mn10300/basic.exp: Check bit patterns for instructions
with a single 8bit or 16bit immediate operand.
We should correctly assemble just about everything except opcodes with:

  multiple immediate operands,
  3 register operands,
  really weird stuff
1996-10-10 22:05:54 +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
d9f4450770 * gas/mn10300/basic.exp: Check bit patterns for many
instructions.  Add missing test in do_mov1.
        * gas/mn10300/mov1.s: Add missing test.
We should now assemble just about anything without any
immediate operands.
1996-10-10 19:13:48 +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
c3fa8cd69c * gas/mn10300/{add.s, bcc.s, bit.s, cmp.s, ext.s}: New tests.
* gas/mn10300/{extend.s logical.s, loop.s, mov1.s}: Likewise.
        * gas/mn10300/{mov2.s, mov3.s, mov4.s, movbu.s}: Likewise.
        * gas/mn10300/{movhu.s, movm.s, muldiv.s, other.s}: Likewise.
        * gas/mn10300/{shift.s, sub.s}: Likewise.
        * gas/mn10300/basic.exp: Run them.
Beginnings of gas testsuite for mn10300.  Matsushita.
1996-10-09 20:19:00 +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
Jeff Law
7d6669623a Dummy .Sanitize files. Should also fix snapshot problems. 1996-10-07 22:55:13 +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
ae1b99e42d Grrr. The mn10200 and mn10300 are _not_ similar enough to easily support
with a single generic configuration.  So break them up into two different
configurations.  See the individual ChangeLogs for additional detail.
1996-10-03 16:42:22 +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
Jeff Law
b5bfedbe6c * gas/mn10x00: New directory for Matsushita 10x00 tests.
Keep stubbing out Matsushita stuff.
1996-10-03 06:16:13 +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