diff options
author | David Schleef <ds@schleef.org> | 2012-03-26 10:23:14 -0700 |
---|---|---|
committer | David Schleef <ds@schleef.org> | 2012-03-26 10:23:14 -0700 |
commit | f3d0f49ace5ddc564404a6b8d3b23eaeffb3d3cd (patch) | |
tree | 53ff49b8b38c30fa1fbc0fb87aaaf810e42315c6 /orc/orcvariable.h | |
parent | 2267ce1de252db478c1d6dd516fa3f1740f8304a (diff) | |
download | orc-f3d0f49ace5ddc564404a6b8d3b23eaeffb3d3cd.tar.gz |
Split headers out of orcprogram.h
Diffstat (limited to 'orc/orcvariable.h')
-rw-r--r-- | orc/orcvariable.h | 75 |
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 + |