On Wed, Jan 25, 2017 at 10:13 AM, Gedare Bloom <ged...@rtems.org> wrote:
> I guess the CPU Supplement must be updated too. > > > Equally likely to impact the porting guide as well. --joel > > On Wed, Jan 25, 2017 at 8:35 AM, Sebastian Huber > <sebastian.hu...@embedded-brains.de> wrote: > > Since the FP area pointer is passed by reference in > > _CPU_Context_Initialize_fp() the optional FP area adjustment via > > _CPU_Context_Fp_start() is superfluous. It is also wrong with respect > > to memory management, e.g. pointer passed to _Workspace_Free() may be > > not the one returned by _Workspace_Allocate(). > > > > Close #1400. > > --- > > cpukit/score/cpu/arm/rtems/score/cpu.h | 3 --- > > cpukit/score/cpu/bfin/rtems/score/cpu.h | 25 > ------------------------- > > cpukit/score/cpu/epiphany/rtems/score/cpu.h | 18 ------------------ > > cpukit/score/cpu/i386/rtems/score/cpu.h | 3 --- > > cpukit/score/cpu/lm32/rtems/score/cpu.h | 27 > --------------------------- > > cpukit/score/cpu/m32c/rtems/score/cpu.h | 26 > -------------------------- > > cpukit/score/cpu/m68k/rtems/score/cpu.h | 20 ++------------------ > > cpukit/score/cpu/mips/rtems/score/cpu.h | 17 ----------------- > > cpukit/score/cpu/moxie/rtems/score/cpu.h | 20 -------------------- > > cpukit/score/cpu/no_cpu/rtems/score/cpu.h | 26 > -------------------------- > > cpukit/score/cpu/or1k/rtems/score/cpu.h | 18 +++++++----------- > > cpukit/score/cpu/powerpc/rtems/score/cpu.h | 17 ----------------- > > cpukit/score/cpu/sh/rtems/score/cpu.h | 17 ----------------- > > cpukit/score/cpu/sparc/rtems/score/cpu.h | 7 ------- > > cpukit/score/cpu/sparc64/rtems/score/cpu.h | 8 -------- > > cpukit/score/cpu/v850/rtems/score/cpu.h | 28 > ---------------------------- > > cpukit/score/include/rtems/score/context.h | 16 ---------------- > > cpukit/score/src/threadinitialize.c | 1 - > > 18 files changed, 9 insertions(+), 288 deletions(-) > > > > diff --git a/cpukit/score/cpu/arm/rtems/score/cpu.h > b/cpukit/score/cpu/arm/rtems/score/cpu.h > > index cdffc9c..9f321ac 100644 > > --- a/cpukit/score/cpu/arm/rtems/score/cpu.h > > +++ b/cpukit/score/cpu/arm/rtems/score/cpu.h > > @@ -458,9 +458,6 @@ void _CPU_Context_Initialize( > > #define _CPU_Context_Restart_self( _the_context ) \ > > _CPU_Context_restore( (_the_context) ); > > > > -#define _CPU_Context_Fp_start( _base, _offset ) \ > > - ( (void *) _Addresses_Add_offset( (_base), (_offset) ) ) > > - > > #define _CPU_Context_Initialize_fp( _destination ) \ > > do { \ > > *(*(_destination)) = _CPU_Null_fp_context; \ > > diff --git a/cpukit/score/cpu/bfin/rtems/score/cpu.h > b/cpukit/score/cpu/bfin/rtems/score/cpu.h > > index cdefedf..7c90fc6 100644 > > --- a/cpukit/score/cpu/bfin/rtems/score/cpu.h > > +++ b/cpukit/score/cpu/bfin/rtems/score/cpu.h > > @@ -734,31 +734,6 @@ void _CPU_Context_Initialize( > > #define _CPU_Context_Restart_self( _the_context ) \ > > _CPU_Context_restore( (_the_context) ); > > > > -/** > > - * @ingroup CPUContext > > - * The purpose of this macro is to allow the initial pointer into > > - * a floating point context area (used to save the floating point > > - * context) to be at an arbitrary place in the floating point > > - * context area. > > - * > > - * This is necessary because some FP units are designed to have > > - * their context saved as a stack which grows into lower addresses. > > - * Other FP units can be saved by simply moving registers into offsets > > - * from the base of the context area. Finally some FP units provide > > - * a "dump context" instruction which could fill in from high to low > > - * or low to high based on the whim of the CPU designers. > > - * > > - * @param[in] _base is the lowest physical address of the floating point > > - * context area > > - * @param[in] _offset is the offset into the floating point area > > - * > > - * Port Specific Information: > > - * > > - * XXX document implementation including references if appropriate > > - */ > > -#define _CPU_Context_Fp_start( _base, _offset ) \ > > - ( (void *) _Addresses_Add_offset( (_base), (_offset) ) ) > > - > > #define _CPU_Context_Initialize_fp( _destination ) \ > > memset( *( _destination ), 0, CPU_CONTEXT_FP_SIZE ); > > > > diff --git a/cpukit/score/cpu/epiphany/rtems/score/cpu.h > b/cpukit/score/cpu/epiphany/rtems/score/cpu.h > > index 55faefa..020d949 100644 > > --- a/cpukit/score/cpu/epiphany/rtems/score/cpu.h > > +++ b/cpukit/score/cpu/epiphany/rtems/score/cpu.h > > @@ -624,24 +624,6 @@ void _CPU_Context_Initialize( > > #define _CPU_Context_Restart_self( _the_context ) \ > > _CPU_Context_restore( (_the_context) ) > > > > -/* > > - * The purpose of this macro is to allow the initial pointer into > > - * a floating point context area (used to save the floating point > > - * context) to be at an arbitrary place in the floating point > > - * context area. > > - * > > - * This is necessary because some FP units are designed to have > > - * their context saved as a stack which grows into lower addresses. > > - * Other FP units can be saved by simply moving registers into offsets > > - * from the base of the context area. Finally some FP units provide > > - * a "dump context" instruction which could fill in from high to low > > - * or low to high based on the whim of the CPU designers. > > - * > > - */ > > - > > -#define _CPU_Context_Fp_start( _base, _offset ) \ > > - ( (void *) _Addresses_Add_offset( (_base), (_offset) ) ) > > - > > #define _CPU_Context_Initialize_fp( _destination ) \ > > memset( *( _destination ), 0, CPU_CONTEXT_FP_SIZE ); > > > > diff --git a/cpukit/score/cpu/i386/rtems/score/cpu.h > b/cpukit/score/cpu/i386/rtems/score/cpu.h > > index 052e53f..ace26f3 100644 > > --- a/cpukit/score/cpu/i386/rtems/score/cpu.h > > +++ b/cpukit/score/cpu/i386/rtems/score/cpu.h > > @@ -508,9 +508,6 @@ uint32_t _CPU_ISR_Get_level( void ); > > } > > #endif > > > > -#define _CPU_Context_Fp_start( _base, _offset ) \ > > - ( (void *) _Addresses_Add_offset( (_base), (_offset) ) ) > > - > > #define _CPU_Context_Initialize_fp( _fp_area ) \ > > { \ > > memcpy( *_fp_area, &_CPU_Null_fp_context, CPU_CONTEXT_FP_SIZE ); \ > > diff --git a/cpukit/score/cpu/lm32/rtems/score/cpu.h > b/cpukit/score/cpu/lm32/rtems/score/cpu.h > > index 87cfd9e..9d22994 100644 > > --- a/cpukit/score/cpu/lm32/rtems/score/cpu.h > > +++ b/cpukit/score/cpu/lm32/rtems/score/cpu.h > > @@ -749,33 +749,6 @@ extern char _gp[]; > > _CPU_Context_restore( (_the_context) ); > > > > /** > > - * @ingroup CPUContext > > - * The purpose of this macro is to allow the initial pointer into > > - * a floating point context area (used to save the floating point > > - * context) to be at an arbitrary place in the floating point > > - * context area. > > - * > > - * This is necessary because some FP units are designed to have > > - * their context saved as a stack which grows into lower addresses. > > - * Other FP units can be saved by simply moving registers into offsets > > - * from the base of the context area. Finally some FP units provide > > - * a "dump context" instruction which could fill in from high to low > > - * or low to high based on the whim of the CPU designers. > > - * > > - * @param[in] _base is the lowest physical address of the floating point > > - * context area > > - * @param[in] _offset is the offset into the floating point area > > - * > > - * Port Specific Information: > > - * > > - * XXX document implementation including references if appropriate > > - */ > > -#define _CPU_Context_Fp_start( _base, _offset ) > > -#if 0 > > - ( (void *) _Addresses_Add_offset( (_base), (_offset) ) ) > > -#endif > > - > > -/** > > * This routine initializes the FP context area passed to it to. > > * There are a few standard ways in which to initialize the > > * floating point context. The code included for this macro assumes > > diff --git a/cpukit/score/cpu/m32c/rtems/score/cpu.h > b/cpukit/score/cpu/m32c/rtems/score/cpu.h > > index 8dd8c41..af1c341 100644 > > --- a/cpukit/score/cpu/m32c/rtems/score/cpu.h > > +++ b/cpukit/score/cpu/m32c/rtems/score/cpu.h > > @@ -740,32 +740,6 @@ void _CPU_Context_Restart_self( > > ) RTEMS_NO_RETURN; > > > > /** > > - * @ingroup CPUContext > > - * > > - * The purpose of this macro is to allow the initial pointer into > > - * a floating point context area (used to save the floating point > > - * context) to be at an arbitrary place in the floating point > > - * context area. > > - * > > - * This is necessary because some FP units are designed to have > > - * their context saved as a stack which grows into lower addresses. > > - * Other FP units can be saved by simply moving registers into offsets > > - * from the base of the context area. Finally some FP units provide > > - * a "dump context" instruction which could fill in from high to low > > - * or low to high based on the whim of the CPU designers. > > - * > > - * @param[in] _base is the lowest physical address of the floating point > > - * context area > > - * @param[in] _offset is the offset into the floating point area > > - * > > - * Port Specific Information: > > - * > > - * XXX document implementation including references if appropriate > > - */ > > -#define _CPU_Context_Fp_start( _base, _offset ) \ > > - ( (void *) _Addresses_Add_offset( (_base), (_offset) ) ) > > - > > -/** > > * This routine initializes the FP context area passed to it to. > > * There are a few standard ways in which to initialize the > > * floating point context. The code included for this macro assumes > > diff --git a/cpukit/score/cpu/m68k/rtems/score/cpu.h > b/cpukit/score/cpu/m68k/rtems/score/cpu.h > > index 0b9aa2d..ec6fd2e 100644 > > --- a/cpukit/score/cpu/m68k/rtems/score/cpu.h > > +++ b/cpukit/score/cpu/m68k/rtems/score/cpu.h > > @@ -172,12 +172,6 @@ typedef struct { > > } _operand2; > > } Context_Control_fp; > > > > - /* > > - * This software FP implementation is only for GCC. > > - */ > > - #define _CPU_Context_Fp_start( _base, _offset ) \ > > - ((void *) _Addresses_Add_offset( (_base), (_offset) ) ) > > - > > #define _CPU_Context_Initialize_fp( _fp_area ) \ > > { \ > > Context_Control_fp *_fp; \ > > @@ -234,9 +228,6 @@ typedef struct { > > #endif > > } Context_Control_fp; > > > > - #define _CPU_Context_Fp_start( _base, _offset ) \ > > - ((void *) _Addresses_Add_offset( (_base), (_offset) )) > > - > > /* > > * The reset value for all context relevant registers except the FP > data > > * registers is zero. The reset value of the FP data register is > NAN. The > > @@ -260,17 +251,10 @@ typedef struct { > > uint8_t fp_save_area [M68K_FP_STATE_SIZE + 112]; > > } Context_Control_fp; > > > > - #define _CPU_Context_Fp_start( _base, _offset ) \ > > - ( \ > > - (void *) _Addresses_Add_offset( \ > > - (_base), \ > > - (_offset) + CPU_CONTEXT_FP_SIZE - 4 \ > > - ) \ > > - ) > > - > > #define _CPU_Context_Initialize_fp( _fp_area ) \ > > { \ > > - uint32_t *_fp_context = (uint32_t *)*(_fp_area); \ > > + uint32_t *_fp_context = _Addresses_Add_offset( \ > > + *(_fp_area), CPU_CONTEXT_FP_SIZE - 4); \ > > *(--(_fp_context)) = 0; \ > > *(_fp_area) = (void *)(_fp_context); \ > > } > > diff --git a/cpukit/score/cpu/mips/rtems/score/cpu.h > b/cpukit/score/cpu/mips/rtems/score/cpu.h > > index 9a45d0b..74afc80 100644 > > --- a/cpukit/score/cpu/mips/rtems/score/cpu.h > > +++ b/cpukit/score/cpu/mips/rtems/score/cpu.h > > @@ -792,23 +792,6 @@ void _CPU_Context_Initialize( > > _CPU_Context_restore( (_the_context) ); > > > > /* > > - * The purpose of this macro is to allow the initial pointer into > > - * A floating point context area (used to save the floating point > > - * context) to be at an arbitrary place in the floating point > > - * context area. > > - * > > - * This is necessary because some FP units are designed to have > > - * their context saved as a stack which grows into lower addresses. > > - * Other FP units can be saved by simply moving registers into offsets > > - * from the base of the context area. Finally some FP units provide > > - * a "dump context" instruction which could fill in from high to low > > - * or low to high based on the whim of the CPU designers. > > - */ > > - > > -#define _CPU_Context_Fp_start( _base, _offset ) \ > > - ( (void *) _Addresses_Add_offset( (_base), (_offset) ) ) > > - > > -/* > > * This routine initializes the FP context area passed to it to. > > * There are a few standard ways in which to initialize the > > * floating point context. The code included for this macro assumes > > diff --git a/cpukit/score/cpu/moxie/rtems/score/cpu.h > b/cpukit/score/cpu/moxie/rtems/score/cpu.h > > index b77083d..a8b2263 100644 > > --- a/cpukit/score/cpu/moxie/rtems/score/cpu.h > > +++ b/cpukit/score/cpu/moxie/rtems/score/cpu.h > > @@ -608,26 +608,6 @@ uint32_t _CPU_ISR_Get_level( void ); > > #define _CPU_Context_Restart_self( _the_context ) \ > > _CPU_Context_restore( (_the_context) ); > > > > -/* > > - * The purpose of this macro is to allow the initial pointer into > > - * a floating point context area (used to save the floating point > > - * context) to be at an arbitrary place in the floating point > > - * context area. > > - * > > - * This is necessary because some FP units are designed to have > > - * their context saved as a stack which grows into lower addresses. > > - * Other FP units can be saved by simply moving registers into offsets > > - * from the base of the context area. Finally some FP units provide > > - * a "dump context" instruction which could fill in from high to low > > - * or low to high based on the whim of the CPU designers. > > - * > > - * MOXIE Specific Information: > > - * > > - * XXX > > - */ > > -#define _CPU_Context_Fp_start( _base, _offset ) \ > > - ( (void *) (_base) + (_offset) ) > > - > > #define _CPU_Context_Initialize_fp( _destination ) \ > > memset( *( _destination ), 0, CPU_CONTEXT_FP_SIZE ); > > > > diff --git a/cpukit/score/cpu/no_cpu/rtems/score/cpu.h > b/cpukit/score/cpu/no_cpu/rtems/score/cpu.h > > index 372b01f..62e1a91 100644 > > --- a/cpukit/score/cpu/no_cpu/rtems/score/cpu.h > > +++ b/cpukit/score/cpu/no_cpu/rtems/score/cpu.h > > @@ -876,32 +876,6 @@ uint32_t _CPU_ISR_Get_level( void ); > > _CPU_Context_restore( (_the_context) ); > > > > /** > > - * @ingroup CPUContext > > - * > > - * The purpose of this macro is to allow the initial pointer into > > - * a floating point context area (used to save the floating point > > - * context) to be at an arbitrary place in the floating point > > - *context area. > > - * > > - * This is necessary because some FP units are designed to have > > - * their context saved as a stack which grows into lower addresses. > > - * Other FP units can be saved by simply moving registers into offsets > > - * from the base of the context area. Finally some FP units provide > > - * a "dump context" instruction which could fill in from high to low > > - * or low to high based on the whim of the CPU designers. > > - * > > - * @param[in] _base is the lowest physical address of the floating point > > - * context area > > - * @param[in] _offset is the offset into the floating point area > > - * > > - * Port Specific Information: > > - * > > - * XXX document implementation including references if appropriate > > - */ > > -#define _CPU_Context_Fp_start( _base, _offset ) \ > > - ( (void *) _Addresses_Add_offset( (_base), (_offset) ) ) > > - > > -/** > > * This routine initializes the FP context area passed to it to. > > * There are a few standard ways in which to initialize the > > * floating point context. The code included for this macro assumes > > diff --git a/cpukit/score/cpu/or1k/rtems/score/cpu.h > b/cpukit/score/cpu/or1k/rtems/score/cpu.h > > index 4a643c7..3d4a6e0 100644 > > --- a/cpukit/score/cpu/or1k/rtems/score/cpu.h > > +++ b/cpukit/score/cpu/or1k/rtems/score/cpu.h > > @@ -620,10 +620,11 @@ void _CPU_Context_Initialize( > > _CPU_Context_restore( (_the_context) ); > > > > /* > > - * The purpose of this macro is to allow the initial pointer into > > - * a floating point context area (used to save the floating point > > - * context) to be at an arbitrary place in the floating point > > - * context area. > > + * This routine is responsible to initialize the FP context. > > + * > > + * The FP area pointer is passed by reference to allow the initial > pointer > > + * into a floating point context area (used to save the floating point > > + * context) to be at an arbitrary place in the floating point context > area. > > * > > * This is necessary because some FP units are designed to have > > * their context saved as a stack which grows into lower addresses. > > @@ -631,14 +632,9 @@ void _CPU_Context_Initialize( > > * from the base of the context area. Finally some FP units provide > > * a "dump context" instruction which could fill in from high to low > > * or low to high based on the whim of the CPU designers. > > - * > > */ > > - > > -#define _CPU_Context_Fp_start( _base, _offset ) \ > > - ( (void *) _Addresses_Add_offset( (_base), (_offset) ) ) > > - > > -#define _CPU_Context_Initialize_fp( _destination ) \ > > - memset( *( _destination ), 0, CPU_CONTEXT_FP_SIZE ); > > +#define _CPU_Context_Initialize_fp( _fp_area_p ) \ > > + memset( *( _fp_area_p ), 0, CPU_CONTEXT_FP_SIZE ) > > > > /* end of Context handler macros */ > > > > diff --git a/cpukit/score/cpu/powerpc/rtems/score/cpu.h > b/cpukit/score/cpu/powerpc/rtems/score/cpu.h > > index 93d620e..a847667 100644 > > --- a/cpukit/score/cpu/powerpc/rtems/score/cpu.h > > +++ b/cpukit/score/cpu/powerpc/rtems/score/cpu.h > > @@ -831,23 +831,6 @@ void _CPU_Context_Initialize( > > _CPU_Context_restore( (_the_context) ); > > > > /* > > - * The purpose of this macro is to allow the initial pointer into > > - * a floating point context area (used to save the floating point > > - * context) to be at an arbitrary place in the floating point > > - * context area. > > - * > > - * This is necessary because some FP units are designed to have > > - * their context saved as a stack which grows into lower addresses. > > - * Other FP units can be saved by simply moving registers into offsets > > - * from the base of the context area. Finally some FP units provide > > - * a "dump context" instruction which could fill in from high to low > > - * or low to high based on the whim of the CPU designers. > > - */ > > - > > -#define _CPU_Context_Fp_start( _base, _offset ) \ > > - ( (void *) _Addresses_Add_offset( (_base), (_offset) ) ) > > - > > -/* > > * This routine initializes the FP context area passed to it to. > > * There are a few standard ways in which to initialize the > > * floating point context. The code included for this macro assumes > > diff --git a/cpukit/score/cpu/sh/rtems/score/cpu.h > b/cpukit/score/cpu/sh/rtems/score/cpu.h > > index 0ad3829..c2b7081 100644 > > --- a/cpukit/score/cpu/sh/rtems/score/cpu.h > > +++ b/cpukit/score/cpu/sh/rtems/score/cpu.h > > @@ -550,23 +550,6 @@ void _CPU_Context_Initialize( > > _CPU_Context_restore( (_the_context) ); > > > > /* > > - * The purpose of this macro is to allow the initial pointer into > > - * a floating point context area (used to save the floating point > > - * context) to be at an arbitrary place in the floating point > > - * context area. > > - * > > - * This is necessary because some FP units are designed to have > > - * their context saved as a stack which grows into lower addresses. > > - * Other FP units can be saved by simply moving registers into offsets > > - * from the base of the context area. Finally some FP units provide > > - * a "dump context" instruction which could fill in from high to low > > - * or low to high based on the whim of the CPU designers. > > - */ > > - > > -#define _CPU_Context_Fp_start( _base, _offset ) \ > > - ( (void *) _Addresses_Add_offset( (_base), (_offset) ) ) > > - > > -/* > > * This routine initializes the FP context area passed to it to. > > * There are a few standard ways in which to initialize the > > * floating point context. The code included for this macro assumes > > diff --git a/cpukit/score/cpu/sparc/rtems/score/cpu.h > b/cpukit/score/cpu/sparc/rtems/score/cpu.h > > index a59fc36..7c81f07 100644 > > --- a/cpukit/score/cpu/sparc/rtems/score/cpu.h > > +++ b/cpukit/score/cpu/sparc/rtems/score/cpu.h > > @@ -956,13 +956,6 @@ void _CPU_Context_Initialize( > > _CPU_Context_restore( (_the_context) ); > > > > /** > > - * The FP context area for the SPARC is a simple structure and nothing > > - * special is required to find the "starting load point" > > - */ > > -#define _CPU_Context_Fp_start( _base, _offset ) \ > > - ( (void *) _Addresses_Add_offset( (_base), (_offset) ) ) > > - > > -/** > > * This routine initializes the FP context area passed to it to. > > * > > * The SPARC allows us to use the simple initialization model > > diff --git a/cpukit/score/cpu/sparc64/rtems/score/cpu.h > b/cpukit/score/cpu/sparc64/rtems/score/cpu.h > > index 9926ebb..47041e7 100644 > > --- a/cpukit/score/cpu/sparc64/rtems/score/cpu.h > > +++ b/cpukit/score/cpu/sparc64/rtems/score/cpu.h > > @@ -824,14 +824,6 @@ void _CPU_Context_Initialize( > > _CPU_Context_restore( (_the_context) ); > > > > /* > > - * The FP context area for the SPARC is a simple structure and nothing > > - * special is required to find the "starting load point" > > - */ > > - > > -#define _CPU_Context_Fp_start( _base, _offset ) \ > > - ( (void *) _Addresses_Add_offset( (_base), (_offset) ) ) > > - > > -/* > > * This routine initializes the FP context area passed to it to. > > * > > * The SPARC allows us to use the simple initialization model > > diff --git a/cpukit/score/cpu/v850/rtems/score/cpu.h > b/cpukit/score/cpu/v850/rtems/score/cpu.h > > index 6c77f51..d3cdf05 100644 > > --- a/cpukit/score/cpu/v850/rtems/score/cpu.h > > +++ b/cpukit/score/cpu/v850/rtems/score/cpu.h > > @@ -699,34 +699,6 @@ void _CPU_Context_Initialize( > > /* XXX this should be possible to remove */ > > #if 0 > > /** > > - * @ingroup CPUContext > > - * The purpose of this macro is to allow the initial pointer into > > - * a floating point context area (used to save the floating point > > - * context) to be at an arbitrary place in the floating point > > - * context area. > > - * > > - * This is necessary because some FP units are designed to have > > - * their context saved as a stack which grows into lower addresses. > > - * Other FP units can be saved by simply moving registers into offsets > > - * from the base of the context area. Finally some FP units provide > > - * a "dump context" instruction which could fill in from high to low > > - * or low to high based on the whim of the CPU designers. > > - * > > - * @param[in] _base is the lowest physical address of the floating point > > - * context area > > - * @param[in] _offset is the offset into the floating point area > > - * > > - * Port Specific Information: > > - * > > - * XXX document implementation including references if appropriate > > - */ > > -#define _CPU_Context_Fp_start( _base, _offset ) \ > > - ( (void *) _Addresses_Add_offset( (_base), (_offset) ) ) > > -#endif > > - > > -/* XXX this should be possible to remove */ > > -#if 0 > > -/** > > * This routine initializes the FP context area passed to it to. > > * There are a few standard ways in which to initialize the > > * floating point context. The code included for this macro assumes > > diff --git a/cpukit/score/include/rtems/score/context.h > b/cpukit/score/include/rtems/score/context.h > > index 7e59f05..46cb460 100644 > > --- a/cpukit/score/include/rtems/score/context.h > > +++ b/cpukit/score/include/rtems/score/context.h > > @@ -111,22 +111,6 @@ extern "C" { > > _CPU_Context_Restart_self( _the_context ) > > > > /** > > - * @brief Return starting address of floating point context. > > - * > > - * This function returns the starting address of the floating > > - * point context save area. It is assumed that the are reserved > > - * for the floating point save area is large enough. > > - * > > - * @param[in] _base is lowest physical address of the floating point > > - * context save area. > > - * @param[in] _offset is the offset into the floating point area > > - * > > - * @retval the initial FP context pointer > > - */ > > -#define _Context_Fp_start( _base, _offset ) \ > > - _CPU_Context_Fp_start( (_base), (_offset) ) > > - > > -/** > > * @brief Initialize floating point context area. > > * > > * This routine initializes the floating point context save > > diff --git a/cpukit/score/src/threadinitialize.c b/cpukit/score/src/ > threadinitialize.c > > index 9ae2acb..5725c6e 100644 > > --- a/cpukit/score/src/threadinitialize.c > > +++ b/cpukit/score/src/threadinitialize.c > > @@ -137,7 +137,6 @@ bool _Thread_Initialize( > > fp_area = _Workspace_Allocate( CONTEXT_FP_SIZE ); > > if ( !fp_area ) > > goto failed; > > - fp_area = _Context_Fp_start( fp_area, 0 ); > > } > > the_thread->fp_context = fp_area; > > the_thread->Start.fp_context = fp_area; > > -- > > 1.8.4.5 > > > > _______________________________________________ > > devel mailing list > > devel@rtems.org > > http://lists.rtems.org/mailman/listinfo/devel > _______________________________________________ > devel mailing list > devel@rtems.org > http://lists.rtems.org/mailman/listinfo/devel >
_______________________________________________ devel mailing list devel@rtems.org http://lists.rtems.org/mailman/listinfo/devel