[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] cvttps2dq, movdq2q, movq2dq incorrect behaviour

From: malc
Subject: Re: [Qemu-devel] cvttps2dq, movdq2q, movq2dq incorrect behaviour
Date: Wed, 21 Jun 2006 15:04:26 +0400 (MSD)

On Wed, 21 Jun 2006, malc wrote:

On Wed, 21 Jun 2006, Julian Seward wrote:

Malc, your sse-movq.patch works for me.  Thanks.

soft-float was a red herring, translate.c is at fault here (interpreter
does not use it, hence behaved correctly)


cvttps2dq is 0x5b(b=0x5b) with repn prefix (b1=2) the above code is
optimized a bit more than it should have been, as it loads only 4 bytes
into xmm_t0 instead of 16.

Uh, fine, but I don't understand how/what to fix.  Can you advise?

Following will fix the _specific_ case of cvttps2dq, ideally one
should go through all the [0x50..0x5f, 0xc2] with (repnz,repz prefix)
range and check wether the rules imposed by the above snippet apply.


It appears that cvttps2dq is indeed the only exception in the range,
combined patch that fixes both movd?q2d?q and cvttps2dq is attached.

I don't have any kind of SSE on this machine so would apprecaite if
someone would run tests/test-i386 with the patch attached.


Attachment: sse-movXq2Yq-cvttps2dq.patch
Description: Text document

reply via email to

[Prev in Thread] Current Thread [Next in Thread]