aboutsummaryrefslogtreecommitdiff
path: root/tests/tcg/s390x/head64.S
diff options
context:
space:
mode:
authorIlya Leoshkevich <iii@linux.ibm.com>2023-05-11 13:46:51 +0200
committerThomas Huth <thuth@redhat.com>2023-05-16 09:14:18 +0200
commitc2485ea402449dd19d51b2d7db7060afb2330b79 (patch)
tree661db3ac46d31870b788f137c48c2fc9c04abcbe /tests/tcg/s390x/head64.S
parentf8d7c90f836370d2a0c8fee8e6c43d49d35ad770 (diff)
downloadqemu-c2485ea402449dd19d51b2d7db7060afb2330b79.zip
qemu-c2485ea402449dd19d51b2d7db7060afb2330b79.tar.gz
qemu-c2485ea402449dd19d51b2d7db7060afb2330b79.tar.bz2
tests/tcg/s390x: Enable the multiarch system tests
Multiarch tests are written in C and need support for printing characters. Instead of implementing the runtime from scratch, just reuse the pc-bios/s390-ccw one. Run tests with -nographic in order to enable SCLP (enable this for the existing tests as well, since it does not hurt). Use the default linker script for the new tests. Signed-off-by: Ilya Leoshkevich <iii@linux.ibm.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20230511114651.439872-3-iii@linux.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
Diffstat (limited to 'tests/tcg/s390x/head64.S')
-rw-r--r--tests/tcg/s390x/head64.S31
1 files changed, 31 insertions, 0 deletions
diff --git a/tests/tcg/s390x/head64.S b/tests/tcg/s390x/head64.S
new file mode 100644
index 0000000..c6f36df
--- /dev/null
+++ b/tests/tcg/s390x/head64.S
@@ -0,0 +1,31 @@
+/*
+ * Startup code for multiarch tests.
+ * Reuses the pc-bios/s390-ccw implementation.
+ *
+ * SPDX-License-Identifier: GPL-2.0-or-later
+ */
+#define main main_pre
+#include "../../../pc-bios/s390-ccw/start.S"
+#undef main
+
+main_pre:
+ aghi %r15,-160 /* reserve stack for C code */
+ brasl %r14,sclp_setup
+ brasl %r14,main
+ larl %r1,success_psw /* check main() return code */
+ ltgr %r2,%r2
+ je 0f
+ larl %r1,failure_psw
+0:
+ lpswe 0(%r1)
+
+ .align 8
+success_psw:
+ .quad 0x2000180000000,0xfff /* see is_special_wait_psw() */
+failure_psw:
+ .quad 0x2000180000000,0 /* disabled wait */
+
+ .section .bss
+ .align 0x1000
+stack:
+ .skip 0x8000