Sophie

Sophie

distrib > Mandriva > 9.1 > ppc > by-pkgid > 15a35adde3d1bc9fde6da8c8fe069b60 > files > 71

pnet-devel-0.5.0-1mdk.ppc.rpm


	<!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"> Miscellaneous instructions </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>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
			<a href="#break"><b>break</b></a></td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
			<a href="#ldtoken"><b>ldtoken</b></a></td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
			<a href="#memcpy"><b>memcpy</b></a></td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
			<a href="#memmove"><b>memmove</b></a></td></tr><tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
			<a href="#memset"><b>memset</b></a></td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
			<a href="#memzero"><b>memzero</b></a></td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
			<a href="#nop"><b>nop</b></a></td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
			<a href="#prefix"><b>prefix</b></a></td></tr><tr><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
			<a href="#unroll_method"><b>unroll_method</b></a></td><td>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
			<a href="#wide"><b>wide</b></a></td><td>&nbsp;</td><td>&nbsp;</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="break">
<font color="#FFFFFF" size="+5"> 
&nbsp;break</font></a></td><td align="right" border="0">&nbsp;</td></tr><tr border="1"><td border="0">&nbsp;&nbsp;&middot;
		&nbsp;<b>Operation</b></td><td border="0">Mark the position of a breakpoint</td></tr><tr border="0"><td border="0">&nbsp;&nbsp;&middot;&nbsp;
		<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>break</i></td></tr><tr><td align="center" width="100"><i>subcode</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0">&nbsp;&nbsp;&middot;&nbsp;
		<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>{break}</i></td></tr><tr><td align="center" width="100"><i>subcode</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0">&nbsp;&nbsp;&middot;&nbsp;
		<b>Forms </b></td><td border="0"><i>break</i> = 254 (0xFE)<br></td></tr><tr border="0"><td border="0" valign="top">&nbsp;
		&nbsp;&middot;&nbsp;<b>Description </b></td><td border="0">This instruction marks a position in the
CVM bytecode that may be used as a breakpoint in
debug versions of the runtime engine.<p>

Every potentional position for a breakpoint is marked,
even if those positions will never have active breakpoints
set on them.  The runtime engine keeps a list of active
breakpoints, which is inspected at each potentional
breakpoint.</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="ldtoken">
<font color="#FFFFFF" size="+5"> 
&nbsp;ldtoken</font></a></td><td align="right" border="0">&nbsp;</td></tr><tr border="1"><td border="0">&nbsp;&nbsp;&middot;
		&nbsp;<b>Operation</b></td><td border="0">Load a token pointer onto the stack</td></tr><tr border="0"><td border="0">&nbsp;&nbsp;&middot;&nbsp;
		<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>ldtoken</i></td></tr><tr><td align="center" width="100"><i>pointer</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0">&nbsp;&nbsp;&middot;&nbsp;
		<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>{ldtoken}</i></td></tr><tr><td align="center" width="100"><i>pointer</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0">&nbsp;&nbsp;&middot;&nbsp;
		<b>Forms </b></td><td border="0"><i>ldtoken</i> = 234 (0xEA)<br></td></tr><tr border="0"><td border="0">&nbsp;&nbsp;&middot;&nbsp;
		<b>Stack</b></td><td border="0"><i>...</i>&nbsp;=&gt;&nbsp;<i>..., pointer</i></td></tr><tr border="0"><td border="0" valign="top">&nbsp;
		&nbsp;&middot;&nbsp;<b>Description </b></td><td border="0">Push <i>pointer</i> onto the stack as a
<code>ptr</code> value.</td></tr><tr border="0"><td border="0" valign="top">&nbsp;
		&nbsp;&middot;&nbsp;<b>Notes </b></td><td border="0">The <i>pointer</i> value is a native pointer to the token
descriptor, which may 32 or 64 bits in size.<p>

