Bug 16857 – inline assembler reverses operands of VPEXTRW instruction

Status
RESOLVED
Resolution
FIXED
Severity
major
Priority
P1
Component
dmd
Product
D
Version
D2
Platform
All
OS
All
Creation time
2016-11-30T06:08:55Z
Last change time
2020-08-18T19:54:27Z
Keywords
iasm, wrong-code
Assigned to
No Owner
Creator
Walter Bright

Comments

Comment #0 by bugzilla — 2016-11-30T06:08:55Z
The following code: void foo() { asm { vpextrw EBX, XMM2, 0xF; } } Compiles to: C5 F9 C5 DA 0F vpextrw EDX,XMM3,0Fh But the 'modregrm' DA should be D3, i.e. the 'reg' and 'rm' fields are swapped. This reversal doesn't happen with the vpextrb instruction.
Comment #1 by dlang-bot — 2020-08-18T02:09:36Z
@WalterBright created dlang/dmd pull request #11589 "Issue 16857 - inline assembler reverses operands of VPEXTRW instruction" mentioning this issue: - Issue 16857 - inline assembler reverses operands of VPEXTRW instruction https://github.com/dlang/dmd/pull/11589
Comment #2 by dlang-bot — 2020-08-18T19:54:27Z
dlang/dmd pull request #11589 "Fix Issue 16857 - inline assembler reverses operands of VPEXTRW instruction" was merged into master: - 821b5451c782574490b5be7a4bc02dd197236338 by Walter Bright: Fix Issue 16857 - inline assembler reverses operands of VPEXTRW instruction https://github.com/dlang/dmd/pull/11589