• Home
  • Install
  • Cosmos Website
  • Articles
  • Cosmos
  • X#
  • IL2CPU
Show / Hide Table of Contents
  • Cosmos.IL2CPU
    • _ExceptionRegionInfo
    • _FieldInfo
    • CompilerHelpers
    • CosmosAssembler
    • ExceptionHelper
    • ExceptionHelperRefs
    • GCImplementationRefs
    • ICompilerEngineSettings
    • Il2cpuMethodInfo
    • Il2cpuMethodInfo.TypeEnum
    • ILOp
    • ILOpCode
    • ILOpCode.Code
    • ILReader
    • KernelPanics
    • MethodBaseComparer
    • OpCodeAttribute
    • PlugInfo
    • Program
    • ScannerQueueItem
    • SZArrayImpl<T>
    • VTablesImplRefs
  • Cosmos.IL2CPU.Extensions
    • FieldExtensions
    • TypeExtensions
  • Cosmos.IL2CPU.ILOpCodes
    • Box<T>
    • NullRef
    • OpBranch
    • OpDouble
    • OpField
    • OpInt
    • OpInt64
    • OpMethod
    • OpNone
    • OpSig
    • OpSingle
    • OpString
    • OpSwitch
    • OpToken
    • OpType
    • OpVar
  • Cosmos.IL2CPU.MethodAnalysis
    • ILGroup
    • ILMethod
  • Cosmos.IL2CPU.X86.IL
    • Add
    • Add_Ovf
    • Add_Ovf_Un
    • And
    • Arglist
    • Box
    • Br
    • Branch
    • Break
    • Call
    • Calli
    • Callvirt
    • Castclass
    • Ceq
    • Cgt
    • Cgt_Un
    • Ckfinite
    • Clt
    • Clt_Un
    • Constrained
    • Conv_I
    • Conv_I1
    • Conv_I2
    • Conv_I4
    • Conv_I8
    • Conv_Ovf_I
    • Conv_Ovf_I_Un
    • Conv_Ovf_I1
    • Conv_Ovf_I1_Un
    • Conv_Ovf_I2
    • Conv_Ovf_I2_Un
    • Conv_Ovf_I4
    • Conv_Ovf_I4_Un
    • Conv_Ovf_I8
    • Conv_Ovf_I8_Un
    • Conv_Ovf_U
    • Conv_Ovf_U_Un
    • Conv_Ovf_U1
    • Conv_Ovf_U1_Un
    • Conv_Ovf_U2
    • Conv_Ovf_U2_Un
    • Conv_Ovf_U4
    • Conv_Ovf_U4_Un
    • Conv_Ovf_U8
    • Conv_Ovf_U8_Un
    • Conv_R_Un
    • Conv_R4
    • Conv_R8
    • Conv_U
    • Conv_U1
    • Conv_U2
    • Conv_U4
    • Conv_U8
    • Cpblk
    • Cpobj
    • Div
    • Div_Un
    • Dup
    • Endfilter
    • Endfinally
    • Initblk
    • Initobj
    • Isinst
    • Jmp
    • Ldarg
    • Ldarga
    • Ldc_I4
    • Ldc_I8
    • Ldc_R4
    • Ldc_R8
    • Ldelem
    • Ldelem_I
    • Ldelem_I1
    • Ldelem_I2
    • Ldelem_I4
    • Ldelem_I8
    • Ldelem_R4
    • Ldelem_R8
    • Ldelem_Ref
    • Ldelem_U1
    • Ldelem_U2
    • Ldelem_U4
    • Ldelema
    • Ldfld
    • Ldflda
    • Ldftn
    • Ldind
    • Ldlen
    • Ldloc
    • Ldloca
    • Ldnull
    • Ldobj
    • Ldsfld
    • Ldsflda
    • LdStr
    • Ldtoken
    • Ldvirtftn
    • Leave
    • Localloc
    • Mkrefany
    • Mul
    • Mul_Ovf
    • Mul_Ovf_Un
    • Neg
    • Newarr
    • Newobj
    • Nop
    • Not
    • Or
    • Pop
    • Readonly
    • Refanytype
    • Refanyval
    • Rem
    • Rem_Un
    • Ret
    • Rethrow
    • Shl
    • Shr
    • Shr_Un
    • Sizeof
    • Starg
    • Stelem
    • Stelem_I
    • Stelem_I1
    • Stelem_I2
    • Stelem_I4
    • Stelem_I8
    • Stelem_R4
    • Stelem_R8
    • Stelem_Ref
    • Stfld
    • Stind
    • Stloc
    • Stobj
    • Stsfld
    • Sub
    • Sub_Ovf
    • Sub_Ovf_Un
    • Switch
    • Throw
    • Unaligned
    • Unbox
    • Unbox_Any
    • Volatile
    • Xor
  • IL2CPU.API
    • InlineAttribute
    • LabelName
    • ObjectPointerAccess
    • ObjectUtils
    • ObjectUtils.InstanceTypeEnum
    • TargetPlatform
  • IL2CPU.API.Attribs
    • AsmLabel
    • AsmMarker
    • AsmMarker.Type
    • BootEntry
    • DebugStub
    • FieldAccess
    • FieldType
    • ForceIncludeAttribute
    • ManifestResourceStreamAttribute
    • Plug
    • PlugAssembly
    • PlugAssembly.AssemblyType
    • PlugField
    • PlugMethod

Class Ldarg

Inheritance
System.Object
ILOp
Ldarg
Inherited Members
ILOp.Assembler
ILOp.DebugEnabled
ILOp.GetTypeIDLabel(Type)
ILOp.Align(UInt32, UInt32)
ILOp.SignedAlign(Int32, Int32)
ILOp.GetLabel(Il2cpuMethodInfo, ILOpCode)
ILOp.GetLabel(MethodBase)
ILOp.GetLabel(Il2cpuMethodInfo)
ILOp.GetLabel(Il2cpuMethodInfo, Int32)
ILOp.ToString()
ILOp.Jump_End(Il2cpuMethodInfo)
ILOp.GetStackCountForLocal(Il2cpuMethodInfo, Type)
ILOp.GetEBPOffsetForLocal(Il2cpuMethodInfo, Int32)
ILOp.GetEBPOffsetForLocalForDebugger(Il2cpuMethodInfo, Int32)
ILOp.GetFieldsInfo(Type, Boolean)
ILOp.GetStorageSize(Type)
ILOp.EmitExceptionCleanupAfterCall(Assembler, UInt32, UInt32, UInt32)
ILOp.EmitExceptionLogic(Assembler, Il2cpuMethodInfo, ILOpCode, Boolean, Action, String)
ILOp.DoNullReferenceCheck(Assembler, Boolean, Int32)
ILOp.ResolveField(Type, String, Boolean)
ILOp.ResolveField(FieldInfo)
ILOp.IsReferenceType(Type)
ILOp.TypeIsSigned(Type)
ILOp.IsIntegerBasedType(Type)
ILOp.IsLongBasedType(Type)
ILOp.IsSameValueType(Type, Type)
ILOp.IsIntegralTypeOrPointer(Type)
ILOp.IsPointer(Type)
ILOp.IsObject(Type)
ILOp.IsByRef(Type)
ILOp.SizeOfType(Type)
ILOp.TypeIsFloat(Type)
System.Object.Equals(System.Object)
System.Object.Equals(System.Object, System.Object)
System.Object.GetHashCode()
System.Object.GetType()
System.Object.MemberwiseClone()
System.Object.ReferenceEquals(System.Object, System.Object)
Namespace: Cosmos.IL2CPU.X86.IL
Assembly: Cosmos.IL2CPU.dll
Syntax
[OpCode(ILOpCode.Code.Ldarg)]
public class Ldarg : ILOp

Constructors

| Improve this Doc View Source

Ldarg(Assembler)

Declaration
public Ldarg(Assembler aAsmblr)
Parameters
Type Name Description
Assembler aAsmblr

Methods

| Improve this Doc View Source

DoExecute(Assembler, Il2cpuMethodInfo, UInt16)

Declaration
public static void DoExecute(Assembler Assembler, Il2cpuMethodInfo aMethod, ushort aParam)
Parameters
Type Name Description
Assembler Assembler
Il2cpuMethodInfo aMethod
System.UInt16 aParam
| Improve this Doc View Source

Execute(Il2cpuMethodInfo, ILOpCode)

Declaration
public override void Execute(Il2cpuMethodInfo aMethod, ILOpCode aOpCode)
Parameters
Type Name Description
Il2cpuMethodInfo aMethod
ILOpCode aOpCode
Overrides
ILOp.Execute(Il2cpuMethodInfo, ILOpCode)
| Improve this Doc View Source

GetArgumentDisplacement(Il2cpuMethodInfo, UInt16)

This methods gives the full displacement for an argument. Arguments are in "reverse" order:

public static int Add(int a, int b)
In this situation, argument b is at EBP+8, argument A is at EBP+12

After the method returns, the return value is on the stack. This means, that when the return size is larger than the total argument size, we need to reserve extra stack:

public static Int64 Convert(int value)
In this situation, argument
value
is at EBP+12

Declaration
public static int GetArgumentDisplacement(Il2cpuMethodInfo aMethod, ushort aIndex)
Parameters
Type Name Description
Il2cpuMethodInfo aMethod
System.UInt16 aIndex
Returns
Type Description
System.Int32
| Improve this Doc View Source

GetArgumentDisplacement(UInt16, Type, Type[], Type, Boolean)

Declaration
public static int GetArgumentDisplacement(ushort aIndex, Type aDeclaringType, Type[] aParameterTypes, Type aReturnType, bool aIsStatic)
Parameters
Type Name Description
System.UInt16 aIndex
System.Type aDeclaringType
System.Type[] aParameterTypes
System.Type aReturnType
System.Boolean aIsStatic
Returns
Type Description
System.Int32
| Improve this Doc View Source

GetArgumentType(Il2cpuMethodInfo, UInt16)

Declaration
public static Type GetArgumentType(Il2cpuMethodInfo aMethod, ushort aParam)
Parameters
Type Name Description
Il2cpuMethodInfo aMethod
System.UInt16 aParam
Returns
Type Description
System.Type
  • Improve this Doc
  • View Source
☀
☾
In This Article
Back to top
☀
☾