From fa6f8a0ee6495cefeabe6b6972b194e7792cc971 Mon Sep 17 00:00:00 2001 From: Søren Sandmann Pedersen Date: Fri, 16 Apr 2010 08:25:28 -0400 Subject: Add vars --- psl.c | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 67 insertions(+), 1 deletion(-) diff --git a/psl.c b/psl.c index f3eafcb..5dbd2cf 100644 --- a/psl.c +++ b/psl.c @@ -1,5 +1,6 @@ #include #include +#include #include "psl.h" #define new(t) \ @@ -40,6 +41,7 @@ struct psl_instruction_t struct { + char *name; } label; } u; }; @@ -55,6 +57,38 @@ struct psl_program_t instruction_list_t *instructions; }; +typedef enum +{ + VARIABLE, + IMMEDIATE +} var_type_t; + +typedef enum +{ + UN8, + SP, + DP +} type_t; + +struct psl_var_t +{ + var_type_t var_type; + type_t type; + + union + { + struct + { + char *name; + } variable; + + struct + { + + } immediate; + } u; +}; + psl_program_t * psl_program_create (psl_statement_t *statement) { @@ -142,8 +176,36 @@ run_box (pixman_box32_t *box, &(instructions->instructions[i]); switch (instruction->type) + { + case TEX: + { + &(instruction->u.tex); + break; + } + + case ADD: + { + + break; + } + + case MAD: + { + + break; + } + + case CMP_LT: { + break; + } + + case LABEL: + { + + break; + } } } } @@ -174,7 +236,6 @@ psl_program_destroy (psl_program_t *program) psl_var_t * psl_imm_un8 (int value) { - } psl_var_t * @@ -191,7 +252,12 @@ psl_label (const char *name) psl_var_t * psl_var (const char *name) { + psl_var_t *result = new (psl_var_t); + + result->type = VARIABLE; + result->u.variable.name = strdup (name); + return result; } int -- cgit v1.2.3