binutils-gdb/gdb/arch
Torbjörn SVENSSON 60c90d8c6d gdb/arm: Handle lazy FPU state preservation
Read LSPEN, ASPEN and LSPACT bits from FPCCR and use them together
with FPCAR to identify if lazy FPU state preservation is active for
the current frame.  See "Lazy context save of FP state", in B1.5.7,
also ARM AN298, supported by Cortex-M4F architecture for details on
lazy FPU register stacking.  The same conditions are valid for other
Cortex-M cores with FPU.

This patch has been verified on a STM32F4-Discovery board by:
a) writing a non-zero value (lets use 0x1122334455667788 as an
   example) to all the D-registers in the main function
b) configured the SysTick to fire
c) in the SysTick_Handler, write some other value (lets use
   0x0022446688aaccee as an example) to one of the D-registers (D0 as
   an example) and then do "SVC #0"
d) in the SVC_Handler, write some other value (lets use
   0x0099aabbccddeeff) to one of the D-registers (D0 as an example)

In GDB, suspend the execution in the SVC_Handler function and compare
the value of the D-registers for the SVC_handler frame and the
SysTick_Handler frame.  With the patch, the value of the modified
D-register (D0) should be the new value (0x009..eff) on the
SVC_Handler frame, and the intermediate value (0x002..cee) for the
SysTick_Handler frame.  Now compare the D-register value for the
SysTick_Handler frame and the main frame.  The main frame should
have the initial value (0x112..788).

Signed-off-by: Torbjörn SVENSSON  <torbjorn.svensson@foss.st.com>
Signed-off-by: Yvan ROUX  <yvan.roux@foss.st.com>
2022-10-06 16:01:10 +02:00
..
aarch32.c Add an arm-tls feature which includes the tpidruro register from CP15. 2022-05-03 16:05:10 -07:00
aarch32.h Automatic Copyright Year update after running gdb/copyright.py 2022-01-01 19:13:23 +04:00
aarch64-insn.c Automatic Copyright Year update after running gdb/copyright.py 2022-01-01 19:13:23 +04:00
aarch64-insn.h Automatic Copyright Year update after running gdb/copyright.py 2022-01-01 19:13:23 +04:00
aarch64-mte-linux.c [AArch64] MTE corefile support 2022-07-19 15:24:31 +01:00
aarch64-mte-linux.h [AArch64] MTE corefile support 2022-07-19 15:24:31 +01:00
aarch64.c Use aarch64_features to describe register features in target descriptions. 2022-05-18 13:32:04 -07:00
aarch64.h Tweak the std::hash<> specialization for aarch64_features. 2022-05-23 11:02:55 -07:00
amd64.c gdb: Consolidate 32bit-pkeys.xml and 64bit-pkeys.xml 2022-03-31 10:25:26 -07:00
amd64.h Automatic Copyright Year update after running gdb/copyright.py 2022-01-01 19:13:23 +04:00
arc.c Automatic Copyright Year update after running gdb/copyright.py 2022-01-01 19:13:23 +04:00
arc.h Automatic Copyright Year update after running gdb/copyright.py 2022-01-01 19:13:23 +04:00
arm-get-next-pcs.c Automatic Copyright Year update after running gdb/copyright.py 2022-01-01 19:13:23 +04:00
arm-get-next-pcs.h Automatic Copyright Year update after running gdb/copyright.py 2022-01-01 19:13:23 +04:00
arm-linux.c Automatic Copyright Year update after running gdb/copyright.py 2022-01-01 19:13:23 +04:00
arm-linux.h Automatic Copyright Year update after running gdb/copyright.py 2022-01-01 19:13:23 +04:00
arm.c Add an arm-tls feature which includes the tpidruro register from CP15. 2022-05-03 16:05:10 -07:00
arm.h gdb/arm: Handle lazy FPU state preservation 2022-10-06 16:01:10 +02:00
csky.c gdb/csky add cskyv2-linux.xml for cskyv2-linux.c 2022-09-23 10:46:44 +08:00
csky.h gdbserver/csky add csky gdbserver support 2022-09-13 11:20:54 +08:00
i386.c gdb: Consolidate 32bit-pkeys.xml and 64bit-pkeys.xml 2022-03-31 10:25:26 -07:00
i386.h Automatic Copyright Year update after running gdb/copyright.py 2022-01-01 19:13:23 +04:00
loongarch.c gdb: LoongArch: Add floating-point support 2022-07-12 20:14:48 +08:00
loongarch.h gdb/gdbserver: LoongArch: Improve implementation of fcc registers 2022-08-09 22:22:23 +08:00
ppc-linux-common.c Constify target_desc declarations 2022-09-29 10:00:13 -07:00
ppc-linux-common.h Automatic Copyright Year update after running gdb/copyright.py 2022-01-01 19:13:23 +04:00
ppc-linux-tdesc.h Constify target_desc declarations 2022-09-29 10:00:13 -07:00
riscv.c Automatic Copyright Year update after running gdb/copyright.py 2022-01-01 19:13:23 +04:00
riscv.h gdb/riscv: better support for fflags and frm registers 2022-08-31 16:07:05 +01:00
tic6x.c Automatic Copyright Year update after running gdb/copyright.py 2022-01-01 19:13:23 +04:00
tic6x.h Automatic Copyright Year update after running gdb/copyright.py 2022-01-01 19:13:23 +04:00
xtensa.h Automatic Copyright Year update after running gdb/copyright.py 2022-01-01 19:13:23 +04:00