[PATCH] Modify Aarch64 prologue analyzer to accept 128-bit registers

pcarroll@codesourcery.com pcarroll@codesourcery.com
Mon Nov 13 17:28:00 GMT 2017


GDB has a routine, aarch64_analyze_prologue, that looks through a function's prologue, to see how it affects the stack.
This was changed for Bugzilla #20682 to add support for recognizing the 'stp' instruction with floating-point registers.
That patch worked when 64-bit floating-point registers are used in a function prologue.
However, it is also possible to specify 128-bit floating-point registers with the 'stp' instruction.
My patch extends that function so it works for either 64-bit or 128-bit floating-point registers.
The patch takes care of tracking the appropriate memory locations that would be affected by the use of either size of register.

The assumption is that it is not important to know whether the register being saved is 64-bits or 128-bits in size, as long as the memory is tracked appropriately.
Instead, it is only important to know that a floating-point register (D) was being stored, rather than a normal register (X).
That behavior is unchanged.

2017-11-10  Paul Carroll  <pcarroll@codesourcery.com>

             * aarch64-tdep.c (aarch64_analyze_prologue):  Added support for
             128-bit registers with the 'stp' instruction.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: aarch64_stp_patch
Type: application/octet-stream
Size: 2729 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/gdb-patches/attachments/20171113/ec4c647c/attachment.obj>


More information about the Gdb-patches mailing list