Commit Graph

308 Commits

Author SHA1 Message Date
Nick Clifton 43841e9116 Fix compile time warning messages. 2000-05-29 22:05:27 +00:00
Alexandre Oliva 3c07fb76e6 * config/tc-mn10300.c (md_assemble): Copy size to real_size before
it is modified, and use the real_size to compute the frag address
for dwarf2 line info.
2000-05-27 21:40:22 +00:00
Jakub Jelinek 6faf3d667f * config/tc-sparc.c (sparc_relax): New.
(md_longopts): Add -relax and -no-relax options.
	(md_parse_options, md_show_usage): Likewise.
	(md_apply_fix3): Optimize tail call into branch always if possible.
2000-05-26 06:45:55 +00:00
Donald Lindsay 0a44c2b16f New short-conditional-branch packing rules for D10V. 2000-05-25 22:35:05 +00:00
Jim Wilson e0c9811a90 IA-64 unwind info changes, fix errors, add missing pieces, and some cleanup.
* config/tc-ia64.c (dot_restorereg_p): New function.
	(md_pseudo_table): Add restorereg.p.
	...
2000-05-25 02:00:14 +00:00
Alan Modra ee7fcc42b1 Pass jump reloc in fr_var so it can be used in
md_estimate_size_before_relax, replacing old kludge.
2000-05-23 04:48:21 +00:00
Richard Henderson c67e42c950 * config/tc-ia64.c (FUNC_PC_RELATIVE): New.
(pseudo_func): Add pcrel.
        (operand_match):  Handle IA64_OPND_TGT64.
        (build_insn): Likewise.
        (md_begin): Initialize pseudo_func[FUNC_PC_RELATIVE].
        (ia64_gen_real_reloc_type): Handle FUNC_PC_RELATIVE.
        (fix_insn): Handle all three 64-bit relocation types.
2000-05-23 01:48:04 +00:00
Hans-Peter Nilsson 5110c57e8e * obj.h (struct format_ops): New members begin, app_file,
s_set_other, s_set_desc, s_get_type, s_set_type,
	separate_stab_sections, init_stab_section.

	* config/obj-multi.h: Update GPL notice to v2.
	(obj_begin): New.
	(obj_app_file): New.
	(S_SET_SIZE): Test s_set_size for NULL before calling.
	(S_SET_ALIGN): Similar for s_set_align.
	(S_SET_OTHER): New.
	(S_SET_DESC): New.
	(S_GET_TYPE): New.
	(S_SET_TYPE): New.
	(SEPARATE_STAB_SECTIONS): New.
	(INIT_STAB_SECTION): New.
	(EMIT_SECTION_SYMBOLS): New.
	(AOUT_STABS) [OBJ_MAYBE_AOUT]: Define.

	* config/obj-elf.h: Update GPL notice to v2.
	Mention that this file is included from obj-multi.h.
	(obj_begin): Wrap definition in ifndef.
	(elf_file_symbol): Constify declaration.
	(obj_app_file): Ditto.
	(SEPARATE_STAB_SECTIONS, INIT_STAB_SECTION, OBJ_PROCESS_STAB):
	Wrap in ifndef SEPARATE_STAB_SECTIONS.

	* config/obj-elf.c (elf_s_set_other): New.
	(elf_file_symbol): Constify argument.
	(elf_separate_stab_sections): New.
	(elf_init_stab_section): New.
	(elf_format_ops): Add new members.  Remove comma at end.

	* config/obj-ecoff.c (ecoff_separate_stab_sections): New.
	(ecoff_format_ops): Add new fields.  Remove comma at end.
	Mention inconsistency for emit_section_symbols.

	* config/obj-coff.h (c_dot_file_symbol): Constify declaration.

	* config/obj-coff.c (c_dot_file_symbol): Constify argument.
	(coff_separate_stab_sections): New.
	(coff_format_ops): Add new members.

	* config/obj-aout.c (obj_aout_sec_sym_ok_for_reloc): New.
	(obj_aout_s_set_other): New.
	(obj_aout_s_set_desc): New.
	(obj_aout_s_get_type): New.
	(obj_aout_s_set_type): New.
	(obj_aout_separate_stab_sections): New.
	(aout_format_ops): New members added.  Use obj_aout_process_stab,
	not 0.  Use obj_aout_sec_sym_ok_for_reloc, not 0.
	(obj_aout_frob_symbol): Add ATTRIBUTE_UNUSED to args as
	appropriate.
	(obj_aout_line, obj_aout_weak, obj_aout_type): Ditto.
