diff options
Diffstat (limited to 'sys/src/9/omap4/l.s')
| -rw-r--r-- | sys/src/9/omap4/l.s | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/sys/src/9/omap4/l.s b/sys/src/9/omap4/l.s index 1a392a870..427792503 100644 --- a/sys/src/9/omap4/l.s +++ b/sys/src/9/omap4/l.s @@ -226,12 +226,11 @@ TEXT _trap(SB), 1, $-4 MOVW R13, R0 SUB $8, R13 BL trap(SB) - ADD $8, R13 - MOVW 64(R13), R0 + MOVW 72(R13), R0 AND $PsrMask, R0 CMP $PsrMusr, R0 - MOVW.EQ R13, R0 - B.EQ gotouser + B.EQ _forkret + ADD $8, R13 MOVW 68(R13), R0 MOVW R0, 60(R13) MOVW 64(R13), R0 @@ -255,11 +254,12 @@ TEXT _syscall(SB), 1, $-4 BL syscall(SB) TEXT forkret(SB), 1, $-4 +_forkret: ADD $8, R13 MOVW R13, R0 + ADD $72, R13 TEXT touser(SB), 1, $-4 -gotouser: ADD $52, R0 MOVM.IA.S (R0), [R13-R14] SUB $52, R0 @@ -296,3 +296,7 @@ TEXT getdfar(SB), 0, $-4 TEXT getifar(SB), 0, $-4 MRC CpSC, 0, R0, C(6), C(0), 2 RET + +TEXT getr13(SB), 0, $-4 + MOVW R13, R0 + RET |
