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>