2000-05-22 21:19:43 +00:00
Alan Modra b98ef14717 Keep a reloc for jumps to weak and external symbols. 2000-05-22 11:38:43 +00:00
Jeff Law b3b6a3fe2b * config/tc-hppa.c (md_apply_fix): Mask out immediate bits of
instruction to reflect change in re_assemble_*.
2000-05-19 00:21:12 +00:00
Nick Clifton 322f2c4579 Add support for _x and _s flags to MSR instruction 2000-05-15 19:25:22 +00:00
Phil Blundell 5e6cbf410d Apply David O'Brien's comment patch. 2000-05-14 18:53:18 +00:00
Alan Modra 4132022df1 Kazu Hirata's output reloc for mov.
Don't rely on short being 16 bits.
2000-05-14 11:48:42 +00:00
Alan Modra b4fd930a27 New file 2000-05-14 09:37:07 +00:00
Alan Modra a38cf1db3a Add x86 gas -q option to quiet some x86 gas warnings.
Remove useless -m flag_do_long_jump from x86 gas.
If BFD_ASSEMBLER, store --defsym value in a bfd_vma, and use scan_bfd_vma.
2000-05-13 12:49:55 +00:00
Alan Modra e413e4e996 `.arch cpu_type' pseudo for x86. 2000-05-13 09:26:23 +00:00
Alexandre Oliva e8b1cae533 * config/tc-mn10300.h (md_end): Define.
(mn10300_finalize): Declare.
* config/tc-mn10300.c: Include dwarf2dbg.h.
(debug_line): Define.
(md_assemble): Generate dwarf2 line info.
(mn10300_finalize): New function.  Finalize dwarf2 info.
2000-05-12 06:16:30 +00:00
Alan Modra 426b040396 (md_estimate_size_before_relax): Use the external version of
the relocation for weak symbols.
2000-05-11 01:48:09 +00:00
Jim Wilson e4c58b2551 Unwind info bug fixes from David Mosberger.
* config/tc-ia64.c (output_P7_format, case mem_stack_f): Output fixed
	frame size in units of 16 bytes, as required per SW Conventions manual.
	(output_unw_records): Output info-block header as a dword to get
	byte-order right.
2000-05-09 01:54:37 +00:00
Alan Modra 8fce3f5ef7 Michael Sokolov's 68000 patches + assorted compiler warning fixes. 2000-05-08 10:24:06 +00:00
J.T. Conklin 7a899fff9a * config/tc-ppc.c (pre_defined_registers): Add entries for vector
unit registers.
(md_parse_option): Recognize -m7400.
2000-05-03 22:23:01 +00:00
Ian Lance Taylor 44877466ff * config/atof-ieee.c (gen_to_words): When adding carry back in,
don't permit lp to become less than the words array.
2000-05-03 21:23:52 +00:00
Nick Clifton eaa15ab811 Fix little endian relocs 2000-05-03 18:50:55 +00:00
Alan Modra da5d444c29 go32 bss alignment. 2000-05-03 04:25:33 +00:00
Alan Modra 3f9b03b5da Assorted code cleanup and fixes for hppa. Re-enable elf32-hppa as
it now compiles even if it doesn't work too well.
2000-05-02 00:12:52 +00:00
Denis Chertykov df13624506 * config/tc-avr.c: ATTRIBUTE_UNUSED added to the necessary places.
More comments added.
	(md_begin): Removed "construct symbols for each register name".
	Because register names conflicts with GCC generated function
	names.
	(avr_operand): Now constant numbers can be used as a register
	identifiers (0 as r0, 31 as r31).
	(md_assemble): use skip_space () before parsing instruction
	operands.
2000-05-01 11:14:05 +00:00
Denis Chertykov b170af938f * config/tc-avr.c: New AVR_ISA_ defined.
(md_assemble): Handle opcodes with optional operands (lpm,elpm).
	(avr_operand): Handle 'a', 'v' and 'z' constraint letters needed
	for `fmul', `movw' and `lpm R,Z' instructions.
	(avr_operands): Warn if current opcode is a two-word instruction
	and previous opcode was cpse/sbic/sbis/sbrc/sbrs.
	(avr_opcodes): New commands added.
	(REGISTER_P): Check 'a' and 'v' constraint letters.
	(mcu_types): New MCU added.
2000-05-01 08:48:32 +00:00
Clinton Popetz 7f6d05e83e Add XCOFF64 support.
bfd:
	* Makefile.am (coff64-rs6000.lo): New rule.
	* Makefile.in: Regenerate.
	* coff-rs6000.c (xcoff_mkobject, xcoff_copy_private_bfd_data,
	xcoff_is_local_label_name, xcoff_rtype2howto,
	xcoff_reloc_type_lookup, xcoff_slurp_armap, xcoff_archive_p,
	xcoff_read_ar_hdr, xcoff_openr_next_archived_file, xcoff_write_armap,
	xcoff_write_archive_contents): No longer static, and prefix with _bfd_.
	(NO_COFF_SYMBOLS): Define.
	(xcoff64_swap_sym_in, xcoff64_swap_sym_out, xcoff64_swap_aux_in,
	xcoff64_swap_aux_out): New functions; handle xcoff symbol tables
	internally.
	(MINUS_ONE): New macro.
	(xcoff_howto_tabl, xcoff_reloc_type_lookup): Add 64 bit POS
	relocation.
	(coff_SWAP_sym_in, coff_SWAP_sym_out, coff_SWAP_aux_in,
	coff_SWAP_aux_out): Map to the new functions.
	* coff64-rs6000.c: New file.
	* libcoff.h (bfd_coff_backend_data): Add new fields
	_bfd_coff_force_symnames_in_strings and
	_bfd_coff_debug_string_prefix_length.
	(bfd_coff_force_symnames_in_strings,
	bfd_coff_debug_string_prefix_length): New macros for above fields.
	* coffcode.h (coff_set_arch_mach_hook): Handle XCOFF64 magic.
	Set machine to 620 for XCOFF64.  Use bfd_coff_swap_sym_in instead
	of using coff_swap_sym_in directly.
	(FORCE_SYMNAMES_IN_STRINGS): New macro, defined for XCOFF64.
	(coff_set_flags) Set magic for XCOFF64.
	(coff_compute_section_file_positions): Add symbol name length to
	string section length if bfd_coff_debug_string_prefix_length is
	true.
	(coff_write_object_contents): Don't do reloc overflow for XCOFF64.
	(coff_slurp_line_table): Use bfd_coff_swap_lineno_in instead of
	using coff_swap_lineno_in directly.
	(bfd_coff_backend_data): Add _bfd_coff_force_symnames_in_strings
	and _bfd_coff_debug_string_prefix_length fields.
	* coffgen.c (coff_fix_symbol_name, coff_write_symbols): Force
	symbol names into strings table when
	bfd_coff_force_symnames_in_strings is true.
	* coffswap.h (MAX_SCNHDR_NRELOC, MAX_SCNHDR_NLNNO, GET_RELOC_VADDR,
	SET_RELOC_VADDR): New macros.
	(coff_swap_reloc_in, coff_swap_reloc_out): Use above macros.
	(coff_swap_aux_in, coff_swap_aux_out): Remove RS6000COFF_C
	code.
	(coff_swap_aouthdr_in, coff_swap_aouthdr_out): Handle XCOFF64
	changes within RS6000COFF_C specific code.
	(coff_swap_scnhdr_out): Use PUT_SCNHDR_NLNNO, PUT_SCNHDR_NRELOC,
	MAX_SCNHDR_NRELOC, and MAX_SCNHDR_NLNNO.
	* reloc.c (bfd_perform_relocation, bfd_install_relocation):
	Extend existing hack on target name.
	* xcofflink.c (XCOFF_XVECP): Extend existing hack on
	target name.
	* coff-tic54x.c (ticof): Keep up to date with new fields
	in bfd_coff_backend_data.
	* config.bfd: Add bfd_powerpc_64_arch to targ_arch and define
	targ_selvecs to include rs6000coff64_vec for rs6000.
	* configure.in: Add rs6000coff64_vec case.
 	* cpu-powerpc.c: New bfd_arch_info_type.

	gas:
	* as.c (parse_args): Allow md_parse_option to override -a listing
	option.
	* config/obj-coff.c (add_lineno): Change type of offset parameter
	from "int" to "bfd_vma."
	* config/tc-ppc.c (md_pseudo_table): Add "llong" and "machine."
	(ppc_mach, ppc_subseg_align, ppc_target_format): New.
	(ppc_change_csect): Align correctly for XCOFF64.
	(ppc_machine): New function, which discards "ppc_machine" line.
	(ppc_tc): Cons for 8 when code is 64 bit.
	(md_apply_fix3): Don't check operand->insert.  Handle 64 bit
	relocations.
	(md_parse_option): Handle -a64 and -a32.
	(ppc_xcoff64): New.
	* config/tc-ppc.h (TARGET_MACH): Define.
	(TARGET_FORMAT): Move to function.
	(SUB_SEGMENT_ALIGN): Use ppc_subseg_align.

	include:
	* include/coff/rs6k64.h: New file.

	opcodes:
	* configure.in: Add bfd_powerpc_64_arch.
	* disassemble.c (disassembler): Use print_insn_big_powerpc for
	64 bit code.
2000-04-26 15:09:44 +00:00
Alan Modra d9b7d82070 Remove '/' from comment_chars for FreeBSD so divide operator works.
Fix as.1 typo.
2000-04-25 22:55:20 +00:00
Alan Modra e799a69521 Use record_alignment, not bfd_set_section_alignment. 2000-04-25 10:02:20 +00:00
Alan Modra 3b0ec529f2 Keep shift count smaller than 32. 2000-04-25 08:55:01 +00:00
Nick Clifton adcf07e614 Document behaviour of .align 0 for ARM targets.
Remove incomplete v5e code from tc-arm.c
2000-04-24 23:57:30 +00:00
Jeff Law 5047a41fff * obj-som.c: Terminate obj_pseudo_table. 2000-04-24 23:48:13 +00:00
Timothy Wall bf3ca999c1 Clean up F-unit assembly and tests. 2000-04-23 02:53:35 +00:00
Jeff Law a02fab7e03 * config/tc-hppa.c (md_apply_fix): Handle new PA2.0 formats.
* config/tc-hppa.c (CHECK_ALIGN): New macro.
        Added handling of new operand types l,y,&,fe,fE,fx.
2000-04-21 20:34:00 +00:00
Jim Wilson 800eeca487 IA-64 ELF support. 2000-04-21 20:22:24 +00:00
Richard Henderson 6677867973 * config/tc-d30v.c (write_2_short): Disregard opcode1->ecc when
bundling a non-delayed branch type instruction.
2000-04-21 17:20:03 +00:00
Alexandre Oliva aa15f6f7b0 * config/tc-mn10300.c (HAVE_AM30): Define.
(md_assemble): Use it.
2000-04-20 22:18:27 +00:00
Alan Modra 742f45cf3a Check for changed section attributes. 2000-04-20 01:43:32 +00:00
H.J. Lu 508866be8a 2000-04-18 H.J. Lu (hjl@gnu.org)
* config/tc-i386.c (offset_in_range): Use addressT instead of
	bfd_vma for none bfd assemblers.
2000-04-18 17:46:31 +00:00
Alan Modra ba2adb9390 64 bit bfd fix. 2000-04-17 03:18:36 +00:00
Alan Modra fc633e5b97 Remove U suffix from constants for K&R compilers.
Fix a couple of 64 bit nits.
2000-04-13 01:08:05 +00:00
Nick Clifton 3db10f32e0 Apply patch to fix compuation of frag offsets for symbols 2000-04-12 18:03:58 +00:00
Nick Clifton 1ed18ec1a3 Apply Andrew Cagney's patch to fix use of 'struct fix'. 2000-04-12 17:59:32 +00:00
Alan Modra 847f7ad471 Fix 64-bit nits. 2000-04-10 12:36:06 +00:00
Nick Clifton d92b1a8a2a Add support for BFD_RELOC_{ARM|THUMB}_PCREL_BLX relocs. 2000-04-08 00:11:46 +00:00
Joern Rennecke 52ccafd035 opcodes:
* sh-opc.c (sh_table): Use A_DISP_PC / PCRELIMM_8BY2 for ldre & ldrs.
	stc GBR,@-<REG_N> is available for arch_sh1_up.
	Group parallel processing insn with identical mnemonics together.
	Make three-operand psha / pshl come first.
gas:
	* config/tc-sh.c (get_operands): There's no third operand if the
	first operand is an immediate.
2000-04-05 21:43:26 +00:00
Joern Rennecke 015551fcfb sh-dsp REPEAT support:
opcodes:

        * sh-opc.h (sh_nibble_type): Remove DISP_8 and DISP_4.
        Split IMM_[48]{,BY[24]} into IMM[01]_[48]{,BY[24]}.  Add REPEAT.
        (sh_arg_type): Add A_PC.
        (sh_table): Update entries using immediates.  Add repeat.
        * sh-dis.c (print_insn_shx): Remove DISP_8 and DISP_4.
        Split IMM_[48]{,BY[24]} into IMM[01]_[48]{,BY[24]}.  Add REPEAT.

gas:

        * config/tc-sh.c (immediate): Delete.
        (sh_operand_info): Add immediate member.
        (parse_reg): Use A_PC for pc.
        (parse_exp): Add second argument 'op'.  All callers changed.
        (parse_at): Expect pc to be coded as A_PC.
        Use immediate field in *op.
        (insert): Add fourth argument 'op'.  All callers changed.
        (build_relax): Add second argument 'op'.  All callers changed.
        (insert_loop_bounds): New function.
        (build_Mytes): Remove DISP_4.
        Split IMM_[48]{,BY[24]} into IMM[01]_[48]{,BY[24]}.  Add REPEAT.
        (assemble_ppi): Use immediate field in *operand.
        (sh_force_relocation): Handle BFD_RELOC_SH_LOOP_{START,END}.
        (md_apply_fix): Likewise.
        (tc_gen_reloc): Likewise.  Check for a pcrel BFD_RELOC_SH_LABEL.

include/coff:

        * sh.h (R_SH_LOOP_START, R_SH_LOOP_END): Define.

include/elf:

        * sh.h (R_SH_LOOP_START, R_SH_LOOP_END): New RELOC_NUMBERs.

bfd:

        * reloc.c (_bfd_relocate_contents): Add BFD_RELOC_SH_LOOP_START and
        BFD_RELOC_SH_LOOP_END.
        * elf32-sh.c (sh_elf_howto_tab): Change special_func to
        sh_elf_ignore_reloc for all entries that sh_elf_reloc used to ignore.
        Add entries for R_SH_LOOP_START and R_SH_LOOP_END.
        (sh_elf_reloc_loop): New function.
        (sh_elf_reloc): No need to test for always-to-be-ignored relocs
        any more.
        (sh_rel): Add entries for BFD_RELOC_SH_LOOP_{START,END}.
        (sh_elf_relocate_section): Handle BFD_RELOC_SH_LOOP_{START,END}.
        * bfd-in2.h, libbfd.h: Regenerate.
2000-04-05 21:23:05 +00:00
Alexandre Oliva 79bd78bef5 * config/tc-sparc.c (sparc_ip): Avoid string pasting. 2000-04-05 09:38:43 +00:00
Alexandre Oliva 0a727238ad * config/tc-mn10300.c (md_pseudo_table): Use constant names.
(md_begin): Likewise.
(HAVE_AM33): New macro.
(md_assemble): Use it.  Match r_regs and xr_regs only if
HAVE_AM33.
2000-04-03 20:20:26 +00:00