Edit

Share via


OpCodes.Volatile Field

Definition

Specifies that an address currently atop the evaluation stack might be volatile, and the results of reading that ___location cannot be cached or that multiple stores to that ___location cannot be suppressed.

public: static initonly System::Reflection::Emit::OpCode Volatile;
public static readonly System.Reflection.Emit.OpCode Volatile;
 staticval mutable Volatile : System.Reflection.Emit.OpCode
Public Shared ReadOnly Volatile As OpCode 

Field Value

Remarks

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

Format Assembly Format Description
FE 13 volatile. Indicates that the subsequent pointer reference is volatile.

The stack transitional behavior, in sequential order, is:

  1. An address is pushed onto the stack.

volatile. specifies that the address is a volatile address (that is, it can be referenced externally to the current thread of execution) and the results of reading that ___location cannot be cached or that multiple stores to that ___location cannot be suppressed. Marking an access as volatile affects only that single access; other accesses to the same ___location must be marked separately. Access to volatile locations need not be performed atomically.

The Unaligned and volatile prefixes can be combined in either order. They must immediately precede a ldind, stind, ldfld, stfld, ldobj, stobj, initblk, or cpblk instruction. Only the volatile prefix is allowed for the Ldsfld and Stsfld instructions.

The following Emit method overload can use the volatile opcode:

Applies to