Skip to content

Commit 976b647

Browse files
committed
stage1: update zig1.wasm
Signed-off-by: mlugg <[email protected]>
1 parent 4963166 commit 976b647

File tree

2 files changed

+35
-25
lines changed

2 files changed

+35
-25
lines changed

stage1/zig.h

Lines changed: 35 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -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__)
35973614
typedef 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

9.41 KB
Binary file not shown.

0 commit comments

Comments
 (0)