diff options
Diffstat (limited to 'src/rt')
| -rw-r--r-- | src/rt/arch/x86_64/sp.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/src/rt/arch/x86_64/sp.h b/src/rt/arch/x86_64/sp.h index bf011f4d019..764927759fe 100644 --- a/src/rt/arch/x86_64/sp.h +++ b/src/rt/arch/x86_64/sp.h @@ -43,6 +43,10 @@ extern "C" CDECL ALWAYS_INLINE uintptr_t get_sp_limit() { asm volatile ( "movq %%fs:24, %0" : "=r"(limit)); +#elif defined(_WIN64) + asm volatile ( + "movq %%gs:0x28, %0" + : "=r"(limit)); #endif return limit; @@ -65,6 +69,10 @@ extern "C" CDECL ALWAYS_INLINE void record_sp_limit(void *limit) { asm volatile ( "movq %0, %%fs:24" :: "r"(limit)); +#elif defined(_WIN64) + asm volatile ( + "movq %0, %%gs:0x28" + :: "r"(limit)); #endif } |
