summaryrefslogtreecommitdiffstats
path: root/src/kernel/start.S
diff options
context:
space:
mode:
authorPatrick Williams <iawillia@us.ibm.com>2011-08-22 10:34:45 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2011-08-22 12:24:55 -0500
commitc6571028ca3b54ba0a4ec73d1f39fdeba6c79fb9 (patch)
tree4275488285e93e4c2386a6c3fc2f1f7855d2a03a /src/kernel/start.S
parentd329a4202e1f4a8b3283e31e2dfb5a838c49796e (diff)
downloadtalos-hostboot-c6571028ca3b54ba0a4ec73d1f39fdeba6c79fb9.tar.gz
talos-hostboot-c6571028ca3b54ba0a4ec73d1f39fdeba6c79fb9.zip
Create initial stack-frame from userspace.
Change-Id: Ie1133bd079e7b9a8f2f82daa06efc426bf0fd0d6 Reviewed-on: http://gfw160.austin.ibm.com:8080/gerrit/268 Tested-by: Jenkins Server Reviewed-by: Douglas R. Gilbert <dgilbert@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/kernel/start.S')
-rw-r--r--src/kernel/start.S10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/kernel/start.S b/src/kernel/start.S
index bdf872d9d..d67cb7790 100644
--- a/src/kernel/start.S
+++ b/src/kernel/start.S
@@ -393,10 +393,18 @@ system_call_fast_path:
;// Results:
;// * TOC base -> GPR2
;// * Function Address -> CTR
- ;// * GPR1, GPR3 preserved.
+ ;// * GPR3 preserved.
+ ;// * Initial stack-frame created.
;// * Branch to CTR (no link).
.global userspace_task_entry
userspace_task_entry:
+ ;// Skip stack frame if GPR1 == NULL.
+ cmpi cr0, r1, 0
+ beq- 1f
+ ;// Create frame.
+ ;// NULL back-chain + 48 bytes + quad-word alignment. See ABI.
+ stdu r1, -56(r1)
+1:
ld r5, 0(r4)
mtctr r5
ld r2, 8(r4)
OpenPOWER on IntegriCloud