Yue Chen
2015-Mar-13 20:42 UTC
[LLVMdev] Emit 4-byte-displacement jump instructions instead of short one-byte-displacement jump instructions, when generating machine code, under x86_64
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 -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20150313/1957c864/attachment.html>
Craig Topper
2015-Mar-14 01:11 UTC
[LLVMdev] Emit 4-byte-displacement jump instructions instead of short one-byte-displacement jump instructions, when generating machine code, under x86_64
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>