Commit graph

263 commits

Author SHA1 Message Date
Chris Demetriou
3e722fb54b [ bfd/ChangeLog ]
2004-04-28  Chris Demetriou  <cgd@broadcom.com>

	* reloc.c: Remove BFD_RELOC_PCREL_HI16_S and BFD_RELOC_PCREL_LO16.
	* bfd-in2.h: Regenerate.
	* libbfd.h: Likewise.

[ gas/ChangeLog ]
2004-04-28  Chris Demetriou  <cgd@broadcom.com>

	* config/tc-mips.c (HAVE_32BIT_ADDRESSES, append_insn, macro_build)
	(load_address, macro, mips_ip, md_parse_option)
	(mips_force_relocation, mips_validate_fix, md_apply_fix3)
	(s_change_sec, pic_need_relax, tc_gen_reloc): Remove all
	embedded-PIC handling, and update comments.
	(SWITCH_TABLE): Remove.
	* config/tc-mips.h (DIFF_EXPR_OK): Delete.
	(enum mips_pic_level): Remove EMBEDDED_PIC.
	(EXTERN_FORCE_RELOC): Remove embedded-PIC handling.
	(TC_FORCE_RELOCATION): Update comment.
	* ecoff.c (ecoff_build_lineno): Add comment about some code that
	might be safe to remove now that MIPS embedded-PIC is gone.
2004-04-29 05:14:22 +00:00
Thiemo Seufer
81a21e382c * config/tc-mips.c (s_mipsset): Set default CPU type for .set mipsN. 2004-04-23 17:25:50 +00:00
Chris Demetriou
1ffcab4b28 2004-04-22 Chris Demetriou <cgd@broadcom.com>
* config/tc-mips.c (md_longopts): Remove -membedded-pic option.
        (OPTION_MEMBEDDED_PIC): Remove.
        (OPTION_TRAP, OPTION_BREAK, OPTION_EB, OPTION_EL)
        (OPTION_FP32, OPTION_GP32, OPTION_CONSTRUCT_FLOATS)
        (OPTION_NO_CONSTRUCT_FLOATS, OPTIONS_FP64, OPTION_GP64)
        (OPTION_RELAX_BRANCH, OPTION_NO_RELAX_BRANCH)
        (OPTION_ELF_BASE): Renumber.
        (md_parse_option): Remove OPTION_MEMBEDDED_PIC handling.
        (md_show_usage): Remove mention of -membedded-pic.
        * doc/as.texinfo: Remove mention of -membedded-pic.
2004-04-23 04:50:53 +00:00
Thiemo Seufer
4d0d148db8 * config/tc-mips.h (USE_GLOBAL_POINTER_OPT): Remove.
* config/tc-mips.c (RDATA_SECTION_NAME, mips_target_format): Remove
a.out support.
(md_begin, mips_ip, md_parse_option, s_change_sec, s_option,
s_abicalls, nopic_need_relax, tc_gen_reloc): Remove uses of
USE_GLOBAL_POINTER_OPT.
2004-04-23 02:07:14 +00:00
Thiemo Seufer
017315e42d * config/tc-mips.c (macro): One more use of load_delay_nop. 2004-04-22 22:00:47 +00:00
Thiemo Seufer
269137b29a * config/tc-mips.c (load_delay_nop): New function.
(load_address, macro): Use load_delay_nop() to build a nop
which can be omitted with gpr_interlocks.

* gas/mips/lb-xgot-ilocks.d: Remove nops in load delay slot.
* gas/mips/mips-abi32-pic.d: Likewise.
* gas/mips/mips-abi32-pic2.d: Likewise.
* gas/mips/mips-gp32-fp32-pic.d: Likewise.
* gas/mips/mips-gp32-fp64-pic.d: Likewise.
* gas/mips/mips-gp64-fp32-pic.d: Likewise.
* gas/mips/mips-gp64-fp64-pic.d: Likewise.
* gas/mips/relax-swap1-mips2.d: Likewise.
* gas/mips/lb-svr4pic-ilocks.d: New test.
* gas/mips/mips.exp: Run it.
2004-04-22 18:13:56 +00:00
Thiemo Seufer
24772049ed * config/tc-mips.c (hilo_interlocks, gpr_interlocks,
cop_interlocks): Remove superfluous CPU entries.
2004-04-22 17:58:57 +00:00
Eric Christopher
5bf100394c 2004-04-19 Eric Christopher <echristo@redhat.com>
* config/tc-mips.c (mips_dwarf2_addr_size): Revert part
        of previous patch for fix in gcc.
