aboutsummaryrefslogtreecommitdiff
path: root/gcc/ada/init.c
diff options
context:
space:
mode:
authorArnaud Charlet <charlet@gcc.gnu.org>2009-07-22 15:16:44 +0200
committerArnaud Charlet <charlet@gcc.gnu.org>2009-07-22 15:16:44 +0200
commit09494c325c52f55c72ab1448371ab03d25e13c50 (patch)
tree4c7ca77d2f10ec5949c3ff7d39427f1f605f2c5f /gcc/ada/init.c
parent5a989c6ba5e462a5545f2fd853df3aac24879440 (diff)
downloadgcc-09494c325c52f55c72ab1448371ab03d25e13c50.zip
gcc-09494c325c52f55c72ab1448371ab03d25e13c50.tar.gz
gcc-09494c325c52f55c72ab1448371ab03d25e13c50.tar.bz2
[multiple changes]
2009-07-22 Brett Porter <porter@adacore.com> * init.c (__gnat_init_float): For SPE, set bits in SPEFSCR instead of FPSCR. * sysdep.c (__gnat_get_task_options): Set task option enabling SPE. 2009-07-22 Gary Dismukes <dismukes@adacore.com> * exp_ch5.adb, sem_util.adb, sem_attr.adb, exp_dbug.ads, exp_ch2.adb, exp_tss.ads, exp_ch4.adb, sem_ch4.adb: Correct spelling error. Minor reformatting. * sem_res.adb (Resolve_Explicit_Dereference): Reword one comment that used poor terminology. 2009-07-22 Robert Dewar <dewar@adacore.com> * freeze.adb, sem_ch3.adb, sem_prag.adb: Minor reformatting * sem_eval.adb, exp_tss.adb: Minor comment update. * stylesw.adb: Code clean up. From-SVN: r149932
Diffstat (limited to 'gcc/ada/init.c')
-rw-r--r--gcc/ada/init.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/gcc/ada/init.c b/gcc/ada/init.c
index 3193dff..2f10505 100644
--- a/gcc/ada/init.c
+++ b/gcc/ada/init.c
@@ -1932,9 +1932,19 @@ __gnat_init_float (void)
overflow settings are an OS configuration issue. The instructions
below have no effect. */
#if defined (_ARCH_PPC) && !defined (_SOFT_FLOAT) && !defined (VTHREADS)
+#if defined (_SPE_)
+ {
+ const unsigned long spefscr_mask = 0xfffffff3;
+ unsigned long spefscr;
+ asm ("mfspr %0, 512" : "=r" (spefscr));
+ spefscr = spefscr & spefscr_mask;
+ asm ("mtspr 512, %0\n\tisync" : : "r" (spefscr));
+ }
+#else
asm ("mtfsb0 25");
asm ("mtfsb0 26");
#endif
+#endif
#if (defined (__i386__) || defined (i386)) && !defined (VTHREADS)
/* This is used to properly initialize the FPU on an x86 for each