internal/cpu: define kdsaQuery for s390
Patch from Andreas Krebbel.
Change-Id: I8dc0342cd03f9b2ece98e9b8b0fb4bdb0d115ec1
Reviewed-on: https://go-review.googlesource.com/c/gofrontend/+/201037
Reviewed-by: Ian Lance Taylor <iant@golang.org>
diff --git a/libgo/go/internal/cpu/cpu_gccgo.c b/libgo/go/internal/cpu/cpu_gccgo.c
index ed0e7bf..6b40f01 100644
--- a/libgo/go/internal/cpu/cpu_gccgo.c
+++ b/libgo/go/internal/cpu/cpu_gccgo.c
@@ -184,4 +184,19 @@
return ret;
}
+struct queryResult kdsaQuery(void)
+ __asm__(GOSYM_PREFIX "internal..z2fcpu.kdsaQuery")
+ __attribute__((no_split_stack));
+
+struct queryResult kdsaQuery() {
+ struct queryResult ret;
+
+ __asm__ ("lghi %%r0, 0\t\n" // set function code to 0 (KDSA-Query)
+ "la %%r1, %[ret]\t\n"
+ ".long 0xb93a0024\t\n" // kdsa
+ :[ret] "=QRST" (ret) : : "r0", "r1", "cc");
+
+ return ret;
+}
+
#endif /* defined(__s390x__) */