arch/m68k-amiga: Vastly reduce interrupt latency
[AROS.git] / arch / m68k-all / exec / schedule.S
blob8b5d2d0b0397d749a3e8a7bd97afcc08f02a516e
1 /*
2     Copyright © 2012, The AROS Development Team. All rights reserved.
3     $Id$
5     Desc: Schedule()
6     Lang: english
8     These routines are the core of the m68k scheduling system
9 */
11 #include "aros/m68k/asm.h"
13         .text
14         .balign 4
15         .globl  AROS_SLIB_ENTRY(Schedule,Exec,7)
16         .globl  __Schedule_this
18         .func AROS_SLIB_ENTRY(Schedule,Exec,7)
19 AROS_SLIB_ENTRY(Schedule,Exec,7):
20         movem.l %d0-%d1/%a0-%a1/%a5-%a6,%sp@-   /* Save D0-D1/A0-A1 */
21 __Schedule_this:
22         jsr     core_Schedule
23         tst.w   %d0                     /* Something to do? */
24         movem.l %sp@+,%d0-%d1/%a0-%a1/%a5-%a6   /* Restore regs */
25         bne     AROS_SLIB_ENTRY(Switch,Exec,9)
26         rte
27         .endfunc