[all-commits] [llvm/llvm-project] e52048: [lldb] [Process/FreeBSDRemote] Access FPR via Regi...

Michał Górny via All-commits all-commits at lists.llvm.org
Mon Nov 16 04:03:23 PST 2020


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: e520487bf4bf1efc83e1f8175c6fd8356495bb5d
      https://github.com/llvm/llvm-project/commit/e520487bf4bf1efc83e1f8175c6fd8356495bb5d
  Author: Michał Górny <mgorny at moritz.systems>
  Date:   2020-11-16 (Mon, 16 Nov 2020)

  Changed paths:
    M lldb/source/Plugins/Process/FreeBSDRemote/NativeRegisterContextFreeBSD_x86_64.cpp
    M lldb/source/Plugins/Process/FreeBSDRemote/NativeRegisterContextFreeBSD_x86_64.h
    M lldb/unittests/Process/Utility/RegisterContextFreeBSDTest.cpp

  Log Message:
  -----------
  [lldb] [Process/FreeBSDRemote] Access FPR via RegisterInfo offsets

Use offset-based method to access base x87 FPU registers, using offsets
relative to the position of 'struct FPR', as determined by the location
of first register in it (fctrl).  Change m_fpr to use a fixed-size array
matching FXSAVE size (512 bytes).  Add unit tests for verifying
RegisterInfo offsets and sizes against the FXSAVE layout.

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


  Commit: 6adb55877c4bae6c75ab0d2c0374fab6787bff2d
      https://github.com/llvm/llvm-project/commit/6adb55877c4bae6c75ab0d2c0374fab6787bff2d
  Author: Michał Górny <mgorny at moritz.systems>
  Date:   2020-11-16 (Mon, 16 Nov 2020)

  Changed paths:
    M lldb/source/Plugins/Process/FreeBSDRemote/NativeRegisterContextFreeBSD_x86_64.cpp
    M lldb/source/Plugins/Process/FreeBSDRemote/NativeRegisterContextFreeBSD_x86_64.h
    M lldb/source/Plugins/Process/Utility/NativeRegisterContextWatchpoint_x86.h
    M lldb/unittests/Process/Utility/RegisterContextFreeBSDTest.cpp

  Log Message:
  -----------
  [lldb] [Process/FreeBSDRemote] Access debug registers via offsets

Use offset-based method to access x86 debug registers.  This also
involves adding a test for the correctness of these offsets, and making
GetDR() method of NativeRegisterContextWatchpoint_x86 public to avoid
duplicate code.

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


  Commit: 68ca01eb50af0a4aca06c90a4ce1eb78029603f6
      https://github.com/llvm/llvm-project/commit/68ca01eb50af0a4aca06c90a4ce1eb78029603f6
  Author: Michał Górny <mgorny at moritz.systems>
  Date:   2020-11-16 (Mon, 16 Nov 2020)

  Changed paths:
    M lldb/source/Plugins/Process/FreeBSDRemote/NativeRegisterContextFreeBSD_x86_64.cpp
    M lldb/source/Plugins/Process/FreeBSDRemote/NativeRegisterContextFreeBSD_x86_64.h

  Log Message:
  -----------
  [lldb] [Process/FreeBSDRemote] Modernize and simplify YMM logic

Eliminate the remaining swith-case code for register getters,
and migrate YMM registers to regset-oriented model.  Since these
registers are recombined from XMM and YMM_Hi128 XSAVE blocks, while LLDB
gdb-server protocol transmits YMM registers whole, the offset-based
model will not work here.  Nevertheless, some improvement was possible.

Replace generic 'XSaveRegSet' along with sub-sets for XSAVE components
with 'YMMRegSet' (and more regsets in the future as further components
are implemented).  Create a helper GetYMMSplitReg() method that obtains
pointers to the appropriate XMM and YMM_Hi128 blocks to reduce code
duplication.

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


  Commit: b9734c6b44e52fd94f9fe19f8ce60f55c4d3819c
      https://github.com/llvm/llvm-project/commit/b9734c6b44e52fd94f9fe19f8ce60f55c4d3819c
  Author: Michał Górny <mgorny at moritz.systems>
  Date:   2020-11-16 (Mon, 16 Nov 2020)

  Changed paths:
    M lldb/source/Plugins/Process/FreeBSDRemote/NativeRegisterContextFreeBSD_x86_64.cpp
    M lldb/source/Plugins/Process/FreeBSDRemote/NativeRegisterContextFreeBSD_x86_64.h

  Log Message:
  -----------
  [lldb] [Process/FreeBSDRemote] Optimize regset pointer logic

Create a helper GetOffsetRegSetData() method to get pointer
to the regset data accounting for the necessary offset.  Establish
the offsets in the constructor and store them in the structure.  This
avoids having to add new Get*Offset() methods and combines some common
code.

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


Compare: https://github.com/llvm/llvm-project/compare/0bee8c784b3f...b9734c6b44e5


More information about the All-commits mailing list