Mono.Debugger.Backend.DwarfReader.LineNumberEngine.do_standard_opcode C# (CSharp) Method

do_standard_opcode() protected method

protected do_standard_opcode ( byte opcode ) : void
opcode byte
return void
            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;
                }
            }