zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit 37538f19cddce21bcc099ada6638432b8cbbd877 (tree)
parent 204df19d79833382bbee0ed110502919dc7341f8
Author: Alex Rønne Petersen <alex@alexrp.com>
Date:   Mon,  2 Dec 2024 11:07:17 +0100

zig.h: Use zig_*_windows_teb() inline assembly with TinyCC and slimcc.

Diffstat:
Mlib/zig.h | 8++++----
1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/lib/zig.h b/lib/zig.h @@ -4002,7 +4002,7 @@ static inline void* zig_thumb_windows_teb(void) { void* teb = 0; #if defined(zig_msvc) teb = (void*)_MoveFromCoprocessor(15, 0, 13, 0, 2); -#elif defined(zig_gnuc) +#elif defined(zig_gnuc) || defined(zig_tinyc) || defined(zig_slimcc) __asm__ ("mrc p15, 0, %[ptr], c13, c0, 2" : [ptr] "=r" (teb)); #endif return teb; @@ -4014,7 +4014,7 @@ static inline void* zig_aarch64_windows_teb(void) { void* teb = 0; #if defined(zig_msvc) teb = (void*)__readx18qword(0x0); -#elif defined(zig_gnuc) +#elif defined(zig_gnuc) || defined(zig_tinyc) || defined(zig_slimcc) __asm__ ("mov %[ptr], x18" : [ptr] "=r" (teb)); #endif return teb; @@ -4026,7 +4026,7 @@ static inline void* zig_x86_windows_teb(void) { void* teb = 0; #if defined(zig_msvc) teb = (void*)__readfsdword(0x18); -#elif defined(zig_gnuc) +#elif defined(zig_gnuc) || defined(zig_tinyc) || defined(zig_slimcc) __asm__ ("movl %%fs:0x18, %[ptr]" : [ptr] "=r" (teb)); #endif return teb; @@ -4038,7 +4038,7 @@ static inline void* zig_x86_64_windows_teb(void) { void* teb = 0; #if defined(zig_msvc) teb = (void*)__readgsqword(0x30); -#elif defined(zig_gnuc) +#elif defined(zig_gnuc) || defined(zig_tinyc) || defined(zig_slimcc) __asm__ ("movq %%gs:0x30, %[ptr]" : [ptr] "=r" (teb)); #endif return teb;