2004-04-19 21:08:43 +00:00
Richard Sandiford
d766e8ec50 * doc/c-mips.texi (-m{no-,}fix-vr4120): Renamed from
-{no-}mfix-vr4122-bugs.
	* config/tc-mips.c (mips_fix_vr4120): Renamed from mips_fix_4122_bugs.
	(append_insn, mips_emit_delays): Update accordingly.
	(OPTION_FIX_VR4120, OPTION_NO_FIX_VR4120): Renamed from *VR4122.
	(md_longopts): Change -{no-,}mfix-vr4122-bugs to -m{no-,}fix-vr4120.
	(md_parse_option): Update after above changes.
	(md_show_usage): Add -mfix-vr4120.
2004-04-14 07:48:49 +00:00
Eric Christopher
73369e6517 2004-02-26 Eric Christopher <echristo@redhat.com>
* config/tc-mips.c (mips_dwarf2_addr_size): New.
	* config/tc-mips.h (DWARF2_ADDR_SIZE): Use.
2004-02-26 21:27:32 +00:00
Maciej W. Rozycki
f6a22291f0 gas/
* config/tc-mips.c (add_got_offset_hilo): New function.
(macro): Use load_register() and add_got_offset_hilo() to load
constants instead of hardcoding code sequences throughout.

gas/testsuite/
* gas/mips/div.d: Update to accomodate changes in macro
expansions.
gas/mips/elf-rel-got-n32.d: Likewise.
gas/mips/elf-rel-got-n64.d: Likewise.
gas/mips/elf-rel-xgot-n32.d: Likewise.
gas/mips/elf-rel-xgot-n64.d: Likewise.
gas/mips/la-svr4pic.d: Likewise.
gas/mips/la-xgot.d: Likewise.
gas/mips/lca-svr4pic.d: Likewise.
gas/mips/lca-xgot.d: Likewise.
2004-02-02 12:48:21 +00:00
Chris Demetriou
c8978940ea 2004-01-24 Chris Demetriou <cgd@broadcom.com>
* config/tc-mips.c (hilo_interlocks): Change definition
        so that MIPS32, MIPS64 and later ISAs are included, along with
        the already-included machines.  Update comments.
2004-01-25 06:01:03 +00:00
Richard Sandiford
e864cecab0 * config/tc-mips.c (load_address, macro): Update comments about
NewABI GP relaxation.
2004-01-23 13:11:00 +00:00
Richard Sandiford
67c0d1eb29 * config/tc-mips.c (macro_build): Remove place and counter arguments.
(mips_build_lui, macro_build_ldst_constoffset): Likewise.
	(mips16_macro_build, macro_build_jalr): Remove counter argument.
	(set_at, load_register, load_address, move_register): Likewise.
	(load_got_offset, add_got_offset): Likewise.
	Update all calls and tidy accordingly.
2004-01-23 13:02:28 +00:00
Richard Sandiford
584892a6d5 * config/tc-mips.c (RELAX_ENCODE): Remove WARN argument.
(RELAX_FIRST, RELAX_SECOND): Turn into 8-bit quantities.
	(RELAX_USE_SECOND): Bump to 0x10000.
	(RELAX_SECOND_LONGER, RELAX_NOMACRO, RELAX_DELAY_SLOT): New flags.
	(mips_macro_warning): New variable.
	(md_assemble): Wrap macro expansion in macro_start() and macro_end().
	(s_cpload, s_cpsetup, s_cprestore, s_cpreturn): Likewise.
	(relax_close_frag): Set mips_macro_warning.first_frag.  Adjust use
	of RELAX_ENCODE.
	(append_insn): Update mips_macro_warning.sizes.
	(macro_start, macro_warning, macro_end): New functions.
	(macro_build): Don't emit warnings here.
	(macro_build_lui, md_estimate_size_before_relax): ...or here.
	(md_convert_frag): Check for cases where one macro alternative
	needs a warning and the other doesn't.  Emit a warning if the
	longer sequence was chosen.
