diff options
author | Tiezhu Yang <yangtiezhu@loongson.cn> | 2025-09-01 09:29:56 +0800 |
---|---|---|
committer | Tiezhu Yang <yangtiezhu@loongson.cn> | 2025-09-03 20:56:51 +0800 |
commit | 213f150cf7c405e7c3b743a0b6465565c8810e60 (patch) | |
tree | 150ce921481b5f0c4908df7dbbad90c0c82f69df /gdb/regformats/s390-linux64v1.dat | |
parent | 40f41b242f85df71ef4cad64db7d6142992a2bd0 (diff) | |
download | binutils-master.zip binutils-master.tar.gz binutils-master.tar.bz2 |
We can't put a breakpoint in the middle of a ll/sc atomic sequence,
so look for the end of the sequence and put the breakpoint there,
it has been handled in the commit 208b57e53ed9 ("gdb: LoongArch:
Deal with atomic sequence").
Especially, maybe there is a conditional branch instruction in the
middle of a ll/sc atomic sequence, its destination address may be
current pc + 4 which is inside the atomic sequence, it should not
put a breakpoint in its destination address in this case, this has
been handled in the commit a4242dc3f5fa ("gdb: LoongArch: Improve
the handling of atomic sequence").
Additionally, if there is a conditional branch instruction in the
middle of a ll/sc atomic sequence, its destination address may be
not current pc + 4 but still inside the atomic sequence, it should
not put a breakpoint in its destination address in this case.
So in order to avoid putting a breakpoint in the middle of a ll/sc
atomic sequence in any case, just look for the start and end of the
sequence, and restrict the breakpoint outside of the atomic sequence.
Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn>
Diffstat (limited to 'gdb/regformats/s390-linux64v1.dat')
0 files changed, 0 insertions, 0 deletions