Function stripInstructionPtrAuthCode [src]

Some platforms use pointer authentication - the upper bits of instruction pointers contain a signature. This function clears these signature bits to make the pointer usable.

Prototype

pub inline fn stripInstructionPtrAuthCode(ptr: usize) usize

Parameters

ptr: usize

Source

pub inline fn stripInstructionPtrAuthCode(ptr: usize) usize { if (native_arch.isAARCH64()) { // `hint 0x07` maps to `xpaclri` (or `nop` if the hardware doesn't support it) // The save / restore is because `xpaclri` operates on x30 (LR) return asm ( \\mov x16, x30 \\mov x30, x15 \\hint 0x07 \\mov x15, x30 \\mov x30, x16 : [ret] "={x15}" (-> usize), : [ptr] "{x15}" (ptr), : "x16" ); } return ptr; }