Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit cd4f2011 authored by Jesper Nilsson's avatar Jesper Nilsson
Browse files

CRIS: Faster syscall entry for CRISv32.

parent 43f6cdd7
Loading
Loading
Loading
Loading
+17 −20
Original line number Diff line number Diff line
@@ -131,25 +131,22 @@ _resume_userspace:
system_call:
	;; Stack-frame similar to the irq heads, which is reversed in
	;; ret_from_sys_call.
	subq	12, $sp		; Skip EXS, EDA.
	move	$erp, [$sp]
	subq	4, $sp
	move	$srp, [$sp]
	subq	4, $sp
	move	$ccs, [$sp]
	subq	4, $sp
	ei			; Allow IRQs while handling system call
	move	$spc, [$sp]
	subq	4, $sp
	move	$mof, [$sp]
	subq	4, $sp
	move	$srs, [$sp]
	subq	4, $sp
	move.d	$acr, [$sp]
	subq	14*4, $sp	; Make room for R0-R13.
	movem	$r13, [$sp]	; Push R0-R13
	subq	4, $sp
	move.d	$r10, [$sp]	; Push orig_r10.

	sub.d	92, $sp		; Skip EXS and EDA.
	movem	$r13, [$sp]
	move.d	$sp, $r8
	addq	14*4, $r8
	move.d	$acr, $r0
	move	$srs, $r1
	move	$mof, $r2
	move	$spc, $r3
	move	$ccs, $r4
	move	$srp, $r5
	move	$erp, $r6
	subq	4, $sp
	movem	$r6, [$r8]
	ei			; Enable interrupts while processing syscalls.
	move.d	$r10, [$sp]

	; Set S-bit when kernel debugging to keep hardware breakpoints active.
#ifdef CONFIG_ETRAX_KGDB