2 // Mono.CSharp.Debugger/IAssemblerWriter.cs
5 // Martin Baulig (martin@gnome.org)
7 // This is a platform and assembler independent assembler output interface.
9 // (C) 2002 Ximian, Inc. http://www.ximian.com
13 using System.Collections;
16 namespace Mono.CSharp.Debugger
18 public interface IAssemblerWriter
20 int GetNextLabelIndex ();
22 void WriteLabel (int index);
24 void WriteLabel (string label);
28 void WriteUInt8 (bool value);
30 void WriteUInt8 (int value);
32 void WriteInt8 (int value);
34 void Write2Bytes (int a, int b);
36 void WriteUInt16 (int value);
38 void WriteInt16 (int value);
40 void WriteUInt32 (int value);
42 void WriteInt32 (int value);
44 void WriteSLeb128 (int value);
46 void WriteULeb128 (int value);
48 void WriteAddress (int value);
50 void WriteString (string value);
52 void WriteSectionStart (String section);
54 void WriteSectionEnd ();
56 void WriteRelativeOffset (int start_label, int end_label);
58 void WriteShortRelativeOffset (int start_label, int end_label);
60 void WriteAbsoluteOffset (int index);
62 void WriteAbsoluteOffset (string label);
64 object StartSubsectionWithSize ();
66 object StartSubsectionWithShortSize ();
68 void EndSubsection (object end_index);