orc: function to get largest array size
authorDavid Schleef <ds@schleef.org>
Thu, 25 Jun 2009 01:20:56 +0000 (18:20 -0700)
committerDavid Schleef <ds@schleef.org>
Thu, 25 Jun 2009 01:20:56 +0000 (18:20 -0700)
orc/orcprogram.c
orc/orcprogram.h

index 11393ca..a469903 100644 (file)
@@ -534,3 +534,30 @@ orc_program_get_max_var_size (OrcProgram *program)
   return max;
 }
 
+/**
+ * orc_program_get_max_array_size:
+ * @program: a pointer to an OrcProgram structure
+ *
+ * Returns the size of the largest array used in the program.
+ * 
+ * Returns: the number of bytes
+ */
+int
+orc_program_get_max_array_size (OrcProgram *program)
+{
+  int i;
+  int max;
+
+  max = 0;
+  for(i=0;i<ORC_N_VARIABLES;i++){
+    if (program->vars[i].size) {
+      if (program->vars[i].vartype == ORC_VAR_TYPE_SRC ||
+          program->vars[i].vartype == ORC_VAR_TYPE_DEST) {
+        max = MAX(max, program->vars[i].size);
+      }
+    }
+  }
+
+  return max;
+}
+
index d1aedde..1cca390 100644 (file)
@@ -488,6 +488,7 @@ void orc_compiler_append_code (OrcCompiler *p, const char *fmt, ...)
 void orc_target_register (OrcTarget *target);
 OrcTarget *orc_target_get_by_name (const char *target_name);
 int orc_program_get_max_var_size (OrcProgram *program);
+int orc_program_get_max_array_size (OrcProgram *program);
 
 #endif