forked from Imagelibrary/rtems
sparc: Remove superfluous FP enable
The FP context save/restore makes only sense in the context of FP threads. Update #2270.
This commit is contained in:
@@ -125,6 +125,11 @@ void _CPU_Initialize(void)
|
|||||||
{
|
{
|
||||||
#if (SPARC_HAS_FPU == 1)
|
#if (SPARC_HAS_FPU == 1)
|
||||||
Context_Control_fp *pointer;
|
Context_Control_fp *pointer;
|
||||||
|
uint32_t psr;
|
||||||
|
|
||||||
|
sparc_get_psr( psr );
|
||||||
|
psr |= SPARC_PSR_EF_MASK;
|
||||||
|
sparc_set_psr( psr );
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* This seems to be the most appropriate way to obtain an initial
|
* This seems to be the most appropriate way to obtain an initial
|
||||||
|
|||||||
@@ -44,17 +44,7 @@
|
|||||||
.align 4
|
.align 4
|
||||||
PUBLIC(_CPU_Context_save_fp)
|
PUBLIC(_CPU_Context_save_fp)
|
||||||
SYM(_CPU_Context_save_fp):
|
SYM(_CPU_Context_save_fp):
|
||||||
/*
|
ld [%o0], %o1
|
||||||
* The following enables the floating point unit.
|
|
||||||
*/
|
|
||||||
|
|
||||||
mov %psr, %o1
|
|
||||||
sethi %hi(SPARC_PSR_EF_MASK), %o2
|
|
||||||
or %o2, %lo(SPARC_PSR_EF_MASK), %o2
|
|
||||||
or %o1, %o2, %o1
|
|
||||||
mov %o1, %psr ! **** ENABLE FLOAT ACCESS ****
|
|
||||||
nop; nop; nop; ! Need three nops before EF is
|
|
||||||
ld [%o0], %o1 ! active due to pipeline delay!!!
|
|
||||||
std %f0, [%o1 + FO_F1_OFFSET]
|
std %f0, [%o1 + FO_F1_OFFSET]
|
||||||
std %f2, [%o1 + F2_F3_OFFSET]
|
std %f2, [%o1 + F2_F3_OFFSET]
|
||||||
std %f4, [%o1 + F4_F5_OFFSET]
|
std %f4, [%o1 + F4_F5_OFFSET]
|
||||||
@@ -90,17 +80,7 @@ SYM(_CPU_Context_save_fp):
|
|||||||
.align 4
|
.align 4
|
||||||
PUBLIC(_CPU_Context_restore_fp)
|
PUBLIC(_CPU_Context_restore_fp)
|
||||||
SYM(_CPU_Context_restore_fp):
|
SYM(_CPU_Context_restore_fp):
|
||||||
/*
|
ld [%o0], %o1
|
||||||
* The following enables the floating point unit.
|
|
||||||
*/
|
|
||||||
|
|
||||||
mov %psr, %o1
|
|
||||||
sethi %hi(SPARC_PSR_EF_MASK), %o2
|
|
||||||
or %o2, %lo(SPARC_PSR_EF_MASK), %o2
|
|
||||||
or %o1, %o2, %o1
|
|
||||||
mov %o1, %psr ! **** ENABLE FLOAT ACCESS ****
|
|
||||||
nop; nop; nop; ! Need three nops before EF is
|
|
||||||
ld [%o0], %o1 ! active due to pipeline delay!!!
|
|
||||||
ldd [%o1 + FO_F1_OFFSET], %f0
|
ldd [%o1 + FO_F1_OFFSET], %f0
|
||||||
ldd [%o1 + F2_F3_OFFSET], %f2
|
ldd [%o1 + F2_F3_OFFSET], %f2
|
||||||
ldd [%o1 + F4_F5_OFFSET], %f4
|
ldd [%o1 + F4_F5_OFFSET], %f4
|
||||||
|
|||||||
Reference in New Issue
Block a user