aboutsummaryrefslogtreecommitdiffstats
path: root/arch/cris
diff options
context:
space:
mode:
authorJesper Nilsson <jesper.nilsson@axis.com>2010-08-02 12:13:45 -0400
committerJesper Nilsson <jesper.nilsson@axis.com>2010-08-04 07:00:09 -0400
commitcd4f20110cf46ab7ca35ea32d601576b31abd9bb (patch)
tree31cd14ab3ab1a4a1b2dedeaf8aba5f59d257d0f3 /arch/cris
parent43f6cdd7693ddddb4db17a1ab591d506cb1fc110 (diff)
CRIS: Faster syscall entry for CRISv32.
Signed-off-by: Edgar Iglesias <Edgar.Iglesias@axis.com> Signed-off-by: Jesper Nilsson <jesper.nilsson@axis.com>
Diffstat (limited to 'arch/cris')
-rw-r--r--arch/cris/arch-v32/kernel/entry.S37
1 files changed, 17 insertions, 20 deletions
diff --git a/arch/cris/arch-v32/kernel/entry.S b/arch/cris/arch-v32/kernel/entry.S
index ce121df3aaef..0ecb50b8f0d9 100644
--- a/arch/cris/arch-v32/kernel/entry.S
+++ b/arch/cris/arch-v32/kernel/entry.S
@@ -131,27 +131,24 @@ _resume_userspace:
131system_call: 131system_call:
132 ;; Stack-frame similar to the irq heads, which is reversed in 132 ;; Stack-frame similar to the irq heads, which is reversed in
133 ;; ret_from_sys_call. 133 ;; ret_from_sys_call.
134 subq 12, $sp ; Skip EXS, EDA.
135 move $erp, [$sp]
136 subq 4, $sp
137 move $srp, [$sp]
138 subq 4, $sp
139 move $ccs, [$sp]
140 subq 4, $sp
141 ei ; Allow IRQs while handling system call
142 move $spc, [$sp]
143 subq 4, $sp
144 move $mof, [$sp]
145 subq 4, $sp
146 move $srs, [$sp]
147 subq 4, $sp
148 move.d $acr, [$sp]
149 subq 14*4, $sp ; Make room for R0-R13.
150 movem $r13, [$sp] ; Push R0-R13
151 subq 4, $sp
152 move.d $r10, [$sp] ; Push orig_r10.
153 134
154; Set S-bit when kernel debugging to keep hardware breakpoints active. 135 sub.d 92, $sp ; Skip EXS and EDA.
136 movem $r13, [$sp]
137 move.d $sp, $r8
138 addq 14*4, $r8
139 move.d $acr, $r0
140 move $srs, $r1
141 move $mof, $r2
142 move $spc, $r3
143 move $ccs, $r4
144 move $srp, $r5
145 move $erp, $r6
146 subq 4, $sp
147 movem $r6, [$r8]
148 ei ; Enable interrupts while processing syscalls.
149 move.d $r10, [$sp]
150
151 ; Set S-bit when kernel debugging to keep hardware breakpoints active.
155#ifdef CONFIG_ETRAX_KGDB 152#ifdef CONFIG_ETRAX_KGDB
156 move $ccs, $r0 153 move $ccs, $r0
157 or.d (1<<9), $r0 154 or.d (1<<9), $r0