2004-01-23 13:00:18 +00:00
Richard Sandiford
4d7206a284 * config/tc-mips.h (tc_frag_data_type, TC_FRAG_TYPE): Remove.
* config/tc-mips.c (RELAX_ENCODE): Take three arguments: the size of
	the first sequence, the size of the second sequence, and a flag
	that says whether we should warn.
	(RELAX_OLD, RELAX_NEW, RELAX_RELOC[123]): Delete.
	(RELAX_FIRST, RELAX_SECOND): New.
	(mips_relax): New variable.
	(relax_close_frag, relax_start, relax_switch, relax_end): New fns.
	(append_insn): Remove "place" argument.  Use mips_relax.sequence
	rather than "place" to check whether we're expanding the second
	alternative of a relaxable macro.  Remove redundant check for
	branch relaxation.  If generating a normal insn, and there
	is not enough room in the current frag, call relax_close_frag()
	to close it.  Update mips_relax.sizes[].  Emit fixups for the
	second version of a relaxable macro.  Record the first relaxable
	fixup in mips_relax.  Remove tc_gen_reloc workaround.
	(macro_build): Remove all uses of "place".  Use mips_relax.sequence
	in the same way as in append_insn.
	(mips16_macro_build): Remove "place" argument.
	(macro_build_lui): As for macro_build.  Don't drop the add_symbol
	when generating the second version of a relaxable macro.
	(load_got_offset, add_got_offset): New functions.
	(load_address, macro): Use new relaxation machinery.  Remove
	tc_gen_reloc workarounds.
	(md_estimate_size_before_relax): Set RELAX_USE_SECOND if the second
	version of a relaxable macro is needed.  Return -RELAX_SECOND if the
	first version is needed.
	(tc_gen_reloc): Remove relaxation handling.
	(md_convert_frag): Go through the fixups for a relaxable macro and
	mark those that belong to the unneeded alternative as done.  If the
	second alternative is needed, adjust the fixup addresses to account
	for the deleted first alternative.

testsuite/
	* gas/mips/elf-rel19.[sd]: New test.
	* gas/mips/mips.exp: Run it.
2004-01-23 12:58:22 +00:00
Thiemo Seufer
048cdf861a * config/tc-mips.c (append_insn): Don't do r3900 interlock
optimization for -mtune=r3900, as this will break on other CPUs.
2004-01-21 23:25:38 +00:00
Maciej W. Rozycki
895921c97e gas/
* config/tc-mips.c (append_insn): Properly detect variant frags
that preclude swapping of relaxed branches.  Correctly swap
instructions between frags when dealing with relaxed branches.

gas/testsuite/
* gas/mips/relax-swap1-mips1.d: New test for branch relaxation
with swapping for MIPS1.
* gas/mips/relax-swap1-mips2.d: New test for branch relaxation
with swapping for MIPS2.
* gas/mips/relax-swap1.l: Stderr output for the new tests.
* gas/mips/relax-swap1.s: Source for the new tests.
* gas/mips/relax-swap2.d: New test for branch likely relaxation
with swapping.
* gas/mips/relax-swap2.l: Stderr output for the new test.
* gas/mips/relax-swap2.s: Source for the new test.
* gas/mips/mips.exp: Run the new tests.
2004-01-14 18:01:09 +00:00
Richard Sandiford
cc3d92a51a gas/
* config/tc-mips.c (macro_build_jalr): When adding an R_MIPS_JALR
	reloc, reserve space for the delay slot as well as the jalr itself.

gas/testsuite/
	* gas/mips/elf-rel18.[sd]: New test.
	* gas/mips/mips.exp: Run it.
2004-01-12 09:30:49 +00:00
Ian Lance Taylor
78849248c0 * config/tc-mips.c (warn_nops): Remove static variable.
(macro): Remove test of warn_nops.
	(md_shortops): Remove 'n'.
	(md_parse_option): Remove 'n' case.
	(md_show_usage): Remove -n.
	* doc/as.texinfo (Overview): Remove MIPS -n option.
	* doc/c-mips.texi (MIPS Opts): Remove mention -n.
	* NEWS: Mention removal of MIPS -n option.
2004-01-09 02:34:04 +00:00
Ian Lance Taylor
819124619a * config/tc-mips.c (ISA_HAS_COPROC_DELAYS): Remove.
(cop_interlocks): Check ISA level.
	(cop_mem_interlocks): Define.
	(reg_needs_delay): Check cop_interlocks rather than
	ISA_HAS_COPROC_DELAYS.
	(append_insn): Likewise.  Use cop_mem_interlocks rather than
	directly checking mips_opts.isa.
	(mips_emit_delays): Likewise.
