diff options
author | Søren Sandmann Pedersen <ssp@redhat.com> | 2013-09-01 20:48:23 -0400 |
---|---|---|
committer | Søren Sandmann Pedersen <ssp@redhat.com> | 2013-09-01 20:48:23 -0400 |
commit | 44551a7920272adb196a319d0643952ee47d6eb4 (patch) | |
tree | f65ce73f1bbc822c1a54e532efb9910567ab816a | |
parent | 1d5d9f466d5cf2fb40506c5a2b9eb09fded1a40c (diff) |
more iterjit
-rw-r--r-- | iterjit.c | 101 |
1 files changed, 101 insertions, 0 deletions
@@ -50,3 +50,104 @@ There may also be setup()/setup_line() methods required. */ +#include <stdio.h> +#include "simplex86.h" +#include "simple-reg.h" +#include "stack-man.h" +#include "crc32.h" + +typedef struct jit_dest_iter_t jit_dest_iter_t; +typedef struct jit_src_iter_t jit_src_iter_t; +typedef struct jit_combiner_t jit_combiner_t; + +struct jit_src_iter_t +{ + void (* begin) (jit_src_iter_t *src); + void (* begin_line) (jit_src_iter_t *src); + op_t (* get_1_pixel) (jit_src_iter_t *src); + op_t (* get_2_pixels) (jit_src_iter_t *src); + op_t (* get_4_pixels) (jit_src_iter_t *src); + op_t (* get_8_pixels) (jit_src_iter_t *src); + op_t (* get_16_pixels) (jit_src_iter_t *src); + void (* end_line) (jit_src_iter_t *); + void (* end) (jit_src_iter_t *); +}; + +struct jit_combiner_t +{ + op_t (* combine) (jit_src_iter_t *src, op_t a, op_t b, op_t c); +}; + +struct jit_dest_iter_t +{ + void (* begin) (jit_dest_iter_t *dest); + void (* process_line) (jit_dest_iter_t *dest_iter, + jit_src_iter_t *src_iter, + jit_src_iter_t *mask_iter, + jit_combiner_t *combiner); + void (* end) (jit_dest_iter_t *dest); +}; + +static void +dest_a8r8g8b8_begin (jit_dest_iter_t *dest) +{ + +} + +static void +dest_a8r8g8b8_process_line (jit_dest_iter_t *dest, + jit_src_iter_t *src, + jit_src_iter_t *mask, + jit_combiner_t *combiner) +{ +} + +static void +dest_a8r8g8b8_end (jit_dest_iter_t *dest) +{ +} + +jit_dest_iter_t * +dest_iter_create_a8r8g8b8 (jit_dest_iter_t *dest) +{ + jit_dest_iter_t *iter = malloc (sizeof *iter); /* FIXME OOM */ + + iter->begin = dest_a8r8g8b8_begin; + iter->process_line = dest_a8r8g8b8_process_line; + iter->end = dest_a8r8g8b8_end; + + return iter; +} + +void +generate_kernel (jit_src_iter_t *src_iter, + jit_src_iter_t *mask_iter, + jit_dest_iter_t *dest_iter, + jit_combiner_t *combiner) +{ + + + /* This function does + * + * src_iter->setup(); + * mask_iter->setup(); + * dest_iter->setup(); + * while (height--) + * { + * dest_iter->process_line ( + * dest_iter, src_iter, mask_iter, combiner); + * } + * dest_iter->end(); + * mask_iter->end(); + * src_iter->end(); + */ +} + +int +main () +{ + /* n_8_8888() */ + printf ("iter jit\n"); + + return 0; +} |