Commit graph

967 commits

Author SHA1 Message Date
Jeff Law
448b5aadbb * config/tc-hppa.c (selector_table): Add 'E' selector.
(cons_fix_new_hppa): Don't coke on e_esel.
        (tc_gen_reloc, SOM version): Handle R_COMP2 when used
        to help generate exception handling tables.
        (md_apply_fix): Don't try to apply fixups with an e_esel
        selector.
        (hppa_fix_adjustable): Fixups with e_esel selectors
        are not adjustable.
Another stab at EH on the PA.
1996-07-30 20:30:49 +00:00
Martin Hunt
a40d35898a Fri Jul 26 11:43:03 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* tc-d10v.c: Added lots of error checking.  Added hacks
	to support accumulator shifts.
1996-07-26 18:53:03 +00:00
Martin Hunt
ef5a4085ce Thu Jul 25 15:22:51 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* tc-d10v.c (md_assemble): Now handles multiline
	instructions.
1996-07-25 22:27:37 +00:00
Martin Hunt
ab48956f99 Thu Jul 25 12:03:33 1996 Martin M. Hunt <hunt@pizza.cygnus.com>
* tc-d10v.c: Fix packaging bug. Added range checking.
	Added kludge for divs instruction.  Fixed minor problem with
	multiple text sections.
	* tc-d10v.h (d10v_cleanup): Change prototype.
1996-07-25 19:15:14 +00:00
Martin Hunt
9305039104 start-sanitize-d10v
Tue Jul 23 10:49:36 1996  Martin M. Hunt  <hunt@pizza.cygnus.com>

	* config/tc-d10v.c (md_apply_fix3): Fix all instruction
	addresses to be right-shifted by 2.

end-sanitize-d10v
1996-07-23 17:59:22 +00:00
Martin Hunt
0ef325594a start-sanitize-d10v
Mon Jul 22 11:32:36 1996  Martin M. Hunt  <hunt@pizza.cygnus.com>

	* config/tc-d10v.c: Many changes to get relocs working.
 	(register_name): No longer creates a symbol for register names.
 	(pre_defined_registers): moved to opcodes/d10v-opc.c.
	(d10v_insert_operand): Now works correctly for either container.
	* config/tc-d10v.h (d10v_cleanup): Declare.

end-sanitize-d10v
1996-07-22 18:55:27 +00:00
Ian Lance Taylor
97aca1bcdf * config/tc-mips.c (tc_gen_reloc): BFD_RELOC_PCREL_HI16_S and
BFD_RELOC_PCREL_LO16 are expected to be PC relative.
1996-07-22 18:03:41 +00:00
Ian Lance Taylor
6543a7fb68 Mon Jul 22 12:46:55 1996 Richard Henderson <rth@tamu.edu>
* tc-alpha.c: Patches to track current minimum alignment to reduce
	the number of fragments created with frag_align.
	(alpha_current_align): New static variable.
	(s_alpha_text): Reset alignment to 0.
	(s_alpha_data, s_alpha_rdata, s_alpha_sdata): Likewise.
	(s_alpha_stringer, s_alpha_space): New functions.
	(s_alpha_cons, alpha_flush_pending_output): Remove functions.
	(alpha_cons_align): New function to replace both of them.
	(emit_insn): Only align if alpha_current_align is less than 2;
	reset alpha_current_align to 2.
	(s_alpha_gprel32): Likewise.
	(s_alpha_section): New function.  Basically duplicate the other
	alpha section change hooks.  Only define for ELF.
	(s_alpha_float_cons): Simplify alignment handling.
	(md_pseudo_table): Only define "rdata" and "sdata" if OBJ_ECOFF.
	If OBJ_ELF, define "section", "section.s", "sect", and "sect.s".
	Don't define the s_alpha_cons pseudo-ops.  Do define
	s_alpha_stringer and s_alpha_space pseudo-ops.
	(alpha_align): Skip if less than current default alignment.  Set
	default alignment.
	* tc-alpha.h (md_flush_pending_output): Remove.
	(md_cons_align): Add.

	* tc-alpha.c: Add oodles of function description comments.
	(md_bignum_to_chars): Remove; there are no callers.
	(md_show_usage): Mention some more variants.
