[LLVMdev] Emit a jump instruction to a place inside basicblock

Xiaoguang Wang xgwang09 at gmail.com
Thu Oct 30 14:01:24 PDT 2014


On Thu, Oct 30, 2014 at 4:48 PM, Eric Christopher <echristo at gmail.com>
wrote:

>
>
> On Thu Oct 30 2014 at 1:16:38 PM Xiaoguang Wang <xgwang09 at gmail.com>
> wrote:
>
>> On Thu, Oct 30, 2014 at 2:33 PM, Robin Morisset <morisset at google.com>
>> wrote:
>>
>>> Hi,
>>>
>>> From my understanding of the LLVM IR, it is impossible to jump to the
>>> middle of a Basic Block, only to its beginning. But there is a
>>> splitBasicBlock function that seems like it might be useful to you, to make
>>> sure a basic block is starting at the exact place you want to jump.
>>>
>>> Best regards,
>>> Robin
>>>
>>
>> Thanks you all! I'm looking at splitBasicBlock and trying to use that.
>> BTW, is there a way at lower level of LLVM that can implement this
>> functionality? E.g. MCBasicBlock or MCInst?
>>
>>
> You are unlikely to want to do this at the MC level, maybe the MI level.
> What are you trying to accomplish?
>
> -eric
>
Thanks for the answer. I want to construct a table which can jump to the
address after a call instruction. And replace the call/ret instructions
with that indirection table. So to protect return address on stack.

Sincerely,
Xiaoguang
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20141030/15105541/attachment.html>


More information about the llvm-dev mailing list