diff --git a/lib/std/os/linux/riscv32.zig b/lib/std/os/linux/riscv32.zig index 278b1ff27b9f98a16f6343ae5410c32d4182042c..5f64b8c16552390afa7401be68796a7983a63baa 100644 --- a/lib/std/os/linux/riscv32.zig +++ b/lib/std/os/linux/riscv32.zig @@ -10,7 +10,45 @@ pub fn syscall0( return asm volatile ("ecall" : [ret] "={x10}" (-> u32), : [number] "{x17}" (@backingInt(number)), - : .{ .memory = true }); + : .{ + .memory = true, + .v0 = true, + .v1 = true, + .v2 = true, + .v3 = true, + .v4 = true, + .v5 = true, + .v6 = true, + .v7 = true, + .v8 = true, + .v9 = true, + .v10 = true, + .v11 = true, + .v12 = true, + .v13 = true, + .v14 = true, + .v15 = true, + .v16 = true, + .v17 = true, + .v18 = true, + .v19 = true, + .v20 = true, + .v21 = true, + .v22 = true, + .v23 = true, + .v24 = true, + .v25 = true, + .v26 = true, + .v27 = true, + .v28 = true, + .v29 = true, + .v30 = true, + .v31 = true, + .vtype = true, + .vl = true, + .vxsat = true, + .vxrm = true, + }); } pub fn syscall1( @@ -21,7 +59,45 @@ pub fn syscall1( : [ret] "={x10}" (-> u32), : [number] "{x17}" (@backingInt(number)), [arg1] "{x10}" (arg1), - : .{ .memory = true }); + : .{ + .memory = true, + .v0 = true, + .v1 = true, + .v2 = true, + .v3 = true, + .v4 = true, + .v5 = true, + .v6 = true, + .v7 = true, + .v8 = true, + .v9 = true, + .v10 = true, + .v11 = true, + .v12 = true, + .v13 = true, + .v14 = true, + .v15 = true, + .v16 = true, + .v17 = true, + .v18 = true, + .v19 = true, + .v20 = true, + .v21 = true, + .v22 = true, + .v23 = true, + .v24 = true, + .v25 = true, + .v26 = true, + .v27 = true, + .v28 = true, + .v29 = true, + .v30 = true, + .v31 = true, + .vtype = true, + .vl = true, + .vxsat = true, + .vxrm = true, + }); } pub fn syscall2( @@ -34,7 +110,45 @@ pub fn syscall2( : [number] "{x17}" (@backingInt(number)), [arg1] "{x10}" (arg1), [arg2] "{x11}" (arg2), - : .{ .memory = true }); + : .{ + .memory = true, + .v0 = true, + .v1 = true, + .v2 = true, + .v3 = true, + .v4 = true, + .v5 = true, + .v6 = true, + .v7 = true, + .v8 = true, + .v9 = true, + .v10 = true, + .v11 = true, + .v12 = true, + .v13 = true, + .v14 = true, + .v15 = true, + .v16 = true, + .v17 = true, + .v18 = true, + .v19 = true, + .v20 = true, + .v21 = true, + .v22 = true, + .v23 = true, + .v24 = true, + .v25 = true, + .v26 = true, + .v27 = true, + .v28 = true, + .v29 = true, + .v30 = true, + .v31 = true, + .vtype = true, + .vl = true, + .vxsat = true, + .vxrm = true, + }); } pub fn syscall3( @@ -49,7 +163,45 @@ pub fn syscall3( [arg1] "{x10}" (arg1), [arg2] "{x11}" (arg2), [arg3] "{x12}" (arg3), - : .{ .memory = true }); + : .{ + .memory = true, + .v0 = true, + .v1 = true, + .v2 = true, + .v3 = true, + .v4 = true, + .v5 = true, + .v6 = true, + .v7 = true, + .v8 = true, + .v9 = true, + .v10 = true, + .v11 = true, + .v12 = true, + .v13 = true, + .v14 = true, + .v15 = true, + .v16 = true, + .v17 = true, + .v18 = true, + .v19 = true, + .v20 = true, + .v21 = true, + .v22 = true, + .v23 = true, + .v24 = true, + .v25 = true, + .v26 = true, + .v27 = true, + .v28 = true, + .v29 = true, + .v30 = true, + .v31 = true, + .vtype = true, + .vl = true, + .vxsat = true, + .vxrm = true, + }); } pub fn syscall4( @@ -66,7 +218,45 @@ pub fn syscall4( [arg2] "{x11}" (arg2), [arg3] "{x12}" (arg3), [arg4] "{x13}" (arg4), - : .{ .memory = true }); + : .{ + .memory = true, + .v0 = true, + .v1 = true, + .v2 = true, + .v3 = true, + .v4 = true, + .v5 = true, + .v6 = true, + .v7 = true, + .v8 = true, + .v9 = true, + .v10 = true, + .v11 = true, + .v12 = true, + .v13 = true, + .v14 = true, + .v15 = true, + .v16 = true, + .v17 = true, + .v18 = true, + .v19 = true, + .v20 = true, + .v21 = true, + .v22 = true, + .v23 = true, + .v24 = true, + .v25 = true, + .v26 = true, + .v27 = true, + .v28 = true, + .v29 = true, + .v30 = true, + .v31 = true, + .vtype = true, + .vl = true, + .vxsat = true, + .vxrm = true, + }); } pub fn syscall5( @@ -85,7 +275,45 @@ pub fn syscall5( [arg3] "{x12}" (arg3), [arg4] "{x13}" (arg4), [arg5] "{x14}" (arg5), - : .{ .memory = true }); + : .{ + .memory = true, + .v0 = true, + .v1 = true, + .v2 = true, + .v3 = true, + .v4 = true, + .v5 = true, + .v6 = true, + .v7 = true, + .v8 = true, + .v9 = true, + .v10 = true, + .v11 = true, + .v12 = true, + .v13 = true, + .v14 = true, + .v15 = true, + .v16 = true, + .v17 = true, + .v18 = true, + .v19 = true, + .v20 = true, + .v21 = true, + .v22 = true, + .v23 = true, + .v24 = true, + .v25 = true, + .v26 = true, + .v27 = true, + .v28 = true, + .v29 = true, + .v30 = true, + .v31 = true, + .vtype = true, + .vl = true, + .vxsat = true, + .vxrm = true, + }); } pub fn syscall6( @@ -106,7 +334,45 @@ pub fn syscall6( [arg4] "{x13}" (arg4), [arg5] "{x14}" (arg5), [arg6] "{x15}" (arg6), - : .{ .memory = true }); + : .{ + .memory = true, + .v0 = true, + .v1 = true, + .v2 = true, + .v3 = true, + .v4 = true, + .v5 = true, + .v6 = true, + .v7 = true, + .v8 = true, + .v9 = true, + .v10 = true, + .v11 = true, + .v12 = true, + .v13 = true, + .v14 = true, + .v15 = true, + .v16 = true, + .v17 = true, + .v18 = true, + .v19 = true, + .v20 = true, + .v21 = true, + .v22 = true, + .v23 = true, + .v24 = true, + .v25 = true, + .v26 = true, + .v27 = true, + .v28 = true, + .v29 = true, + .v30 = true, + .v31 = true, + .vtype = true, + .vl = true, + .vxsat = true, + .vxrm = true, + }); } pub fn clone() callconv(.naked) u32 { diff --git a/lib/std/os/linux/riscv64.zig b/lib/std/os/linux/riscv64.zig index 75024ec2a775c811f64d489d76918c20728dd9f4..51f5fc5d45cbf6db403785dec3311d4b9d274504 100644 --- a/lib/std/os/linux/riscv64.zig +++ b/lib/std/os/linux/riscv64.zig @@ -10,7 +10,45 @@ pub fn syscall0( return asm volatile ("ecall" : [ret] "={x10}" (-> u64), : [number] "{x17}" (@backingInt(number)), - : .{ .memory = true }); + : .{ + .memory = true, + .v0 = true, + .v1 = true, + .v2 = true, + .v3 = true, + .v4 = true, + .v5 = true, + .v6 = true, + .v7 = true, + .v8 = true, + .v9 = true, + .v10 = true, + .v11 = true, + .v12 = true, + .v13 = true, + .v14 = true, + .v15 = true, + .v16 = true, + .v17 = true, + .v18 = true, + .v19 = true, + .v20 = true, + .v21 = true, + .v22 = true, + .v23 = true, + .v24 = true, + .v25 = true, + .v26 = true, + .v27 = true, + .v28 = true, + .v29 = true, + .v30 = true, + .v31 = true, + .vtype = true, + .vl = true, + .vxsat = true, + .vxrm = true, + }); } pub fn syscall1( @@ -21,7 +59,45 @@ pub fn syscall1( : [ret] "={x10}" (-> u64), : [number] "{x17}" (@backingInt(number)), [arg1] "{x10}" (arg1), - : .{ .memory = true }); + : .{ + .memory = true, + .v0 = true, + .v1 = true, + .v2 = true, + .v3 = true, + .v4 = true, + .v5 = true, + .v6 = true, + .v7 = true, + .v8 = true, + .v9 = true, + .v10 = true, + .v11 = true, + .v12 = true, + .v13 = true, + .v14 = true, + .v15 = true, + .v16 = true, + .v17 = true, + .v18 = true, + .v19 = true, + .v20 = true, + .v21 = true, + .v22 = true, + .v23 = true, + .v24 = true, + .v25 = true, + .v26 = true, + .v27 = true, + .v28 = true, + .v29 = true, + .v30 = true, + .v31 = true, + .vtype = true, + .vl = true, + .vxsat = true, + .vxrm = true, + }); } pub fn syscall2( @@ -34,7 +110,45 @@ pub fn syscall2( : [number] "{x17}" (@backingInt(number)), [arg1] "{x10}" (arg1), [arg2] "{x11}" (arg2), - : .{ .memory = true }); + : .{ + .memory = true, + .v0 = true, + .v1 = true, + .v2 = true, + .v3 = true, + .v4 = true, + .v5 = true, + .v6 = true, + .v7 = true, + .v8 = true, + .v9 = true, + .v10 = true, + .v11 = true, + .v12 = true, + .v13 = true, + .v14 = true, + .v15 = true, + .v16 = true, + .v17 = true, + .v18 = true, + .v19 = true, + .v20 = true, + .v21 = true, + .v22 = true, + .v23 = true, + .v24 = true, + .v25 = true, + .v26 = true, + .v27 = true, + .v28 = true, + .v29 = true, + .v30 = true, + .v31 = true, + .vtype = true, + .vl = true, + .vxsat = true, + .vxrm = true, + }); } pub fn syscall3( @@ -49,7 +163,45 @@ pub fn syscall3( [arg1] "{x10}" (arg1), [arg2] "{x11}" (arg2), [arg3] "{x12}" (arg3), - : .{ .memory = true }); + : .{ + .memory = true, + .v0 = true, + .v1 = true, + .v2 = true, + .v3 = true, + .v4 = true, + .v5 = true, + .v6 = true, + .v7 = true, + .v8 = true, + .v9 = true, + .v10 = true, + .v11 = true, + .v12 = true, + .v13 = true, + .v14 = true, + .v15 = true, + .v16 = true, + .v17 = true, + .v18 = true, + .v19 = true, + .v20 = true, + .v21 = true, + .v22 = true, + .v23 = true, + .v24 = true, + .v25 = true, + .v26 = true, + .v27 = true, + .v28 = true, + .v29 = true, + .v30 = true, + .v31 = true, + .vtype = true, + .vl = true, + .vxsat = true, + .vxrm = true, + }); } pub fn syscall4( @@ -66,7 +218,45 @@ pub fn syscall4( [arg2] "{x11}" (arg2), [arg3] "{x12}" (arg3), [arg4] "{x13}" (arg4), - : .{ .memory = true }); + : .{ + .memory = true, + .v0 = true, + .v1 = true, + .v2 = true, + .v3 = true, + .v4 = true, + .v5 = true, + .v6 = true, + .v7 = true, + .v8 = true, + .v9 = true, + .v10 = true, + .v11 = true, + .v12 = true, + .v13 = true, + .v14 = true, + .v15 = true, + .v16 = true, + .v17 = true, + .v18 = true, + .v19 = true, + .v20 = true, + .v21 = true, + .v22 = true, + .v23 = true, + .v24 = true, + .v25 = true, + .v26 = true, + .v27 = true, + .v28 = true, + .v29 = true, + .v30 = true, + .v31 = true, + .vtype = true, + .vl = true, + .vxsat = true, + .vxrm = true, + }); } pub fn syscall5( @@ -85,7 +275,45 @@ pub fn syscall5( [arg3] "{x12}" (arg3), [arg4] "{x13}" (arg4), [arg5] "{x14}" (arg5), - : .{ .memory = true }); + : .{ + .memory = true, + .v0 = true, + .v1 = true, + .v2 = true, + .v3 = true, + .v4 = true, + .v5 = true, + .v6 = true, + .v7 = true, + .v8 = true, + .v9 = true, + .v10 = true, + .v11 = true, + .v12 = true, + .v13 = true, + .v14 = true, + .v15 = true, + .v16 = true, + .v17 = true, + .v18 = true, + .v19 = true, + .v20 = true, + .v21 = true, + .v22 = true, + .v23 = true, + .v24 = true, + .v25 = true, + .v26 = true, + .v27 = true, + .v28 = true, + .v29 = true, + .v30 = true, + .v31 = true, + .vtype = true, + .vl = true, + .vxsat = true, + .vxrm = true, + }); } pub fn syscall6( @@ -106,7 +334,45 @@ pub fn syscall6( [arg4] "{x13}" (arg4), [arg5] "{x14}" (arg5), [arg6] "{x15}" (arg6), - : .{ .memory = true }); + : .{ + .memory = true, + .v0 = true, + .v1 = true, + .v2 = true, + .v3 = true, + .v4 = true, + .v5 = true, + .v6 = true, + .v7 = true, + .v8 = true, + .v9 = true, + .v10 = true, + .v11 = true, + .v12 = true, + .v13 = true, + .v14 = true, + .v15 = true, + .v16 = true, + .v17 = true, + .v18 = true, + .v19 = true, + .v20 = true, + .v21 = true, + .v22 = true, + .v23 = true, + .v24 = true, + .v25 = true, + .v26 = true, + .v27 = true, + .v28 = true, + .v29 = true, + .v30 = true, + .v31 = true, + .vtype = true, + .vl = true, + .vxsat = true, + .vxrm = true, + }); } pub fn clone() callconv(.naked) u64 {