powerpc: Delete __cpuinit usage from all users
[linux/fpc-iii.git] / arch / s390 / kernel / mcount64.S
blob1c52eae3396a0845f3176ba8305607ef049f2608
1 /*
2  * Copyright IBM Corp. 2008, 2009
3  *
4  *   Author(s): Heiko Carstens <heiko.carstens@de.ibm.com>,
5  *
6  */
8 #include <linux/linkage.h>
9 #include <asm/asm-offsets.h>
10 #include <asm/ftrace.h>
12         .section .kprobes.text, "ax"
14 ENTRY(ftrace_stub)
15         br      %r14
17 ENTRY(_mcount)
18 #ifdef CONFIG_DYNAMIC_FTRACE
19         br      %r14
21 ENTRY(ftrace_caller)
22 #endif
23         larl    %r1,function_trace_stop
24         icm     %r1,0xf,0(%r1)
25         bnzr    %r14
26         stmg    %r2,%r5,32(%r15)
27         stg     %r14,112(%r15)
28         lgr     %r1,%r15
29         aghi    %r15,-160
30         stg     %r1,__SF_BACKCHAIN(%r15)
31         lgr     %r2,%r14
32         lg      %r3,168(%r15)
33         aghi    %r2,-MCOUNT_INSN_SIZE
34         larl    %r14,ftrace_trace_function
35         lg      %r14,0(%r14)
36         basr    %r14,%r14
37 #ifdef CONFIG_FUNCTION_GRAPH_TRACER
38         lg      %r2,168(%r15)
39         lg      %r3,272(%r15)
40 ENTRY(ftrace_graph_caller)
41 # The bras instruction gets runtime patched to call prepare_ftrace_return.
42 # See ftrace_enable_ftrace_graph_caller. The patched instruction is:
43 #       bras    %r14,prepare_ftrace_return
44         bras    %r14,0f
45 0:      stg     %r2,168(%r15)
46 #endif
47         aghi    %r15,160
48         lmg     %r2,%r5,32(%r15)
49         lg      %r14,112(%r15)
50         br      %r14
52 #ifdef CONFIG_FUNCTION_GRAPH_TRACER
54 ENTRY(return_to_handler)
55         stmg    %r2,%r5,32(%r15)
56         lgr     %r1,%r15
57         aghi    %r15,-160
58         stg     %r1,__SF_BACKCHAIN(%r15)
59         brasl   %r14,ftrace_return_to_handler
60         aghi    %r15,160
61         lgr     %r14,%r2
62         lmg     %r2,%r5,32(%r15)
63         br      %r14
65 #endif