[LLVMdev] Emit 4-byte-displacement jump instructions instead of short one-byte-displacement jump instructions, when generating machine code, under x86_64

Craig Topper craig.topper at gmail.com
Fri Mar 13 18:11:10 PDT 2015


There is an -mc-relax-all command line flag that should do this. It will
also use longer forms of some adds, subs, etc. Not sure how to set it from
clang, but hopefully this helps point you in the right direction.

On Fri, Mar 13, 2015 at 1:42 PM, Yue Chen <ychen.contact at gmail.com> wrote:

> Dear all,
>
> We are working on a research project based on LLVM. I wonder if there is
> any easy way to make LLVM
> NOT emit short jump instructions with 1-byte-displacement, like "75 30
>  JNE +30", "eb 1a   JMP +1a", etc;
> instead only emit 4-byte-displacement jump instructions with 3-byte zero
> paddings, like
> "0f 85 30 00 00 00   JNE +30", "e9 1a 00 00 00    JMPQ +1a", etc., under
> the x86_64 architecture.
> Apparently, this would increase the code size.
>
> Best regards and thanks,
> Yue
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>


-- 
~Craig
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150313/ebd06933/attachment.html>


More information about the llvm-dev mailing list