Skip to content

x86: fix VMOVUPS memory operand access - #3035

Open
raaller wants to merge 1 commit into
capstone-engine:nextfrom
raaller:fix/x86-vmovups-access
Open

x86: fix VMOVUPS memory operand access#3035
raaller wants to merge 1 commit into
capstone-engine:nextfrom
raaller:fix/x86-vmovups-access

Conversation

@raaller

@raaller raaller commented Aug 15, 2026

Copy link
Copy Markdown

Your checklist for this pull request

  • I've documented or updated the documentation of every API function and struct this PR changes.
  • I've added tests that prove my fix is effective or that my feature works (if possible)

Detailed description

The VEX.128 memory-store form of VMOVUPS incorrectly marks its memory destination operand as CS_AC_READ.
This changes the first operand access of X86_VMOVUPSmr to CS_AC_WRITE, while preserving CS_AC_READ for the source register. The bytes reported in issue #2900, C5 F8 11 28, decode to vmovups xmmword ptr [rax], xmm5 because the ModR/M byte selects xmm5.

Test plan

Added a regression test to tests/issues/issues.yaml which verifies that:

  • the memory destination has CS_AC_WRITE;
  • the source XMM register has CS_AC_READ.

All tests passed

Closing issues
Closes #2900

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Invalid access types for “vmovups xmmword ptr ds:[rax], xmm0”

1 participant