[all-commits] [llvm/llvm-project] b3272f: [AArch64][PAC] Select MOVK for ptrauth.blend intri...
Ahmed Bougacha via All-commits
all-commits at lists.llvm.org
Mon Jun 26 09:44:13 PDT 2023
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: b3272f5ddbfd2b4a3219df223392af7a09571cc1
https://github.com/llvm/llvm-project/commit/b3272f5ddbfd2b4a3219df223392af7a09571cc1
Author: Ahmed Bougacha <ahmed at bougacha.org>
Date: 2023-06-26 (Mon, 26 Jun 2023)
Changed paths:
M llvm/lib/Target/AArch64/AArch64InstrFormats.td
M llvm/lib/Target/AArch64/AArch64InstrInfo.td
M llvm/lib/Target/AArch64/GISel/AArch64InstructionSelector.cpp
A llvm/test/CodeGen/AArch64/ptrauth-intrinsic-blend.ll
Log Message:
-----------
[AArch64][PAC] Select MOVK for ptrauth.blend intrinsic.
Blend combines two discriminator values used by other ptrauth ops.
On AArch64 here, it does that by replacing the high 16 bits of the
LHS with the low 16 bits of the RHS.
Usually the RHS is a constant, which lets us do this efficiently in
a single MOVK. When the RHS isn't constant, we can do a BFI.
In a sense, this is implementing an ABI decision (how to lower the
software construct of "blend"), but if there are interesting variants to
consider, this could be made object-file-format-specific in some way.
Differential Revision: https://reviews.llvm.org/D132384
More information about the All-commits
mailing list