Rik van Riel
2005-Sep-12 19:25 UTC
[Xen-devel] [PATCH] fix assembly to avoid new binutils warning
Newer binutils is a bit stricter and errors out when you try
to use movl on a 16 bit word on x86_64. Using just a "mov"
compiles fine and should result in the same code.
{standard input}: Assembler messages:
{standard input}:2138: Error: suffix or operands invalid for `mov''
{standard input}:2140: Error: suffix or operands invalid for `mov''
{standard input}:2142: Error: suffix or operands invalid for `mov''
{standard input}:2144: Error: suffix or operands invalid for `mov''
Signed-off-by: Rik van Riel <riel@redhat.com>
--- xen-unstable/xen/arch/x86/domain.c.binutils 2005-09-12 15:08:21.000000000
-0400
+++ xen-unstable/xen/arch/x86/domain.c 2005-09-12 15:08:30.000000000 -0400
@@ -677,10 +677,10 @@ static void save_segments(struct vcpu *v
if ( VMX_DOMAIN(v) )
rdmsrl(MSR_SHADOW_GS_BASE, v->arch.arch_vmx.msr_content.shadow_gs);
- __asm__ __volatile__ ( "movl %%ds,%0" : "=m"
(regs->ds) );
- __asm__ __volatile__ ( "movl %%es,%0" : "=m"
(regs->es) );
- __asm__ __volatile__ ( "movl %%fs,%0" : "=m"
(regs->fs) );
- __asm__ __volatile__ ( "movl %%gs,%0" : "=m"
(regs->gs) );
+ __asm__ __volatile__ ( "mov %%ds,%0" : "=m"
(regs->ds) );
+ __asm__ __volatile__ ( "mov %%es,%0" : "=m"
(regs->es) );
+ __asm__ __volatile__ ( "mov %%fs,%0" : "=m"
(regs->fs) );
+ __asm__ __volatile__ ( "mov %%gs,%0" : "=m"
(regs->gs) );
if ( regs->ds )
dirty_segment_mask |= DIRTY_DS;
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel