aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ada/ChangeLog4
-rw-r--r--gcc/ada/s-vxwork-x86.ads15
2 files changed, 13 insertions, 6 deletions
diff --git a/gcc/ada/ChangeLog b/gcc/ada/ChangeLog
index 6089e7d..0200474 100644
--- a/gcc/ada/ChangeLog
+++ b/gcc/ada/ChangeLog
@@ -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
diff --git a/gcc/ada/s-vxwork-x86.ads b/gcc/ada/s-vxwork-x86.ads
index 11a3bce..6181a1e 100644
--- a/gcc/ada/s-vxwork-x86.ads
+++ b/gcc/ada/s-vxwork-x86.ads
@@ -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;