diff --git a/lib/std/os/linux/hexagon.zig b/lib/std/os/linux/hexagon.zig index 3777c1510449d0e937b1e392b21e33e9c524c00d..8e6898f8e05e3fe3feb45bf9da6424ef5baa5e63 100644 --- a/lib/std/os/linux/hexagon.zig +++ b/lib/std/os/linux/hexagon.zig @@ -136,7 +136,6 @@ pub fn clone() callconv(.naked) u32 { \\ callr r11 \\ \\ r6 = #93 // SYS_exit - \\ r0 = #0 \\ trap0(#1) ); } diff --git a/lib/std/os/linux/microblaze.zig b/lib/std/os/linux/microblaze.zig index 00c3028bbb94bf6fd32b14b443bbf61866dd739d..e524b0555a1bc317236758f3b3c11f49cefb4d24 100644 --- a/lib/std/os/linux/microblaze.zig +++ b/lib/std/os/linux/microblaze.zig @@ -144,6 +144,7 @@ pub fn clone() callconv(.naked) u32 { \\ brald r15, r3 \\ nop \\ + \\ ori r5, r3, 0 \\ ori r12, r0, 1 # SYS_exit \\ brki r14, 0x8 ); diff --git a/lib/std/os/linux/sh.zig b/lib/std/os/linux/sh.zig index ca5e8f9c8a13796a9f0d3be5de882a25d112d1a3..b8f3cc8029a35ff910598d4a99465817e9450376 100644 --- a/lib/std/os/linux/sh.zig +++ b/lib/std/os/linux/sh.zig @@ -199,6 +199,7 @@ pub fn clone() callconv(.naked) u32 { \\ nop \\ \\ mov #1, r3 ! SYS_exit + \\ mov r0, r4 \\ trapa #31 \\ or r0, r0 \\ or r0, r0 diff --git a/lib/std/os/linux/xtensa.zig b/lib/std/os/linux/xtensa.zig index 0bda5a9331365dea6c333818b1624cbfd7aba444..c3c7517abf32b85c5a7b1dc9991e84d745b52026 100644 --- a/lib/std/os/linux/xtensa.zig +++ b/lib/std/os/linux/xtensa.zig @@ -151,6 +151,8 @@ pub fn clone() callconv(.naked) u32 { \\ \\ mov a2, a10 \\ callx0 a9 + \\ + \\ mov a6, a2 ) else asm volatile ( \\ beqz a2, 1f \\ // parent