From 7aa2dd11430c51325382f27b836e200a6b09bfad Mon Sep 17 00:00:00 2001 From: Artyom Tetyukhin <51746822+arttet@users.noreply.github.com> Date: Tue, 19 Dec 2023 16:31:14 +0400 Subject: [PATCH] Add pointer authentication intrinsics --- compiler/rustc_codegen_llvm/src/context.rs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/compiler/rustc_codegen_llvm/src/context.rs b/compiler/rustc_codegen_llvm/src/context.rs index 3053c4e0daaa9..de62a4084e176 100644 --- a/compiler/rustc_codegen_llvm/src/context.rs +++ b/compiler/rustc_codegen_llvm/src/context.rs @@ -930,6 +930,14 @@ impl<'ll> CodegenCx<'ll, '_> { ifn!("llvm.va_end", fn(ptr) -> void); ifn!("llvm.va_copy", fn(ptr, ptr) -> void); + // pointer authentication intrinsics + ifn!("llvm.ptrauth.sign.i64", fn(t_i64, t_i32, t_i64) -> t_i64); + ifn!("llvm.ptrauth.auth.i64", fn(t_i64, t_i32, t_i64) -> t_i64); + ifn!("llvm.ptrauth.strip.i64", fn(t_i64, t_i32) -> t_i64); + ifn!("llvm.ptrauth.resign.i64", fn(t_i64, t_i32, t_i64, t_i32, t_i64) -> t_i64); + ifn!("llvm.ptrauth.sign_generic.i64", fn(t_i64, t_i64) -> t_i64); + ifn!("llvm.ptrauth.blend.i64", fn(t_i64, t_i64) -> t_i64); + if self.sess().instrument_coverage() { ifn!("llvm.instrprof.increment", fn(ptr, t_i64, t_i32, t_i32) -> void); }