[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