]> Cypherpunks repositories - gostls13.git/commitdiff
internal/runtime/syscall: Syscall changes for s390x regabi
authorSrinivas Pokala <Pokala.Srinivas@ibm.com>
Tue, 11 Nov 2025 04:19:47 +0000 (05:19 +0100)
committerKeith Randall <khr@golang.org>
Mon, 24 Nov 2025 18:22:30 +0000 (10:22 -0800)
Updates #40724

Change-Id: I07a01ac1bda71214f01f4a72e15ab469ef275725
Reviewed-on: https://go-review.googlesource.com/c/go/+/719423
Reviewed-by: Vishwanatha HD <vishwanatha.hd@ibm.com>
Reviewed-by: Keith Randall <khr@google.com>
Reviewed-by: David Chase <drchase@google.com>
Reviewed-by: Keith Randall <khr@golang.org>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>

src/internal/runtime/syscall/linux/asm_linux_s390x.s

index 1b27f2939072957bdfa959bf74c1cbced2908015..c912afab6497df64a72c85e391a776837b462b15 100644 (file)
@@ -5,7 +5,16 @@
 #include "textflag.h"
 
 // func Syscall6(num, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2, errno uintptr)
-TEXT ·Syscall6(SB),NOSPLIT,$0-80
+TEXT ·Syscall6<ABIInternal>(SB),NOSPLIT,$0-80
+#ifdef GOEXPERIMENT_regabiargs
+       MOVD    R2, R1
+       MOVD    R3, R2
+       MOVD    R4, R3
+       MOVD    R5, R4
+       MOVD    R6, R5
+       MOVD    R7, R6
+       MOVD    R8, R7
+#else
        MOVD    num+0(FP), R1   // syscall entry
        MOVD    a1+8(FP), R2
        MOVD    a2+16(FP), R3
@@ -13,16 +22,27 @@ TEXT ·Syscall6(SB),NOSPLIT,$0-80
        MOVD    a4+32(FP), R5
        MOVD    a5+40(FP), R6
        MOVD    a6+48(FP), R7
+#endif
        SYSCALL
        MOVD    $0xfffffffffffff001, R8
        CMPUBLT R2, R8, ok
+#ifdef GOEXPERIMENT_regabiargs
+       MOVD    $0, R3
+       NEG     R2, R4
+       MOVD    $-1, R2
+#else
        MOVD    $-1, r1+56(FP)
        MOVD    $0, r2+64(FP)
        NEG     R2, R2
        MOVD    R2, errno+72(FP)
+#endif
        RET
 ok:
+#ifdef GOEXPERIMENT_regabiargs
+       MOVD    $0, R4
+#else
        MOVD    R2, r1+56(FP)
        MOVD    R3, r2+64(FP)
        MOVD    $0, errno+72(FP)
+#endif
        RET