[llvm-dev] Replace "ret" with "pop+jump"

Craig Topper via llvm-dev llvm-dev at lists.llvm.org
Wed Aug 8 21:11:02 PDT 2018


You might be able to just check for the return instruction in
X86AsmPrinter::EmitInstruction where we convert from MachineInstr to
MCInst. You can change it to a POP and a JUMP MCInst.

~Craig


On Wed, Aug 8, 2018 at 8:31 PM mayuyu.io via llvm-dev <
llvm-dev at lists.llvm.org> wrote:

> IndirectBr only works for Branch instructions, not ret.
> The latter one seems likely however I’m no where near a backend expert so
> I could be wrong : (
>
> Zhang
>
> > 在 2018年8月9日,11:23,PenYiWang via llvm-dev <llvm-dev at lists.llvm.org> 写道:
> >
> > Hi
> >
> > I want to replace all the return instructions in the program with pop
> <reg>; jmp <reg>.
> >
> > Should I use  IRBuilder in LLVM IR level?
> >
> > I found that there is a IRBuilder::CreateIndirectBr
> >
> > Or Should I modify the code in lib/Target/X86/X86ISelLowering.cpp in
> backend ?
> >
> > I found that there is a X86TargetLowering::LowerCall
> >
> > Which is better?
> >
> > Thanks
> > _______________________________________________
> > LLVM Developers mailing list
> > llvm-dev at lists.llvm.org
> > http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
>
>
> _______________________________________________
> LLVM Developers mailing list
> llvm-dev at lists.llvm.org
> http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20180808/cee9de01/attachment.html>


More information about the llvm-dev mailing list