<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"> <html> <head> <title>.:: The Converted Virtual Machine Instruction Set ::.</title> </head> <body BGCOLOR="#DbDbDb" text="#000000" LINK="#0C0C0C" VLINK="#070707" ALINK="#007007"> <h1 align="center"> Inline methods </h1><br><hr><p> <table border="0" align="center" width="80%"> <tr><td> <!--LEFT BLOCK--> <table border="0" bordercolor="#CDCDCD" align="left" cellspacing="3" cellpadding="5" cols="4"> <tr> <td> <a href="#monitor_enter"><b>monitor_enter</b></a></td><td> <a href="#monitor_exit"><b>monitor_exit</b></a></td><td> <a href="#string_concat_2"><b>string_concat_2</b></a></td><td> <a href="#string_concat_3"><b>string_concat_3</b></a></td></tr><tr><td> <a href="#string_concat_4"><b>string_concat_4</b></a></td><td> <a href="#string_eq"><b>string_eq</b></a></td><td> <a href="#string_get_char"><b>string_get_char</b></a></td><td> <a href="#string_ne"><b>string_ne</b></a></td></tr><tr><td> <a href="#type_from_handle"><b>type_from_handle</b></a></td><td> </td><td> </td><td> </td></tr></table></td></tr></table><p><hr><p><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="monitor_enter"> <font color="#FFFFFF" size="+5"> monitor_enter</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Enter a monitor on an object</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>prefix</i></td></tr><tr><td align="center" width="100"><i>monitor_enter</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{monitor_enter}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>monitor_enter</i> = 255, 75 (0xFF, 0x4B)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., object</i> => <i>...</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">The <i>object</i> is popped from the stack as the type <code>ptr</code>. The current thread is made to enter the synchronisation monitor on <i>object</i>. Execution continues once the monitor has been acquired.</td></tr><tr border="0"><td border="0" valign="top"> · <b>Notes </b></td><td border="0">This instruction is used to inline calls to the <code>Monitor.Enter(Object)</code> method.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="monitor_exit"> <font color="#FFFFFF" size="+5"> monitor_exit</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Exit a monitor on an object</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>prefix</i></td></tr><tr><td align="center" width="100"><i>monitor_exit</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{monitor_exit}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>monitor_exit</i> = 255, 76 (0xFF, 0x4C)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., object</i> => <i>...</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">The <i>object</i> is popped from the stack as the type <code>ptr</code>. The current thread is made to exit the synchronisation monitor on <i>object</i>. Execution continues once the monitor has been released.</td></tr><tr border="0"><td border="0" valign="top"> · <b>Notes </b></td><td border="0">This instruction is used to inline calls to the <code>Monitor.Exit(Object)</code> method.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="string_concat_2"> <font color="#FFFFFF" size="+5"> string_concat_2</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Concatenate two strings</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>prefix</i></td></tr><tr><td align="center" width="100"><i>string_concat_2</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{string_concat_2}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>string_concat_2</i> = 255, 68 (0xFF, 0x44)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., value1, value2</i> => <i>..., result</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">Both <i>value1</i> and <i>value2</i> are popped from the stack as type <code>string</code>. The <i>result</i> is the <code>string</code> that results from concatenating <i>value1</i> and <i>value2</i>. The <i>result</i> is pushed onto the stack.</td></tr><tr border="0"><td border="0" valign="top"> · <b>Notes </b></td><td border="0">This instruction is used to inline calls to the <code>String.Concat(String, String)</code> method.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="string_concat_3"> <font color="#FFFFFF" size="+5"> string_concat_3</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Concatenate three strings</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>prefix</i></td></tr><tr><td align="center" width="100"><i>string_concat_3</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{string_concat_3}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>string_concat_3</i> = 255, 69 (0xFF, 0x45)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., value1, value2, value3</i> => <i>..., result</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">The values <i>value1</i>, <i>value2</i>, and <i>value3</i> are popped from the stack as type <code>string</code>. The <i>result</i> is the <code>string</code> that results from concatenating <i>value1</i>, <i>value2</i>, and <i>value3</i>. The <i>result</i> is pushed onto the stack.</td></tr><tr border="0"><td border="0" valign="top"> · <b>Notes </b></td><td border="0">This instruction is used to inline calls to the <code>String.Concat(String, String, String)</code> method.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="string_concat_4"> <font color="#FFFFFF" size="+5"> string_concat_4</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Concatenate four strings</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>prefix</i></td></tr><tr><td align="center" width="100"><i>string_concat_4</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{string_concat_4}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>string_concat_4</i> = 255, 70 (0xFF, 0x46)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., value1, value2, value3, value4</i> => <i>..., result</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">The values <i>value1</i>, <i>value2</i>, <i>value3</i>, and <i>value4</i> are popped from the stack as type <code>string</code>. The <i>result</i> is the <code>string</code> that results from concatenating <i>value1</i>, <i>value2</i>, <i>value3</i>, and <i>value4</i>. The <i>result</i> is pushed onto the stack.</td></tr><tr border="0"><td border="0" valign="top"> · <b>Notes </b></td><td border="0">This instruction is used to inline calls to the <code>String.Concat(String, String, String, String)</code> method.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="string_eq"> <font color="#FFFFFF" size="+5"> string_eq</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Test two strings for equality</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>prefix</i></td></tr><tr><td align="center" width="100"><i>string_eq</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{string_eq}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>string_eq</i> = 255, 71 (0xFF, 0x47)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., value1, value2</i> => <i>..., result</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">Both <i>value1</i> and <i>value2</i> are popped from the stack as type <code>string</code>. The <i>result</i> is the <code>int32</code> that results from comparing <i>value1</i> and <i>value2</i>: 1 if they are equal, and 0 if they are not equal. The <i>result</i> is pushed onto the stack.</td></tr><tr border="0"><td border="0" valign="top"> · <b>Notes </b></td><td border="0">This instruction is used to inline calls to the <code>String.op_Equality(String, String)</code> method.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="string_get_char"> <font color="#FFFFFF" size="+5"> string_get_char</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Get a particular character from a string</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>prefix</i></td></tr><tr><td align="center" width="100"><i>string_get_char</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{string_get_char}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>string_get_char</i> = 255, 73 (0xFF, 0x49)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., value1, value2</i> => <i>..., result</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">Both <i>value1</i> and <i>value2</i> are popped from the stack as the types <code>string</code> and <code>int32</code> respectively. The <i>result</i> is the <code>int32</code> that results from fetching the character at position <i>value2</i> within the string <i>value1</i>. <code>System.IndexOutOfRangeException</code> will be thrown if <i>value2</i> is an invalid index.</td></tr><tr border="0"><td border="0" valign="top"> · <b>Notes </b></td><td border="0">This instruction is used to inline calls to the <code>String.get_Chars(int)</code> method.</td></tr><tr border="0"><td border="0" valign="top"> · <b>Exceptions </b></td><td border="0"><code>System.NullReferenceException</code> -- Raised if <i>value1</i> is <code>null</code>.</font><br><code>System.IndexOutOfRangeException</code> -- Raised if <i>value2</i> is not a valid character index for the string <i>value1</i>.</font><br></td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="string_ne"> <font color="#FFFFFF" size="+5"> string_ne</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Test two strings for inequality</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>prefix</i></td></tr><tr><td align="center" width="100"><i>string_ne</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{string_ne}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>string_ne</i> = 255, 72 (0xFF, 0x48)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., value1, value2</i> => <i>..., result</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">Both <i>value1</i> and <i>value2</i> are popped from the stack as type <code>string</code>. The <i>result</i> is the <code>int32</code> that results from comparing <i>value1</i> and <i>value2</i>: 1 if they are not equal, and 0 if they are equal. The <i>result</i> is pushed onto the stack.</td></tr><tr border="0"><td border="0" valign="top"> · <b>Notes </b></td><td border="0">This instruction is used to inline calls to the <code>String.op_Inequality(String, String)</code> method.</td></tr></table><br><br><table cellpadding="5" cellspacing="0" bordercolor="#000000" border=" 1" align="center" width="80%"> <tr bgcolor="#7F7F7F" border="2"><td border="0" width="30%"> <a name="type_from_handle"> <font color="#FFFFFF" size="+5"> type_from_handle</font></a></td><td align="right" border="0"> </td></tr><tr border="1"><td border="0"> · <b>Operation</b></td><td border="0">Get a type object from its runtime handle</td></tr><tr border="0"><td border="0"> · <b>Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>prefix</i></td></tr><tr><td align="center" width="100"><i>type_from_handle</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Direct Format </b></td><td border="0"><table border="0" bordercolor="#AAAAAA" cellpadding="6" cellspacing="0"><tr><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>{type_from_handle}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0"> · <b>Forms </b></td><td border="0"><i>type_from_handle</i> = 255, 74 (0xFF, 0x4A)<br></td></tr><tr border="0"><td border="0"> · <b>Stack</b></td><td border="0"><i>..., handle</i> => <i>..., object</i></td></tr><tr border="0"><td border="0" valign="top"> · <b>Description </b></td><td border="0">The <i>handle</i> is popped from the stack as the type <code>ptr</code>. It is interpreted as an instance of the value type <code>System.RuntimeTypeHandle</code>. The <i>handle</i> is converted into an <i>object</i> instance of the reference type <code>System.Type</code>. The <i>object</i> is pushed onto the stack.</td></tr><tr border="0"><td border="0" valign="top"> · <b>Notes </b></td><td border="0">This instruction is used to inline calls to the <code>Type.GetTypeFromHandle(RuntimeTypeHandle)</code> method.</td></tr></table><br><br><p align="center"> <font size="-2">Copyright © Southern Storm Software Pty Ltd 2002 <br> Licensed under GNU FDL </font></p></body></html>