1996-07-22 17:04:04 +00:00
Ian Lance Taylor
8dd07a847c * config/tc-sparc.c (md_pseudo_table): Change uahalf, uaword, and
uaxword to use s_uacons.
	(sparc_no_align_cons): New static variable.
	(s_uacons): New static function.
	(sparc_cons_align): If sparc_no_align_cons is set, just clear it
	and return.
1996-07-18 20:53:32 +00:00
Ian Lance Taylor
091221ceea * config/tc-m68k.c (m68k_ip): Use the correct length when
allocating space for the unsupported architecture error message.
1996-07-18 19:56:40 +00:00
Martin Hunt
7be9a3121d start-sanitize-d10v
Wed Jul 17 14:25:13 1996  Martin M. Hunt  <hunt@pizza.cygnus.com>
        * config/tc-d10v.c: New file.
        * config/tc-d10v.h: New file.
        * configure (d10v-*-elf): New target.
        * configure.in (d10v-*-elf): New target.
end-sanitize-d10v
1996-07-18 00:39:03 +00:00
Michael Meissner
10c9620d4e Recognize and handle -K PIC 1996-07-13 00:54:55 +00:00
Ian Lance Taylor
0ee09671a8 Wed Jul 10 12:39:08 1996 Richard Henderson <rth@tamu.edu>
* config/tc-alpha.c (alpha_align): Change fill parameter
	to a pointer.  Take NULL as 0 or nop depending on section.  Change
	all callers.
	(s_alpha_align): Rename local variables.

	* doc/as.texinfo (.align): Document action of omitted
	fill parameter.
1996-07-10 16:51:06 +00:00
Ian Lance Taylor
996e146fd6 * config/tc-ppc.c (md_apply_fix3): Give a useful error message
when an unsupported PC relative reloc is seen, rather than calling
	abort.
PR 10073.
1996-07-10 04:26:38 +00:00
Ian Lance Taylor
a8aed9ddfb * config/tc-mips.c (mips_regmask_frag): Only define if OBJ_ELF or
OBJ_MAYBE_ELF.
	(tc_gen_reloc): If fixup was changed to be PC relative, change
 	reloc type accordingly.  Use name of reloc in error message.
1996-07-08 23:16:00 +00:00
Ian Lance Taylor
7f003b7fee * config/tc-m68k.c (tc_gen_reloc): Change the code appropriately
if fx_pcrel is set.  Correct setting the addend case in the
	OBJ_ELF case (from Andreas Schwab
	<schwab@issan.informatik.uni-dortmund.de>).
	(md_show_usage): Correct -mfc5200 to -m5200.
1996-07-08 18:15:15 +00:00
Jeff Law
d78f416f84 No longer sanitize away h8s stuff 1996-07-05 18:39:32 +00:00
J.T. Conklin
8d20a0a883 * config/tc-m68k.c (m68k_ip): The coldfire does not support 8x
scale factor.
1996-07-05 17:35:32 +00:00
Ian Lance Taylor
5af96dce32 Based on patches from Tom Quiggle <quiggle@sgi.com>:
* ecoff.c (last_lineno): New static variable.
	(add_procedure): Set last_lineno.
	(ecoff_directive_loc): Likewise.
	(ecoff_generate_asm_lineno): Likewise.
	(ecoff_fix_loc): New function.
	* ecoff.h (ecoff_fix_loc): Declare.
	* config/tc-mips.c (append_insn): When inserting nops, and using
	ECOFF debugging, call ecoff_fix_loc.
1996-07-03 20:15:38 +00:00
Ian Lance Taylor
69c1de907f * configure.in (arm-*-riscix*): Set emulation to riscix.
* configure: Rebuild.
	* config/te-riscix.h: New file to define TE_RISCIX.
1996-06-29 22:20:57 +00:00
Ian Lance Taylor
be4931bae0 sanitize out reference to MACREG 1996-06-29 16:48:44 +00:00
Ian Lance Taylor
0b916ef7a6 remove debugging code 1996-06-27 16:12:22 +00:00
Jackie Smith Cashion
344a8d61a1 Wed Jun 26 16:23:08 1996 James G. Smith <jsmith@cygnus.co.uk>
* config/tc-mips.c: Added cop_interlocks, to avoid NOP insertion
 	between co-processor comparisons and branches for the VR4300.

