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;
248248
249249#if zig_has_builtin(trap)
250250#define zig_trap() __builtin_trap()
251#elif _MSC_VER && (_M_IX86 || _M_X64)
251#elif defined(_MSC_VER) && (defined(_M_IX86) || defined(_M_X64))
252252#define zig_trap() __ud2()
253#elif _MSC_VER
254#define zig_trap() __fastfail(0)
255#elif defined(__i386__) || defined(__x86_64__)
256#define zig_trap() __asm__ volatile("ud2");
253#elif defined(_MSC_VER)
254#define zig_trap() __fastfail(7)
255#elif defined(__thumb__)
256#define zig_trap() __asm__ volatile("udf #0xfe")
257257#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")
259271#else
260#include <stdlib.h>
261#define zig_trap() abort()
272#define zig_trap() zig_trap_unavailable
262273#endif
263274
264275#if zig_has_builtin(debugtrap)
265276#define zig_breakpoint() __builtin_debugtrap()
266277#elif defined(_MSC_VER) || defined(__MINGW32__) || defined(__MINGW64__)
267278#define zig_breakpoint() __debugbreak()
268#elif defined(__i386__) || defined(__x86_64__)
269#define zig_breakpoint() __asm__ volatile("int $0x03");
270279#elif defined(__arm__)
271#define zig_breakpoint() __asm__ volatile("bkpt #0");
280#define zig_breakpoint() __asm__ volatile("bkpt #0x0")
272281#elif defined(__aarch64__)
273#define zig_breakpoint() __asm__ volatile("brk #0");
274#else
275#include <signal.h>
276#if defined(SIGTRAP)
277#define zig_breakpoint() raise(SIGTRAP)
282#define zig_breakpoint() __asm__ volatile("brk #0xf000")
283#elif defined(__loongarch__)
284#define zig_breakpoint() __asm__ volatile("break 0x0")
285#elif defined(__mips__)
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")
278297#else
279298#define zig_breakpoint() zig_breakpoint_unavailable
280299#endif
281#endif
282300
283301#if zig_has_builtin(return_address) || defined(zig_gnuc)
284302#define zig_return_address() __builtin_extract_return_addr(__builtin_return_address(0))
......@@ -3592,7 +3610,6 @@ typedef enum memory_order zig_memory_order;
35923610#define zig_atomicrmw_add_float zig_atomicrmw_add
35933611#undef zig_atomicrmw_sub_float
35943612#define zig_atomicrmw_sub_float zig_atomicrmw_sub
3595#define zig_fence(order) atomic_thread_fence(order)
35963613#elif defined(__GNUC__)
35973614typedef int zig_memory_order;
35983615#define zig_memory_order_relaxed __ATOMIC_RELAXED
......@@ -3616,7 +3633,6 @@ typedef int zig_memory_order;
36163633#define zig_atomic_load(res, obj, order, Type, ReprType) __atomic_load (obj, &(res), order)
36173634#undef zig_atomicrmw_xchg_float
36183635#define zig_atomicrmw_xchg_float zig_atomicrmw_xchg
3619#define zig_fence(order) __atomic_thread_fence(order)
36203636#elif _MSC_VER && (_M_IX86 || _M_X64)
36213637#define zig_memory_order_relaxed 0
36223638#define zig_memory_order_acquire 2
......@@ -3637,11 +3653,6 @@ typedef int zig_memory_order;
36373653#define zig_atomicrmw_max(res, obj, arg, order, Type, ReprType) res = zig_msvc_atomicrmw_max_ ##Type(obj, arg)
36383654#define zig_atomic_store( obj, arg, order, Type, ReprType) zig_msvc_atomic_store_ ##Type(obj, arg)
36393655#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
36453656/* TODO: _MSC_VER && (_M_ARM || _M_ARM64) */
36463657#else
36473658#define zig_memory_order_relaxed 0
......@@ -3663,7 +3674,6 @@ typedef int zig_memory_order;
36633674#define zig_atomicrmw_max(res, obj, arg, order, Type, ReprType) zig_atomics_unavailable
36643675#define zig_atomic_store( obj, arg, order, Type, ReprType) zig_atomics_unavailable
36653676#define zig_atomic_load(res, obj, order, Type, ReprType) zig_atomics_unavailable
3666#define zig_fence(order) zig_fence_unavailable
36673677#endif
36683678
36693679#if _MSC_VER && (_M_IX86 || _M_X64)
stage1/zig1.wasm
Binary files a/stage1/zig1.wasm and b/stage1/zig1.wasm differ