summaryrefslogtreecommitdiffstats
path: root/src/kernel/start.S
diff options
context:
space:
mode:
authorPatrick Williams <iawillia@us.ibm.com>2012-01-10 18:10:40 -0600
committerA. Patrick Williams III <iawillia@us.ibm.com>2012-02-07 15:46:33 -0600
commite457b5df08897236374bd8851d8169188e9dc1f8 (patch)
treea9c7392ea093ace963796340eb7da3074b743444 /src/kernel/start.S
parent859335d953a59c25de64a414c344d0a22d0911cb (diff)
downloadtalos-hostboot-e457b5df08897236374bd8851d8169188e9dc1f8.tar.gz
talos-hostboot-e457b5df08897236374bd8851d8169188e9dc1f8.zip
GCOV support
Change-Id: I73a446754cd03178055459eb75c7b2f87b51b0f3 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/635 Tested-by: Jenkins Server Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/kernel/start.S')
-rw-r--r--src/kernel/start.S11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/kernel/start.S b/src/kernel/start.S
index bcb770a58..1deaf46f1 100644
--- a/src/kernel/start.S
+++ b/src/kernel/start.S
@@ -614,6 +614,17 @@ userspace_task_entry:
ld r2, 8(r4)
bctr
+ ;// @fn task_end_stub
+ ;// Stub to call a TASK_END syscall in the event that a task 'returns' from
+ ;// its entry point. We cannot call task_end() directly because profiling
+ ;// inserts garbage code into the task_end C function.
+.global task_end_stub
+task_end_stub:
+ li r3, 2 ;// TASK_END -> r3 (syscall number)
+ li r4, 0 ;// NULL -> r4 (status value)
+ sc
+
+
STD_INTERRUPT_NOADDR(hype_emu_assist)
.section .data
OpenPOWER on IntegriCloud