This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: FW: [PATCH,MIPS] Change the mapping for the 'move' instruction
- From: "Maciej W. Rozycki" <macro at linux-mips dot org>
- To: Simon Dardis <Simon dot Dardis at imgtec dot com>
- Cc: "binutils at sourceware dot org" <binutils at sourceware dot org>, Matthew Fortune <Matthew dot Fortune at imgtec dot com>, "rdsandiford at googlemail dot com" <rdsandiford at googlemail dot com>, "Moore, Catherine" <Catherine_Moore at mentor dot com>
- Date: Thu, 30 Jul 2015 23:10:57 +0100 (BST)
- Subject: Re: FW: [PATCH,MIPS] Change the mapping for the 'move' instruction
- Authentication-results: sourceware.org; auth=none
- References: <B83211783F7A334B926F0C0CA42E32CAF0D150 at hhmail02 dot hh dot imgtec dot org>
On Thu, 30 Jul 2015, Simon Dardis wrote:
> This patch updates the MIPS move instruction alias so that it is 'or'
> instead of [d]addu for microMIPS, MIPS32 and MIPS64. The reasoning
> behind this change was brought up in an earlier RFC from Matthew
> Fortune:
>
> http://sourceware.org/ml/binutils/2015-03/msg00001.html
>
> "This issue was identified during performance analysis of a recent
> 64-bit design by Imagination and the use of addu for 32-bit moves can
> inhibit some pipeline forwarding optimisations as the addu has to sign
> extend in 64-bit implementations. I suspect there are ways to deal with
> this in hardware but regardless it seems sensible to use the same
> instruction for move in 32-bit and 64-bit code."
>
> This patch preserves existing disassembler behavior, e.g assembling
> 'daddu t7, ra, zero' and then disassembling it gives back 'move t7,ra'.
>
> Tested with no new regression with check-ld, check-gas, check-binutils.
The changes to PLT entries produced may require corresponding updates to
`_bfd_mips_elf_get_synthetic_symtab' -- have you checked that they are
indeed unneeded? I see no mention of that anywhere.
Maciej