Il 30/06/2014 15:11, Ian Campbell ha scritto:
On Mon, 2014-06-30 at 15:07 +0200, Paolo Bonzini wrote:
Il 30/06/2014 15:03, Ian Campbell ha scritto:
That line is: // Acquire lock and take ownership of shared stack 1: rep nop
I've also checked the preprocessed version and the nop isn't being disappeared or anything like that.
"rep nop" is really just "pause".
Yes, that's how I was translating it in my head, which is why I thought it was fine to write it like that.
I think the assembler wants "rep; nop" instead.
That's right, I was just reaching the same conclusion. Build-tested patch:
8<------------------------
From 0b05042b582a8992c15030406dcb220be82da8ce Mon Sep 17 00:00:00 2001 From: Ian Campbell ian.campbell@citrix.com Date: Mon, 30 Jun 2014 14:10:02 +0100 Subject: [PATCH] romlayout: Use "rep ; nop" not "rep nop".
Fixes: Compiling (16bit) out/romlayout.o src/romlayout.S: Assembler messages: src/romlayout.S:285: Error: expecting string instruction after `rep' make: *** [out/romlayout.o] Error 1
Signed-off-by: Ian Campbell ian.campbell@citrix.com
src/romlayout.S | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/romlayout.S b/src/romlayout.S index a931b32..a3ba965 100644 --- a/src/romlayout.S +++ b/src/romlayout.S @@ -282,7 +282,7 @@ entry_smp: jmp transition32 .code32 // Acquire lock and take ownership of shared stack -1: rep nop +1: rep ; nop 2: lock btsl $0, SMPLock jc 1b movl SMPStack, %esp
Reviewed-by: Paolo Bonzini pbonzini@redhat.com