mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
Initial support for x64-mingw32
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65868 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
parent
d97c928067
commit
0b5e1442f5
5 changed files with 68 additions and 19 deletions
|
@ -24,7 +24,7 @@ struct coroutine_context
|
|||
void **stack_pointer;
|
||||
};
|
||||
|
||||
typedef COROUTINE(* coroutine_start)(coroutine_context *from, coroutine_context *self);
|
||||
typedef void(__fastcall * coroutine_start)(coroutine_context *from, coroutine_context *self);
|
||||
|
||||
static inline void coroutine_initialize(
|
||||
coroutine_context *context,
|
||||
|
@ -40,12 +40,12 @@ static inline void coroutine_initialize(
|
|||
return;
|
||||
}
|
||||
|
||||
*--context->stack_pointer = (void*)start;
|
||||
|
||||
/* Windows Thread Information Block */
|
||||
*--context->stack_pointer = 0; /* fs:[0] */
|
||||
*--context->stack_pointer = stack_pointer + stack_size; /* fs:[4] */
|
||||
*--context->stack_pointer = (void*)stack_pointer; /* fs:[8] */
|
||||
|
||||
*--context->stack_pointer = (void*)start;
|
||||
*--context->stack_pointer = (void*)stack_pointer; /* fs:[4] */
|
||||
*--context->stack_pointer = (void*)((char *)stack_pointer - stack_size); /* fs:[8] */
|
||||
|
||||
context->stack_pointer -= COROUTINE_REGISTERS;
|
||||
memset(context->stack_pointer, 0, sizeof(void*) * COROUTINE_REGISTERS);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue