authorgravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2024-12-02 11:07:17+01:00
committergravatar for alex@alexrp.comAlex Rønne Petersen <alex@alexrp.com> 2024-12-03 12:07:34+01:00
log37538f19cddce21bcc099ada6638432b8cbbd877
tree087d1780c1c9426de0007ac3d7a05da388c6a11e
parent204df19d79833382bbee0ed110502919dc7341f8
signaturebadge-check Signed by SSH key SHA256:7B/LJ7bpR1eX8aCXSr4mtd5M45VMPKcx9zY8e95b5QM

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


1 files changed, 4 insertions(+), 4 deletions(-)

lib/zig.h+4-4
...@@ -4002,7 +4002,7 @@ static inline void* zig_thumb_windows_teb(void) {...@@ -4002,7 +4002,7 @@ static inline void* zig_thumb_windows_teb(void) {
4002 void* teb = 0;4002 void* teb = 0;
4003#if defined(zig_msvc)4003#if defined(zig_msvc)
4004 teb = (void*)_MoveFromCoprocessor(15, 0, 13, 0, 2);4004 teb = (void*)_MoveFromCoprocessor(15, 0, 13, 0, 2);
4005#elif defined(zig_gnuc)4005#elif defined(zig_gnuc) || defined(zig_tinyc) || defined(zig_slimcc)
4006 __asm__ ("mrc p15, 0, %[ptr], c13, c0, 2" : [ptr] "=r" (teb));4006 __asm__ ("mrc p15, 0, %[ptr], c13, c0, 2" : [ptr] "=r" (teb));
4007#endif4007#endif
4008 return teb;4008 return teb;
...@@ -4014,7 +4014,7 @@ static inline void* zig_aarch64_windows_teb(void) {...@@ -4014,7 +4014,7 @@ static inline void* zig_aarch64_windows_teb(void) {
4014 void* teb = 0;4014 void* teb = 0;
4015#if defined(zig_msvc)4015#if defined(zig_msvc)
4016 teb = (void*)__readx18qword(0x0);4016 teb = (void*)__readx18qword(0x0);
4017#elif defined(zig_gnuc)4017#elif defined(zig_gnuc) || defined(zig_tinyc) || defined(zig_slimcc)
4018 __asm__ ("mov %[ptr], x18" : [ptr] "=r" (teb));4018 __asm__ ("mov %[ptr], x18" : [ptr] "=r" (teb));
4019#endif4019#endif
4020 return teb;4020 return teb;
...@@ -4026,7 +4026,7 @@ static inline void* zig_x86_windows_teb(void) {...@@ -4026,7 +4026,7 @@ static inline void* zig_x86_windows_teb(void) {
4026 void* teb = 0;4026 void* teb = 0;
4027#if defined(zig_msvc)4027#if defined(zig_msvc)
4028 teb = (void*)__readfsdword(0x18);4028 teb = (void*)__readfsdword(0x18);
4029#elif defined(zig_gnuc)4029#elif defined(zig_gnuc) || defined(zig_tinyc) || defined(zig_slimcc)
4030 __asm__ ("movl %%fs:0x18, %[ptr]" : [ptr] "=r" (teb));4030 __asm__ ("movl %%fs:0x18, %[ptr]" : [ptr] "=r" (teb));
4031#endif4031#endif
4032 return teb;4032 return teb;
...@@ -4038,7 +4038,7 @@ static inline void* zig_x86_64_windows_teb(void) {...@@ -4038,7 +4038,7 @@ static inline void* zig_x86_64_windows_teb(void) {
4038 void* teb = 0;4038 void* teb = 0;
4039#if defined(zig_msvc)4039#if defined(zig_msvc)
4040 teb = (void*)__readgsqword(0x30);4040 teb = (void*)__readgsqword(0x30);
4041#elif defined(zig_gnuc)4041#elif defined(zig_gnuc) || defined(zig_tinyc) || defined(zig_slimcc)
4042 __asm__ ("movq %%gs:0x30, %[ptr]" : [ptr] "=r" (teb));4042 __asm__ ("movq %%gs:0x30, %[ptr]" : [ptr] "=r" (teb));
4043#endif4043#endif
4044 return teb;4044 return teb;