void do_standard_opcode(byte opcode)
{
debug ("STANDARD OPCODE: {0:x} {1}", opcode, (StandardOpcode) opcode);
switch ((StandardOpcode) opcode) {
case StandardOpcode.copy:
commit ();
break;
case StandardOpcode.advance_pc:
stm.st_address += minimum_insn_length * reader.ReadLeb128 ();
break;
case StandardOpcode.advance_line:
stm.st_line += reader.ReadSLeb128 ();
break;
case StandardOpcode.set_file:
stm.st_file = reader.ReadLeb128 ();
debug ("FILE: {0}", stm.st_file);
break;
case StandardOpcode.set_column:
debug ("SET COLUMN");
stm.st_column = reader.ReadLeb128 ();
break;
case StandardOpcode.const_add_pc:
stm.st_address += const_add_pc_range;
break;
case StandardOpcode.set_prologue_end:
debug ("PROLOGUE END");
stm.prologue_end = true;
break;
case StandardOpcode.set_epilogue_begin:
debug ("EPILOGUE BEGIN");
stm.epilogue_begin = true;
break;
default:
error ("Unknown standard opcode {0:x} in line number engine",
opcode);
break;
}
}