joaomoreira added inline comments.

================
Comment at: llvm/lib/Target/X86/X86AsmPrinter.cpp:121
+    if (N == Value)
+      return ~Value;
+  }
----------------
Can we use another constant blinding scheme, such as a Value++ or anything 
else? This way, we would prevent endbrs from being emitted in the indirect 
branch guards too.

Since we are using Value (prologue) and ~Value (caller/guard) for doing the 
checks, we also need to check if ~ENDBR was picked as a KCFIType, otherwise 
ENDBR will be emitted in the ibranch guards.


================
Comment at: llvm/test/CodeGen/X86/kcfi.ll:91
+
+;; Ensure we emit ~Type for unwanted values (e.g. endbr64 == 4196274163).
+; ASM-LABEL: __cfi_f5:
----------------
We need to also ensure/test that these are not emitted in the caller/indirect 
branch guards.

I assume that in the current scheme (blinding with ~Value) would be unfeasible 
to do this, so maybe we need a different approach for masking (as suggested 
above).


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D119296

_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to