diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1997-05-28 20:36:35 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1997-05-28 20:36:35 +0000 |
commit | 00d2a828971594d3c3407ae1ee064e32e256c95c (patch) | |
tree | 8344f035cf7d381328a79175e132202307345b4b /cpukit/score | |
parent | version changed (diff) | |
download | rtems-00d2a828971594d3c3407ae1ee064e32e256c95c.tar.bz2 |
Added support for context switching the data used by the gcc m68k
software floating point emulation code. Code implemented by
Karen Sara Looney <Karen.Looney@colorado.edu> with much
email assistance from Joel.
Diffstat (limited to 'cpukit/score')
-rw-r--r-- | cpukit/score/cpu/m68k/cpu.c | 29 | ||||
-rw-r--r-- | cpukit/score/src/thread.c | 2 |
2 files changed, 30 insertions, 1 deletions
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 + diff --git a/cpukit/score/src/thread.c b/cpukit/score/src/thread.c index e4a3614a53..b63ad619bd 100644 --- a/cpukit/score/src/thread.c +++ b/cpukit/score/src/thread.c @@ -212,7 +212,7 @@ void _Thread_Start_multitasking( void ) */ -#if ( CPU_HARDWARE_FP == TRUE ) +#if ( CPU_HARDWARE_FP == TRUE ) || ( CPU_SOFTWARE_FP == TRUE ) /* * don't need to worry about saving BSP's floating point state */ |