diff options
Diffstat (limited to 'cpukit/score/cpu/m68k/cpu_asm.S')
-rw-r--r-- | cpukit/score/cpu/m68k/cpu_asm.S | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/cpukit/score/cpu/m68k/cpu_asm.S b/cpukit/score/cpu/m68k/cpu_asm.S index a6f5c317f3..a8bbdef2ea 100644 --- a/cpukit/score/cpu/m68k/cpu_asm.S +++ b/cpukit/score/cpu/m68k/cpu_asm.S @@ -61,10 +61,23 @@ cacr_set: movew sr,d1 | get content of sr in d1 movec d0,cacr | enable FPU in cacr #endif + restore: movml a0@,d1-d7/a2-a7 | restore context movw d1,sr | restore status register rts + .global SYM (_CPU_Context_Restart_self) +.set CONTEXT_ARG, 4 | context arg + +#if defined( __mcoldfire__ ) && ( M68K_HAS_FPU == 1 ) +/* XXX _CPU_Context_switch maintains FPU context -- do we have to restore + * that, too?? + */ +#warning "_CPU_Context_Restart_self restoring FPU context not implemented" +#endif +SYM(_CPU_Context_Restart_self): + moval a7@(CONTEXT_ARG),a0 + bra restore /* * Floating point context save and restore. * |