[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-changelog] [xen-unstable] Define REX64_PREFIX to account for assembler syntax differences on SVR4 targets.
# HG changeset patch # User kfraser@xxxxxxxxxxxxxxxxxxxxx # Node ID 025e19453f1a032082f120c40d81ede69c9a4bb8 # Parent c4cc70c320776ba7693346df0bd4a817dc9f1193 Define REX64_PREFIX to account for assembler syntax differences on SVR4 targets. Signed-off-by: John Levon <john.levon@xxxxxxx> --- xen/arch/x86/i387.c | 9 +++++---- xen/include/asm-x86/x86_64/asm_defns.h | 6 ++++++ 2 files changed, 11 insertions(+), 4 deletions(-) diff -r c4cc70c32077 -r 025e19453f1a xen/arch/x86/i387.c --- a/xen/arch/x86/i387.c Tue Oct 17 18:45:18 2006 +0100 +++ b/xen/arch/x86/i387.c Tue Oct 17 18:50:08 2006 +0100 @@ -14,6 +14,7 @@ #include <asm/processor.h> #include <asm/hvm/support.h> #include <asm/i387.h> +#include <asm/asm_defns.h> void init_fpu(void) { @@ -41,11 +42,11 @@ void save_init_fpu(struct vcpu *v) #else /* __x86_64__ */ /* * The only way to force fxsaveq on a wide range of gas versions. On - * older versions the rex64 prefix works only if we force an addressing - * mode that doesn't require extended registers. + * older versions the rex64 prefix works only if we force an + * addressing mode that doesn't require extended registers. */ __asm__ __volatile__ ( - "rex64/fxsave (%1)" + REX64_PREFIX "fxsave (%1)" : "=m" (*fpu_ctxt) : "cdaSDb" (fpu_ctxt) ); #endif @@ -95,7 +96,7 @@ void restore_fpu(struct vcpu *v) "1: fxrstor %0 \n" #else /* __x86_64__ */ /* See above for why the operands/constraints are this way. */ - "1: rex64/fxrstor (%2) \n" + "1: " REX64_PREFIX "fxrstor (%2)\n" #endif ".section .fixup,\"ax\" \n" "2: push %%"__OP"ax \n" diff -r c4cc70c32077 -r 025e19453f1a xen/include/asm-x86/x86_64/asm_defns.h --- a/xen/include/asm-x86/x86_64/asm_defns.h Tue Oct 17 18:45:18 2006 +0100 +++ b/xen/include/asm-x86/x86_64/asm_defns.h Tue Oct 17 18:50:08 2006 +0100 @@ -60,6 +60,12 @@ #define safe_swapgs \ "mfence; swapgs;" +#ifdef __sun__ +#define REX64_PREFIX "rex64\\" +#else +#define REX64_PREFIX "rex64/" +#endif + #define BUILD_SMP_INTERRUPT(x,v) XBUILD_SMP_INTERRUPT(x,v) #define XBUILD_SMP_INTERRUPT(x,v) \ asmlinkage void x(void); \ _______________________________________________ Xen-changelog mailing list Xen-changelog@xxxxxxxxxxxxxxxxxxx http://lists.xensource.com/xen-changelog
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |