[S390] ftrace/mcount: fix kernel stack backchain
[deliverable/linux.git] / arch / s390 / kernel / mcount.S
1 /*
2 * Copyright IBM Corp. 2008
3 *
4 * Author(s): Heiko Carstens <heiko.carstens@de.ibm.com>,
5 *
6 */
7
8 #include <asm/asm-offsets.h>
9
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)
19 st %r1,__SF_BACKCHAIN(%r15)
20 la %r3,0(%r3)
21 bras %r14,0f
22 .long ftrace_trace_function
23 0: 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
32 ftrace_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
43 stg %r1,__SF_BACKCHAIN(%r15)
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
55 ftrace_stub:
56 br %r14
57
58 #endif /* CONFIG_64BIT */
This page took 0.11257 seconds and 5 git commands to generate.