2004-01-09 02:16:30 +00:00
Richard Sandiford
30ac9238df bfd/
* elf32-mips.c (elf_mips_howto_table_rel): Replace all uses of
	mips_elf_generic_reloc with _bfd_mips_elf_generic_reloc.  Use
	_bfd_mips_elf_hi16_reloc for R_MIPS_HI16 and R_MIPS_GNU_REL_HI16,
	_bfd_mips_elf_lo16_reloc for R_MIPS_LO16 and R_MIPS_GNU_REL_LO16,
	and _bfd_mips_elf_got16_reloc for R_MIPS_GOT16.  Change rightshift
	to 16 for R_MIPS_HI16 and R_MIPS_GNU_REL_HI16.
	(mips_elf_generic_reloc, struct mips_hi16, mips_elf_hi16_reloc)
	(mips_elf_lo16_reloc, mips_elf_got16_reloc): Delete.
	(_bfd_mips_elf32_gprel16_reloc): Remove special case.
	(mips_elf_gprel32_reloc, mips32_64bit_reloc): Likewise.

	* elf64-mips.c (mips_elf64_howto_table_rel): Replace all uses of
	mips_elf_generic_reloc with _bfd_mips_elf_generic_reloc.  Use
	_bfd_mips_elf_hi16_reloc for R_MIPS_HI16, _bfd_mips_elf_lo16_reloc
	for R_MIPS_LO16 and _bfd_mips_elf_got16_reloc for R_MIPS_GOT16.
	Change R_MIPS_HI16's rightshift to 16.
	(mips_elf64_howto_table_rela): Replace all uses of
	mips_elf_generic_reloc with _bfd_mips_elf_generic_reloc.
	Use _bfd_mips_elf_generic_reloc for R_MIPS_GOT16 as well.
	(mips_elf64_hi16_reloc, mips_elf64_got16_reloc): Delete.
	(mips_elf64_shift6_reloc): Remove special case.  Use
	_bfd_mips_elf_generic_reloc instead of returning bfd_reloc_continue.

	* elfn32-mips.c (prev_reloc_section): Delete.
	(prev_reloc_address, prev_reloc_addend): Delete.
	(elf_mips_howto_table_rel, elf_mips_howto_table_rela): As for
	elf64-mips.c
	(GET_RELOC_ADDEND, SET_RELOC_ADDEND): Delete.
	(mips_elf_generic_reloc, struct mips_hi16, mips_elf_hi16_reloc)
	(mips_elf_lo16_reloc, mips_elf_got16_reloc): Delete.
	(mips_elf_gprel16_reloc): Delete use of GET_RELOC_ADDEND.
	(mips_elf_literal_reloc, mips_elf_gprel32_reloc): Likewise.
	(mips16_jump_reloc, mips16_gprel_reloc): Likewise.
	(mips_elf_shift6_reloc): Likewise.  Delete use of SET_RELOC_ADDEND.

	* elfxx-mips.c (_bfd_mips_elf_gprel16_with_gp): Use
	_bfd_relocate_contents to install an in-place addend.
	(mips_hi16): New structure.
	(mips_hi16_list): Moved from elf32-mips.c.
	(_bfd_mips_elf_hi16_reloc, _bfd_mips_elf_got16_reloc): New functions.
	(_bfd_mips_elf_lo16_reloc, _bfd_mips_elf_generic_reloc): New functions.
	(mips_elf_calculate_relocation): Assume addend is unshifted.
	(_bfd_mips_elf_relocate_section): Don't apply the howto rightshift
	on top of the usual high-part shift.  Don't shift the addend right
	before calling mips_elf_calculate_relocation.

	* elfxx-mips.h (_bfd_mips_elf_hi16_reloc): Declare.
	(_bfd_mips_elf_got16_reloc, _bfd_mips_elf_lo16_reloc): Declare.
	(_bfd_mips_elf_generic_reloc): Declare.

gas/
	* config/tc-mips.c (mips_need_elf_addend_fixup): Delete.
	(md_apply_fix3): Remove bfd_install_relocation workarounds.
	(tc_gen_reloc): Likewise. Factor handling of pc-relative relocations
	and treat fx_addnumber as relative to the relocation address.

