From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NG4GE-0004p9-6b for qemu-devel@nongnu.org; Thu, 03 Dec 2009 00:29:50 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NG4G9-0004oH-5R for qemu-devel@nongnu.org; Thu, 03 Dec 2009 00:29:49 -0500 Received: from [199.232.76.173] (port=40442 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NG4G9-0004oD-2Y for qemu-devel@nongnu.org; Thu, 03 Dec 2009 00:29:45 -0500 Received: from mail-pw0-f43.google.com ([209.85.160.43]:52184) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NG4G8-0006Z1-SA for qemu-devel@nongnu.org; Thu, 03 Dec 2009 00:29:45 -0500 Received: by pwi12 with SMTP id 12so862346pwi.2 for ; Wed, 02 Dec 2009 21:29:43 -0800 (PST) MIME-Version: 1.0 From: Hui Zhu Date: Thu, 3 Dec 2009 13:29:23 +0800 Message-ID: Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] qustion about x86 sse insn "lddqu" List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Hi, In qemu 0.11.0, it handle lddqu as: case 0x3f0: /* lddqu */ if (mod =3D=3D 3) goto illegal_op; gen_lea_modrm(s, modrm, ®_addr, &offset_addr); gen_sto_env_A0(s->mem_index, offsetof(CPUX86State,xmm_regs[reg]= )); break; It st the value of xmm[reg] to address A0, right? But in intel doc about this insn: LDDQU=97Load Unaligned Integer 128 Bits The instruction is functionally similar to MOVDQU xmm, m128 for loading fro= m memory. That is: 16 bytes of data starting at an address specified by the s= ource memory operand (second operand) are fetched from memory and placed in a destination register (first operand). The source operand need not be aligned on a 16-by= te boundary. Up to 32 bytes may be loaded from memory; this is implementation dependent. Did I miss something? Or this code have some bug? Thanks, Hui