The preliminary documentation was slightly unclear on this issue, but
NEC have confirmed that there is an interlock within the CPU.
1996-06-26 15:28:00 +00:00
Ian Lance Taylor
df586de217 Fri Jun 21 16:01:18 1996 Richard Henderson <rth@tamu.edu>
* configure.in: Add alpha-*-linuxecoff* target.  Use elf for
	alpha-*-linux* target.  Force bfd_gas for alpha-*.  Require
	opcodes library for alpha.
	* configure: Rebuild with autoconf 2.10.
	* config/tc-alpha.c: Substantial rewrite to add ELF support and
	use new opcode table.
	* config/tc-alpha.h (md_undefined_symbol): Don't define.
	(LOCAL_LABEL): Define differently if OBJ_ELF.
	(FAKE_LABEL_NAME): Define if OBJ_ELF.
	* config/alpha-opcode.h: Remove.
	* config/obj-elf.h: If TC_ALPHA, define ECOFF_DEBUGGING.
	* Makefile.in (TARG_CPU_DEP_alpha): Depend upon
	include/opcode/alpha.h rather than config/alpha-opcode.h.
1996-06-21 20:10:12 +00:00
Ken Raeburn
214f540d12 * config/tc-i386.c (md_number_to_chars): Deleted.
* config/tc-i386.h (md_number_to_chars): New macro.

* config/tc-alpha.c (build_operate_n, build_mem): Moved earlier in the file.
(load_symbol_address, load_expression): Use build_mem.
(build_operate): New function.
(emit_addq_r): Use it.

Wed Mar 13 22:14:14 1996  Pat Rankin  <rankin@eql.caltech.edu>

* symbols.c (colon):  #if VMS, use S_SET_OTHER to store `const_flag'.

Tue Mar  5 14:31:45 1996  Pat Rankin  <rankin@eql.caltech.edu>

* config/tc-vax.h (NOP_OPCODE): Define.

Sun Feb  4 21:01:03 1996  Pat Rankin  <rankin@eql.caltech.edu>

* config/obj-vms.h (S_IS_COMMON): Define.
(S_IS_LOCAL): Check for \002 as well as \001.
(LONGWORD_ALIGNMENT): New macro.
(SUB_SEGMENT_ALIGN): Use it.

Fri Jan 26 17:44:09 1996  Pat Rankin  <rankin@eql.caltech.edu>

* config/vms-conf.h: Reconcile with conf.in.
1996-06-20 20:06:44 +00:00
Ian Lance Taylor
8095b665cb * as.c (emulation_name): Remove unused static variable.
(default_emul_bfd_name): Add return NULL to avoid warning.
	* ecoff.c (ecoff_stab): Remove unused variables name and
	name_end.
	* frags.c (frag_new): Remove unused variable tmp.
	* hash.c (hash_grow): Parenthesize + within <<.
	(hash_print_statistics): Use %lu, not %d, to print unsigned
	long variables.
	* messages.c: Include "libiberty.h".
	(fprint_value): Add cast to avoid printf warning.
	(sprint_value): Likewise.
	* read.c: Include "ecoff.h".
	(emit_expr): Add casts to avoid printf warnings.
	* read.h: Use extern for function declarations.
	(pop_insert): Declare.
	* stabs.c: Include "ecoff.h".
	* subsegs.c (subseg_set_rest): Remove unused variables tmp,
	former_last_fragP, and new_fragP.
	* subsegs.h (subsegs_print_statistics): Declare.
	* symbols.c (debug_verify_symchain): Change macro to discard
	arguments.
	* write.c (dump_section_relocs): Likewise.
	* write.h: Use extern for function declarations.
	(write_print_statistics): Declare.
	* config/e-mipsecoff.c (mipsecoff_bfd_name): Return NULL to avoid
	warning.
	* config/e-mipself.c (mipself_bfd_name): Likewise.
	* config/obj-elf.h (elf_ecoff_set_ext): Declare.