gas/testsuite/
	* gas/mips/mips16-jalx.d: Use -mabi=o64.
	* gas/mips/mips16.d: Likewise.
	* gas/mips/elf-rel17.[sd]: New test.
	* gas/mips/mips.exp: Run it.
2003-12-18 10:23:10 +00:00
Richard Sandiford
8ab8a5c888 * config/tc-mips.c (s_change_section): When parsing the MIPS-specific
.section syntax, map SHT_MIPS_DWARF to SHT_PROGBITS.
2003-12-18 10:18:17 +00:00
Richard Sandiford
0a6ace1e0e gas/
* config/tc-mips.c (macro): Switch misordered call to frag_grow()
	and setting of tc_fr_offset.

gas/testsuite/
	* gas/mips/elf-rel16.[sd]: New test.
	* gas/mips/mips.exp: Run it.
	* gas/mips/elf-rel-xgot-n32.d: Fix addends for "lw $5,dl1+34($5)".
	* gas/mips/elf-rel-xgot-n64.d: Likewise.
2003-12-06 13:52:23 +00:00
Kazu Hirata
67c1ffbec9 * config/tc-a29k.h: Fix comment typos.
* config/tc-arm.c: Likewise.
	* config/tc-dlx.h: Likewise.
	* config/tc-hppa.c: Likewise.
	* config/tc-i386.c: Likewise.
	* config/tc-m32r.c: Likewise.
	* config/tc-m68hc11.c: Likewise.
	* config/tc-m68k.c: Likewise.
	* config/tc-m88k.c: Likewise.
	* config/tc-mcore.c: Likewise.
	* config/tc-mips.c: Likewise.
	* config/tc-mmix.c: Likewise.
	* config/tc-msp430.c: Likewise.
	* config/tc-ns32k.c: Likewise.
	* config/tc-or32.c: Likewise.
	* config/tc-or32.h: Likewise.
	* config/tc-pj.c: Likewise.
	* config/tc-ppc.c: Likewise.
	* config/tc-s390.c: Likewise.
	* config/tc-sh64.c: Likewise.
	* config/tc-sh.c: Likewise.
	* config/tc-sparc.c: Likewise.
2003-11-22 02:35:31 +00:00
Maciej W. Rozycki
1abe91b1db * config/tc-mips.c (macro): Handle new macros: "lca" and "dlca"
for loading addresses using CALL relocations.
Don't emit CALL relocations when a base register is used.

* gas/mips/lca-svr4pic.d: New test for the "lca" macro.
* gas/mips/lca-xgot.d: Likewise.
* gas/mips/lca.s: Source for the new tests.
* gas/mips/mips.exp: Run the new tests.

* opcode/mips.h: Define new enum members, M_LCA_AB and M_DLCA_AB.

* mips-opc.c (mips_builtin_opcodes): Handle new macros: "lca" and
"dlca".
2003-11-18 21:22:57 +00:00
Maciej W. Rozycki
bf151ce78e * config/tc-mips.c: Formatting fixes. 2003-11-15 15:57:14 +00:00
Thiemo Seufer
13757d0cbb * config/tc-mips.c (normalize_constant_expr): New function to fix sign
extensions broken by gas' expression evaluation of constants.
	(check_absolute_expr): Use it.
	(mips_ip): Likewise.
2003-10-19 21:50:43 +00:00
Thiemo Seufer
1b8e29e540 * config/tc-mips.c (macro_build_ldst_constoffset,load_register,macro):
Fix indentation. Better error message.
2003-10-15 11:12:53 +00:00
Thiemo Seufer
d17e7bce1e * config/tc-mips.c (macro_build_ldst_constoffset,load_register,macro):
Unbreak overflow checks.
2003-10-01 18:57:16 +00:00
Chris Demetriou
609f23f4ff 2003-10-01 Chris Demetriou <cgd@broadcom.com>
* config/tc-mips.c (s_cpreturn): Correct errors in comment.
2003-10-01 06:09:31 +00:00
Thiemo Seufer
ecd13cd3ed * config/tc-mips.c (macro_build_ldst_constoffset): Fix sign extension
tests.
	(load_register): Likewise.
	(macro): Likewise.

	* gas/mips/ldstla-32-shared.d: New file.
	* gas/mips/ldstla-32.d: New file.
	* gas/mips/ldstla-32.s: New file.
	* gas/mips/ldstla-n32-shared.d: New file.
	* gas/mips/ldstla-n32.d: New file.
	* gas/mips/ldstla-n32.s: New file.
	* gas/mips/ldstla-n64-shared.d: New file.
	* gas/mips/ldstla-n64.d: New file.
	* gas/mips/ldstla-n64.s: New file.
	* gas/mips/mips.exp: Add ld-st-la tests.
