s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
authorEd Falis <falis@gnat.com>
Mon, 4 Oct 2004 15:00:43 +0000 (15:00 +0000)
committerArnaud Charlet <charlet@gcc.gnu.org>
Mon, 4 Oct 2004 15:00:43 +0000 (17:00 +0200)
2004-10-04  Ed Falis  <falis@gnat.com>

* s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size

From-SVN: r88505

gcc/ada/ChangeLog
gcc/ada/s-vxwork-x86.ads

index 6089e7d1cc6f9420d8aea7d9dd5a258eec0faff0..02004746568fe72700f272124dc33a832482127e 100644 (file)
@@ -1,3 +1,7 @@
+2004-10-04  Ed Falis  <falis@gnat.com>
+
+       * s-vxwork-x86.ads: (FP_CONTEXT): Defined to be correct size
+
 2004-10-04  Sergey Rybin  <rybin@act-europe.fr>
 
        * g-dirope.ads (Base_Name): Clarify the meaning of the Suffix parameter
index 11a3bcece35210613a929b478e550cd3c958625d..6181a1ec0d1beb53d4155af6bb2bb965066d4641 100644 (file)
@@ -38,13 +38,16 @@ package System.VxWorks is
 
    --  Floating point context record. x86 version
 
-   --  For now this is a dummy implementation (more work needed ???)
-
-   type FP_CONTEXT is record
-      Dummy : Integer;
-   end record;
-
+   --  There are two kinds of FP_CONTEXT for this architecture, corresponding
+   --  to newer and older processors. The type is defined in fppI86lib.h as a
+   --  union. The form used depends on the versions of the save and restore
+   --  routines that are selected by the user (these versions are provided in
+   --  vxwork.ads). Since we do not examine the contents of these objects, it
+   --  is sufficient to declare the type as of the required size: 512 bytes.
+
+   type FP_CONTEXT is array (1 .. 128) of Integer;
    for FP_CONTEXT'Alignment use 4;
+   for FP_CONTEXT'Size use 512 * Storage_Unit;
    pragma Convention (C, FP_CONTEXT);
 
    Num_HW_Interrupts : constant := 256;