summaryrefslogtreecommitdiffstats
path: root/cpukit/score/cpu/m68k/cpu_asm.S
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/score/cpu/m68k/cpu_asm.S')
-rw-r--r--cpukit/score/cpu/m68k/cpu_asm.S13
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.
*