--- a/sys/arch/i386/i386/locore.s +++ b/sys/arch/i386/i386/locore.s @@ -802,8 +802,9 @@ ENTRY(bcopy) */ ENTRY(memcpy) movl 4(%esp),%ecx - xchg 8(%esp),%ecx - movl %ecx,4(%esp) + movl 8(%esp),%eax + movl %ecx,8(%esp) + movl %eax,4(%esp) jmp _C_LABEL(bcopy)
On x86, the xchg operation between reg and mem has an implicit lock
prefix, i.e. it is a relatively expensive atomic operation. This is not
needed here.
- Small memcpy optimization Stefan Fritsch
- Re: Small memcpy optimization Stefan Fritsch
- Re: Small memcpy optimization Mark Kettenis
- Re: Small memcpy optimization Stefan Fritsch
- Re: Small memcpy optimization Mark Kettenis
- Re: Small memcpy optimization Ted Unangst
- Re: Small memcpy optimization Stefan Fritsch