This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: FW: [PATCH,MIPS] Change the mapping for the 'move' instruction


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]