Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
awilliam
GitHub Repository: awilliam/linux-vfio
Path: blob/master/arch/s390/kernel/mcount64.S
10817 views
1
/*
2
* Copyright IBM Corp. 2008,2009
3
*
4
* Author(s): Heiko Carstens <[email protected]>,
5
*
6
*/
7
8
#include <asm/asm-offsets.h>
9
10
.section .kprobes.text, "ax"
11
12
.globl ftrace_stub
13
ftrace_stub:
14
br %r14
15
16
.globl _mcount
17
_mcount:
18
#ifdef CONFIG_DYNAMIC_FTRACE
19
br %r14
20
21
.globl ftrace_caller
22
ftrace_caller:
23
#endif
24
larl %r1,function_trace_stop
25
icm %r1,0xf,0(%r1)
26
bnzr %r14
27
stmg %r2,%r5,32(%r15)
28
stg %r14,112(%r15)
29
lgr %r1,%r15
30
aghi %r15,-160
31
stg %r1,__SF_BACKCHAIN(%r15)
32
lgr %r2,%r14
33
lg %r3,168(%r15)
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
.globl ftrace_graph_caller
41
ftrace_graph_caller:
42
# The bras instruction gets runtime patched to call prepare_ftrace_return.
43
# See ftrace_enable_ftrace_graph_caller. The patched instruction is:
44
# bras %r14,prepare_ftrace_return
45
bras %r14,0f
46
0: stg %r2,168(%r15)
47
#endif
48
aghi %r15,160
49
lmg %r2,%r5,32(%r15)
50
lg %r14,112(%r15)
51
br %r14
52
53
#ifdef CONFIG_FUNCTION_GRAPH_TRACER
54
55
.globl return_to_handler
56
return_to_handler:
57
stmg %r2,%r5,32(%r15)
58
lgr %r1,%r15
59
aghi %r15,-160
60
stg %r1,__SF_BACKCHAIN(%r15)
61
brasl %r14,ftrace_return_to_handler
62
aghi %r15,160
63
lgr %r14,%r2
64
lmg %r2,%r5,32(%r15)
65
br %r14
66
67
#endif
68
69