Thread overview
[Issue 12832] asm movdqu accepts wrong operand size
Jun 02, 2014
Martin Nowak
Jun 13, 2020
Basile-z
Aug 12, 2020
Walter Bright
Aug 12, 2020
Walter Bright
Aug 14, 2020
Walter Bright
Aug 15, 2020
Dlang Bot
Aug 19, 2020
Dlang Bot
June 02, 2014
https://issues.dlang.org/show_bug.cgi?id=12832

Martin Nowak <code@dawg.eu> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Summary|ask movdqu accepts wrong    |asm movdqu accepts wrong
                   |operand size                |operand size

--
June 10, 2015
https://issues.dlang.org/show_bug.cgi?id=12832

Andrei Alexandrescu <andrei@erdani.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
            Version|unspecified                 |D2

--
June 13, 2020
https://issues.dlang.org/show_bug.cgi?id=12832

Basile-z <b2.temp@gmx.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |iasm
                 CC|                            |b2.temp@gmx.com
           Severity|enhancement                 |normal

--
August 12, 2020
https://issues.dlang.org/show_bug.cgi?id=12832

Walter Bright <bugzilla@digitalmars.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |accepts-invalid
                 CC|                            |bugzilla@digitalmars.com
                 OS|Linux                       |All

--- Comment #1 from Walter Bright <bugzilla@digitalmars.com> ---
The MOVDQU instruction is:

    F3 0F 6F /r MOVDQU xmm1, xmm2/m128

    Move unaligned packed integer values from xmm2/m128 to xmm1.

--
August 12, 2020
https://issues.dlang.org/show_bug.cgi?id=12832

--- Comment #2 from Walter Bright <bugzilla@digitalmars.com> ---
What's happening is in iasm.d the operand size is encoded into 5 bit flags, and there isn't room for another _128 bit, so the assembler just accepts any size.

The solution is to refactor the way operand sizes are encoded to accept more values.

--
August 14, 2020
https://issues.dlang.org/show_bug.cgi?id=12832

--- Comment #3 from Walter Bright <bugzilla@digitalmars.com> ---
Fix:

https://github.com/dlang/dmd/pull/11570

--
August 15, 2020
https://issues.dlang.org/show_bug.cgi?id=12832

Dlang Bot <dlang-bot@dlang.rocks> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Keywords|                            |pull

--- Comment #4 from Dlang Bot <dlang-bot@dlang.rocks> ---
@WalterBright updated dlang/dmd pull request #11570 "fix Issue 12832 - asm movdqu accepts wrong operand size" fixing this issue:

- fix Issue 12832 - asm movdqu accepts wrong operand size

https://github.com/dlang/dmd/pull/11570

--
August 19, 2020
https://issues.dlang.org/show_bug.cgi?id=12832

Dlang Bot <dlang-bot@dlang.rocks> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|NEW                         |RESOLVED
         Resolution|---                         |FIXED

--- Comment #5 from Dlang Bot <dlang-bot@dlang.rocks> ---
dlang/dmd pull request #11570 "fix Issue 12832 - asm movdqu accepts wrong operand size" was merged into master:

- 14e7cc917019d1016abaf23a59ebfe3deaed9ff5 by Walter Bright:
  fix Issue 12832 - asm movdqu accepts wrong operand size

https://github.com/dlang/dmd/pull/11570

--