[all-commits] [llvm/llvm-project] 643ac6: [AArch64][v8.3a] Add LDRA '[xN]!' alias.

Ahmed Bougacha via All-commits all-commits at lists.llvm.org
Wed Nov 13 10:38:18 PST 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: 643ac6c0420b70571ef0fc0f65ab66e736eea225
      https://github.com/llvm/llvm-project/commit/643ac6c0420b70571ef0fc0f65ab66e736eea225
  Author: Ahmed Bougacha <ahmed at bougacha.org>
  Date:   2019-11-13 (Wed, 13 Nov 2019)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64InstrFormats.td
    M llvm/test/MC/AArch64/armv8.3a-signed-pointer.s
    M llvm/test/MC/Disassembler/AArch64/armv8.3a-signed-pointer.txt

  Log Message:
  -----------
  [AArch64][v8.3a] Add LDRA '[xN]!' alias.

The instruction definition has been retroactively expanded to
allow for an alias for '[xN, 0]!' as '[xN]!'.
That wouldn't make sense on LDR, but does for LDRA.


  Commit: 7313d7d6188a0ea1cebe3aa5ec27d53f4ccc1286
      https://github.com/llvm/llvm-project/commit/7313d7d6188a0ea1cebe3aa5ec27d53f4ccc1286
  Author: Ahmed Bougacha <ahmed at bougacha.org>
  Date:   2019-11-13 (Wed, 13 Nov 2019)

  Changed paths:
    M llvm/lib/Target/AArch64/AArch64InstrFormats.td
    A llvm/test/CodeGen/AArch64/branch-target-enforcement.mir
    R llvm/test/CodeGen/AArch64/branch-target-enforcment.mir

  Log Message:
  -----------
  [AArch64][v8.3a] Add missing imp-defs on RETA*.

RETA always implicitly uses LR, unlike RET which merely has an
alias that defaults it to LR.
Additionally, RETA implicitly uses SP as well, which it uses as
a discriminator to authenticate LR.

This isn't usually noticeable, because RET_ReallyLR is used in most
of the backend.  However, the post-RA scheduler, if enabled, will
cause miscompiles if the imp-uses are missing.

While there, fix a typo in the lone affected testcase.


Compare: https://github.com/llvm/llvm-project/compare/142cbe73e9fe...7313d7d6188a


More information about the All-commits mailing list