This is the mail archive of the
mailing list for the newlib project.
Re: Patch for faster memcpy on MIPS
- From: Steven Bosscher <stevenb dot gcc at gmail dot com>
- To: "Ellcey, Steve" <sellcey at mips dot com>, Andrew Pinski <apinski at cavium dot com>
- Cc: "newlib at sourceware dot org" <newlib at sourceware dot org>
- Date: Wed, 2 Jan 2013 19:08:16 +0100
- Subject: Re: Patch for faster memcpy on MIPS
- References: <CABu31nPf8OGoTkcekJEAvbU9GrJHBsCyzmegpaKPLDaxyLD0Rw@mail.gmail.com> <B3A978AD3152E64BBBA356E6778FB9978963D5@exchdb03.mips.com>
On Wed, Jan 2, 2013 at 6:42 PM, Ellcey, Steve wrote:
>> From: Steven Bosscher
>> Sent: Saturday, December 22, 2012 10:55 AM
>> To: Ellcey, Steve
>> Subject: Re: Patch for faster memcpy on MIPS
>> This breaks something for me.
>> Building cross-compilers from powerpc64 to mips worked before, but now
>> I get a lot of errors from the assembler:
>> Error: Illegal operands `ld t4,((4)*8)($5)'
>> Error: Illegal operands `ld t5,((5)*8)($5)'
>> etc. (60 errors in total)
> Sorry for not responding sooner but can you tell me what version of the assembler you are using to compile newlib? It looks like the assembler does not understand the 64 bit load and store instructions.
> You can probably work around this by unsetting USE_DOUBLE in the memcpy.S source file but I would like to understand why your assembler is not accepting the sd/ld instructions.
> Steve Ellcey
This is a combined tree, so the assembler is binutils top-of-tree.
But according to apinski, the problem has something to do with this revision:
AFAIU, there's something with the register numbers not right for the case,
+#if _MIPS_SIM==_ABIN32 || _MIPS_SIM==_ABI64 || _MIPS_SIM==_ABIEABI
but my MIPS-foo is limited to knowing "MIPS" some kind of acronym :-)
So I've added apinski to the conversation.