summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSøren Sandmann Pedersen <ssp@redhat.com>2010-04-14 11:32:08 -0400
committerSøren Sandmann Pedersen <ssp@redhat.com>2010-04-14 11:32:08 -0400
commit63f4bf4508ca7b7f97ab6e5755dc127d98364d03 (patch)
tree34c88b30c17b0c30d53efb2eeba914e1ad2e1e39
parentd0f0407a3963615f13e65c7a348c0add820207d3 (diff)
Add instruction type
-rw-r--r--psl.c56
1 files changed, 47 insertions, 9 deletions
diff --git a/psl.c b/psl.c
index 73ae9fa..731ef72 100644
--- a/psl.c
+++ b/psl.c
@@ -2,21 +2,59 @@
#include <stdarg.h>
#include "psl.h"
-typedef struct memory_t memory_t;
+typedef struct instruction_list_t instruction_list_t;
-struct memory_t
+typedef enum
{
-
+ TEX,
+ ADD,
+ MAD,
+ CMP_LT,
+ LABEL
+} instruction_type_t;
+
+struct psl_instruction_t
+{
+ instruction_type_t type;
+
+ union
+ {
+ struct
+ {
+ } tex;
+
+ struct
+ {
+ } add;
+
+ struct
+ {
+ } mad;
+
+ struct
+ {
+ } cmp_lt;
+
+ struct
+ {
+ } label;
+ } u;
+};
+
+struct instruction_list_t
+{
+ psl_instruction_t inst[255];
+ instruction_list_t *next;
};
struct psl_statement_t
{
- memory_t *memory;
+ psl_instruction_t *instructions;
};
struct psl_program_t
{
- psl_statement_t *statement;
+ instruction_list_t *inst;
};
psl_program_t *
@@ -25,10 +63,10 @@ psl_program_create (psl_statement_t *statement)
}
psl_instruction_t *
-psl_tex (psl_var_t *dest,
- psl_var_t *img,
- psl_var_t *u,
- psl_var_t *v)
+psl_tex (psl_var_t *dest,
+ psl_var_t *img,
+ psl_var_t *u,
+ psl_var_t *v)
{
}