[all-commits] [llvm/llvm-project] 192331: [lldb] [Process/Linux] Support arbitrarily-sized F...

Michał Górny via All-commits all-commits at lists.llvm.org
Wed Oct 20 06:07:40 PDT 2021


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 192331b890e238a8ede4e61e6c5294e7eaa365fd
      https://github.com/llvm/llvm-project/commit/192331b890e238a8ede4e61e6c5294e7eaa365fd
  Author: Michał Górny <mgorny at moritz.systems>
  Date:   2021-10-20 (Wed, 20 Oct 2021)

  Changed paths:
    M lldb/source/Plugins/Process/Linux/NativeRegisterContextLinux_arm.cpp

  Log Message:
  -----------
  [lldb] [Process/Linux] Support arbitrarily-sized FPR writes on ARM

Support arbitrarily-sized FPR writes on ARM in order to fix writing qN
registers directly.  Currently, writing them works only by accident
due to value_regs splitting them into smaller writes via dN and sN
registers.

Differential Revision: https://reviews.llvm.org/D112131


  Commit: 99277a81f807e6f4c63ececdb6974d6d5f1f3562
      https://github.com/llvm/llvm-project/commit/99277a81f807e6f4c63ececdb6974d6d5f1f3562
  Author: Michał Górny <mgorny at moritz.systems>
  Date:   2021-10-20 (Wed, 20 Oct 2021)

  Changed paths:
    M lldb/source/Plugins/Process/Utility/RegisterInfos_arm.h

  Log Message:
  -----------
  [lldb] [Process/Utility] Fix value_regs/invalidate_regs for ARM

Fix incorrect values for value_regs, and incomplete values for
invalidate_regs in RegisterInfos_arm.  The value_regs entry needs
to list only one base (i.e. larger) register that needs to be read
to get the value for this register, while invalidate_regs needs to list
all other registers (including pseudo-register) whose values would
change when this register is written to.

7a8ba4ffbeecb5070926b80bb839a4d80539f1ac fixed a similar problem
for ARM64.

Differential Revision: https://reviews.llvm.org/D112066


  Commit: f290efc32622cc59566ec7ac13e74a039b6047c2
      https://github.com/llvm/llvm-project/commit/f290efc32622cc59566ec7ac13e74a039b6047c2
  Author: Michał Górny <mgorny at moritz.systems>
  Date:   2021-10-20 (Wed, 20 Oct 2021)

  Changed paths:
    M lldb/include/lldb/lldb-private-types.h
    M lldb/source/Plugins/ABI/X86/ABIX86.cpp
    M lldb/source/Plugins/Process/gdb-remote/GDBRemoteRegisterContext.cpp
    M lldb/source/Plugins/Process/gdb-remote/ProcessGDBRemote.cpp
    M lldb/source/Target/DynamicRegisterInfo.cpp
    M lldb/test/API/functionalities/gdb_remote_client/TestGDBServerTargetXML.py

  Log Message:
  -----------
  [lldb] [ABI/X86] Support combining xmm* and ymm*h regs into ymm*

gdbserver does not expose combined ymm* registers but rather XSAVE-style
split xmm* and ymm*h portions.  Extend value_regs to support combining
multiple registers and use it to create user-friendly ymm* registers
that are combined from split xmm* and ymm*h portions.

Differential Revision: https://reviews.llvm.org/D108937


Compare: https://github.com/llvm/llvm-project/compare/be6c8dc765c3...f290efc32622


More information about the All-commits mailing list