for(i=0;i<p->n_insns;i++){
OrcInstruction *insn = p->insns + i;
+ if (insn->flags) {
+ bytecode_append_code (bytecode, ORC_BC_INSTRUCTION_FLAGS);
+ bytecode_append_int (bytecode, insn->flags);
+ }
bytecode_append_code (bytecode, (insn->opcode - opcode_set->opcodes) + 32);
if (insn->opcode->dest_size[0] != 0) {
bytecode_append_int (bytecode, insn->dest_args[0]);
int size;
int alignment;
OrcOpcodeSet *opcode_set;
+ int instruction_flags = 0;
memset (parse, 0, sizeof(*parse));
parse->bytecode = bytecode;
size = orc_bytecode_parse_get_int (parse);
orc_program_add_temporary (program, size, "t");
break;
+ case ORC_BC_INSTRUCTION_FLAGS:
+ instruction_flags = orc_bytecode_parse_get_int (parse);
+ break;
default:
break;
}
if (insn->opcode->src_size[2] != 0) {
insn->src_args[2] = orc_bytecode_parse_get_int (parse);
}
+ insn->flags = instruction_flags;
+ instruction_flags = 0;
program->n_insns++;
}
ORC_BC_ADD_PARAMETER_INT64,
ORC_BC_ADD_PARAMETER_DOUBLE,
ORC_BC_ADD_TEMPORARY,
- ORC_BC_RESERVED_21,
+ ORC_BC_INSTRUCTION_FLAGS,
ORC_BC_RESERVED_22,
ORC_BC_RESERVED_23,
ORC_BC_RESERVED_24,