diff options
Diffstat (limited to 'coroutine')
-rw-r--r-- | coroutine/amd64/Context.h | 2 | ||||
-rw-r--r-- | coroutine/arm32/Context.h | 2 | ||||
-rw-r--r-- | coroutine/arm64/Context.h | 3 | ||||
-rw-r--r-- | coroutine/loongarch64/Context.h | 2 | ||||
-rw-r--r-- | coroutine/riscv64/Context.h | 2 | ||||
-rw-r--r-- | coroutine/win32/Context.h | 2 | ||||
-rw-r--r-- | coroutine/win64/Context.h | 2 | ||||
-rw-r--r-- | coroutine/x86/Context.h | 2 |
8 files changed, 9 insertions, 8 deletions
diff --git a/coroutine/amd64/Context.h b/coroutine/amd64/Context.h index 44daa4e01a..65aa638304 100644 --- a/coroutine/amd64/Context.h +++ b/coroutine/amd64/Context.h @@ -69,7 +69,7 @@ static inline void coroutine_initialize( context->stack_pointer = (void**)((uintptr_t)top & ~0xF); *--context->stack_pointer = NULL; - *--context->stack_pointer = (void*)start; + *--context->stack_pointer = (void*)(uintptr_t)start; context->stack_pointer -= COROUTINE_REGISTERS; memset(context->stack_pointer, 0, sizeof(void*) * COROUTINE_REGISTERS); diff --git a/coroutine/arm32/Context.h b/coroutine/arm32/Context.h index 09410eb25d..7529dd2efc 100644 --- a/coroutine/arm32/Context.h +++ b/coroutine/arm32/Context.h @@ -44,7 +44,7 @@ static inline void coroutine_initialize( char * top = (char*)stack + size; context->stack_pointer = (void**)((uintptr_t)top & ~0xF); - *--context->stack_pointer = (void*)start; + *--context->stack_pointer = (void*)(uintptr_t)start; context->stack_pointer -= COROUTINE_REGISTERS; memset(context->stack_pointer, 0, sizeof(void*) * COROUTINE_REGISTERS); diff --git a/coroutine/arm64/Context.h b/coroutine/arm64/Context.h index eb66fbea0f..b6ca5b8dde 100644 --- a/coroutine/arm64/Context.h +++ b/coroutine/arm64/Context.h @@ -86,7 +86,8 @@ static inline void coroutine_initialize( context->stack_pointer -= COROUTINE_REGISTERS; memset(context->stack_pointer, 0, sizeof(void*) * COROUTINE_REGISTERS); - context->stack_pointer[0x98 / 8] = ptrauth_sign_instruction_addr((void*)start, (void*)top); + void *addr = (void*)(uintptr_t)start; + context->stack_pointer[0x98 / 8] = ptrauth_sign_instruction_addr(addr, (void*)top); } struct coroutine_context * coroutine_transfer(struct coroutine_context * current, struct coroutine_context * target); diff --git a/coroutine/loongarch64/Context.h b/coroutine/loongarch64/Context.h index 668c9a965e..82b85b36e9 100644 --- a/coroutine/loongarch64/Context.h +++ b/coroutine/loongarch64/Context.h @@ -36,7 +36,7 @@ static inline void coroutine_initialize( context->stack_pointer -= COROUTINE_REGISTERS; memset(context->stack_pointer, 0, sizeof(void*) * COROUTINE_REGISTERS); - context->stack_pointer[0x90 / 8] = (void*)start; + context->stack_pointer[0x90 / 8] = (void*)(uintptr_t)start; } struct coroutine_context * coroutine_transfer(struct coroutine_context * current, struct coroutine_context * target); diff --git a/coroutine/riscv64/Context.h b/coroutine/riscv64/Context.h index 9ce1140e0b..3660fb5577 100644 --- a/coroutine/riscv64/Context.h +++ b/coroutine/riscv64/Context.h @@ -36,7 +36,7 @@ static inline void coroutine_initialize( context->stack_pointer -= COROUTINE_REGISTERS; memset(context->stack_pointer, 0, sizeof(void*) * COROUTINE_REGISTERS); - context->stack_pointer[0xc0 / 8] = (void*)start; + context->stack_pointer[0xc0 / 8] = (void*)(uintptr_t)start; } struct coroutine_context * coroutine_transfer(struct coroutine_context * current, struct coroutine_context * target); diff --git a/coroutine/win32/Context.h b/coroutine/win32/Context.h index 902fd1246f..243ae5a43b 100644 --- a/coroutine/win32/Context.h +++ b/coroutine/win32/Context.h @@ -45,7 +45,7 @@ static inline void coroutine_initialize( char * top = (char*)stack + size; context->stack_pointer = (void**)((uintptr_t)top & ~0xF); - *--context->stack_pointer = (void*)start; + *--context->stack_pointer = (void*)(uintptr_t)start; /* Windows Thread Information Block */ *--context->stack_pointer = (void*)0xFFFFFFFF; /* fs:[0] */ diff --git a/coroutine/win64/Context.h b/coroutine/win64/Context.h index d85ebf8e0e..c5cab729f8 100644 --- a/coroutine/win64/Context.h +++ b/coroutine/win64/Context.h @@ -53,7 +53,7 @@ static inline void coroutine_initialize( /* Return address */ *--context->stack_pointer = 0; - *--context->stack_pointer = (void*)start; + *--context->stack_pointer = (void*)(uintptr_t)start; *--context->stack_pointer = (void*)coroutine_trampoline; /* Windows Thread Information Block */ diff --git a/coroutine/x86/Context.h b/coroutine/x86/Context.h index d98eaf6486..f33b338eab 100644 --- a/coroutine/x86/Context.h +++ b/coroutine/x86/Context.h @@ -45,7 +45,7 @@ static inline void coroutine_initialize( context->stack_pointer = (void**)((uintptr_t)top & ~0xF); *--context->stack_pointer = NULL; - *--context->stack_pointer = (void*)start; + *--context->stack_pointer = (void*)(uintptr_t)start; context->stack_pointer -= COROUTINE_REGISTERS; memset(context->stack_pointer, 0, sizeof(void*) * COROUTINE_REGISTERS); |