authorgravatar for mlugg@mlugg.co.ukMatthew Lugg <mlugg@mlugg.co.uk> 2024-10-14 03:05:20+01:00
committergravatar for mlugg@mlugg.co.ukMatthew Lugg <mlugg@mlugg.co.uk> 2024-10-19 19:13:41+01:00
log36405b9b43237960733a86d0b1eeac1bc047311c
tree0817645464a6422329250aa1e4af9513c6023618
parent51706af908e0c6acb822ef36760b7fe31faf62a6
signaturelock-open Commit is signed but in an unrecognized format.

stage1: update zig1.wasm

As well as being necessary for the `CallingConvention` changes, this update includes the following notable changes: * Fix unlabeled `break` targeting the wrong scope in the presence of labeled continue, unblocking #21422 * Implement `@FieldType` * Implement `@splat` on arrays Signed-off-by: mlugg <mlugg@mlugg.co.uk>

2 files changed, 35 insertions(+), 25 deletions(-)

stage1/zig.h+35-25
...@@ -248,37 +248,55 @@ typedef char bool;...@@ -248,37 +248,55 @@ typedef char bool;
248248
249#if zig_has_builtin(trap)249#if zig_has_builtin(trap)
250#define zig_trap() __builtin_trap()250#define zig_trap() __builtin_trap()
251#elif _MSC_VER && (_M_IX86 || _M_X64)251#elif defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_X64))
252#define zig_trap() __ud2()252#define zig_trap() __ud2()
253#elif _MSC_VER253#elif defined(_MSC_VER)
254#define zig_trap() __fastfail(0)254#define zig_trap() __fastfail(7)
255#elif defined(__i386__) || defined(__x86_64__)255#elif defined(__thumb__)
256#define zig_trap() __asm__ volatile("ud2");256#define zig_trap() __asm__ volatile("udf #0xfe")
257#elif defined(__arm__) || defined(__aarch64__)257#elif defined(__arm__) || defined(__aarch64__)
258#define zig_trap() __asm__ volatile("udf #0");258#define zig_trap() __asm__ volatile("udf #0xfdee")
259#elif defined(__loongarch__) || defined(__powerpc__)
260#define zig_trap() __asm__ volatile(".word 0x0")
261#elif defined(__mips__)
262#define zig_trap() __asm__ volatile(".word 0x3d")
263#elif defined(__riscv)
264#define zig_trap() __asm__ volatile("unimp")
265#elif defined(__s390__)
266#define zig_trap() __asm__ volatile("j 0x2")
267#elif defined(__sparc__)
268#define zig_trap() __asm__ volatile("illtrap")
269#elif defined(__i386__) || defined(__x86_64__)
270#define zig_trap() __asm__ volatile("ud2")
259#else271#else
260#include <stdlib.h>272#define zig_trap() zig_trap_unavailable
261#define zig_trap() abort()
262#endif273#endif
263274
264#if zig_has_builtin(debugtrap)275#if zig_has_builtin(debugtrap)
265#define zig_breakpoint() __builtin_debugtrap()276#define zig_breakpoint() __builtin_debugtrap()
266#elif defined(_MSC_VER) || defined(__MINGW32__) || defined(__MINGW64__)277#elif defined(_MSC_VER) || defined(__MINGW32__) || defined(__MINGW64__)
267#define zig_breakpoint() __debugbreak()278#define zig_breakpoint() __debugbreak()
268#elif defined(__i386__) || defined(__x86_64__)
269#define zig_breakpoint() __asm__ volatile("int $0x03");
270#elif defined(__arm__)279#elif defined(__arm__)
271#define zig_breakpoint() __asm__ volatile("bkpt #0");280#define zig_breakpoint() __asm__ volatile("bkpt #0x0")
272#elif defined(__aarch64__)281#elif defined(__aarch64__)
273#define zig_breakpoint() __asm__ volatile("brk #0");282#define zig_breakpoint() __asm__ volatile("brk #0xf000")
274#else283#elif defined(__loongarch__)
275#include <signal.h>284#define zig_breakpoint() __asm__ volatile("break 0x0")
276#if defined(SIGTRAP)285#elif defined(__mips__)
277#define zig_breakpoint() raise(SIGTRAP)286#define zig_breakpoint() __asm__ volatile("break")
287#elif defined(__powerpc__)
288#define zig_breakpoint() __asm__ volatile("trap")
289#elif defined(__riscv)
290#define zig_breakpoint() __asm__ volatile("ebreak")
291#elif defined(__s390__)
292#define zig_breakpoint() __asm__ volatile("j 0x6")
293#elif defined(__sparc__)
294#define zig_breakpoint() __asm__ volatile("ta 0x1")
295#elif defined(__i386__) || defined(__x86_64__)
296#define zig_breakpoint() __asm__ volatile("int $0x3")
278#else297#else
279#define zig_breakpoint() zig_breakpoint_unavailable298#define zig_breakpoint() zig_breakpoint_unavailable
280#endif299#endif
281#endif
282300
283#if zig_has_builtin(return_address) || defined(zig_gnuc)301#if zig_has_builtin(return_address) || defined(zig_gnuc)
284#define zig_return_address() __builtin_extract_return_addr(__builtin_return_address(0))302#define zig_return_address() __builtin_extract_return_addr(__builtin_return_address(0))
...@@ -3592,7 +3610,6 @@ typedef enum memory_order zig_memory_order;...@@ -3592,7 +3610,6 @@ typedef enum memory_order zig_memory_order;
3592#define zig_atomicrmw_add_float zig_atomicrmw_add3610#define zig_atomicrmw_add_float zig_atomicrmw_add
3593#undef zig_atomicrmw_sub_float3611#undef zig_atomicrmw_sub_float
3594#define zig_atomicrmw_sub_float zig_atomicrmw_sub3612#define zig_atomicrmw_sub_float zig_atomicrmw_sub
3595#define zig_fence(order) atomic_thread_fence(order)
3596#elif defined(__GNUC__)3613#elif defined(__GNUC__)
3597typedef int zig_memory_order;3614typedef int zig_memory_order;
3598#define zig_memory_order_relaxed __ATOMIC_RELAXED3615#define zig_memory_order_relaxed __ATOMIC_RELAXED
...@@ -3616,7 +3633,6 @@ typedef int zig_memory_order;...@@ -3616,7 +3633,6 @@ typedef int zig_memory_order;
3616#define zig_atomic_load(res, obj, order, Type, ReprType) __atomic_load (obj, &(res), order)3633#define zig_atomic_load(res, obj, order, Type, ReprType) __atomic_load (obj, &(res), order)
3617#undef zig_atomicrmw_xchg_float3634#undef zig_atomicrmw_xchg_float
3618#define zig_atomicrmw_xchg_float zig_atomicrmw_xchg3635#define zig_atomicrmw_xchg_float zig_atomicrmw_xchg
3619#define zig_fence(order) __atomic_thread_fence(order)
3620#elif _MSC_VER && (_M_IX86 || _M_X64)3636#elif _MSC_VER && (_M_IX86 || _M_X64)
3621#define zig_memory_order_relaxed 03637#define zig_memory_order_relaxed 0
3622#define zig_memory_order_acquire 23638#define zig_memory_order_acquire 2
...@@ -3637,11 +3653,6 @@ typedef int zig_memory_order;...@@ -3637,11 +3653,6 @@ typedef int zig_memory_order;
3637#define zig_atomicrmw_max(res, obj, arg, order, Type, ReprType) res = zig_msvc_atomicrmw_max_ ##Type(obj, arg)3653#define zig_atomicrmw_max(res, obj, arg, order, Type, ReprType) res = zig_msvc_atomicrmw_max_ ##Type(obj, arg)
3638#define zig_atomic_store( obj, arg, order, Type, ReprType) zig_msvc_atomic_store_ ##Type(obj, arg)3654#define zig_atomic_store( obj, arg, order, Type, ReprType) zig_msvc_atomic_store_ ##Type(obj, arg)
3639#define zig_atomic_load(res, obj, order, Type, ReprType) res = zig_msvc_atomic_load_ ##order##_##Type(obj)3655#define zig_atomic_load(res, obj, order, Type, ReprType) res = zig_msvc_atomic_load_ ##order##_##Type(obj)
3640#if _M_X64
3641#define zig_fence(order) __faststorefence()
3642#else
3643#define zig_fence(order) zig_msvc_atomic_barrier()
3644#endif
3645/* TODO: _MSC_VER && (_M_ARM || _M_ARM64) */3656/* TODO: _MSC_VER && (_M_ARM || _M_ARM64) */
3646#else3657#else
3647#define zig_memory_order_relaxed 03658#define zig_memory_order_relaxed 0
...@@ -3663,7 +3674,6 @@ typedef int zig_memory_order;...@@ -3663,7 +3674,6 @@ typedef int zig_memory_order;
3663#define zig_atomicrmw_max(res, obj, arg, order, Type, ReprType) zig_atomics_unavailable3674#define zig_atomicrmw_max(res, obj, arg, order, Type, ReprType) zig_atomics_unavailable
3664#define zig_atomic_store( obj, arg, order, Type, ReprType) zig_atomics_unavailable3675#define zig_atomic_store( obj, arg, order, Type, ReprType) zig_atomics_unavailable
3665#define zig_atomic_load(res, obj, order, Type, ReprType) zig_atomics_unavailable3676#define zig_atomic_load(res, obj, order, Type, ReprType) zig_atomics_unavailable
3666#define zig_fence(order) zig_fence_unavailable
3667#endif3677#endif
36683678
3669#if _MSC_VER && (_M_IX86 || _M_X64)3679#if _MSC_VER && (_M_IX86 || _M_X64)
stage1/zig1.wasm
Binary files a/stage1/zig1.wasm and b/stage1/zig1.wasm differ