Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ILGenerator: How to add boolean to the stack

Here is the way I can put float value to the stack(in C#):

ILGenerator gen = method.GetILGenerator();
gen.Emit(OpCodes.Ldc_R4, (float)12.5);

How can I put boolean value to the stack by using Emit method?

like image 457
Pavel Podlipensky Avatar asked Sep 06 '09 23:09

Pavel Podlipensky


1 Answers

There is no representation of a boolean value on the evaluation stack. The bool, char, byte, ushort, uint, and their signed variants are all represented as a 4-byte signed integer (i4).

True:

ldc.i4.1

False:

ldc.i4.0
like image 61
Sam Harwell Avatar answered Oct 26 '22 10:10

Sam Harwell