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@xxxxxxxxxx>
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@xxxxxxxxxx>
---
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