view paper/src/twice.c @ 16:958634b9fa32

make paper directory
author Shohei KOKUBO <e105744@ie.u-ryukyu.ac.jp>
date Wed, 17 Feb 2016 16:59:46 +0900
parents src/twice.c@2d6755608f67
children
line wrap: on
line source

// Code Gear
__code twice(struct Context* context, struct LoopCounter* loopCounter, int index, int alignment, int* array) {
    int i = loopCounter->i;

    if (i < alignment) {
        array[i+index*alignment] = array[i+index*alignment]*2;
        loopCounter->i++;

        goto meta(context, Twice);
    }

    loopCounter->i = 0;

    stack_pop(context->code_stack, &context->next);
    goto meta(context, context->next);
}

// Meta Code Gear(stub)
__code twice_stub(struct Context* context) {
    goto twice(context,
               &context->data[LoopCounter]->loopCounter,
               context->data[Node]->node.value->array.index,
               context->data[Node]->node.value->array.alignment,
               context->data[Node]->node.value->array.array);
}