aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/kernel/entry-common.S
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/kernel/entry-common.S')
-rw-r--r--arch/arm/kernel/entry-common.S88
1 files changed, 44 insertions, 44 deletions
diff --git a/arch/arm/kernel/entry-common.S b/arch/arm/kernel/entry-common.S
index 2c1db77d7848..0b042bdb11bf 100644
--- a/arch/arm/kernel/entry-common.S
+++ b/arch/arm/kernel/entry-common.S
@@ -94,73 +94,73 @@ ENDPROC(ret_from_fork)
94#ifdef CONFIG_FUNCTION_TRACER 94#ifdef CONFIG_FUNCTION_TRACER
95#ifdef CONFIG_DYNAMIC_FTRACE 95#ifdef CONFIG_DYNAMIC_FTRACE
96ENTRY(mcount) 96ENTRY(mcount)
97 stmdb sp!, {r0-r3, lr} 97 stmdb sp!, {r0-r3, lr}
98 mov r0, lr 98 mov r0, lr
99 sub r0, r0, #MCOUNT_INSN_SIZE 99 sub r0, r0, #MCOUNT_INSN_SIZE
100 100
101 .globl mcount_call 101 .globl mcount_call
102mcount_call: 102mcount_call:
103 bl ftrace_stub 103 bl ftrace_stub
104 ldr lr, [fp, #-4] @ restore lr 104 ldr lr, [fp, #-4] @ restore lr
105 ldmia sp!, {r0-r3, pc} 105 ldmia sp!, {r0-r3, pc}
106 106
107ENTRY(ftrace_caller) 107ENTRY(ftrace_caller)
108 stmdb sp!, {r0-r3, lr} 108 stmdb sp!, {r0-r3, lr}
109 ldr r1, [fp, #-4] 109 ldr r1, [fp, #-4]
110 mov r0, lr 110 mov r0, lr
111 sub r0, r0, #MCOUNT_INSN_SIZE 111 sub r0, r0, #MCOUNT_INSN_SIZE
112 112
113 .globl ftrace_call 113 .globl ftrace_call
114ftrace_call: 114ftrace_call:
115 bl ftrace_stub 115 bl ftrace_stub
116 ldr lr, [fp, #-4] @ restore lr 116 ldr lr, [fp, #-4] @ restore lr
117 ldmia sp!, {r0-r3, pc} 117 ldmia sp!, {r0-r3, pc}
118 118
119#else 119#else
120 120
121ENTRY(__gnu_mcount_nc) 121ENTRY(__gnu_mcount_nc)
122 stmdb sp!, {r0-r3, lr} 122 stmdb sp!, {r0-r3, lr}
123 ldr r0, =ftrace_trace_function 123 ldr r0, =ftrace_trace_function
124 ldr r2, [r0] 124 ldr r2, [r0]
125 adr r0, ftrace_stub 125 adr r0, ftrace_stub
126 cmp r0, r2 126 cmp r0, r2
127 bne gnu_trace 127 bne gnu_trace
128 ldmia sp!, {r0-r3, ip, lr} 128 ldmia sp!, {r0-r3, ip, lr}
129 mov pc, ip 129 mov pc, ip
130 130
131gnu_trace: 131gnu_trace:
132 ldr r1, [sp, #20] @ lr of instrumented routine 132 ldr r1, [sp, #20] @ lr of instrumented routine
133 mov r0, lr 133 mov r0, lr
134 sub r0, r0, #MCOUNT_INSN_SIZE 134 sub r0, r0, #MCOUNT_INSN_SIZE
135 mov lr, pc 135 mov lr, pc
136 mov pc, r2 136 mov pc, r2
137 ldmia sp!, {r0-r3, ip, lr} 137 ldmia sp!, {r0-r3, ip, lr}
138 mov pc, ip 138 mov pc, ip
139 139
140ENTRY(mcount) 140ENTRY(mcount)
141 stmdb sp!, {r0-r3, lr} 141 stmdb sp!, {r0-r3, lr}
142 ldr r0, =ftrace_trace_function 142 ldr r0, =ftrace_trace_function
143 ldr r2, [r0] 143 ldr r2, [r0]
144 adr r0, ftrace_stub 144 adr r0, ftrace_stub
145 cmp r0, r2 145 cmp r0, r2
146 bne trace 146 bne trace
147 ldr lr, [fp, #-4] @ restore lr 147 ldr lr, [fp, #-4] @ restore lr
148 ldmia sp!, {r0-r3, pc} 148 ldmia sp!, {r0-r3, pc}
149 149
150trace: 150trace:
151 ldr r1, [fp, #-4] @ lr of instrumented routine 151 ldr r1, [fp, #-4] @ lr of instrumented routine
152 mov r0, lr 152 mov r0, lr
153 sub r0, r0, #MCOUNT_INSN_SIZE 153 sub r0, r0, #MCOUNT_INSN_SIZE
154 mov lr, pc 154 mov lr, pc
155 mov pc, r2 155 mov pc, r2
156 ldr lr, [fp, #-4] @ restore lr 156 ldr lr, [fp, #-4] @ restore lr
157 ldmia sp!, {r0-r3, pc} 157 ldmia sp!, {r0-r3, pc}
158 158
159#endif /* CONFIG_DYNAMIC_FTRACE */ 159#endif /* CONFIG_DYNAMIC_FTRACE */
160 160
161 .globl ftrace_stub 161 .globl ftrace_stub
162ftrace_stub: 162ftrace_stub:
163 mov pc, lr 163 mov pc, lr
164 164
165#endif /* CONFIG_FUNCTION_TRACER */ 165#endif /* CONFIG_FUNCTION_TRACER */
166 166