| ... | @@ -4,6 +4,7 @@ | ... | @@ -4,6 +4,7 @@ |
| 4 | #define zig_msvc | 4 | #define zig_msvc |
| 5 | #elif defined(__clang__) | 5 | #elif defined(__clang__) |
| 6 | #define zig_clang | 6 | #define zig_clang |
| | 7 | #define zig_gnuc |
| 7 | #elif defined(__GNUC__) | 8 | #elif defined(__GNUC__) |
| 8 | #define zig_gnuc | 9 | #define zig_gnuc |
| 9 | #elif defined(__TINYC__) | 10 | #elif defined(__TINYC__) |
| ... | @@ -65,7 +66,7 @@ typedef char bool; | ... | @@ -65,7 +66,7 @@ typedef char bool; |
| 65 | #define zig_threadlocal thread_local | 66 | #define zig_threadlocal thread_local |
| 66 | #elif __STDC_VERSION__ >= 201112L | 67 | #elif __STDC_VERSION__ >= 201112L |
| 67 | #define zig_threadlocal _Thread_local | 68 | #define zig_threadlocal _Thread_local |
| 68 | #elif defined(__GNUC__) || defined(zig_slimcc) | 69 | #elif defined(zig_gnuc) || defined(zig_slimcc) |
| 69 | #define zig_threadlocal __thread | 70 | #define zig_threadlocal __thread |
| 70 | #elif defined(zig_msvc) | 71 | #elif defined(zig_msvc) |
| 71 | #define zig_threadlocal __declspec(thread) | 72 | #define zig_threadlocal __declspec(thread) |
| ... | @@ -73,7 +74,7 @@ typedef char bool; | ... | @@ -73,7 +74,7 @@ typedef char bool; |
| 73 | #define zig_threadlocal zig_threadlocal_unavailable | 74 | #define zig_threadlocal zig_threadlocal_unavailable |
| 74 | #endif | 75 | #endif |
| 75 | | 76 | |
| 76 | #if defined(zig_gnuc) && (defined(__i386__) || defined(__x86_64__)) | 77 | #if !defined(zig_clang) && defined(zig_gnuc) && (defined(__i386__) || defined(__x86_64__)) |
| 77 | #define zig_f128_has_miscompilations 1 | 78 | #define zig_f128_has_miscompilations 1 |
| 78 | #else | 79 | #else |
| 79 | #define zig_f128_has_miscompilations 0 | 80 | #define zig_f128_has_miscompilations 0 |
| ... | @@ -132,7 +133,7 @@ typedef char bool; | ... | @@ -132,7 +133,7 @@ typedef char bool; |
| 132 | | 133 | |
| 133 | #if __STDC_VERSION__ >= 199901L | 134 | #if __STDC_VERSION__ >= 199901L |
| 134 | #define zig_restrict restrict | 135 | #define zig_restrict restrict |
| 135 | #elif defined(__GNUC__) || defined(zig_tinyc) | 136 | #elif defined(zig_gnuc) || defined(zig_tinyc) |
| 136 | #define zig_restrict __restrict | 137 | #define zig_restrict __restrict |
| 137 | #else | 138 | #else |
| 138 | #define zig_restrict | 139 | #define zig_restrict |
| ... | @@ -3626,7 +3627,7 @@ typedef enum memory_order zig_memory_order; | ... | @@ -3626,7 +3627,7 @@ typedef enum memory_order zig_memory_order; |
| 3626 | #define zig_atomicrmw_add_float zig_atomicrmw_add | 3627 | #define zig_atomicrmw_add_float zig_atomicrmw_add |
| 3627 | #undef zig_atomicrmw_sub_float | 3628 | #undef zig_atomicrmw_sub_float |
| 3628 | #define zig_atomicrmw_sub_float zig_atomicrmw_sub | 3629 | #define zig_atomicrmw_sub_float zig_atomicrmw_sub |
| 3629 | #elif defined(__GNUC__) | 3630 | #elif defined(zig_gnuc) |
| 3630 | typedef int zig_memory_order; | 3631 | typedef int zig_memory_order; |
| 3631 | #define zig_memory_order_relaxed __ATOMIC_RELAXED | 3632 | #define zig_memory_order_relaxed __ATOMIC_RELAXED |
| 3632 | #define zig_memory_order_acquire __ATOMIC_ACQUIRE | 3633 | #define zig_memory_order_acquire __ATOMIC_ACQUIRE |
| ... | @@ -3948,7 +3949,7 @@ static inline void* zig_thumb_windows_teb(void) { | ... | @@ -3948,7 +3949,7 @@ static inline void* zig_thumb_windows_teb(void) { |
| 3948 | void* teb = 0; | 3949 | void* teb = 0; |
| 3949 | #if defined(zig_msvc) | 3950 | #if defined(zig_msvc) |
| 3950 | teb = (void*)_MoveFromCoprocessor(15, 0, 13, 0, 2); | 3951 | teb = (void*)_MoveFromCoprocessor(15, 0, 13, 0, 2); |
| 3951 | #elif defined(__GNUC__) | 3952 | #elif defined(zig_gnuc) |
| 3952 | __asm__ ("mrc p15, 0, %[ptr], c13, c0, 2" : [ptr] "=r" (teb)); | 3953 | __asm__ ("mrc p15, 0, %[ptr], c13, c0, 2" : [ptr] "=r" (teb)); |
| 3953 | #endif | 3954 | #endif |
| 3954 | return teb; | 3955 | return teb; |
| ... | @@ -3960,7 +3961,7 @@ static inline void* zig_aarch64_windows_teb(void) { | ... | @@ -3960,7 +3961,7 @@ static inline void* zig_aarch64_windows_teb(void) { |
| 3960 | void* teb = 0; | 3961 | void* teb = 0; |
| 3961 | #if defined(zig_msvc) | 3962 | #if defined(zig_msvc) |
| 3962 | teb = (void*)__readx18qword(0x0); | 3963 | teb = (void*)__readx18qword(0x0); |
| 3963 | #elif defined(__GNUC__) | 3964 | #elif defined(zig_gnuc) |
| 3964 | __asm__ ("mov %[ptr], x18" : [ptr] "=r" (teb)); | 3965 | __asm__ ("mov %[ptr], x18" : [ptr] "=r" (teb)); |
| 3965 | #endif | 3966 | #endif |
| 3966 | return teb; | 3967 | return teb; |
| ... | @@ -3972,7 +3973,7 @@ static inline void* zig_x86_windows_teb(void) { | ... | @@ -3972,7 +3973,7 @@ static inline void* zig_x86_windows_teb(void) { |
| 3972 | void* teb = 0; | 3973 | void* teb = 0; |
| 3973 | #if defined(zig_msvc) | 3974 | #if defined(zig_msvc) |
| 3974 | teb = (void*)__readfsdword(0x18); | 3975 | teb = (void*)__readfsdword(0x18); |
| 3975 | #elif defined(__GNUC__) | 3976 | #elif defined(zig_gnuc) |
| 3976 | __asm__ ("movl %%fs:0x18, %[ptr]" : [ptr] "=r" (teb)); | 3977 | __asm__ ("movl %%fs:0x18, %[ptr]" : [ptr] "=r" (teb)); |
| 3977 | #endif | 3978 | #endif |
| 3978 | return teb; | 3979 | return teb; |
| ... | @@ -3984,7 +3985,7 @@ static inline void* zig_x86_64_windows_teb(void) { | ... | @@ -3984,7 +3985,7 @@ static inline void* zig_x86_64_windows_teb(void) { |
| 3984 | void* teb = 0; | 3985 | void* teb = 0; |
| 3985 | #if defined(zig_msvc) | 3986 | #if defined(zig_msvc) |
| 3986 | teb = (void*)__readgsqword(0x30); | 3987 | teb = (void*)__readgsqword(0x30); |
| 3987 | #elif defined(__GNUC__) | 3988 | #elif defined(zig_gnuc) |
| 3988 | __asm__ ("movq %%gs:0x30, %[ptr]" : [ptr] "=r" (teb)); | 3989 | __asm__ ("movq %%gs:0x30, %[ptr]" : [ptr] "=r" (teb)); |
| 3989 | #endif | 3990 | #endif |
| 3990 | return teb; | 3991 | return teb; |