This is the mail archive of the
binutils@sources.redhat.com
mailing list for the binutils project.
Re: [PATCH, POINTER] Let gas support mips64
- To: echristo at redhat dot com
- Subject: Re: [PATCH, POINTER] Let gas support mips64
- From: Nick Clifton <nickc at cambridge dot redhat dot com>
- Date: 19 Jun 2001 09:41:26 +0100
- Cc: binutils at sources dot redhat dot com
- References: <20010619005251.I15838@rembrandt.csv.ica.uni-stuttgart.de>
Thiemo Seufer <ica2_ts@csv.ica.uni-stuttgart.de> writes:
> Hi All,
>
> This patch adds support for mips64 to gas. Testcases are not provided for
> 64bit case because of the necessary bfd and binutils changes (which aren't
> done in a acceptable way yet).
>
> btw:
> At least for configuration mips64-linux, current CVS fails the
> 'make check' in gas for test 'MIPS ELF reloc 3'. The patch does not
> change this behaviour.
>
>
> Thiemo
>
>
> 2001-06-18 Thiemo Seufer <seufer@csv.ica.uni-stuttgart.de>
>
> /gas/ChangeLog
> * config/tc-mips.h (MAX_GPREL_OFFSET): Changed from the first invalid
> value to the maximum value.
> * config/tc-mips.c (USES_32BIT_REGS): Define.
> (USES_64BIT_ADDRESSES): Define.
> (S_EX_*): Declare.
> (append_insn): Add handling of mips64 relocs.
> (macro_build): Likewise. Replace numeric constants by defines. Move
> insertion of immediate constants in case 'u' to append_insn().
> (load_register): Change register width check to use USES_32BIT_REGS.
> Fix handling of sign bit in 64bit constants.
> (load_address): Add parameters required to handle 64bit addresses.
> Add handling of 64bit addresses. Change register width check to use
> USES_32BIT_REGS. Change check for MAX_GPREL_OFFSET to fit the new
> value. Formatting.
> (macro): Change register width check to use USES_32BIT_REGS.
> Formatting. Typos. Add handling of 64bit addresses. Some code cleanup.
> Change check for MAX_GPREL_OFFSET to fit the new value.
> (macro2): Formatting. Change register width check to use
> USES_32BIT_REGS. Warn on used $at in M_UL[DW] case. Change calls to
> load_address(). Mark M_USD_A as double value.
> (mips16_macro): Formatting.
> (mips_ip): Replace numeric constants by defines. Change register width
> check to use USES_32BIT_REGS. Use new return values of
> my_getSmallExpression() instead of characters. Add mips64 relocation
> handling.
> (LP): Remove.
> (RP): Remove.
> (my_getSmallExpression): Rewritten to allow arbitrary upper/lowercase,
> return more useful values and support mips64 relocations.
> (md_parse_option): Use TE_TMIPS conditional as in other places.
> (md_apply_fix): Preliminary support for mips64 relocations.
> Fix bad JMP argument generation.
> (s_cprestore): Change register width check to use USES_32BIT_REGS.
> (s_cpadd): Likewise.
> (md_estimate_size_before_relax): Code cleanup.
> (md_obj_end): Remove ugly `' in message string. :-)
> (s_mips_end): Remove unused variables.
> (s_mips_ent): Remove ugly `' in message string.
>
>
> Because of it's size (82689), the actual patch is provided at
> http://www.csv.ica.uni-stuttgart.de/homes/ths/linux-mips/cygnus-gas-mips64.diff