[all-commits] [llvm/llvm-project] ad45eb: [ARM] Fix problems with register list in vscclrm (...

John Brawn via All-commits all-commits at lists.llvm.org
Thu Oct 17 03:15:31 PDT 2024


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: ad45eb4a9c74a878998efe8fd734f5ae7af5003d
      https://github.com/llvm/llvm-project/commit/ad45eb4a9c74a878998efe8fd734f5ae7af5003d
  Author: John Brawn <john.brawn at arm.com>
  Date:   2024-10-17 (Thu, 17 Oct 2024)

  Changed paths:
    M llvm/lib/Target/ARM/ARMRegisterInfo.td
    M llvm/lib/Target/ARM/AsmParser/ARMAsmParser.cpp
    M llvm/lib/Target/ARM/Disassembler/ARMDisassembler.cpp
    M llvm/lib/Target/ARM/MCTargetDesc/ARMInstPrinter.cpp
    M llvm/lib/Target/ARM/MCTargetDesc/ARMMCCodeEmitter.cpp
    M llvm/test/MC/ARM/vlstm-vlldm-diag.s
    M llvm/test/MC/ARM/vscclrm-asm.s
    M llvm/test/MC/Disassembler/ARM/vscclrm.txt

  Log Message:
  -----------
  [ARM] Fix problems with register list in vscclrm (#111825)

The register list in vscclrm is unusual in three ways:
 * The encoded size can be zero, meaning the list contains only vpr.
* Double-precision registers past d15 are permitted even when the
subtarget doesn't have them, they are instead ignored when the
instruction executes.
* The single-precision variant allows double-precision registers d16
onwards, which are encoded as a pair of single-precision registers.

Fixing this also incidentally changes a vlldm/vlstm error message: when
the first register is in the range d16-d31 we now get the "operand must
be exactly..." error instead of "register expected".



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list