[PATCH] D76900: Enable IBT(Indirect Branch Tracking) in JIT with CET(Control-flow Enforcement Technology)

Xiang Zhang via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Wed Apr 1 23:23:24 PDT 2020


xiangzhangllvm updated this revision to Diff 254433.
xiangzhangllvm added a comment.

1. Sync with HJ's large code changes in https://github.com/hjl-tools/llvm-project/commit/6a85ba472143c91e5686e1f0faf7fea7b4f0e350
2. Add Eli's test in https://bugs.llvm.org/show_bug.cgi?id=45364 to llc test and JIT test.

For Large code model:
The compiler is required to use the movabs instruction, as in the medium code model, even for dealing with addresses inside the text section.
Additionally, indirect branches are needed when branching to addresses whose offset from the current instruction pointer is unknown.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D76900/new/

https://reviews.llvm.org/D76900

Files:
  llvm/lib/Target/X86/X86IndirectBranchTracking.cpp
  llvm/lib/Target/X86/X86TargetMachine.cpp
  llvm/lib/Target/X86/X86TargetMachine.h
  llvm/test/CodeGen/X86/indirect-branch-tracking-cm-lager.ll
  llvm/test/ExecutionEngine/MCJIT/cet-code-model-lager.ll

-------------- next part --------------
A non-text attachment was scrubbed...
Name: D76900.254433.patch
Type: text/x-patch
Size: 6106 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20200402/023d92ef/attachment.bin>


More information about the llvm-commits mailing list