OSDN Git Service

* init.c (__gnat_map_signal): map SIGSEGV to Storage_Error for AE653
authorcharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 19 Nov 2004 11:25:15 +0000 (11:25 +0000)
committercharlet <charlet@138bc75d-0d04-0410-961f-82ee72b054a4>
Fri, 19 Nov 2004 11:25:15 +0000 (11:25 +0000)
vthreads.
(init_float): Eliminate initialization of floating point status for
AE653. The instructions have no effect for vThreads.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@90911 138bc75d-0d04-0410-961f-82ee72b054a4

gcc/ada/init.c

index 30a2098..86152f9 100644 (file)
@@ -1704,19 +1704,25 @@ __gnat_map_signal (int sig)
       exception = &constraint_error;
       msg = "SIGILL";
       break;
+#ifdef VTHREADS
     case SIGSEGV:
-      exception = &program_error;
-      msg = "SIGSEGV";
+      exception = &storage_error;
+      msg = "SIGSEGV: possible stack overflow";
       break;
     case SIGBUS:
-#ifdef VTHREADS
       exception = &storage_error;
       msg = "SIGBUS: possible stack overflow";
+      break;
 #else
+    case SIGSEGV:
+      exception = &program_error;
+      msg = "SIGSEGV";
+      break;
+    case SIGBUS:
       exception = &program_error;
       msg = "SIGBUS";
-#endif
       break;
+#endif
     default:
       exception = &program_error;
       msg = "unhandled signal";
@@ -1777,8 +1783,10 @@ void
 __gnat_init_float (void)
 {
   /* Disable overflow/underflow exceptions on the PPC processor, this is needed
-     to get correct Ada semantic.  */
-#if defined (_ARCH_PPC) && !defined (_SOFT_FLOAT)
+     to get correct Ada semantics.  Note that for AE653 vThreads, the HW
+     overflow settings are an OS configuration issue.  The instructions
+     below have no effect */
+#if defined (_ARCH_PPC) && !defined (_SOFT_FLOAT) && !defined (VTHREADS)
   asm ("mtfsb0 25");
   asm ("mtfsb0 26");
 #endif