1996-06-19 18:42:42 +00:00
Ian Lance Taylor
9753202d00 * config/tc-mips.c (mips_ip): In cases 'I', 'i', and 'j', set
insn_error rather than calling check_absolute_expr.
1996-06-19 18:34:30 +00:00
Ian Lance Taylor
faa3f5397d * config/tc-alpha.c (tc_gen_reloc): Output a sensible error
message if bfd_reloc_type_lookup fails, rather than calling
 	assert.
1996-06-19 17:01:22 +00:00
Ian Lance Taylor
7b9b1eb22e * config/tc-alpha.c (alpha_force_relocation): Add
BFD_RELOC_12_PCREL to switch.
1996-06-19 15:33:44 +00:00
Jeff Law
3d0afe12c5 * config/tc-h8300.c (parse_reg): Tweak error messages.
(build_bytes): Likewise.
        (skip_colonthing): Handle :32 suffix.
        (get_specific): Promote L_24 to L_32 if it makes a match.
        Don't always promote L_8 to L_16.
        (do_a_fix_imm): Clean up L_32 and L_24 handling.
H8/S related stuff that doesn't need to be sanitized.

start-sanitize-h8s
        * config/tc-h8300.c (Smode): New variable.
        (h8300hmode): Turn off Hmode.
        (h8300smode): New function.  Turn on Smode and Hmode.
        (md_pseudo_table): New ".h8300s" pseudo-op.
        (parse_reg): Handle "exr" register.
        (get_operand): Handle bizarre syntax for "stm.l" and "ldm.l".
        Handle "mach" and "machl" operands for ldmac.
        (get_specific): Handle "stm.l" and "ldm.l".
        (build_bytes): Handle "stm.l" and "ldm.l"; handle MACREG operands.
        * config/tc-h8300.h (COFF_MAGIC): Handle H8/S magic number.
        (Smode): Declare.
end-sanitize-h8s
Sanitized H8/S stuff until we know its status.
1996-06-18 20:28:20 +00:00
Jeff Law
b81231b786 * config/tc-hppa.c (md_pseudo_table): Add ".level" pseudo op.
(pa_level): New function.
hpux10 gunk.
1996-06-17 05:59:01 +00:00
Ian Lance Taylor
e789e620dd * config/obj-coff.c (struct filename_list): Only define if not
BFD_ASSEMBLER.
	(filename_list_head, filename_list_tail): Likewise.
	(c_section_symbol): Remove unused BFD_ASSEMBLER version.
	(obj_coff_endef, BFD_ASSEMBLER version): Don't set the debugging
	flag for C_MOS, C_MOE, C_MOU, or C_EOS symbols, since they should
	have a section of N_ABS rather than N_DEBUG.  If we do a merge,
	remove the new symbol from the list.
 	(obj_coff_endef, both versions): Call tag_insert even if there is
	an old symbol with the same name, if the old symbol does not
	happen to be a tag.
	(coff_frob_symbol): Check SF_GET_TAG, C_EOF, and C_FILE outside of
	the SF_GET_DEBUG condition.  Don't call SA_SET_SYM_ENDNDX with a
	symbol that will be moved to the end of the symbol list.
	(coff_adjust_section_syms): Always call section_symbol for .text,
	.data, and .bss.
	(coff_frob_section): Likewise.  Also, remove unused variable
	strname.
1996-06-10 19:29:25 +00:00
Jim Wilson
ed381b6719 Kill r16/rce/acp stuff. 1996-06-08 03:18:15 +00:00
Michael Meissner
527b83247e Do not turn on -mregnames by default 1996-06-04 15:02:47 +00:00
Ian Lance Taylor
9c44af609b * config/tc-mips.c (md_parse_option): Check for a 64 bit format
before permitting -64.
	* output-file.c (output_file_create): Remove duplicate
	bfd_perror.
1996-06-02 01:55:28 +00:00
Ian Lance Taylor
871781804f * config/tc-mips.c (md_begin): If -64, create a .MIPS.options
section rather than a .reginfo section.
	(mips_elf_final_processing): If -64, write out 64 bit RegInfo
	information.
1996-05-31 21:46:14 +00:00
Ian Lance Taylor
98bfd087ca * config/tc-mips.c (load_register): If mips_isa < 3, permit a 32
bit value with the high bit set.
1996-05-31 05:10:20 +00:00
Michael Meissner
76bda7a424 Make ! a comment only under Solaris; Add .rdata/.rodata pseduo ops 1996-05-31 01:16:10 +00:00
Ian Lance Taylor
7f9880e5de * config/tc-mips.c (mips_64): New static variable.
(mips_target_format): If mips_64, return elf64 targets rather than
	elf32 ones.
	(md_longopts): Add "32" and "64".
	(md_parse_option): Handle -32 and -64.
	(md_show_usage): Mention -32 and -64.
	(cons_fix_new_mips): If mips_64, don't convert an 8 byte reloc to
	a 4 byte one.
1996-05-30 23:08:47 +00:00
Michael Meissner
d0e1c80348 Make ! a comment character 1996-05-30 19:22:16 +00:00
Ian Lance Taylor
a40aee3822 * config/tc-mips.c (macro): When passing X_add_number to
macro_build, cast it to int first.
1996-05-29 20:46:07 +00:00
Ian Lance Taylor
9b61d62b9f * config/tc-mips.c (mips_ip): Mark sections created to hold
floating point information as read only.
1996-05-25 01:25:27 +00:00
Michael Meissner
e30c00760c Add better defaults for AIX3, AIX4 1996-05-24 22:10:52 +00:00
Ian Lance Taylor
bccbc0aa84 * config/tc-sh.h (struct sh_segment_info_type): Define.
(TC_SEGMENT_INFO_TYPE): Define.
	(sh_frob_label): Declare.
	(tc_frob_label): Define.
	(sh_flush_pending_output): Declare.
	(md_flush_pending_output): Define.
	* config/tc-sh.c (md_assemble): If relaxing, emit a R_SH_CODE
 	reloc before the instruction if necessary.
	(sh_frob_label): New function.
	(sh_flush_pending_output): New function.
	(sh_coff_frob_file): Ignore ALIGN, CODE, DATA, and LABEL relocs
	when looking for the reloc for the target of .uses.
	(md_convert_frag): Fix printf format (%0xlx to 0x%lx).
	(sh_force_relocation): Force CODE, DATA, and LABEL relocs to be
	emitted.
	(md_apply_fix): Ignore CODE, DATA, and LABEL relocs.
	(sh_coff_reloc_mangle): Force CODE, DATA, and LABEL relocs to use
	the absolute symbol.
1996-05-16 19:57:12 +00:00
Ian Lance Taylor
3ea36b5319 * config/tc-i386.c (md_assemble): Make sure the opcode suffix
matches the register size.
PR 9700.
1996-05-15 16:26:20 +00:00
Ian Lance Taylor
6648d3ae63 * config/obj-coff.c (yank_symbols): Check that FNAME_OFFSET is
non-zero before assuming this is a long file name.
	(w_strings): Likewise.
	(c_dot_file_symbol): Set FNAME_OFFSET to 1 for a long file name.

	* config/obj-coff.c (w_strings): Move declaration of i inside
	#ifdef block which uses it.
1996-05-07 15:34:25 +00:00
Ian Lance Taylor
d4d7d98cbf * config/obj-coff.c (coff_frob_symbol): Don't merge a symbol with
SF_GET_STATICS set.
	(yank_symbols): Likewise.
1996-05-04 01:00:04 +00:00
Ian Lance Taylor
ba97ba7e35 tweak last change 1996-05-02 03:11:26 +00:00
Ian Lance Taylor
7681eb9df7 * subsegs.h (segment_info_type): If MANY_SEGMENTS and not
BFD_ASSEMBLER, add name field.
	* config/obj-coff.c (coff_header_append): Handle long section
	names.
	(crawl_symbols): Just use the name field for the symbol name,
	without worrying about null byte termination.
	(w_strings): Handle long section names.
	(write_object_file): Likewise.  Also, use the name field, rather
	than scnhdr.s_name.
	(obj_coff_add_segment): Permit long section names.
	(obj_coff_init_stab_section): Use the name field, rather than
	scnhdr.s_name.
	(adjust_stab_section): Likewise.
	* config/te-pe.h (COFF_LONG_SECTION_NAMES): Define.
1996-05-02 02:32:52 +00:00
Ian Lance Taylor
912e424518 * config/tc-m68k.c (m68k_ip): Prevent attempts to use long offsets
in 68000 mode.
1996-04-24 21:05:20 +00:00