xref: /openbmc/qemu/tests/tcg/s390x/head64.S (revision f7884164cbe3743c3bd2acc9daf877497fdb5fa3)
1c2485ea4SIlya Leoshkevich/*
2c2485ea4SIlya Leoshkevich * Startup code for multiarch tests.
3c2485ea4SIlya Leoshkevich * Reuses the pc-bios/s390-ccw implementation.
4c2485ea4SIlya Leoshkevich *
5c2485ea4SIlya Leoshkevich * SPDX-License-Identifier: GPL-2.0-or-later
6c2485ea4SIlya Leoshkevich */
7c2485ea4SIlya Leoshkevich#define main main_pre
8c2485ea4SIlya Leoshkevich#include "../../../pc-bios/s390-ccw/start.S"
9c2485ea4SIlya Leoshkevich#undef main
10c2485ea4SIlya Leoshkevich
11*e31f08dcSThomas Huth.text
12*e31f08dcSThomas Huth
13c2485ea4SIlya Leoshkevichmain_pre:
14c2485ea4SIlya Leoshkevich    aghi %r15,-160                     /* reserve stack for C code */
15c2485ea4SIlya Leoshkevich    brasl %r14,sclp_setup
16c2485ea4SIlya Leoshkevich    brasl %r14,main
17c2485ea4SIlya Leoshkevich    larl %r1,success_psw               /* check main() return code */
18c2485ea4SIlya Leoshkevich    ltgr %r2,%r2
19c2485ea4SIlya Leoshkevich    je 0f
20c2485ea4SIlya Leoshkevich    larl %r1,failure_psw
21c2485ea4SIlya Leoshkevich0:
22c2485ea4SIlya Leoshkevich    lpswe 0(%r1)
23c2485ea4SIlya Leoshkevich
24c2485ea4SIlya Leoshkevich    .align 8
25c2485ea4SIlya Leoshkevichsuccess_psw:
26c2485ea4SIlya Leoshkevich    .quad 0x2000180000000,0xfff        /* see is_special_wait_psw() */
27c2485ea4SIlya Leoshkevichfailure_psw:
28c2485ea4SIlya Leoshkevich    .quad 0x2000180000000,0            /* disabled wait */
29