Code:
/ FXUpdate3074 / FXUpdate3074 / 1.1 / untmp / whidbey / QFE / ndp / clr / src / BCL / System / Reflection / Emit / Opcode.cs / 1 / Opcode.cs
// ==++==
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
// ==--==
namespace System.Reflection.Emit {
using System;
using System.Security.Permissions;
[System.Runtime.InteropServices.ComVisible(true)]
public struct OpCode
{
internal String m_stringname;
internal StackBehaviour m_pop;
internal StackBehaviour m_push;
internal OperandType m_operand;
internal OpCodeType m_type;
internal int m_size;
internal byte m_s1;
internal byte m_s2;
internal FlowControl m_ctrl;
// Specifies whether the current instructions causes the control flow to
// change unconditionally.
internal bool m_endsUncondJmpBlk;
// Specifies the stack change that the current instruction causes not
// taking into account the operand dependant stack changes.
internal int m_stackChange;
internal OpCode(String stringname, StackBehaviour pop, StackBehaviour push, OperandType operand, OpCodeType type, int size, byte s1, byte s2, FlowControl ctrl, bool endsjmpblk, int stack)
{
m_stringname = stringname;
m_pop = pop;
m_push = push;
m_operand = operand;
m_type = type;
m_size = size;
m_s1 = s1;
m_s2 = s2;
m_ctrl = ctrl;
m_endsUncondJmpBlk = endsjmpblk;
m_stackChange = stack;
}
internal bool EndsUncondJmpBlk()
{
return m_endsUncondJmpBlk;
}
internal int StackChange()
{
return m_stackChange;
}
public OperandType OperandType
{
get
{
return (m_operand);
}
}
public FlowControl FlowControl
{
get
{
return (m_ctrl);
}
}
public OpCodeType OpCodeType
{
get
{
return (m_type);
}
}
public StackBehaviour StackBehaviourPop
{
get
{
return (m_pop);
}
}
public StackBehaviour StackBehaviourPush
{
get
{
return (m_push);
}
}
public int Size
{
get
{
return (m_size);
}
}
public short Value
{
get
{
if (m_size == 2)
return (short) (m_s1 << 8 | m_s2);
return (short) m_s2;
}
}
public String Name
{
get
{
return m_stringname;
}
}
public override bool Equals(Object obj)
{
if (obj is OpCode)
return Equals((OpCode)obj);
else
return false;
}
public bool Equals(OpCode obj)
{
return obj.m_s1 == m_s1 && obj.m_s2 == m_s2;
}
public static bool operator ==(OpCode a, OpCode b)
{
return a.Equals(b);
}
public static bool operator !=(OpCode a, OpCode b)
{
return !(a == b);
}
public override int GetHashCode()
{
return this.m_stringname.GetHashCode();
}
public override String ToString()
{
return m_stringname;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- QueryAccessibilityHelpEvent.cs
- MetadataReference.cs
- DbProviderFactory.cs
- ParameterElement.cs
- EncodingInfo.cs
- ApplicationServicesHostFactory.cs
- HtmlTable.cs
- Cursor.cs
- SharedPersonalizationStateInfo.cs
- ReachIDocumentPaginatorSerializerAsync.cs
- GridView.cs
- ResourceSet.cs
- PropertyTabAttribute.cs
- UnsafeNativeMethodsTablet.cs
- Size3D.cs
- PageSettings.cs
- TextProviderWrapper.cs
- FontStretch.cs
- Win32NamedPipes.cs
- Symbol.cs
- ToolStripContainer.cs
- DataColumnMappingCollection.cs
- ToolboxComponentsCreatedEventArgs.cs
- DateTimeSerializationSection.cs
- ImageList.cs
- FileRecordSequence.cs
- DynamicRenderer.cs
- CodeNamespaceImportCollection.cs
- Int32Storage.cs
- StringArrayConverter.cs
- Vector3D.cs
- DataGridViewUtilities.cs
- SpellerHighlightLayer.cs
- TableDesigner.cs
- NetSectionGroup.cs
- TimeSpanSecondsConverter.cs
- DbDataReader.cs
- BinaryObjectInfo.cs
- FileLoadException.cs
- TopClause.cs
- _NTAuthentication.cs
- HtmlEncodedRawTextWriter.cs
- ClientProxyGenerator.cs
- SafeSecurityHandles.cs
- Clause.cs
- CapabilitiesPattern.cs
- FrameworkContentElementAutomationPeer.cs
- FunctionParameter.cs
- PopOutPanel.cs
- ToolStripControlHost.cs
- UnSafeCharBuffer.cs
- XmlDataSource.cs
- ChannelOptions.cs
- CodeTypeReferenceExpression.cs
- SqlClientPermission.cs
- PageCodeDomTreeGenerator.cs
- ConfigXmlSignificantWhitespace.cs
- MouseGesture.cs
- IPHostEntry.cs
- DirectoryNotFoundException.cs
- ExtendedProperty.cs
- MonitorWrapper.cs
- NativeMethods.cs
- log.cs
- BaseAddressPrefixFilterElementCollection.cs
- EmbeddedMailObject.cs
- SqlServer2KCompatibilityCheck.cs
- BrowserCapabilitiesFactoryBase.cs
- Configuration.cs
- sqlnorm.cs
- Vector3dCollection.cs
- PeerNameRecord.cs
- WorkflowMarkupSerializationManager.cs
- FreezableOperations.cs
- WebPageTraceListener.cs
- WebPartConnectionsConfigureVerb.cs
- UnionCodeGroup.cs
- ObjectStateManager.cs
- XmlWellformedWriter.cs
- CategoryGridEntry.cs
- RectValueSerializer.cs
- GifBitmapEncoder.cs
- CodeDirectoryCompiler.cs
- Query.cs
- HttpCachePolicyWrapper.cs
- ExtenderControl.cs
- UnsettableComboBox.cs
- UnsafeNativeMethodsPenimc.cs
- SyntaxCheck.cs
- CodeBlockBuilder.cs
- ItemType.cs
- HitTestFilterBehavior.cs
- TableRowCollection.cs
- GPStream.cs
- DispatcherExceptionEventArgs.cs
- ZoneButton.cs
- HwndTarget.cs
- PropertyGroupDescription.cs
- InvokeWebServiceDesigner.cs
- ToolStripTextBox.cs