================
@@ -335,6 +335,50 @@ class PacRetAnalysis
     });
   }
 
+  BitVector getClobberedRegs(const MCInst &Point) const {
+    BitVector Clobbered(NumRegs, false);
+    // Assume a call can clobber all registers, including callee-saved
+    // registers. There's a good chance that callee-saved registers will be
+    // saved on the stack at some point during execution of the callee.
+    // Therefore they should also be considered as potentially modified by an
+    // attacker/written to.
+    // Also, not all functions may respect the AAPCS ABI rules about
+    // caller/callee-saved registers.
+    if (BC.MIB->isCall(Point))
+      Clobbered.set();
+    else
+      BC.MIB->getClobberedRegs(Point, Clobbered);
+    return Clobbered;
+  }
+
+  // Returns all registers that can be treated as if they are written by an
+  // authentication instruction.
+  SmallVector<MCPhysReg> getAuthenticatedRegs(const MCInst &Point,
----------------
kbeyls wrote:

Since this function is being changed to no longer return strictly only the 
registers that are authenticated by the instruction in `Point`, I think it 
would be best to adjust the name of this function accordingly.

I'm not sure I can easily come up with a better name. Would any of the 
following names be better?
- `getSafeToDerefRegs`
- `getNonAttackerControlledRegs`
or maybe
- `getSafeRegsWrittenBy` (since this method only returns registers written by 
`Point`?)

https://github.com/llvm/llvm-project/pull/132540
_______________________________________________
llvm-branch-commits mailing list
llvm-branch-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-branch-commits

Reply via email to