aboutsummaryrefslogtreecommitdiff
path: root/libctf/ctf-open.c
diff options
context:
space:
mode:
authorGuinevere Larsen <guinevere@redhat.com>2025-06-10 11:28:25 -0300
committerGuinevere Larsen <guinevere@redhat.com>2025-07-11 11:55:34 -0300
commit32be35c9e3159e949edc3d4a957d347f1c7b8dad (patch)
tree49d446dafff8e6869cda5c6e1b077a787c01da67 /libctf/ctf-open.c
parent00a2fcd6602be175506116e15706c7bc7bc75a03 (diff)
downloadbinutils-32be35c9e3159e949edc3d4a957d347f1c7b8dad.zip
binutils-32be35c9e3159e949edc3d4a957d347f1c7b8dad.tar.gz
binutils-32be35c9e3159e949edc3d4a957d347f1c7b8dad.tar.bz2
gdb/record: add support to vinsert and vextract instructions
This patch adds support for the following instructions: * VEXTRACT[F128|I128|PS] * VINSERT[F128|I128|PS] * VPEXTR[B|W|D|Q] And associated test. For some reason, it seems that the extract instructions deal with the output register as though it was the first source register, so they use ModRM.r/m and VEX.B, instead of the usual ModRM.reg and VEX.R. This meant that the opcode collision with vbroadcastsd wasn't trivial. It can be easily solved by checking the VEX.map_select field, so soslving it was very easy. The VPEXTR instructions had several complicated collisions, and notably, vpextrw to a register works completely different to any other instruction in the family, so the code is messy, but it should be correct.
Diffstat (limited to 'libctf/ctf-open.c')
0 files changed, 0 insertions, 0 deletions