[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] 32-on-64: All argument registers must be zero extended to 64 bits
# HG changeset patch # User kfraser@xxxxxxxxxxxxxxxxxxxxx # Date 1169662824 0 # Node ID e68bf334ecb877189d718122894170a43de43575 # Parent 2932d0e7c5545167901afeb7ac87dc0c1edf4bfd 32-on-64: All argument registers must be zero extended to 64 bits (%rdx was missed). Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx> --- xen/arch/x86/x86_64/compat/entry.S | 15 +++++++++------ 1 files changed, 9 insertions(+), 6 deletions(-) diff -r 2932d0e7c554 -r e68bf334ecb8 xen/arch/x86/x86_64/compat/entry.S --- a/xen/arch/x86/x86_64/compat/entry.S Wed Jan 24 18:06:14 2007 +0000 +++ b/xen/arch/x86/x86_64/compat/entry.S Wed Jan 24 18:20:24 2007 +0000 @@ -16,7 +16,8 @@ ENTRY(compat_hypercall) jae compat_bad_hypercall #ifndef NDEBUG /* Deliberately corrupt parameter regs not used by this hypercall. */ - pushq UREGS_rbx(%rsp); pushq %rcx; pushq %rdx; pushq %rsi; pushq %rdi; pushq UREGS_rbp+5*8(%rsp) + pushq UREGS_rbx(%rsp); pushq %rcx; pushq %rdx; pushq %rsi; pushq %rdi + pushq UREGS_rbp+5*8(%rsp) leaq compat_hypercall_args_table(%rip),%r10 movq $6,%rcx subb (%r10,%rax,1),%cl @@ -28,11 +29,13 @@ ENTRY(compat_hypercall) pushq %rax pushq UREGS_rip+8(%rsp) #else - movl %eax,%eax - movl %ebp,%r9d - movl %edi,%r8d - xchgl %ecx,%esi - movl UREGS_rbx(%rsp),%edi + /* Relocate argument registers and zero-extend to 64 bits. */ + movl %eax,%eax /* Hypercall # */ + movl UREGS_rbx(%rsp),%edi /* Arg 1 */ + xchgl %ecx,%esi /* Arg 2, Arg 4 */ + movl %edx,%edx /* Arg 3 */ + movl %edi,%r8d /* Arg 5 */ + movl %ebp,%r9d /* Arg 6 */ #endif leaq compat_hypercall_table(%rip),%r10 PERFC_INCR(PERFC_hypercalls, %rax) _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |