- arch_insn_format_t *fmt =
- _arch_data_insert(arch_kind_insn_format, isa, name,
- sizeof(arch_insn_format_t) + (n_in + n_out) * sizeof(arch_operand_t));
-
- fmt->n_in = n_in;
- fmt->n_out = n_out;
-
- /* initialize each operand with invalid. */
- for(i = 0; i < n_in + n_out; ++i)
- fmt->operands[i].type = arch_operand_type_invalid;
-
- return fmt;
-}
-
-arch_insn_t *arch_add_insn(arch_insn_format_t *fmt, const char *name)
-{
- /* Get the size the operands will need in the irn. */
- int operands_size = arch_get_operands_size(fmt);
-
- /* Insert the insn into the isa. */
- arch_insn_t *insn = arch_data_insert(insn, arch_obj_get_isa(fmt), name);
-
- insn->format = fmt;
- insn->op = new_ir_op(get_next_ir_opcode(), name, op_pin_state_pinned, 0,
- oparity_dynamic, 0, sizeof(arch_irn_data_t) + operands_size);
-
- return insn;
-}
-
-arch_insn_format_t *arch_find_insn_format(const arch_isa_t *isa, const char *name)
-{
- return arch_data_find(insn_format, isa, name);