================
@@ -1888,6 +1888,19 @@ class MCPlusBuilder {
llvm_unreachable("not implemented");
}
+ /// Checks if the indirect call / jump is accepted by the landing pad at the
+ /// start of the target BasicBlock.
+ virtual bool isBTIVariantCoveringCall(MCInst &Call, MCInst &Pad) const {
+ llvm_unreachable("not implemented");
+ return false;
+ }
+
+ /// Adds a BTI landing pad to the start of the BB, that matches the indirect
+ /// call/jump inst.
+ virtual void addBTItoBBStart(BinaryBasicBlock &BB, MCInst &Call) const {
----------------
peterwaller-arm wrote:
ensureBTITarget?
makeBTITarget?
On the other hand `insertBTI` I think should be reasonably clear. If it begins
with `if (alreadyBTITarget) return;` that shouldn't be too surprising to a
developer given the purpose of BTI. At least I can't think of a good reason to
need to double them up.
https://github.com/llvm/llvm-project/pull/167329
_______________________________________________
llvm-branch-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits