<div dir="ltr"><div style="line-height:21px;color:rgb(0,0,0);font-family:Verdana;font-size:17px"><span style="font-family:'lucida Grande',Verdana,'Microsoft YaHei';line-height:23.8px">Hi all,</span></div><div style="line-height:21px;color:rgb(0,0,0);font-family:Verdana;font-size:17px"><span style="font-family:'lucida Grande',Verdana,'Microsoft YaHei';line-height:23.8px">      I am trying to instrument a program to insert a function call</span><font style="line-height:1.5;display:inline;font-family:'lucida Grande',Verdana,'Microsoft YaHei';background-color:rgba(0,0,0,0)"> after SP-Update instructions. SP-Update instructions are those modify the esp register such as mov esp, eax ; xchg eax, esp ; add esp, [eax+0x20] and so on. It seems that I should dig into the back end. But which representation of instructions should I focus on? MachineInstr or MCInst or other class? </font><span style="font-family:'lucida Grande',Verdana,'Microsoft YaHei';line-height:25.5px">Where is the definitions of all opcodes and registers? </span><font style="line-height:1.5;display:inline;font-family:'lucida Grande',Verdana,'Microsoft YaHei';background-color:rgba(0,0,0,0)">In which part of the back end should I inspect the instructions?  And How to insert a function call? May I use MachineInstrBuilder::BuildMI ? I am so sorry to ask so many questions because I am a newbie to LLVM. I would appreciate it if any one coulld help me.</font></div></div>