2003-10-01 02:07:48 +00:00
Chris Demetriou
30c378fd60 [ gas/ChangeLog ]
2003-09-30  Chris Demetriou  <cgd@broadcom.com>

        * config/tc-mips.c (mips_ip): Capitalize first word of
        existing condition code warning, and add condition code
        warnings for .ps instructions, and for bc1any[24][tf].

[ gas/testsuite/ChangeLog ]
2003-09-30  Chris Demetriou  <cgd@broadcom.com>

        * lib/gas-defs.exp (run_dump_test): If stderr file is specified
        and there was no stderr output, compare anyway (i.e., cause a
        test failure).
        * gas/mips/mips64-mips3d.s: Add some new instructions to test warnings.
        * gas/mips/mips64-mips3d.l: New file.
        * gas/mips/mips64-mips3d.d: Use mips64-mips3d.l, and update for
        changes to mips64-mips3d.s.
        * gas/mips/mips64-mips3d-incl.d: Likewise.
        * gas/mips/set-arch.l: New file.
        * gas/mips/set-arch.d: Specify set-arch.l as stderr output to check.
        * gas/mips/mips5.l: Make error messages match source.
2003-09-30 21:02:08 +00:00
Chris Demetriou
5f74bc130d [ bfd/ChangeLog ]
2003-09-30  Chris Demetriou  <cgd@broadcom.com>

	* archures.c (bfd_mach_mipsisa64r2): New define.
	* bfd-in2.h: Regenerate.
	* aoutx.h (NAME(aout,machine_type)): Handle bfd_mach_mipsisa64r2.
	* cpu-mips.c (I_mipsisa64r2): New enum value.
	(arch_info_struct): Add entry for I_mipsisa64r2.
	* elfxx-mips.c (_bfd_elf_mips_mach)
	(_bfd_mips_elf_print_private_bfd_data): Handle E_MIPS_ARCH_64R2.
	(mips_set_isa_flags): Add bfd_mach_mipsisa64r2 case.
	(mips_mach_extensions): Add entry for bfd_mach_mipsisa64r2.

[ binutils/ChangeLog ]
2003-09-30  Chris Demetriou  <cgd@broadcom.com>

	* readelf.c (get_machine_flags): Handle E_MIPS_ARCH_64R2.

[ gas/Changelog ]
2003-09-30  Chris Demetriou  <cgd@broadcom.com>

	* configure.in (mipsisa64r2, mipsisa64r2el, mipsisa64r2*): New CPUs.
	* configure: Regenerate.
	* config/tc-mips.c (imm2_expr): New variable.
	(md_assemble, mips16_ip): Initialize imm2_expr.
	(ISA_HAS_64BIT_REGS, ISA_HAS_DROR, ISA_HAS_ROR): Add ISA_MIPS64R2.
	(macro_build): Handle +A, +B, +C, +E, +F, +G, and +H format operands.
	(macro): Handle M_DEXT and M_DINS.
	(validate_mips_insn): Handle +E, +F, +G, +H, and +I format operands.
	(mips_ip): Likewise.
	(OPTION_MIPS64R2): New define.
	(md_longopts): New entry for -mips64r2 (OPTION_MIPS64R2).
	OPTION_ASE_BASE): Increase to compensate for OPTION_MIPS64R2.
	(md_parse_option): Handle OPTION_MIPS64R2.
	(s_mipsset): Handle setting "mips64r2" ISA.
	(mips_cpu_info_table): Add mips64r2.
	(md_show_usage): Document -mips64r2 option.
	* doc/as.texinfo: Docuemnt -mips64r2 option.
	* doc/c-mips.texi: Likewise.

[ gas/testsuite/ChangeLog ]
2003-09-30  Chris Demetriou  <cgd@broadcom.com>

	* gas/mips/cp0-names-mips64r2.d: New file.
	* gas/mips/cp0sel-names-mips64r2.d: New file.
	* gas/mips/elf_arch_mips64r2.d: New file.
	* gas/mips/hwr-names-mips64r2.d: New file.
	* gas/mips/mips32r2-ill-fp64.l: New file.
	* gas/mips/mips32r2-ill-fp64.s: New file.
	* gas/mips/mips64r2-ill.l: New file.
	* gas/mips/mips64r2-ill.s: New file.
	* gas/mips/mips64r2.d: New file.
	* gas/mips/mips64r2.s: New file.
	* gas/mips/mips.exp: Define "mips64r2" arch, and run new tests.

[ include/elf/ChangeLog ]
2003-09-30  Chris Demetriou  <cgd@broadcom.com>

	* mips.h (E_MIPS_ARCH_64R2): New define.

[ include/opcode/ChangeLog ]
2003-09-30  Chris Demetriou  <cgd@broadcom.com>

	* mips.h: Document +E, +F, +G, +H, and +I operand types.
	Update documentation of I, +B and +C operand types.
	(INSN_ISA64R2, ISA_MIPS64R2, CPU_MIPS64R2): New defines.
	(M_DEXT, M_DINS): New enum values.

[ ld/ChangeLog ]
2003-09-30  Chris Demetriou  <cgd@broadcom.com>

	* ldmain.c (get_emulation): Ignore "-mips64r2".

[ ld/testsuite/ChangeLog ]
2003-09-30  Chris Demetriou  <cgd@broadcom.com>

	* ld-mips-elf/mips-elf-flags.exp: Add tests for combinations
	with MIPS64r2.

[ opcodes/ChangeLog ]
2003-09-30  Chris Demetriou  <cgd@broadcom.com>

	* mips-dis.c (mips_arch_choices): Add entry for "mips64r2"
	(print_insn_args): Add handing for +E, +F, +G, and +H.
	* mips-opc.c (I65): New define for MIPS64r2.
	(mips_builtin_opcodes): Add "dext", "dextm", "dextu", "dins",
	"dinsm", "dinsu", "drotl", "drotr", "drotr32", "drotrv", "dsbh",
	and "dshd" for MIPS64r2.  Adjust "dror", "dror32", and "drorv" to
	be supported on MIPS64r2.
2003-09-30 16:17:15 +00:00
Thiemo Seufer
ae826530f3 * config/tc-mips.c (macro_build_ldst_constoffset): Don't silently
truncate values which won't fit im 32 bits.
	(load_register): Likewise.
	(macro): Likewise.
2003-09-18 05:20:04 +00:00
Thiemo Seufer
256ab948f5 * config/tc-mips.c (HAVE_64BIT_ADDRESS_CONSTANTS): Remove.
(macro_build_ldst_constoffset): Sign-extend 32-bit constants. Change
	the function prototype.
	(load_register): Likewise. Simplify the checks for sign-extended
	constants.
	(macro): Likewise. Fix code generation for 64-bit address constants
	outside the 32-bit compatibility space. Adjust
	macro_build_ldst_constoffset calls.
	(s_cprestore): Adjust macro_build_ldst_constoffset call.
2003-09-14 15:24:49 +00:00
Rainer Orth
dcd410fe15 * config/tc-mips.c (mips_flag_pdr): Define.
(md_begin) [OBJ_ELF]: Use it to control .pdr creation.
	(s_mips_end) [OBJ_ELF]: Likewise.
	(md_longopts) [OBJ_ELF]: Define OPTION_PDR, OPTION_NO_PDR.
	(md_parse_option) [OBJ_ELF]: Handle them.
	(md_show_usage) [OBJ_ELF]: Document -mpdr, -mno-pdr.

	* doc/c-mips.texi (MIPS Opts): Document -mpdr, -mno-pdr.
	* doc/as.texinfo (Overview) [MIPS]: Likewise.
2003-07-28 20:06:27 +00:00
Richard Sandiford
5a7ea74950 include/opcode/
* mips.h (CPU_RM7000): New macro.
	(OPCODE_IS_MEMBER): Match CPU_RM7000 against 4650 insns.

bfd/
	* archures.c (bfd_mach_mips7000): New.
	* bfd-in2.h: Regenerated.
	* cpu-mips.c (arch_info_struct): Add an entry for mips:7000.
	* elfxx-mips.c (mips_set_isa_flags): Handle bfd_mach_mips7000.
	(mips_mach_extensions): Add an entry for it.

