ミ,,゚Д゚彡フサギコのフサフサ.NET談話室
■ このスレッドは過去ログ倉庫に格納されています
0039デルファイの名無しさん
NGNGprocedure Restore(_ESP, _EBP: Pointer); register; //コルーチンが最初に呼ばれた時の値を渡す
asm
mov esp, eax
mov ebp, edx
end;
procedure Callback(_EBP: Pointer); register; //呼びだし元のEBPを渡す
asm
mov ecx, [ebp + 4]
mov ebp, eax
jmp ecx
end;
…でいい線までいきました。
残る問題は、最適化でレジスタに割りつけられた変数がごちゃ混ぜにされるという事。
呼びだし元、コルーチン内、両方とも、主要レジスタを全部保存しないとダメみたいです。
あきらめて素直にFiber使おうかな。
■ このスレッドは過去ログ倉庫に格納されています