[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [linux-2.6.18-xen] linux/x86-64: don't use explicit moves in 4- and 5-argument hypercall macros
# HG changeset patch # User Keir Fraser <keir.fraser@xxxxxxxxxx> # Date 1201607590 0 # Node ID 2db30156cb5b4450c535ddf5d7f099c0de633e5c # Parent 6157dbf408cf9c50a658eb9fdacfc78ca72bd06a linux/x86-64: don't use explicit moves in 4- and 5-argument hypercall macros .., allowing the compiler to schedule the moves earlier or even avoid an extra move. Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx> --- include/asm-x86_64/mach-xen/asm/hypercall.h | 22 +++++++++++----------- 1 files changed, 11 insertions(+), 11 deletions(-) diff -r 6157dbf408cf -r 2db30156cb5b include/asm-x86_64/mach-xen/asm/hypercall.h --- a/include/asm-x86_64/mach-xen/asm/hypercall.h Mon Jan 28 10:29:58 2008 +0000 +++ b/include/asm-x86_64/mach-xen/asm/hypercall.h Tue Jan 29 11:53:10 2008 +0000 @@ -103,29 +103,29 @@ #define _hypercall4(type, name, a1, a2, a3, a4) \ ({ \ long __res, __ign1, __ign2, __ign3; \ - asm volatile ( \ - "movq %7,%%r10; " \ + register long __arg4 asm("r10") = (long)(a4); \ + asm volatile ( \ HYPERCALL_STR(name) \ : "=a" (__res), "=D" (__ign1), "=S" (__ign2), \ - "=d" (__ign3) \ + "=d" (__ign3), "+r" (__arg4) \ : "1" ((long)(a1)), "2" ((long)(a2)), \ - "3" ((long)(a3)), "g" ((long)(a4)) \ - : "memory", "r10" ); \ + "3" ((long)(a3)) \ + : "memory" ); \ (type)__res; \ }) #define _hypercall5(type, name, a1, a2, a3, a4, a5) \ ({ \ long __res, __ign1, __ign2, __ign3; \ - asm volatile ( \ - "movq %7,%%r10; movq %8,%%r8; " \ + register long __arg4 asm("r10") = (long)(a4); \ + register long __arg5 asm("r8") = (long)(a5); \ + asm volatile ( \ HYPERCALL_STR(name) \ : "=a" (__res), "=D" (__ign1), "=S" (__ign2), \ - "=d" (__ign3) \ + "=d" (__ign3), "+r" (__arg4), "+r" (__arg5) \ : "1" ((long)(a1)), "2" ((long)(a2)), \ - "3" ((long)(a3)), "g" ((long)(a4)), \ - "g" ((long)(a5)) \ - : "memory", "r10", "r8" ); \ + "3" ((long)(a3)) \ + : "memory" ); \ (type)__res; \ }) _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |