[S390] ftrace/mcount: fix kernel stack backchain
[linux-block.git] / arch / s390 / kernel / mcount.S
CommitLineData
5d360a75
HC
1/*
2 * Copyright IBM Corp. 2008
3 *
4 * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com>,
5 *
6 */
7
cf087343
HC
8#include <asm/asm-offsets.h>
9
5d360a75
HC
10#ifndef CONFIG_64BIT
11.globl _mcount
12_mcount:
13 stm %r0,%r5,8(%r15)
14 st %r14,56(%r15)
15 lr %r1,%r15
16 ahi %r15,-96
17 l %r3,100(%r15)
18 la %r2,0(%r14)
cf087343 19 st %r1,__SF_BACKCHAIN(%r15)
5d360a75
HC
20 la %r3,0(%r3)
21 bras %r14,0f
22 .long ftrace_trace_function
230: l %r14,0(%r14)
24 l %r14,0(%r14)
25 basr %r14,%r14
26 ahi %r15,96
27 lm %r0,%r5,8(%r15)
28 l %r14,56(%r15)
29 br %r14
30
31.globl ftrace_stub
32ftrace_stub:
33 br %r14
34
35#else /* CONFIG_64BIT */
36
37.globl _mcount
38_mcount:
39 stmg %r0,%r5,16(%r15)
40 stg %r14,112(%r15)
41 lgr %r1,%r15
42 aghi %r15,-160
cf087343 43 stg %r1,__SF_BACKCHAIN(%r15)
5d360a75
HC
44 lgr %r2,%r14
45 lg %r3,168(%r15)
46 larl %r14,ftrace_trace_function
47 lg %r14,0(%r14)
48 basr %r14,%r14
49 aghi %r15,160
50 lmg %r0,%r5,16(%r15)
51 lg %r14,112(%r15)
52 br %r14
53
54.globl ftrace_stub
55ftrace_stub:
56 br %r14
57
58#endif /* CONFIG_64BIT */