Menu

#189 vmovss with explicit 32 bit memory access declined

open
nobody
None
5
2011-05-25
2011-05-25
No

With the current NASM version 2.10rc4-20110411 compiled on Apr 11 2011 I get an error assembling the command
vmovss xmm0, dword [eax]
or
vmovss dword [eax], xmm0
with the message
error: invalid combination of opcode and operands

This applies to 32 and 64 bit code.
When I omit the "dword", it compiles.

Discussion

  • Jasper Neumann

    Jasper Neumann - 2011-05-25

    The corresponding commands
    movss xmm0, dword [eax]
    and
    movss dword [eax], xmm0
    do not face this problem.

     
  • Nobody/Anonymous

    yup, it falls into our 'cleanup' Katmai instruction templates task, i seem
    to have a patch floating arournd, will take a look. Thanks for report.

     
  • Jasper Neumann

    Jasper Neumann - 2011-05-26

    For the similar commands movsd there is a similar quirk; 2 of 8 combinations fail:

    vmovsd xmm0, qword [eax]
    vmovsd qword [eax], xmm0
    vmovsd xmm0, [eax]
    vmovsd [eax], xmm0
    movsd xmm0, qword [eax] <<< error
    movsd qword [eax], xmm0 <<< error
    movsd xmm0, [eax]
    movsd [eax], xmm0

     
  • Jasper Neumann

    Jasper Neumann - 2011-05-26

    ...and one must keep in mind that movsd is an overloaded command.
    What about "movsd dword [edi], dword [esi]"? Is something like this allowed at all?

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.