opcodes/
	* mips-dis.c (mips_arch_choices): Add rm7000 and rm9000 entries.

gas/
	* config/tc-mips.c (hilo_interlocks): True for CPU_RM7000.
	(mips_cpu_info_table): Add rm7000 and rm9000 entries.

gas/testsuite/
	* gas/mips/rm7000.[sd]: New test.
	* gas/mips/mips.exp: Run it.
2003-07-15 07:50:39 +00:00
Chris Demetriou
115695a81d [ gas/ChangeLog ]
2003-07-08  Chris Demetriou  <cgd@broadcom.com>

        * config/tc-mips.c (mips_validate_fix): Do not warn about branch
        target being a global symbol if not compiling SVR4 PIC code.

[ gas/testsuite/ChangeLog ]
2003-07-08  Chris Demetriou  <cgd@broadcom.com>

        * gas/testsuite/gas/mips/mips.exp: Make sure that branch-misc-2 is
        run to compile non-PIC code, and add branch-misc-2pic.
        * gas/mips/branch-misc-2.l: Adjust for change in non-PIC warnings.
        * gas/mips/branch-misc-2pic.l: New file.
        * gas/mips/branch-misc-2pic.s: New file.
2003-07-09 01:27:30 +00:00
Chris Demetriou
1a2c1fadc9 2003-06-30 Chris Demetriou <cgd@broadcom.com>
* config/tc-mips.c (s_mipsset): Implement -march= handling
        differently.
2003-06-30 21:54:19 +00:00
Thiemo Seufer
17a2f25124 * config/tc-mips.c: Convert to ISO C90 prototypes. Remove unnecessary
prototypes and casts. Replace PTR with void *. Reformat.
	* config/tc-mips.h: Likewise.
2003-06-30 12:44:25 +00:00
Alan Modra
6344efa4f2 * config/tc-ia64.c (note_register_values): Warning fix.
* config/tc-mips.c (append_insn): Likewise.
2003-06-30 04:10:48 +00:00
Thiemo Seufer
fef14a4289 * ld-mips-elf/elf-rel-got-n64-linux.d: New file.
* ld-mips-elf/elf-rel-xgot-n64-linux.d: New file.
	* ld-mips-elf/mips-elf.exp: Use the new files for Linux.
2003-06-29 19:41:33 +00:00
Nick Clifton
685736be24 Update .comm error messages to assume an unsigned value.
Update relaxing code to work in 64-bit address spaces.
2003-06-24 11:10:47 +00:00
Thiemo Seufer
b7c7d6c193 * config/tc-mips.c (ADDRESS_ADD_INSN,ADDRESS_ADDI_INSN): Remove
special handling for n32 ABI.
	(macro): Likewise.
	* gas/mips/elf-rel-got-n32.d: Remove special handling for n32 ABI.
	* gas/mips/elf-rel-xgot-n32.d: Likewise.
	* gas/mips/jal-newabi.d: Likewise.
	* ld-mips-elf/elf-rel-got-n32.d: Remove special handling for n32 ABI.
	* ld-mips-elf/elf-rel-xgot-n32.d: Likewise.
2003-06-21 21:38:04 +00:00
Thiemo Seufer
815ddb5051 Revert 2003-06-11 change. 2003-06-19 16:43:38 +00:00
Thiemo Seufer
f899b4b82a * config/tc-mips.c (ADDRESS_ADD_INSN,ADDRESS_ADDI_INSN,
ADDRESS_LOAD_INSN,ADDRESS_STORE_INSN): New macros.
	(macro_build_ldst_constoffset,load_address,macro,s_cpsetup,
	s_cprestore,s_cpadd): Use them.
2003-06-16 12:13:10 +00:00
Richard Sandiford
34ce925ee0 * config/tc-mips.c (append_insn): In a compound relocation, take the
field width from the final (outermost) operator.
2003-06-12 05:45:50 +00:00
Thiemo Seufer
8c1a34cd5c * config/tc-mips.c (s_cpsetup): Use mips_frame_reg instead of SP.
(s_cprestore): Likewise.
	(s_cpreturn): Likewise.
2003-06-11 20:59:09 +00:00
Thiemo Seufer
4b0cff4e36 * config/tc-mips.c (tc_gen_reloc): Initialize retval amd reloc
with zeros.
2003-06-11 20:53:32 +00:00