xref: /kvm-unit-tests/s390x/snippets/c/cstart.S (revision a6c15401b2a7d3105e5c5e6ec4e5f44dc0b73fea)
1dcb58231SJanosch Frank/* SPDX-License-Identifier: GPL-2.0-only */
2dcb58231SJanosch Frank/*
3dcb58231SJanosch Frank * Start assembly for snippets
4dcb58231SJanosch Frank *
5dcb58231SJanosch Frank * Copyright (c) 2021 IBM Corp.
6dcb58231SJanosch Frank *
7dcb58231SJanosch Frank * Authors:
8dcb58231SJanosch Frank *  Janosch Frank <frankja@linux.ibm.com>
9dcb58231SJanosch Frank */
10acc93cbfSJanosch Frank#include <asm/sigp.h>
11acc93cbfSJanosch Frank
12acc93cbfSJanosch Frank.section .init
13acc93cbfSJanosch Frank	.globl start
14acc93cbfSJanosch Frankstart:
15acc93cbfSJanosch Frank	/* XOR all registers with themselves to clear them fully. */
16acc93cbfSJanosch Frank	.irp i, 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
17acc93cbfSJanosch Frank	xgr \i,\i
18acc93cbfSJanosch Frank	.endr
19acc93cbfSJanosch Frank	/* 0x3000 is the stack page for now */
20*a6c15401SJanosch Frank	lghi	%r15, stackptr
21acc93cbfSJanosch Frank	sam64
22acc93cbfSJanosch Frank	brasl	%r14, main
23acc93cbfSJanosch Frank	/* For now let's only use cpu 0 in snippets so this will always work. */
24acc93cbfSJanosch Frank	xgr	%r0, %r0
25acc93cbfSJanosch Frank	sigp    %r2, %r0, SIGP_STOP
26