Skip to content

Commit

Permalink
[PATCH] Add faster __iowrite32_copy routine for x86_64
Browse files Browse the repository at this point in the history
This assembly version is measurably faster than the generic version in
lib/iomap_copy.c.

Signed-off-by: Bryan O'Sullivan <[email protected]>
Cc: Andi Kleen <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
  • Loading branch information
Bryan O'Sullivan authored and Linus Torvalds committed Feb 1, 2006
1 parent c27a0d7 commit 0f07496
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 1 deletion.
2 changes: 1 addition & 1 deletion arch/x86_64/lib/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@

CFLAGS_csum-partial.o := -funroll-loops

obj-y := io.o
obj-y := io.o iomap_copy.o

lib-y := csum-partial.o csum-copy.o csum-wrappers.o delay.o \
usercopy.o getuser.o putuser.o \
Expand Down
26 changes: 26 additions & 0 deletions arch/x86_64/lib/iomap_copy.S
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
/*
* Copyright 2006 PathScale, Inc. All Rights Reserved.
*
* This file is free software; you can redistribute it and/or modify
* it under the terms of version 2 of the GNU General Public License
* as published by the Free Software Foundation.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
*/

/*
* override generic version in lib/iomap_copy.c
*/
.globl __iowrite32_copy
.p2align 4
__iowrite32_copy:
movl %edx,%ecx
rep movsd
ret

0 comments on commit 0f07496

Please sign in to comment.