]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commit
gdb/reverse: Fix recording vmov[u|a]p[s|d] instructions
authorGuinevere Larsen <guinevere@redhat.com>
Wed, 15 Jan 2025 20:32:23 +0000 (17:32 -0300)
committerGuinevere Larsen <guinevere@redhat.com>
Fri, 17 Jan 2025 18:43:29 +0000 (15:43 -0300)
commit69c9ec4dc1371a40b1a725167999b749ecf6dbfc
tree27614b93d8991d92e23ad7f3f90b5d03ac6ee4a8
parent56535ffb619362d5f492fddc15aa6aaee47baab4
gdb/reverse: Fix recording vmov[u|a]p[s|d] instructions

Tom de Vries reported that some of the test for the vmov[u|a]p[s|d] were
failing. In my machine xmm3 was consistently set to 0x54, but apparently
that is different depending on the system. This commit zeroes out xmm3
at the start of the test instead.

While debugging the test failures, I also noticed an issue where the
recording wasn't saving all the required memory. That happened because
vmovs[s|d] shares its opcode with vmovap[s|d], meaning they seem to
share code paths, but the latter encodes memory modification size on
VEX.L whereas the former encodes in VEX.pp. So this commit fixed that,
and made the relevant tests more robust and complete.

Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=32561
Approved-By: Guinevere Larsen <guinevere@redhat.com>
gdb/i386-tdep.c
gdb/testsuite/gdb.reverse/i386-avx-reverse.c
gdb/testsuite/gdb.reverse/i386-avx-reverse.exp