This instruction is used to load type, field, and method
descriptors onto the stack as handle instances.</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="memcpy">
<font color="#FFFFFF" size="+5"> 
&nbsp;memcpy</font></a></td><td align="right" border="0">&nbsp;</td></tr><tr border="1"><td border="0">&nbsp;&nbsp;&middot;
		&nbsp;<b>Operation</b></td><td border="0">Copy a fixed-size block of non-overlapping memory</td></tr><tr border="0"><td border="0">&nbsp;&nbsp;&middot;&nbsp;
		<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>memcpy</i></td></tr><tr><td align="center" width="100"><i>N[1]</i></td></tr></table></td><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>wide</i></td></tr><tr><td align="center" width="100"><i>memcpy</i></td></tr><tr><td align="center" width="100"><i>N[4]</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0">&nbsp;&nbsp;&middot;&nbsp;
		<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>{memcpy}</i></td></tr><tr><td align="center" width="100"><i>N</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0">&nbsp;&nbsp;&middot;&nbsp;
		<b>Forms </b></td><td border="0"><i>memcpy</i> = 237 (0xED)<br></td></tr><tr border="0"><td border="0">&nbsp;&nbsp;&middot;&nbsp;
		<b>Stack</b></td><td border="0"><i>..., dest, src</i>&nbsp;=&gt;&nbsp;<i>...</i></td></tr><tr border="0"><td border="0" valign="top">&nbsp;
		&nbsp;&middot;&nbsp;<b>Description </b></td><td border="0">Pop <i>dest</i> and <i>src</i> from the stack as type
<code>ptr</code>.  Copy <i>N</i> bytes of memory from <i>src</i>
to <i>dest</i>.</td></tr><tr border="0"><td border="0" valign="top">&nbsp;
		&nbsp;&middot;&nbsp;<b>Notes </b></td><td border="0">It is assumed that the source and destination regions do
not overlap.<p>

This instruction is typically used to copy value type instances
from one location to another.<p>

Use <i>memmove</i> for overlapping memory regions, and for regions
that do not have a fixed size.</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="memmove">
<font color="#FFFFFF" size="+5"> 
&nbsp;memmove</font></a></td><td align="right" border="0">&nbsp;</td></tr><tr border="1"><td border="0">&nbsp;&nbsp;&middot;
		&nbsp;<b>Operation</b></td><td border="0">Move a block of memory</td></tr><tr border="0"><td border="0">&nbsp;&nbsp;&middot;&nbsp;
		<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>memmove</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0">&nbsp;&nbsp;&middot;&nbsp;
		<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>{memmove}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0">&nbsp;&nbsp;&middot;&nbsp;
		<b>Forms </b></td><td border="0"><i>memmove</i> = 238 (0xEE)<br></td></tr><tr border="0"><td border="0">&nbsp;&nbsp;&middot;&nbsp;
		<b>Stack</b></td><td border="0"><i>..., dest, src, length</i>&nbsp;=&gt;&nbsp;<i>...</i></td></tr><tr border="0"><td border="0" valign="top">&nbsp;
		&nbsp;&middot;&nbsp;<b>Description </b></td><td border="0">Pop <i>dest</i>, <i>src</i>, and <i>length</i>
from the stack as the types <code>ptr</code>, <code>ptr</code>,
and <code>uint32</code> respectively.  Move <i>length</i> bytes
of memory from <i>src</i> to <i>dest</i>.</td></tr><tr border="0"><td border="0" valign="top">&nbsp;
		&nbsp;&middot;&nbsp;<b>Notes </b></td><td border="0">If the source and destination regions overlap, this instruction
