summaryrefslogtreecommitdiffstats
path: root/arch/sparc64/lib/NGmemcpy.S (follow)
Commit message (Collapse)AuthorAgeFilesLines
* sparc,sparc64: unify lib/Sam Ravnborg2008-12-041-425/+0
| | | | | | | | | | o Renamed files in sparc64 to <name>_64.S when identical to sparc32 files. o iomap.c were equal for sparc32 and sparc64 o adjusted sparc/Makefile now we have only one lib/ Signed-off-by: Sam Ravnborg <sam@ravnborg.org> Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64]: Don't use in/local regs for ldx/stx data in N1 memcpy.David S. Miller2007-10-031-4/+4
| | | | | | | | | | It doesn't matter for use in 64-bit objects, but when used in 32-bit environments the top 32-bits of the local and in registers will get chopped off on the next register window spill/restore which leads to difficult to track down and subtle bugs. Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64]: Fix missing load-twin usage in Niagara-1 memcpy.David S. Miller2007-10-021-158/+213
| | | | | | | | | | | | | | For the case where the source is not aligned modulo 8 we don't use load-twins to suck the data in and this kills performance since normal loads allocate in the L1 cache (unlike load-twin) and thus big memcpys swipe the entire L1 D-cache. We need to allocate a register window to implement this properly, but that actually simplifies a lot of things as a nice side-effect. Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64]: store-init needs trailing membar.David S. Miller2007-03-191-0/+2
| | | | | | | | | | | | | | | | The manual says that it is required and we actually have crash reports where loads see stale data due to not having membars here. In one case the networking does: memset(skb, 0, offsetof(struct sk_buff, truesize)); and then some code later checks skb->nohdr for zero, but it's still the value that was there before the memset(). Note that arch/sparc64/lib/xor.S already got this right. Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64]: Fix some Niagara memcpy() bugs.David S. Miller2006-03-201-3/+7
| | | | | | | | | | | We need to restore the %asi register properly. For the kernel this means get_fs(), for user this means ASI_PNF. Also, NGcopy_to_user.S was including U3memcpy.S instead of NGmemcpy.S, oops :-) Signed-off-by: David S. Miller <davem@davemloft.net>
* [SPARC64]: Niagara optimized memcpy() and copy_{to,from}_user().David S. Miller2006-03-201-0/+364
Signed-off-by: David S. Miller <davem@davemloft.net>