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 |
|---|