insns.dat: Restore default size of memory operands
authorCyrill Gorcunov <gorcunov@gmail.com>
Wed, 16 Dec 2009 12:44:58 +0000 (15:44 +0300)
committerCyrill Gorcunov <gorcunov@gmail.com>
Wed, 16 Dec 2009 15:50:22 +0000 (18:50 +0300)
commita2c4abb6333ac9b73a89e930ad554f0a1bf98293
treecebfcd04676704a0c3c01e2b67e975b704ba2a6b
parent78debd0a570df16452a9075da3f7e7f850818596
insns.dat: Restore default size of memory operands

During conversion of size of memory operands into
explicit form the compatibility with 2.07 has been
broken (for a small set of instructions). Lets restore
it. Details below.

This is due to specifics of our "fuzzy logic" algorithm.

For example consider the user wrote an instruction like

VCVTTPD2DQ xmm0,[eax]

the last operand is memory reference. But template contains
the following two items (written in simplified form)

VCVTTPD2DQ xmmreg,mem128
VCVTTPD2DQ xmmreg,mem256

So this is impossible to find out what _exactly_ user meant:
either reference to 128 bit value in memory or 256 bit.

As a solution we've been using IF_Sx modifier written in
template which allows to choose "by-default" template
and break the tie.

Reported-by: Victor van den Elzen <victor.vde@gmail.com>
Signed-off-by: Cyrill Gorcunov <gorcunov@gmail.com>
insns.dat