will guarantee to produce the correct result.</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="memset">
<font color="#FFFFFF" size="+5"> 
&nbsp;memset</font></a></td><td align="right" border="0">&nbsp;</td></tr><tr border="1"><td border="0">&nbsp;&nbsp;&middot;
		&nbsp;<b>Operation</b></td><td border="0">Fill a block of memory with a byte value</td></tr><tr border="0"><td border="0">&nbsp;&nbsp;&middot;&nbsp;
		<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>memset</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0">&nbsp;&nbsp;&middot;&nbsp;
		<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>{memset}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0">&nbsp;&nbsp;&middot;&nbsp;
		<b>Forms </b></td><td border="0"><i>memset</i> = 240 (0xF0)<br></td></tr><tr border="0"><td border="0">&nbsp;&nbsp;&middot;&nbsp;
		<b>Stack</b></td><td border="0"><i>..., dest, value, length</i>&nbsp;=&gt;&nbsp;<i>...</i></td></tr><tr border="0"><td border="0" valign="top">&nbsp;
		&nbsp;&middot;&nbsp;<b>Description </b></td><td border="0">Pop <i>dest</i>, <i>value</i>, and <i>length</i>
from the stack as the types <code>ptr</code>, <code>int32</code>,
and <code>uint32</code>.  Fill <i>length</i> bytes of memory at
<i>dest</i> with <i>value</i>.</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="memzero">
<font color="#FFFFFF" size="+5"> 
&nbsp;memzero</font></a></td><td align="right" border="0">&nbsp;</td></tr><tr border="1"><td border="0">&nbsp;&nbsp;&middot;
		&nbsp;<b>Operation</b></td><td border="0">Fill a fixed-size block of memory with zeroes</td></tr><tr border="0"><td border="0">&nbsp;&nbsp;&middot;&nbsp;
		<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>memzero</i></td></tr><tr><td align="center" width="100"><i>N[1]</i></td></tr></table></td><td><table border="1" cellpadding="6" cellspacing="0"><tr><td align="center" width="100"><i>wide</i></td></tr><tr><td align="center" width="100"><i>memzero</i></td></tr><tr><td align="center" width="100"><i>N[4]</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0">&nbsp;&nbsp;&middot;&nbsp;
		<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>{memzero}</i></td></tr><tr><td align="center" width="100"><i>N</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0">&nbsp;&nbsp;&middot;&nbsp;
		<b>Forms </b></td><td border="0"><i>memzero</i> = 239 (0xEF)<br></td></tr><tr border="0"><td border="0">&nbsp;&nbsp;&middot;&nbsp;
		<b>Stack</b></td><td border="0"><i>..., dest</i>&nbsp;=&gt;&nbsp;<i>...</i></td></tr><tr border="0"><td border="0" valign="top">&nbsp;
		&nbsp;&middot;&nbsp;<b>Description </b></td><td border="0">Pop <i>dest</i> from the stack as type
<code>ptr</code>.  Fill <i>N</i> bytes of memory at <i>dest</i>
with zero bytes.</td></tr><tr border="0"><td border="0" valign="top">&nbsp;
		&nbsp;&middot;&nbsp;<b>Notes </b></td><td border="0">This instruction is typically used to initialize value type
instances.<p>

Use <i>memset</i> if the region does not have a fixed size, or the
fill value is something other than zero.</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="nop">
<font color="#FFFFFF" size="+5"> 
&nbsp;nop</font></a></td><td align="right" border="0">&nbsp;</td></tr><tr border="1"><td border="0">&nbsp;&nbsp;&middot;
		&nbsp;<b>Operation</b></td><td border="0">Do nothing</td></tr><tr border="0"><td border="0">&nbsp;&nbsp;&middot;&nbsp;
		<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>nop</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0">&nbsp;&nbsp;&middot;&nbsp;
		<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>{nop}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0">&nbsp;&nbsp;&middot;&nbsp;
		<b>Forms </b></td><td border="0"><i>nop</i> = 0 (0x00)<br></td></tr><tr border="0"><td border="0" valign="top">&nbsp;
		&nbsp;&middot;&nbsp;<b>Description </b></td><td border="0">Do nothing.</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="prefix">
