Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 207123
b: refs/heads/master
c: 43f6cdd
h: refs/heads/master
i:
  207121: 645dea1
  207119: a33437e
v: v3
  • Loading branch information
Jesper Nilsson committed Aug 4, 2010
1 parent db3277a commit 36703e6
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 10 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: a80a635f3d60e4aa61f96d22a122071cb061be93
refs/heads/master: 43f6cdd7693ddddb4db17a1ab591d506cb1fc110
18 changes: 9 additions & 9 deletions trunk/arch/cris/arch-v32/kernel/entry.S
Original file line number Diff line number Diff line change
Expand Up @@ -348,40 +348,40 @@ _syscall_trace_entry:

.type resume,@function
resume:
subq 4, $sp
move $srp, [$sp] ; Keep old/new PC on the stack.
subq 4, $sp ; Make space for srp.

add.d $r12, $r10 ; R10 = current tasks tss.
addoq +THREAD_ccs, $r10, $acr
move $srp, [$sp] ; Keep old/new PC on the stack.
move $ccs, [$acr] ; Save IRQ enable state.
di

addoq +THREAD_usp, $r10, $acr
subq 10*4, $sp ; Make room for R9.
move $usp, [$acr] ; Save user-mode stackpointer.

;; See copy_thread for the reason why register R9 is saved.
subq 10*4, $sp
movem $r9, [$sp] ; Save non-scratch registers and R9.

addoq +THREAD_ksp, $r10, $acr
move.d $sp, $r10 ; Return last running task in R10.
move.d $sp, [$acr] ; Save kernel SP for old task.

move.d $sp, $r10 ; Return last running task in R10.
and.d -8192, $r10 ; Get thread_info from stackpointer.
addoq +TI_task, $r10, $acr
move.d [$acr], $r10 ; Get task.
add.d $r12, $r11 ; Find the new tasks tss.
move.d [$acr], $r10 ; Get task.
addoq +THREAD_ksp, $r11, $acr
move.d [$acr], $sp ; Switch to new stackframe.
addoq +THREAD_usp, $r11, $acr
movem [$sp+], $r9 ; Restore non-scratch registers and R9.

addoq +THREAD_usp, $r11, $acr
move [$acr], $usp ; Restore user-mode stackpointer.

addoq +THREAD_ccs, $r11, $acr
move.d [$sp+], $r11
jump $r11 ; Restore PC.
move [$acr], $ccs ; Restore IRQ enable status.
move.d [$sp+], $acr
jump $acr ; Restore PC.
nop
.size resume, . - resume

nmi_interrupt:
Expand Down

0 comments on commit 36703e6

Please sign in to comment.