Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
deal with AIX by extending the architecture description stuff
authormquinson <mquinson@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Tue, 14 Sep 2004 09:16:02 +0000 (09:16 +0000)
committermquinson <mquinson@48e7efb5-ca39-0410-a469-dd3cf9ba447f>
Tue, 14 Sep 2004 09:16:02 +0000 (09:16 +0000)
git-svn-id: svn+ssh://scm.gforge.inria.fr/svn/simgrid/simgrid/trunk@405 48e7efb5-ca39-0410-a469-dd3cf9ba447f

src/gras/DataDesc/datadesc_private.h
src/gras/DataDesc/ddt_convert.c
src/gras/DataDesc/ddt_create.c

index 8216dde..f0001eb 100644 (file)
@@ -29,7 +29,7 @@ void gras_ddt_freev(void *ddt);
  * Descriptions of all known architectures *
  *******************************************/
 
-#define gras_arch_count 4
+#define gras_arch_count 5
 typedef enum {
   gras_ddt_scalar_char      = 0,
   gras_ddt_scalar_short     = 1,
index 234da3b..6a82100 100644 (file)
@@ -24,21 +24,26 @@ GRAS_LOG_NEW_DEFAULT_SUBCATEGORY(ddt_convert,datadesc,
  ***  l C<1/1> I<2/2:4/4:8/8:8/8> P<4/4:4/4> D<4/4:8/8>
  ***  B C<1/1> I<2/2:4/4:4/8:8/8> P<4/4:4/4> D<4/4:8/4>
  ***  B C<1/1> I<2/2:4/8:8/8:8/8> P<4/4:4/4> D<4/4:8/4>
+ ***  B C:1/1: I:2/2:4/4:4/4:8/8: P:4/4:4/4: D:4/4:8/4:
  ***
  ***/
 
 const gras_arch_desc_t gras_arches[gras_arch_count] = {
-  {"little32", 0,   {1,2,4,4,8,   4,4,   4,8}, 4},
-  //                {1,2,4,4,4,   4,4,   4,4}}, 
+  {"little32", 0,   {1,2,4,4,8,   4,4,   4,8}, // 4},
+                    {1,2,4,4,4,   4,4,   4,4}},
 
-  {"little64", 0,   {1,2,4,8,8,   8,8,   4,8}, 8},
-  //                {1,2,4,8,8,   8,8,   4,8}},
+  {"little64", 0,   {1,2,4,8,8,   8,8,   4,8}, // 8},
+                    {1,2,4,8,8,   8,8,   4,8}},
 
-  {"big32",    1,   {1,2,4,4,8,   4,4,   4,8}, 8},
-  //                {1,2,4,4,8,   4,4,   4,8}},
+  {"big32",    1,   {1,2,4,4,8,   4,4,   4,8}, // 8},
+                    {1,2,4,4,8,   4,4,   4,8}},
 
-  {"big64",    1,   {1,2,4,8,8,   8,8,   4,8}, 8}
-  //                {1,2,4,8,8,   8,8,   4,8}}
+  {"big64",    1,   {1,2,4,8,8,   8,8,   4,8}, // 8}
+                    {1,2,4,8,8,   8,8,   4,8}},
+
+  {"aix",      1,   {1,2,4,4,8,   4,4,   4,8}, // 8}
+                    {1,2,4,4,8,   4,4,   4,4}}
+   
 };
 
 const char *gras_datadesc_arch_name(int code) {
index 904b316..0bc8dae 100644 (file)
@@ -112,8 +112,10 @@ gras_datadesc_scalar(const char                      *name,
   for (arch = 0; arch < gras_arch_count; arch ++) {
     long int sz;
     long int mask;
-    res->size[arch] = gras_arches[arch].sizeofs[type];
-
+    res->size[arch]         = gras_arches[arch].sizeofs[type];
+    res->alignment[arch]    = gras_arches[arch].boundaries[type];
+    res->aligned_size[arch] = aligned(res->size[arch], res->alignment[arch]);
+#if 0
     sz = res->size[arch];
     mask = sz;
     
@@ -142,6 +144,7 @@ gras_datadesc_scalar(const char                      *name,
       res->alignment[arch]       = res->size[arch];
       res->aligned_size[arch]    = res->size[arch];
     }
+#endif     
   }
 
   res->category_code                 = e_gras_datadesc_type_cat_scalar;
@@ -248,8 +251,7 @@ gras_datadesc_struct_append(gras_datadesc_type_t  *struct_type,
      
   for (arch=0; arch<gras_arch_count; arch ++) {
     field->offset[arch] = aligned(struct_type->size[arch],
-                                 min(field_type->alignment[arch],
-                                     gras_arches[arch].boundaries));
+                                 field_type->alignment[arch]);
 
     struct_type->size[arch] = field->offset[arch] + field_type->size[arch];
     struct_type->alignment[arch] = max(struct_type->alignment[arch],