summaryrefslogtreecommitdiffstats
path: root/c
diff options
context:
space:
mode:
authorTill Straumann <strauman@slac.stanford.edu>2006-06-19 19:49:11 +0000
committerTill Straumann <strauman@slac.stanford.edu>2006-06-19 19:49:11 +0000
commitefc0cd8757de7449fa6fe62c6dc7d420e26df1b7 (patch)
tree1d63bbb3799203eb513422e80eab7e137c4bf7a8 /c
parentMore preps for VPATH builds. (diff)
downloadrtems-efc0cd8757de7449fa6fe62c6dc7d420e26df1b7.tar.bz2
Never allow the FPU to be switched on for integer-only tasks
(new gcc may use FP regs implicitely).
Diffstat (limited to 'c')
-rw-r--r--c/src/lib/libbsp/powerpc/ChangeLog5
-rw-r--r--c/src/lib/libbsp/powerpc/shared/irq/irq_asm.S21
2 files changed, 5 insertions, 21 deletions
diff --git a/c/src/lib/libbsp/powerpc/ChangeLog b/c/src/lib/libbsp/powerpc/ChangeLog
index c11638e76e..aea6a064fa 100644
--- a/c/src/lib/libbsp/powerpc/ChangeLog
+++ b/c/src/lib/libbsp/powerpc/ChangeLog
@@ -1,3 +1,8 @@
+2006-06-19 Till Straumann <strauman@slac.stanford.edu>
+
+ * shared/irq/irq_asm.S: Never allow the FPU to be switched on
+ for integer-only tasks (new gcc may use FP regs implicitely).
+
2006-03-08 Joel Sherrill <joel@OARcorp.com>
* shared/startup/linkcmds: Add .gnu.linkonce.b.* section.
diff --git a/c/src/lib/libbsp/powerpc/shared/irq/irq_asm.S b/c/src/lib/libbsp/powerpc/shared/irq/irq_asm.S
index be3f92c1f5..4836c2a659 100644
--- a/c/src/lib/libbsp/powerpc/shared/irq/irq_asm.S
+++ b/c/src/lib/libbsp/powerpc/shared/irq/irq_asm.S
@@ -299,27 +299,6 @@ nested:
rfi
switch:
-#if ( PPC_HAS_FPU != 0 )
-#if ! defined( CPU_USE_DEFERRED_FP_SWITCH )
-#error missing include file???
-#endif
- mfmsr r4
-#if ( CPU_USE_DEFERRED_FP_SWITCH == TRUE )
- /* if the executing thread has FP enabled propagate
- * this now so _Thread_Dispatch can save/restore the FPREGS
- * NOTE: it is *crucial* to disable the FPU across the
- * user ISR [independent of using the 'deferred'
- * strategy or not]. We don't save FP regs across
- * the user ISR and hence we prefer an exception to
- * be raised rather than experiencing corruption.
- */
- lwz r3, SRR1_FRAME_OFFSET(r1)
- rlwimi r4, r3, 0, 18, 18 /* MSR_FP */
-#else
- ori r4, r4, MSR_FP
-#endif
- mtmsr r4
-#endif
bl SYM (_Thread_Dispatch)
easy_exit: