System.Reflection.Emit.OpCodes.Localloc Field

Allocates a certain number of bytes from the local dynamic memory pool and pushes the address (a transient pointer, type *) of the first allocated byte onto the evaluation stack.

Syntax

public static readonly OpCode Localloc

Remarks

The following table lists the instruction's hexadecimal and Microsoft Intermediate Language (MSIL) assembly format, along with a brief reference summary:

FE 0F

localloc

Allocate space from the local heap.

The stack transitional behavior, in sequential order, is:

[The 'ordered' type of list has not been implemented in the ECMA stylesheet.]

The localloc instruction allocates size (type natural unsigned int) bytes from the local dynamic memory pool and returns the address (a transient pointer, type *) of the first allocated byte. The block of memory returned is initialized to 0 only if the initialize flag on the method is true. When the current method executes a OpCodes.Ret, the local memory pool is made available for reuse.

The resulting address is aligned so that any primitive data type can be stored there using the stind instructions (such as OpCodes.Stind_I4) and loaded using the ldind instructions (such as OpCodes.Ldind_I4).

The localloc instruction cannot occur within a filter, catch, finally, or fault block.

StackOverflowException is thrown if there is insufficient memory to service the request.

The following ILGenerator.Emit(OpCode) method overload can use the localloc opcode:

  • ILGenerator.Emit(OpCode)

Requirements

Namespace: System.Reflection.Emit
Assembly: mscorlib (in mscorlib.dll)
Assembly Versions: 1.0.5000.0, 2.0.0.0, 4.0.0.0