LLVM: lib/Target/AArch64/AArch64SLSHardening.cpp File Reference (original) (raw)

Go to the source code of this file.

Macros
#define DEBUG_TYPE "aarch64-sls-hardening"
#define AARCH64_SLS_HARDENING_NAME "AArch64 sls hardening pass"
Functions
static const ThunkKind * getThunkKind (unsigned OriginalOpcode)
static bool isBLR (const MachineInstr &MI)
static void insertSpeculationBarrier (const AArch64Subtarget *ST, MachineBasicBlock &MBB, MachineBasicBlock::iterator MBBI, DebugLoc DL, bool AlwaysUseISBDSB=false)
static SmallString< 32 > createThunkName (const ThunkKind &Kind, Register Xn, Register Xm)
static std::tuple< const ThunkKind &, Register, Register > parseThunkName (StringRef ThunkName)
INITIALIZE_PASS (AArch64SLSHardening, "aarch64-sls-hardening", AARCH64_SLS_HARDENING_NAME, false, false) FunctionPass *llvm
Variables
static constexpr StringRef CommonNamePrefix = "__llvm_slsblr_thunk_"

AARCH64_SLS_HARDENING_NAME

#define AARCH64_SLS_HARDENING_NAME "AArch64 sls hardening pass"

DEBUG_TYPE

#define DEBUG_TYPE "aarch64-sls-hardening"

createThunkName()

getThunkKind()

INITIALIZE_PASS()

INITIALIZE_PASS ( AArch64SLSHardening ,
"aarch64-sls-hardening" ,
AARCH64_SLS_HARDENING_NAME ,
false ,
false )

insertSpeculationBarrier()

isBLR()

parseThunkName()

Definition at line 290 of file AArch64SLSHardening.cpp.

References assert(), CommonNamePrefix, llvm::StringSwitch< T, R >::Default(), llvm::StringRef::drop_front(), Fail, N, llvm::StringRef::split(), llvm::StringRef::starts_with(), and llvm::StringSwitch< T, R >::StartsWith().

CommonNamePrefix

StringRef CommonNamePrefix = "__llvm_slsblr_thunk_" staticconstexpr