ia64/xen-unstable

changeset 5392:d58565963ee7

bitkeeper revision 1.1697 (42a843b5ZTFdEDRffbieMVV4Kl42cQ)

Multicall macro should mark all caller-saved registers as clobbered
across the function call.
Signed-off-by: Scott Parish <srparish@us.ibm.com>
author kaf24@firebug.cl.cam.ac.uk
date Thu Jun 09 13:27:17 2005 +0000 (2005-06-09)
parents 11dce3390a66
children b5e263150850
files xen/include/asm-x86/multicall.h
line diff
     1.1 --- a/xen/include/asm-x86/multicall.h	Thu Jun 09 10:54:32 2005 +0000
     1.2 +++ b/xen/include/asm-x86/multicall.h	Thu Jun 09 13:27:17 2005 +0000
     1.3 @@ -24,7 +24,9 @@
     1.4              "callq *(%%rax); "                           \
     1.5              "movq  %%rax,"STR(MULTICALL_result)"(%0); "  \
     1.6              : : "b" (_call)                              \
     1.7 -            : "rax", "rdi", "rsi", "rdx", "rcx", "r8" ); \
     1.8 +              /* all the caller-saves registers */       \
     1.9 +            : "rax", "rcx", "rdx", "rsi", "rdi",         \
    1.10 +              "r8",  "r9",  "r10", "r11" );              \
    1.11      } while ( 0 )
    1.12  
    1.13  #else
    1.14 @@ -42,7 +44,9 @@
    1.15              "call  *hypercall_table(,%%eax,4); "       \
    1.16              "movl  %%eax,"STR(MULTICALL_result)"(%0); "\
    1.17              "addl  $20,%%esp; "                        \
    1.18 -            : : "b" (_call) : "eax", "ecx", "edx" );   \
    1.19 +            : : "b" (_call)                            \
    1.20 +              /* all the caller-saves registers */     \
    1.21 +            : "eax", "ecx", "edx" );                   \
    1.22      } while ( 0 )
    1.23  
    1.24  #endif