newlib on x86-64
Jeff Johnston
jjohnstn@redhat.com
Thu Feb 5 20:16:00 GMT 2009
Patch checked in. Excruciatingly long commit time for me today, not
sure why.
-- Jeff J.
Neal H. Walfield wrote:
> Attached is a patch for memcpy.S. memset.S and setjmp.S don't use the
> red zone. I think that is actually all of the x86-64 assembly. Am I
> missing something?
>
> Neal
>
> 2009-02-04 Neal H. Walfield <neal@gnu.org>
>
> * libc/machine/x86_64/memcpy.S (memcpy): Don't use the red zone.
>
> diff -c newlib/libc/machine/x86_64/memcpy.S\~ newlib/libc/machine/x86_64/memcpy.S
> --- newlib/libc/machine/x86_64/memcpy.S~ 2007-08-28 23:56:49.000000000 +0200
> +++ newlib/libc/machine/x86_64/memcpy.S 2009-02-04 05:07:51.000000000 +0100
> @@ -30,10 +30,10 @@
> cmpq $256, rdx
> jb quadword_copy
>
> - movq rax, -8 (rsp)
> - movq r12, -16 (rsp)
> - movq r13, -24 (rsp)
> - movq r14, -32 (rsp)
> + pushq rax
> + pushq r12
> + pushq r13
> + pushq r14
>
> movq rdx, rcx /* Copy 128 bytes at a time with minimum cache polution */
> shrq $7, rcx
> @@ -89,10 +89,10 @@
> movq rdx, rcx
> andq $127, rcx
> rep movsb
> - movq -8 (rsp), rax
> - movq -16 (rsp), r12
> - movq -24 (rsp), r13
> - movq -32 (rsp), r14
> + popq r14
> + popq r13
> + popq r12
> + popq rax
> ret
>
>
>
>
More information about the Newlib
mailing list