x86reference
x86reference copied to clipboard
PMADDWD use wrong operand types
Right now PMADDWD encoded with opcode 0F F5 use operand type d for its operand of addressing Q which is defined as:
Doubleword, regardless of operand-size attribute.
According to the intel docs:
Multiply the packed words in mm by the packed words in mm/m64, add adjacent doubleword results, and store in mm.
Since it's dealing with mmx registers the operand type should be of type q which is defined as:
Quadword, regardless of operand-size attribute (for example, CALL (FF /2)).
Good catch.
Fixed.