<font color="#FFFFFF" size="+5"> 
&nbsp;prefix</font></a></td><td align="right" border="0">&nbsp;</td></tr><tr border="1"><td border="0">&nbsp;&nbsp;&middot;
		&nbsp;<b>Operation</b></td><td border="0">Prefix an alternative instruction</td></tr><tr border="0"><td border="0">&nbsp;&nbsp;&middot;&nbsp;
		<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>opcode</i></td></tr><tr><td align="center" width="100"><i>...</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0">&nbsp;&nbsp;&middot;&nbsp;
		<b>Forms </b></td><td border="0"><i>prefix</i> = 255, 255 (0xFF, 0xFF)<br></td></tr><tr border="0"><td border="0" valign="top">&nbsp;
		&nbsp;&middot;&nbsp;<b>Description </b></td><td border="0">The <i>prefix</i> instruction is used to
switch the runtime engine into an alternative instruction
set.  The alternative instruction is <i>opcode</i>.
Prefixing is necessary because the VM has more than
256 distinct instructions.</td></tr><tr border="0"><td border="0" valign="top">&nbsp;
		&nbsp;&middot;&nbsp;<b>Notes </b></td><td border="0">There is no direct format for this instruction,
because <i>prefix</i> is not required for the direct
encoding.</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="unroll_method">
<font color="#FFFFFF" size="+5"> 
&nbsp;unroll_method</font></a></td><td align="right" border="0">&nbsp;</td></tr><tr border="1"><td border="0">&nbsp;&nbsp;&middot;
		&nbsp;<b>Operation</b></td><td border="0">Mark a method for unrolling</td></tr><tr border="0"><td border="0">&nbsp;&nbsp;&middot;&nbsp;
		<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>{unroll_method}</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0">&nbsp;&nbsp;&middot;&nbsp;
		<b>Forms </b></td><td border="0"><i>unroll_method</i> = 255, 79 (0xFF, 0x4F)<br></td></tr><tr border="0"><td border="0" valign="top">&nbsp;
		&nbsp;&middot;&nbsp;<b>Description </b></td><td border="0">The <i>unroll_method</i> instruction is
used in direct code to trigger native code unrolling.
<p>

Unrolling converts fragments of the method into
native code for the underlying CPU, to speed up
execution.</td></tr><tr border="0"><td border="0" valign="top">&nbsp;
		&nbsp;&middot;&nbsp;<b>Notes </b></td><td border="0">There is no bytecode format for this
instruction, because unrolling is not possible
with the bytecode encoding.<p>

In a method that can support unrolling, the
<i>nop</i> instruction is used to mark
a label, so that the unroller can process labels
in a single translation pass.  The <i>prefix</i>
instruction is used to mark the end of the method's
code, so that the unroller knows where to stop.
</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="wide">
<font color="#FFFFFF" size="+5"> 
&nbsp;wide</font></a></td><td align="right" border="0">&nbsp;</td></tr><tr border="1"><td border="0">&nbsp;&nbsp;&middot;
		&nbsp;<b>Operation</b></td><td border="0">Modify an instruction to its wide form</td></tr><tr border="0"><td border="0">&nbsp;&nbsp;&middot;&nbsp;
		<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>wide</i></td></tr><tr><td align="center" width="100"><i>opcode</i></td></tr><tr><td align="center" width="100"><i>...</i></td></tr></table></td></tr></table></td></tr><tr border="0"><td border="0">&nbsp;&nbsp;&middot;&nbsp;
		<b>Forms </b></td><td border="0"><i>wide</i> = 253 (0xFD)<br></td></tr><tr border="0"><td border="0" valign="top">&nbsp;
		&nbsp;&middot;&nbsp;<b>Description </b></td><td border="0">The <i>wide</i> instruction modifies another
instruction to take longer operands.  The format of the
operands depends upon the <i>opcode</i>.</td></tr><tr border="0"><td border="0" valign="top">&nbsp;
		&nbsp;&middot;&nbsp;<b>Notes </b></td><td border="0">The documentation for other instructions includes
information on their wide forms where appropriate.<p>

There is no direct format for this instruction,
because <i>wide</i> is not required for the direct
encoding.</td></tr></table><br><br><p align="center"> <font size="-2">Copyright &copy; Southern 
	Storm Software Pty Ltd 2002 <br> Licensed under GNU FDL </font></p></body></html>