Skip to content

Potential Decoding Failure for instructions prefixed with 0x66 #5671

Description

@simon902

FEX fails to decode certain instructions when they are prefixed with 0x66.

For the affaceted instructions, the 0x66 prefix is not required and does not change their behavior. Real hardware seems to simply ignore the prefix and execute the instruction normally. However, FEX fails in the Frontend decoding phase.

This happens, e.g, because the lookup tables (like H0F38TableOps) do not have an entry for the prefixed version.

The following non-exhaustive list fails to decode with a 0x66 prefix:

  • movnti
  • adox
  • sha1msg1

In contrast, instructions like cvttss2si and movd get decoded fine when prefixed with 0x66.

Related issues: #5667 and #5670.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions