summaryrefslogtreecommitdiff
path: root/orc/orcvariable.h
diff options
context:
space:
mode:
authorDavid Schleef <ds@schleef.org>2012-03-26 10:23:14 -0700
committerDavid Schleef <ds@schleef.org>2012-03-26 10:23:14 -0700
commitf3d0f49ace5ddc564404a6b8d3b23eaeffb3d3cd (patch)
tree53ff49b8b38c30fa1fbc0fb87aaaf810e42315c6 /orc/orcvariable.h
parent2267ce1de252db478c1d6dd516fa3f1740f8304a (diff)
downloadorc-f3d0f49ace5ddc564404a6b8d3b23eaeffb3d3cd.tar.gz
Split headers out of orcprogram.h
Diffstat (limited to 'orc/orcvariable.h')
-rw-r--r--orc/orcvariable.h75
1 files changed, 75 insertions, 0 deletions
diff --git a/orc/orcvariable.h b/orc/orcvariable.h
new file mode 100644
index 0000000..c522c88
--- /dev/null
+++ b/orc/orcvariable.h
@@ -0,0 +1,75 @@
+
+#ifndef _ORC_VARIABLE_H_
+#define _ORC_VARIABLE_H_
+
+#include <orc/orcutils.h>
+#include <orc/orclimits.h>
+#include <orc/orcexecutor.h>
+#include <orc/orccode.h>
+#include <orc/orcbytecode.h>
+#include <orc/orccompiler.h>
+#include <orc/orctarget.h>
+#include <orc/orcrule.h>
+
+ORC_BEGIN_DECLS
+
+typedef struct _OrcVariable OrcVariable;
+
+typedef enum {
+ ORC_VAR_TYPE_TEMP,
+ ORC_VAR_TYPE_SRC,
+ ORC_VAR_TYPE_DEST,
+ ORC_VAR_TYPE_CONST,
+ ORC_VAR_TYPE_PARAM,
+ ORC_VAR_TYPE_ACCUMULATOR
+} OrcVarType;
+
+enum {
+ ORC_PARAM_TYPE_INT = 0,
+ ORC_PARAM_TYPE_FLOAT,
+ ORC_PARAM_TYPE_INT64,
+ ORC_PARAM_TYPE_DOUBLE
+};
+
+
+/**
+ * OrcVariable:
+ *
+ * The OrcVariable structure has no public members
+ */
+struct _OrcVariable {
+ /*< private >*/
+ char *name;
+ char *type_name;
+
+ int size;
+ OrcVarType vartype;
+
+ int used;
+ int first_use;
+ int last_use;
+ int replaced;
+ int replacement;
+
+ int alloc;
+ int is_chained;
+ int is_aligned;
+ int alignment;
+ int is_uncached;
+
+ orc_union64 value;
+
+ int ptr_register;
+ int ptr_offset;
+ int mask_alloc;
+ int aligned_data;
+ int param_type;
+ int load_dest;
+ int update_type;
+ int need_offset_reg;
+};
+
+ORC_END_DECLS
+
+#endif
+