summaryrefslogtreecommitdiff
path: root/sys/src/ape
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@gmx.de>2013-06-08 23:53:28 +0200
committercinap_lenrek <cinap_lenrek@gmx.de>2013-06-08 23:53:28 +0200
commitb38d1979951bb048b254983a0fdf694aa7dcb48a (patch)
tree9f57ed4a125a21d626ca1b0ac0cb1e86994e8cce /sys/src/ape
parent4e81aab690a17910e221af2a7eeaf6f2309524ac (diff)
ape: fix _main stack setup for arm (_privates and _errnoloc was inside argv)
Diffstat (limited to 'sys/src/ape')
-rw-r--r--sys/src/ape/lib/ap/arm/main9.s8
-rw-r--r--sys/src/ape/lib/ap/arm/main9p.s8
2 files changed, 10 insertions, 6 deletions
diff --git a/sys/src/ape/lib/ap/arm/main9.s b/sys/src/ape/lib/ap/arm/main9.s
index 3e291ac61..f2b86ca89 100644
--- a/sys/src/ape/lib/ap/arm/main9.s
+++ b/sys/src/ape/lib/ap/arm/main9.s
@@ -15,14 +15,18 @@ TEXT _main(SB), 1, $(16+NPRIVATES*4)
/* _tos = arg */
MOVW R(arg), _tos(SB)
- MOVW $errno+12(SP), R1
+ MOVW $errno-68(SP), R1
MOVW R1, _errnoloc(SB)
- MOVW $private+16(SP), R1
+ MOVW $private-64(SP), R1
MOVW R1, _privates(SB)
MOVW $NPRIVATES, R1
MOVW R1, _nprivates(SB)
BL _envsetup(SB)
+
+ /* main(argc, argv, environ); */
+ MOVW environ(SB), R(arg)
+ MOVW R(arg), 12(R(sp))
MOVW $inargv+0(FP), R(arg)
MOVW R(arg), 8(R(sp))
MOVW inargc-4(FP), R(arg)
diff --git a/sys/src/ape/lib/ap/arm/main9p.s b/sys/src/ape/lib/ap/arm/main9p.s
index e1ae6443e..318291d81 100644
--- a/sys/src/ape/lib/ap/arm/main9p.s
+++ b/sys/src/ape/lib/ap/arm/main9p.s
@@ -15,9 +15,9 @@ TEXT _mainp(SB), 1, $(16+NPRIVATES*4)
/* _tos = arg */
MOVW R(arg), _tos(SB)
- MOVW $errno+12(SP), R1
+ MOVW $errno-68(SP), R1
MOVW R1, _errnoloc(SB)
- MOVW $private+16(SP), R1
+ MOVW $private-64(SP), R1
MOVW R1, _privates(SB)
MOVW $NPRIVATES, R1
MOVW R1, _nprivates(SB)
@@ -33,12 +33,12 @@ TEXT _mainp(SB), 1, $(16+NPRIVATES*4)
BL _envsetup(SB)
/* main(argc, argv, environ); */
+ MOVW environ(SB), R(arg)
+ MOVW R(arg), 12(R(sp))
MOVW $inargv+0(FP), R(arg)
MOVW R(arg), 8(R(sp))
MOVW inargc-4(FP), R(arg)
MOVW R(arg), 4(R(sp))
- MOVW environ(SB), R(arg)
- MOVW R(arg), 8(R(sp))
BL main(SB)
loop:
MOVW R(arg), 4(R(sp))