From 00d2a828971594d3c3407ae1ee064e32e256c95c Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Wed, 28 May 1997 20:36:35 +0000 Subject: Added support for context switching the data used by the gcc m68k software floating point emulation code. Code implemented by Karen Sara Looney with much email assistance from Joel. --- cpukit/score/cpu/m68k/cpu.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'cpukit/score/cpu/m68k') diff --git a/cpukit/score/cpu/m68k/cpu.c b/cpukit/score/cpu/m68k/cpu.c index 01fbabd957..afbac7f813 100644 --- a/cpukit/score/cpu/m68k/cpu.c +++ b/cpukit/score/cpu/m68k/cpu.c @@ -177,3 +177,32 @@ const unsigned char __BFFFOtable[256] = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; #endif + +/*PAGE + * + * The following code context switches the software FPU emulation + * code provided with GCC. + */ + +#if (CPU_SOFTWARE_FP == TRUE) +extern Context_Control_fp _fpCCR; + +void CPU_Context_save_fp (void **fp_context_ptr) +{ + Context_Control_fp *fp; + + fp = (Context_Control_fp *) *fp_context_ptr; + + *fp = _fpCCR; +} + +void CPU_Context_restore_fp (void **fp_context_ptr) +{ + Context_Control_fp *fp; + + fp = (Context_Control_fp *) *fp_context_ptr; + + _fpCCR = *fp; +} +#endif + -- cgit v1.2.3