direct-io.hg

changeset 11786:025e19453f1a

Define REX64_PREFIX to account for assembler syntax differences on SVR4 targets.

Signed-off-by: John Levon <john.levon@sun.com>
author kfraser@localhost.localdomain
date Tue Oct 17 18:50:08 2006 +0100 (2006-10-17)
parents c4cc70c32077
children a682d1be3f95
files xen/arch/x86/i387.c xen/include/asm-x86/x86_64/asm_defns.h
line diff
     1.1 --- a/xen/arch/x86/i387.c	Tue Oct 17 18:45:18 2006 +0100
     1.2 +++ b/xen/arch/x86/i387.c	Tue Oct 17 18:50:08 2006 +0100
     1.3 @@ -14,6 +14,7 @@
     1.4  #include <asm/processor.h>
     1.5  #include <asm/hvm/support.h>
     1.6  #include <asm/i387.h>
     1.7 +#include <asm/asm_defns.h>
     1.8  
     1.9  void init_fpu(void)
    1.10  {
    1.11 @@ -41,11 +42,11 @@ void save_init_fpu(struct vcpu *v)
    1.12  #else /* __x86_64__ */
    1.13          /*
    1.14           * The only way to force fxsaveq on a wide range of gas versions. On 
    1.15 -         * older versions the rex64 prefix works only if we force an addressing 
    1.16 -         * mode that doesn't require extended registers.
    1.17 +         * older versions the rex64 prefix works only if we force an
    1.18 +         * addressing mode that doesn't require extended registers.
    1.19           */
    1.20          __asm__ __volatile__ (
    1.21 -            "rex64/fxsave (%1)"
    1.22 +            REX64_PREFIX "fxsave (%1)"
    1.23              : "=m" (*fpu_ctxt) : "cdaSDb" (fpu_ctxt) );
    1.24  #endif
    1.25  
    1.26 @@ -95,7 +96,7 @@ void restore_fpu(struct vcpu *v)
    1.27              "1: fxrstor %0            \n"
    1.28  #else /* __x86_64__ */
    1.29              /* See above for why the operands/constraints are this way. */
    1.30 -            "1: rex64/fxrstor (%2)    \n"
    1.31 +            "1: " REX64_PREFIX "fxrstor (%2)\n"
    1.32  #endif
    1.33              ".section .fixup,\"ax\"   \n"
    1.34              "2: push %%"__OP"ax       \n"
     2.1 --- a/xen/include/asm-x86/x86_64/asm_defns.h	Tue Oct 17 18:45:18 2006 +0100
     2.2 +++ b/xen/include/asm-x86/x86_64/asm_defns.h	Tue Oct 17 18:50:08 2006 +0100
     2.3 @@ -60,6 +60,12 @@
     2.4  #define safe_swapgs                             \
     2.5          "mfence; swapgs;"
     2.6  
     2.7 +#ifdef __sun__
     2.8 +#define REX64_PREFIX "rex64\\"
     2.9 +#else
    2.10 +#define REX64_PREFIX "rex64/"
    2.11 +#endif
    2.12 +
    2.13  #define BUILD_SMP_INTERRUPT(x,v) XBUILD_SMP_INTERRUPT(x,v)
    2.14  #define XBUILD_SMP_INTERRUPT(x,v)               \
    2.15  asmlinkage void x(void);                        \