July 28, 2014
Compares two values. If they are equal, the integer value 1 (int32) is pushed onto the evaluation stack; otherwise 0 (int32) is pushed onto the evaluation stack.
Assembly: mscorlib (in mscorlib.dll)
The following table lists the instruction's hexadecimal and Microsoft intermediate language (MSIL) assembly format, along with a brief reference summary:
Pushes 1 if value1 equals value2; else pushes 0.
The stack transitional behavior, in sequential order, is:
value1 is pushed onto the stack.
value2 is pushed onto the stack.
value2 and value1 are popped from the stack; value1 is compared to value2.
If value1 is equal to value2, 1 is pushed onto the stack; otherwise 0 is pushed onto the stack.
The ceq instruction compares value1 and value2. If value1 is equal to value2, then 1 (of type int32) is pushed on the stack. Otherwise 0 (of type int32) is pushed on the stack.
For floating-point number, ceq will return 0 if the numbers are unordered (either or both are NaN). The infinite values are equal to themselves.
The following Emit method overload can use the ceq opcode: