diff --git a/mie/include/mie/ir/block.h b/mie/include/mie/ir/block.h index 4769ece..ec8630f 100644 --- a/mie/include/mie/ir/block.h +++ b/mie/include/mie/ir/block.h @@ -20,5 +20,6 @@ struct mie_block { extern struct mie_vector_ops mie_block_vector_ops; MIE_API struct mie_op *mie_block_add_op(struct mie_block *block); +MIE_API struct mie_register *mie_block_add_param(struct mie_block *block); #endif diff --git a/mie/ir/block.c b/mie/ir/block.c new file mode 100644 index 0000000..2802665 --- /dev/null +++ b/mie/ir/block.c @@ -0,0 +1,19 @@ +#include +#include +#include + +struct mie_op *mie_block_add_op(struct mie_block *block) +{ + return mie_vector_emplace_back(block->b_ops, NULL); +} + +struct mie_register *mie_block_add_param(struct mie_block *block) +{ + struct mie_register *result = mie_vector_emplace_back( + block->b_params, &mie_register_vector_ops); + result->reg_flags = MIE_REGISTER_F_VIRTUAL | MIE_REGISTER_F_BLOCK_PARAM; + result->reg_block = block; + result->reg_op = NULL; + + return result; +}