Sorry to bother you on this issue again.

I print out all the instructions from VisitInstruction (BaseCodeVisitor) in this way:

           OpCode opCode = instr.OpCode;
           object operand = instr.Operand;
Console.Write("###" + opCode + " " + ((operand != null)? operand.ToString() : "") + "###");
           Console.WriteLine();

But I don't see ldc.r8 Math.PI...

Do you know why? Thanks...




--------------------------------------------------
From: "Jb Evain" <[email protected]>
Sent: Friday, January 08, 2010 5:58 PM
To: <[email protected]>
Subject: Re: [mono-cecil] Field read and write

2010/1/8 Li Yen Wee <[email protected]>:
But how has it got to do with me not being able to detect the field PIValue
as written and Math.PI as read?

Again, if you had bothered to investigate a little bit you would know.
PI is defined as a constant, so the compiler will inline its value
everywhere it's used

var pi = Math.PI is compiled as:

ldc.r8 3.1415926535897931
stloc pi

So if you want to detect where PI is used, you have to check for the
`ldc.r8 Math.PI` pattern.

--
Jb Evain  <[email protected]>




--
--
mono-cecil

-- 
--
mono-cecil

Reply via email to