|
From: | Paolo Bonzini |
Subject: | Re: [Qemu-devel] [PATCH 1/2] coroutine: introduce coroutines |
Date: | Wed, 11 May 2011 14:04:52 +0200 |
User-agent: | Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.15) Gecko/20110307 Fedora/3.1.9-0.39.b3pre.fc14 Lightning/1.0b3pre Mnenhy/0.8.3 Thunderbird/3.1.9 |
On 05/11/2011 12:15 PM, Stefan Hajnoczi wrote:
+#ifdef __i386__ + asm volatile( + "mov %%esp, %%ebx;" + "mov %0, %%esp;" + "pushl %1;" + "call _trampoline;" + "mov %%ebx, %%esp;" + : : "r" (co->stack + co->stack_size), "r" (co) : "ebx" + );
This is incomplete, it should set FS:[4] and FS:[8] to top and bottom of stack respectively, otherwise exception handling (including SIGSEGV) is broken. But I think for Windows it's anyway better to use fibers. Commit this and either I or Stefan Weil will fix it. :)
Acked-by: Paolo Bonzini <address@hidden> Paolo
[Prev in Thread] | Current Thread | [Next in Thread] |