From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29121 invoked by alias); 11 Dec 2009 15:00:09 -0000 Received: (qmail 29093 invoked by uid 22791); 11 Dec 2009 15:00:03 -0000 X-SWARE-Spam-Status: No, hits=-1.7 required=5.0 tests=AWL,BAYES_00,SARE_MSGID_LONG40,SPF_PASS X-Spam-Check-By: sourceware.org Received: from mail-px0-f175.google.com (HELO mail-px0-f175.google.com) (209.85.216.175) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 11 Dec 2009 14:59:54 +0000 Received: by pxi5 with SMTP id 5so700140pxi.12 for ; Fri, 11 Dec 2009 06:59:52 -0800 (PST) MIME-Version: 1.0 Received: by 10.143.26.32 with SMTP id d32mr854365wfj.297.1260543592114; Fri, 11 Dec 2009 06:59:52 -0800 (PST) In-Reply-To: <4B215151.6040608@vmware.com> References: <4B215151.6040608@vmware.com> From: Hui Zhu Date: Fri, 11 Dec 2009 15:00:00 -0000 Message-ID: Subject: Re: [RFA] Prec x86 MMX 3DNow! SSE SSE2 SSE3 SSSE3 SSE4 support To: Michael Snyder Cc: gdb-patches ml , Mark Kettenis Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable X-IsSubscribed: yes Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org X-SW-Source: 2009-12/txt/msg00164.txt.bz2 OK. Thanks, Hui On Fri, Dec 11, 2009 at 03:51, Michael Snyder wrote: > Hui Zhu wrote: >> >> Hi guys, >> >> This patch make prec support x86 MMX 3DNow! SSE SSE2 SSE3 SSSE3 SSE4. >> Please help me review it. > > Sounds like these are close to acceptance. > Hui, can we get some testsuites, please? > You can use Oza's tests for the 387 as a model for starting. > > Michael > > >> 2009-12-07 =A0Hui Zhu =A0 >> >> =A0 =A0 =A0 =A0* i386-tdep.c (OT_DQUAD): New enum. >> =A0 =A0 =A0 =A0(i386_process_record): Add code for MMX, 3DNow!, SSE, SSE= 2, >> =A0 =A0 =A0 =A0SSE3, SSSE3 and SSE4. >> >> --- >> =A0i386-tdep.c | 1217 >> +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- >> =A01 file changed, 1201 insertions(+), 16 deletions(-) >> >> --- a/i386-tdep.c >> +++ b/i386-tdep.c >> @@ -2848,6 +2848,7 @@ enum >> =A0 OT_WORD, >> =A0 OT_LONG, >> =A0 OT_QUAD, >> + =A0OT_DQUAD, >> =A0}; >> >> =A0/* i386 arith/logic operations */ >> @@ -3217,6 +3218,7 @@ i386_process_record (struct gdbarch *gdb >> =A0 int rex =3D 0; >> =A0 uint8_t rex_w =3D -1; >> =A0 uint8_t rex_r =3D 0; >> + =A0struct gdbarch_tdep *tdep =3D gdbarch_tdep (gdbarch); >> >> =A0 memset (&ir, 0, sizeof (struct i386_record_s)); >> =A0 ir.regcache =3D regcache; >> @@ -3226,7 +3228,7 @@ i386_process_record (struct gdbarch *gdb >> =A0 ir.dflag =3D 1; >> =A0 ir.override =3D -1; >> =A0 ir.popl_esp_hack =3D 0; >> - =A0ir.regmap =3D gdbarch_tdep (gdbarch)->record_regmap; >> + =A0ir.regmap =3D tdep->record_regmap; >> =A0 ir.gdbarch =3D gdbarch; >> >> =A0 if (record_debug > 1) >> @@ -3344,7 +3346,7 @@ reswitch: >> =A0 =A0 =A0 =A0 =A0return -1; >> =A0 =A0 =A0 =A0} >> =A0 =A0 =A0 ir.addr++; >> - =A0 =A0 =A0opcode =3D (uint16_t) tmpu8 | 0x0f00; >> + =A0 =A0 =A0opcode =3D (uint32_t) tmpu8 | 0x0f00; >> =A0 =A0 =A0 goto reswitch; >> =A0 =A0 =A0 break; >> >> @@ -4868,7 +4870,7 @@ reswitch: >> =A0 =A0 =A0 =A0 =A0} >> =A0 =A0 =A0 =A0ir.addr++; >> =A0 =A0 =A0 =A0if (tmpu8 !=3D 0x80 >> - =A0 =A0 =A0 =A0 =A0 || gdbarch_tdep (gdbarch)->i386_intx80_record =3D= =3D NULL) >> + =A0 =A0 =A0 =A0 =A0 || tdep->i386_intx80_record =3D=3D NULL) >> =A0 =A0 =A0 =A0 =A0{ >> =A0 =A0 =A0 =A0 =A0 =A0printf_unfiltered (_("Process record doesn't supp= ort " >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 "instruc= tion int 0x%02x.\n"), >> @@ -4876,7 +4878,7 @@ reswitch: >> =A0 =A0 =A0 =A0 =A0 =A0ir.addr -=3D 2; >> =A0 =A0 =A0 =A0 =A0 =A0goto no_support; >> =A0 =A0 =A0 =A0 =A0} >> - =A0 =A0 =A0 ret =3D gdbarch_tdep (gdbarch)->i386_intx80_record (ir.reg= cache); >> + =A0 =A0 =A0 ret =3D tdep->i386_intx80_record (ir.regcache); >> =A0 =A0 =A0 =A0if (ret) >> =A0 =A0 =A0 =A0 =A0return ret; >> =A0 =A0 =A0 } >> @@ -4973,14 +4975,14 @@ reswitch: >> =A0 =A0 =A0 =A0 =A0 =A0 ir.addr -=3D 2; >> =A0 =A0 =A0 =A0 =A0 =A0 goto no_support; >> =A0 =A0 =A0 =A0 =A0 } >> - =A0 =A0 =A0 if (gdbarch_tdep (gdbarch)->i386_sysenter_record =3D=3D NU= LL) >> + =A0 =A0 =A0 if (tdep->i386_sysenter_record =3D=3D NULL) >> =A0 =A0 =A0 =A0 =A0{ >> =A0 =A0 =A0 =A0 =A0 =A0printf_unfiltered (_("Process record doesn't supp= ort " >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 "instruc= tion sysenter.\n")); >> =A0 =A0 =A0 =A0 =A0 =A0ir.addr -=3D 2; >> =A0 =A0 =A0 =A0 =A0 =A0goto no_support; >> =A0 =A0 =A0 =A0 =A0} >> - =A0 =A0 =A0 ret =3D gdbarch_tdep (gdbarch)->i386_sysenter_record (ir.r= egcache); >> + =A0 =A0 =A0 ret =3D tdep->i386_sysenter_record (ir.regcache); >> =A0 =A0 =A0 =A0if (ret) >> =A0 =A0 =A0 =A0 =A0return ret; >> =A0 =A0 =A0 } >> @@ -4998,14 +5000,14 @@ reswitch: >> =A0 =A0 case 0x0f05: >> =A0 =A0 =A0 { >> =A0 =A0 =A0 =A0int ret; >> - =A0 =A0 =A0 if (gdbarch_tdep (gdbarch)->i386_syscall_record =3D=3D NUL= L) >> + =A0 =A0 =A0 if (tdep->i386_syscall_record =3D=3D NULL) >> =A0 =A0 =A0 =A0 =A0{ >> =A0 =A0 =A0 =A0 =A0 =A0printf_unfiltered (_("Process record doesn't supp= ort " >> =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 "instruc= tion syscall.\n")); >> =A0 =A0 =A0 =A0 =A0 =A0ir.addr -=3D 2; >> =A0 =A0 =A0 =A0 =A0 =A0goto no_support; >> =A0 =A0 =A0 =A0 =A0} >> - =A0 =A0 =A0 ret =3D gdbarch_tdep (gdbarch)->i386_syscall_record (ir.re= gcache); >> + =A0 =A0 =A0 ret =3D tdep->i386_syscall_record (ir.regcache); >> =A0 =A0 =A0 =A0if (ret) >> =A0 =A0 =A0 =A0 =A0return ret; >> =A0 =A0 =A0 } >> @@ -5349,14 +5351,1196 @@ reswitch: >> =A0 =A0 =A0 I386_RECORD_ARCH_LIST_ADD_REG (X86_RECORD_EFLAGS_REGNUM); >> =A0 =A0 =A0 break; >> >> - =A0 =A0 =A0/* MMX/SSE/SSE2/PNI support */ >> - =A0 =A0 =A0/* XXX */ >> + =A0 =A0/* MMX 3DNow! SSE SSE2 SSE3 SSSE3 SSE4 */ >> + =A0 =A0/* 3DNow! prefetch */ >> + =A0 =A0case 0x0f0d: >> + =A0 =A0 =A0break; >> + >> + =A0 =A0/* 3DNow! femms */ >> + =A0 =A0case 0x0f0e: >> + =A0 =A0/* emms */ >> + =A0 =A0case 0x0f77: >> + =A0 =A0 =A0if (i386_fpc_regnum_p (gdbarch, I387_FTAG_REGNUM(tdep))) >> + =A0 =A0 =A0 =A0goto no_support; >> + =A0 =A0 =A0record_arch_list_add_reg (ir.regcache, I387_FTAG_REGNUM(tde= p)); >> + =A0 =A0 =A0break; >> + >> + =A0 =A0/* 3DNow! data */ >> + =A0 =A0case 0x0f0f: >> + =A0 =A0 =A0if (i386_record_modrm (&ir)) >> + =A0 =A0 =A0 return -1; >> + =A0 =A0 =A0if (target_read_memory (ir.addr, &tmpu8, 1)) >> + =A0 =A0 =A0 =A0{ >> + =A0 =A0 =A0 =A0 =A0if (record_debug) >> + =A0 =A0 =A0 =A0 =A0 printf_unfiltered (_("Process record: error readin= g memory at >> " >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0"addr %= s len =3D 1.\n"), >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0paddress (g= dbarch, ir.addr)); >> + =A0 =A0 =A0 =A0 =A0return -1; >> + =A0 =A0 =A0 =A0} >> + =A0 =A0 =A0ir.addr++; >> + =A0 =A0 =A0switch (tmpu8) >> + =A0 =A0 =A0 =A0{ >> + =A0 =A0 =A0 =A0/* 3DNow! pi2fw */ >> + =A0 =A0 =A0 =A0case 0x0c: >> + =A0 =A0 =A0 =A0/* 3DNow! pi2fd */ >> + =A0 =A0 =A0 =A0case 0x0d: >> + =A0 =A0 =A0 =A0/* 3DNow! pf2iw */ >> + =A0 =A0 =A0 =A0case 0x1c: >> + =A0 =A0 =A0 =A0/* 3DNow! pf2id */ >> + =A0 =A0 =A0 =A0case 0x1d: >> + =A0 =A0 =A0 =A0/* 3DNow! pfnacc */ >> + =A0 =A0 =A0 =A0case 0x8a: >> + =A0 =A0 =A0 =A0/* 3DNow! pfpnacc */ >> + =A0 =A0 =A0 =A0case 0x8e: >> + =A0 =A0 =A0 =A0/* 3DNow! pfcmpge */ >> + =A0 =A0 =A0 =A0case 0x90: >> + =A0 =A0 =A0 =A0/* 3DNow! pfmin */ >> + =A0 =A0 =A0 =A0case 0x94: >> + =A0 =A0 =A0 =A0/* 3DNow! pfrcp */ >> + =A0 =A0 =A0 =A0case 0x96: >> + =A0 =A0 =A0 =A0/* 3DNow! pfrsqrt */ >> + =A0 =A0 =A0 =A0case 0x97: >> + =A0 =A0 =A0 =A0/* 3DNow! pfsub */ >> + =A0 =A0 =A0 =A0case 0x9a: >> + =A0 =A0 =A0 =A0/* 3DNow! pfadd */ >> + =A0 =A0 =A0 =A0case 0x9e: >> + =A0 =A0 =A0 =A0/* 3DNow! pfcmpgt */ >> + =A0 =A0 =A0 =A0case 0xa0: >> + =A0 =A0 =A0 =A0/* 3DNow! pfmax */ >> + =A0 =A0 =A0 =A0case 0xa4: >> + =A0 =A0 =A0 =A0/* 3DNow! pfrcpit1 */ >> + =A0 =A0 =A0 =A0case 0xa6: >> + =A0 =A0 =A0 =A0/* 3DNow! pfrsqit1 */ >> + =A0 =A0 =A0 =A0case 0xa7: >> + =A0 =A0 =A0 =A0/* 3DNow! pfsubr */ >> + =A0 =A0 =A0 =A0case 0xaa: >> + =A0 =A0 =A0 =A0/* 3DNow! pfacc */ >> + =A0 =A0 =A0 =A0case 0xae: >> + =A0 =A0 =A0 =A0/* 3DNow! pfcmpeq */ >> + =A0 =A0 =A0 =A0case 0xb0: >> + =A0 =A0 =A0 =A0/* 3DNow! pfmul */ >> + =A0 =A0 =A0 =A0case 0xb4: >> + =A0 =A0 =A0 =A0/* 3DNow! pfrcpit2 */ >> + =A0 =A0 =A0 =A0case 0xb6: >> + =A0 =A0 =A0 =A0/* 3DNow! pmulhrw */ >> + =A0 =A0 =A0 =A0case 0xb7: >> + =A0 =A0 =A0 =A0/* 3DNow! pswapd */ >> + =A0 =A0 =A0 =A0case 0xbb: >> + =A0 =A0 =A0 =A0/* 3DNow! pavgusb */ >> + =A0 =A0 =A0 =A0case 0xbf: >> + =A0 =A0 =A0 =A0 =A0if (!i386_mmx_regnum_p (gdbarch, I387_MM0_REGNUM (t= dep) + >> ir.reg)) >> + =A0 =A0 =A0 =A0 =A0 =A0goto no_support_3dnow_data; >> + =A0 =A0 =A0 =A0 =A0record_arch_list_add_reg (ir.regcache, ir.reg); >> + =A0 =A0 =A0 =A0 =A0break; >> + >> + =A0 =A0 =A0 =A0default: >> +no_support_3dnow_data: >> + =A0 =A0 =A0 =A0 =A0opcode =3D (opcode << 8) | tmpu8; >> + =A0 =A0 =A0 =A0 =A0goto no_support; >> + =A0 =A0 =A0 =A0 =A0break; >> + =A0 =A0 =A0 =A0} >> + =A0 =A0 =A0break; >> + >> + =A0 =A0/* rsm */ >> + =A0 =A0case 0x0faa: >> + =A0 =A0 =A0I386_RECORD_ARCH_LIST_ADD_REG (X86_RECORD_EFLAGS_REGNUM); >> + =A0 =A0 =A0I386_RECORD_ARCH_LIST_ADD_REG (X86_RECORD_REAX_REGNUM); >> + =A0 =A0 =A0I386_RECORD_ARCH_LIST_ADD_REG (X86_RECORD_RECX_REGNUM); >> + =A0 =A0 =A0I386_RECORD_ARCH_LIST_ADD_REG (X86_RECORD_REDX_REGNUM); >> + =A0 =A0 =A0I386_RECORD_ARCH_LIST_ADD_REG (X86_RECORD_REBX_REGNUM); >> + =A0 =A0 =A0I386_RECORD_ARCH_LIST_ADD_REG (X86_RECORD_RESP_REGNUM); >> + =A0 =A0 =A0I386_RECORD_ARCH_LIST_ADD_REG (X86_RECORD_REBP_REGNUM); >> + =A0 =A0 =A0I386_RECORD_ARCH_LIST_ADD_REG (X86_RECORD_RESI_REGNUM); >> + =A0 =A0 =A0I386_RECORD_ARCH_LIST_ADD_REG (X86_RECORD_REDI_REGNUM); >> + =A0 =A0 =A0break; >> + >> + =A0 =A0case 0x0fae: >> + =A0 =A0 =A0if (i386_record_modrm (&ir)) >> + =A0 =A0 =A0 return -1; >> + =A0 =A0 =A0switch(ir.reg) >> + =A0 =A0 =A0 =A0{ >> + =A0 =A0 =A0 =A0/* fxsave */ >> + =A0 =A0 =A0 =A0case 0: >> + =A0 =A0 =A0 =A0 =A0{ >> + =A0 =A0 =A0 =A0 =A0 =A0uint64_t tmpu64; >> + >> + =A0 =A0 =A0 =A0 =A0 =A0I386_RECORD_ARCH_LIST_ADD_REG (X86_RECORD_EFLAG= S_REGNUM); >> + =A0 =A0 =A0 =A0 =A0 if (i386_record_lea_modrm_addr (&ir, &tmpu64)) >> + =A0 =A0 =A0 =A0 =A0 =A0 return -1; >> + =A0 =A0 =A0 =A0 =A0 =A0if (record_arch_list_add_mem (tmpu64, 512)) >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0return -1; >> + =A0 =A0 =A0 =A0 =A0} >> + =A0 =A0 =A0 =A0 =A0break; >> + >> + =A0 =A0 =A0 =A0/* fxrstor */ >> + =A0 =A0 =A0 =A0case 1: >> + =A0 =A0 =A0 =A0 =A0{ >> + =A0 =A0 =A0 =A0 =A0 =A0int i; >> + >> + =A0 =A0 =A0 =A0 =A0 =A0I386_RECORD_ARCH_LIST_ADD_REG (X86_RECORD_EFLAG= S_REGNUM); >> + >> + =A0 =A0 =A0 =A0 =A0 =A0for (i =3D I387_MM0_REGNUM (tdep); >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 i386_mmx_regnum_p (gdbarch, i); i++) >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0record_arch_list_add_reg (ir.regcache, i); >> + >> + =A0 =A0 =A0 =A0 =A0 =A0for (i =3D I387_XMM0_REGNUM (tdep); >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 i386_sse_regnum_p (gdbarch, i); i++) >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0record_arch_list_add_reg (ir.regcache, i); >> + >> + =A0 =A0 =A0 =A0 =A0 =A0if (i386_mxcsr_regnum_p (gdbarch, I387_MXCSR_RE= GNUM(tdep))) >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0record_arch_list_add_reg (ir.regcache, >> I387_MXCSR_REGNUM(tdep)); >> + >> + =A0 =A0 =A0 =A0 =A0 =A0for (i =3D I387_ST0_REGNUM (tdep); >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 i386_fp_regnum_p (gdbarch, i); i++) >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0record_arch_list_add_reg (ir.regcache, i); >> + >> + =A0 =A0 =A0 =A0 =A0 =A0for (i =3D I387_FCTRL_REGNUM (tdep); >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 i386_fpc_regnum_p (gdbarch, i); i++) >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0record_arch_list_add_reg (ir.regcache, i); >> + =A0 =A0 =A0 =A0 =A0} >> + =A0 =A0 =A0 =A0 =A0break; >> + >> + =A0 =A0 =A0 =A0/* ldmxcsr */ >> + =A0 =A0 =A0 =A0case 2: >> + =A0 =A0 =A0 =A0 =A0if (!i386_mxcsr_regnum_p (gdbarch, I387_MXCSR_REGNU= M(tdep))) >> + =A0 =A0 =A0 =A0 =A0 =A0goto no_support; >> + =A0 =A0 =A0 =A0 =A0record_arch_list_add_reg (ir.regcache, >> I387_MXCSR_REGNUM(tdep)); >> + =A0 =A0 =A0 =A0 =A0break; >> + >> + =A0 =A0 =A0 =A0/* stmxcsr */ >> + =A0 =A0 =A0 =A0case 3: >> + =A0 =A0 =A0 =A0 =A0ir.ot =3D OT_LONG; >> + =A0 =A0 =A0 =A0 =A0if (i386_record_lea_modrm (&ir)) >> + =A0 =A0 =A0 =A0 =A0 =A0return -1; >> + =A0 =A0 =A0 =A0 =A0break; >> + >> + =A0 =A0 =A0 =A0/* lfence */ >> + =A0 =A0 =A0 =A0case 5: >> + =A0 =A0 =A0 =A0/* mfence */ >> + =A0 =A0 =A0 =A0case 6: >> + =A0 =A0 =A0 =A0/* sfence clflush */ >> + =A0 =A0 =A0 =A0case 7: >> + =A0 =A0 =A0 =A0 =A0break; >> + >> + =A0 =A0 =A0 =A0default: >> + =A0 =A0 =A0 =A0 =A0opcode =3D (opcode << 8) | ir.modrm; >> + =A0 =A0 =A0 =A0 =A0goto no_support; >> + =A0 =A0 =A0 =A0 =A0break; >> + =A0 =A0 =A0 =A0} >> + =A0 =A0 =A0break; >> + >> + =A0 =A0/* movnti */ >> + =A0 =A0case 0x0fc3: >> + =A0 =A0 =A0ir.ot =3D (ir.dflag =3D=3D 2) ? OT_QUAD : OT_LONG; >> + =A0 =A0 =A0if (i386_record_modrm (&ir)) >> + =A0 =A0 =A0 return -1; >> + =A0 =A0 =A0if (ir.mod =3D=3D 3) >> + =A0 =A0 =A0 =A0goto no_support; >> + =A0 =A0 =A0ir.reg |=3D rex_r; >> + =A0 =A0 =A0if (i386_record_lea_modrm (&ir)) >> + =A0 =A0 =A0 =A0return -1; >> + =A0 =A0 =A0break; >> + >> + =A0 =A0/* Add prefix to opcode. =A0*/ >> + =A0 =A0case 0x0f10: >> + =A0 =A0case 0x0f11: >> + =A0 =A0case 0x0f12: >> + =A0 =A0case 0x0f13: >> + =A0 =A0case 0x0f14: >> + =A0 =A0case 0x0f16: >> + =A0 =A0case 0x0f17: >> + =A0 =A0case 0x0f28: >> + =A0 =A0case 0x0f29: >> + =A0 =A0case 0x0f2a: >> + =A0 =A0case 0x0f2b: >> + =A0 =A0case 0x0f2c: >> + =A0 =A0case 0x0f2d: >> + =A0 =A0case 0x0f2e: >> + =A0 =A0case 0x0f2f: >> + =A0 =A0case 0x0f38: >> + =A0 =A0case 0x0f39: >> + =A0 =A0case 0x0f3a: >> + =A0 =A0case 0x0f50: >> + =A0 =A0case 0x0f51: >> + =A0 =A0case 0x0f52: >> + =A0 =A0case 0x0f53: >> + =A0 =A0case 0x0f54: >> + =A0 =A0case 0x0f55: >> + =A0 =A0case 0x0f56: >> + =A0 =A0case 0x0f57: >> + =A0 =A0case 0x0f58: >> + =A0 =A0case 0x0f59: >> + =A0 =A0case 0x0f5a: >> + =A0 =A0case 0x0f5b: >> + =A0 =A0case 0x0f5c: >> + =A0 =A0case 0x0f5d: >> + =A0 =A0case 0x0f5e: >> + =A0 =A0case 0x0f5f: >> + =A0 =A0case 0x0f60: >> + =A0 =A0case 0x0f61: >> + =A0 =A0case 0x0f62: >> + =A0 =A0case 0x0f63: >> + =A0 =A0case 0x0f64: >> + =A0 =A0case 0x0f65: >> + =A0 =A0case 0x0f66: >> + =A0 =A0case 0x0f67: >> + =A0 =A0case 0x0f68: >> + =A0 =A0case 0x0f69: >> + =A0 =A0case 0x0f6a: >> + =A0 =A0case 0x0f6b: >> + =A0 =A0case 0x0f6c: >> + =A0 =A0case 0x0f6d: >> + =A0 =A0case 0x0f6e: >> + =A0 =A0case 0x0f6f: >> + =A0 =A0case 0x0f70: >> + =A0 =A0case 0x0f71: >> + =A0 =A0case 0x0f72: >> + =A0 =A0case 0x0f73: >> + =A0 =A0case 0x0f74: >> + =A0 =A0case 0x0f75: >> + =A0 =A0case 0x0f76: >> + =A0 =A0case 0x0f7c: >> + =A0 =A0case 0x0f7d: >> + =A0 =A0case 0x0f7e: >> + =A0 =A0case 0x0f7f: >> + =A0 =A0case 0x0fb8: >> + =A0 =A0case 0x0fc2: >> + =A0 =A0case 0x0fc4: >> + =A0 =A0case 0x0fc5: >> + =A0 =A0case 0x0fc6: >> + =A0 =A0case 0x0fd0: >> + =A0 =A0case 0x0fd1: >> + =A0 =A0case 0x0fd2: >> + =A0 =A0case 0x0fd3: >> + =A0 =A0case 0x0fd4: >> + =A0 =A0case 0x0fd5: >> + =A0 =A0case 0x0fd6: >> + =A0 =A0case 0x0fd7: >> + =A0 =A0case 0x0fd8: >> + =A0 =A0case 0x0fd9: >> + =A0 =A0case 0x0fda: >> + =A0 =A0case 0x0fdb: >> + =A0 =A0case 0x0fdc: >> + =A0 =A0case 0x0fdd: >> + =A0 =A0case 0x0fde: >> + =A0 =A0case 0x0fdf: >> + =A0 =A0case 0x0fe0: >> + =A0 =A0case 0x0fe1: >> + =A0 =A0case 0x0fe2: >> + =A0 =A0case 0x0fe3: >> + =A0 =A0case 0x0fe4: >> + =A0 =A0case 0x0fe5: >> + =A0 =A0case 0x0fe6: >> + =A0 =A0case 0x0fe7: >> + =A0 =A0case 0x0fe8: >> + =A0 =A0case 0x0fe9: >> + =A0 =A0case 0x0fea: >> + =A0 =A0case 0x0feb: >> + =A0 =A0case 0x0fec: >> + =A0 =A0case 0x0fed: >> + =A0 =A0case 0x0fee: >> + =A0 =A0case 0x0fef: >> + =A0 =A0case 0x0ff0: >> + =A0 =A0case 0x0ff1: >> + =A0 =A0case 0x0ff2: >> + =A0 =A0case 0x0ff3: >> + =A0 =A0case 0x0ff4: >> + =A0 =A0case 0x0ff5: >> + =A0 =A0case 0x0ff6: >> + =A0 =A0case 0x0ff7: >> + =A0 =A0case 0x0ff8: >> + =A0 =A0case 0x0ff9: >> + =A0 =A0case 0x0ffa: >> + =A0 =A0case 0x0ffb: >> + =A0 =A0case 0x0ffc: >> + =A0 =A0case 0x0ffd: >> + =A0 =A0case 0x0ffe: >> + =A0 =A0 =A0switch (prefixes) >> + =A0 =A0 =A0 =A0{ >> + =A0 =A0 =A0 =A0case PREFIX_REPNZ: >> + =A0 =A0 =A0 =A0 =A0opcode |=3D 0xf20000; >> + =A0 =A0 =A0 =A0 =A0break; >> + =A0 =A0 =A0 =A0case PREFIX_DATA: >> + =A0 =A0 =A0 =A0 =A0opcode |=3D 0x660000; >> + =A0 =A0 =A0 =A0 =A0break; >> + =A0 =A0 =A0 =A0case PREFIX_REPZ: >> + =A0 =A0 =A0 =A0 =A0opcode |=3D 0xf30000; >> + =A0 =A0 =A0 =A0 =A0break; >> + =A0 =A0 =A0 =A0} >> +reswitch_prefix_add: >> + =A0 =A0 =A0switch (opcode) >> + =A0 =A0 =A0 =A0{ >> + =A0 =A0 =A0 =A0case 0x0f38: >> + =A0 =A0 =A0 =A0case 0x660f38: >> + =A0 =A0 =A0 =A0case 0xf20f38: >> + =A0 =A0 =A0 =A0case 0x0f3a: >> + =A0 =A0 =A0 =A0case 0x660f3a: >> + =A0 =A0 =A0 =A0 =A0if (target_read_memory (ir.addr, &tmpu8, 1)) >> + =A0 =A0 =A0 =A0 =A0 =A0{ >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0if (record_debug) >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 printf_unfiltered (_("Process record: erro= r reading memory >> at " >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0"addr %s len =3D 1.\n"), >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0pad= dress (gdbarch, ir.addr)); >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0return -1; >> + =A0 =A0 =A0 =A0 =A0 =A0} >> + =A0 =A0 =A0 =A0 =A0ir.addr++; >> + =A0 =A0 =A0 =A0 =A0opcode =3D (uint32_t) tmpu8 | opcode << 4; >> + =A0 =A0 =A0 =A0 =A0goto reswitch_prefix_add; >> + =A0 =A0 =A0 =A0 =A0break; >> + >> + =A0 =A0 =A0 =A0/* movups */ >> + =A0 =A0 =A0 =A0case 0x0f10: >> + =A0 =A0 =A0 =A0/* movupd */ >> + =A0 =A0 =A0 =A0case 0x660f10: >> + =A0 =A0 =A0 =A0/* movss */ >> + =A0 =A0 =A0 =A0case 0xf30f10: >> + =A0 =A0 =A0 =A0/* movsd */ >> + =A0 =A0 =A0 =A0case 0xf20f10: >> + =A0 =A0 =A0 =A0/* movlps */ >> + =A0 =A0 =A0 =A0case 0x0f12: >> + =A0 =A0 =A0 =A0/* movlpd */ >> + =A0 =A0 =A0 =A0case 0x660f12: >> + =A0 =A0 =A0 =A0/* movsldup */ >> + =A0 =A0 =A0 =A0case 0xf30f12: >> + =A0 =A0 =A0 =A0/* movddup */ >> + =A0 =A0 =A0 =A0case 0xf20f12: >> + =A0 =A0 =A0 =A0/* unpcklps */ >> + =A0 =A0 =A0 =A0case 0x0f14: >> + =A0 =A0 =A0 =A0/* unpcklpd */ >> + =A0 =A0 =A0 =A0case 0x660f14: >> + =A0 =A0 =A0 =A0/* unpckhps */ >> + =A0 =A0 =A0 =A0case 0x0f15: >> + =A0 =A0 =A0 =A0/* unpckhpd */ >> + =A0 =A0 =A0 =A0case 0x660f15: >> + =A0 =A0 =A0 =A0/* movhps */ >> + =A0 =A0 =A0 =A0case 0x0f16: >> + =A0 =A0 =A0 =A0/* movhpd */ >> + =A0 =A0 =A0 =A0case 0x660f16: >> + =A0 =A0 =A0 =A0/* movshdup */ >> + =A0 =A0 =A0 =A0case 0xf30f16: >> + =A0 =A0 =A0 =A0/* movaps */ >> + =A0 =A0 =A0 =A0case 0x0f28: >> + =A0 =A0 =A0 =A0/* movapd */ >> + =A0 =A0 =A0 =A0case 0x660f28: >> + =A0 =A0 =A0 =A0/* cvtpi2ps */ >> + =A0 =A0 =A0 =A0case 0x0f2a: >> + =A0 =A0 =A0 =A0/* cvtpi2pd */ >> + =A0 =A0 =A0 =A0case 0x660f2a: >> + =A0 =A0 =A0 =A0/* cvtsi2ss */ >> + =A0 =A0 =A0 =A0case 0xf30f2a: >> + =A0 =A0 =A0 =A0/* cvtsi2sd */ >> + =A0 =A0 =A0 =A0case 0xf20f2a: >> + =A0 =A0 =A0 =A0/* cvttps2pi */ >> + =A0 =A0 =A0 =A0case 0x0f2c: >> + =A0 =A0 =A0 =A0/* cvttpd2pi */ >> + =A0 =A0 =A0 =A0case 0x660f2c: >> + =A0 =A0 =A0 =A0/* cvtps2pi */ >> + =A0 =A0 =A0 =A0case 0x0f2d: >> + =A0 =A0 =A0 =A0/* cvtpd2pi */ >> + =A0 =A0 =A0 =A0case 0x660f2d: >> + =A0 =A0 =A0 =A0/* pshufb */ >> + =A0 =A0 =A0 =A0case 0x660f3800: >> + =A0 =A0 =A0 =A0/* phaddw */ >> + =A0 =A0 =A0 =A0case 0x660f3801: >> + =A0 =A0 =A0 =A0/* phaddd */ >> + =A0 =A0 =A0 =A0case 0x660f3802: >> + =A0 =A0 =A0 =A0/* phaddsw */ >> + =A0 =A0 =A0 =A0case 0x660f3803: >> + =A0 =A0 =A0 =A0/* pmaddubsw */ >> + =A0 =A0 =A0 =A0case 0x660f3804: >> + =A0 =A0 =A0 =A0/* phsubw */ >> + =A0 =A0 =A0 =A0case 0x660f3805: >> + =A0 =A0 =A0 =A0/* phsubd */ >> + =A0 =A0 =A0 =A0case 0x660f3806: >> + =A0 =A0 =A0 =A0/* phaddsw */ >> + =A0 =A0 =A0 =A0case 0x660f3807: >> + =A0 =A0 =A0 =A0/* psignb */ >> + =A0 =A0 =A0 =A0case 0x660f3808: >> + =A0 =A0 =A0 =A0/* psignw */ >> + =A0 =A0 =A0 =A0case 0x660f3809: >> + =A0 =A0 =A0 =A0/* psignd */ >> + =A0 =A0 =A0 =A0case 0x660f380a: >> + =A0 =A0 =A0 =A0/* pmulhrsw */ >> + =A0 =A0 =A0 =A0case 0x660f380b: >> + =A0 =A0 =A0 =A0/* pblendvb */ >> + =A0 =A0 =A0 =A0case 0x660f3810: >> + =A0 =A0 =A0 =A0/* blendvps */ >> + =A0 =A0 =A0 =A0case 0x660f3814: >> + =A0 =A0 =A0 =A0/* blendvpd */ >> + =A0 =A0 =A0 =A0case 0x660f3815: >> + =A0 =A0 =A0 =A0/* pabsb */ >> + =A0 =A0 =A0 =A0case 0x660f381c: >> + =A0 =A0 =A0 =A0/* pabsw */ >> + =A0 =A0 =A0 =A0case 0x660f381d: >> + =A0 =A0 =A0 =A0/* pabsd */ >> + =A0 =A0 =A0 =A0case 0x660f381e: >> + =A0 =A0 =A0 =A0/* pmovsxbw */ >> + =A0 =A0 =A0 =A0case 0x660f3820: >> + =A0 =A0 =A0 =A0/* pmovsxbd */ >> + =A0 =A0 =A0 =A0case 0x660f3821: >> + =A0 =A0 =A0 =A0/* pmovsxbq */ >> + =A0 =A0 =A0 =A0case 0x660f3822: >> + =A0 =A0 =A0 =A0/* pmovsxwd */ >> + =A0 =A0 =A0 =A0case 0x660f3823: >> + =A0 =A0 =A0 =A0/* pmovsxwq */ >> + =A0 =A0 =A0 =A0case 0x660f3824: >> + =A0 =A0 =A0 =A0/* pmovsxdq */ >> + =A0 =A0 =A0 =A0case 0x660f3825: >> + =A0 =A0 =A0 =A0/* pmuldq */ >> + =A0 =A0 =A0 =A0case 0x660f3828: >> + =A0 =A0 =A0 =A0/* pcmpeqq */ >> + =A0 =A0 =A0 =A0case 0x660f3829: >> + =A0 =A0 =A0 =A0/* movntdqa */ >> + =A0 =A0 =A0 =A0case 0x660f382a: >> + =A0 =A0 =A0 =A0/* roundps */ >> + =A0 =A0 =A0 =A0case 0x660f3a08: >> + =A0 =A0 =A0 =A0/* roundpd */ >> + =A0 =A0 =A0 =A0case 0x660f3a09: >> + =A0 =A0 =A0 =A0/* roundss */ >> + =A0 =A0 =A0 =A0case 0x660f3a0a: >> + =A0 =A0 =A0 =A0/* roundsd */ >> + =A0 =A0 =A0 =A0case 0x660f3a0b: >> + =A0 =A0 =A0 =A0/* blendps */ >> + =A0 =A0 =A0 =A0case 0x660f3a0c: >> + =A0 =A0 =A0 =A0/* blendpd */ >> + =A0 =A0 =A0 =A0case 0x660f3a0d: >> + =A0 =A0 =A0 =A0/* pblendw */ >> + =A0 =A0 =A0 =A0case 0x660f3a0e: >> + =A0 =A0 =A0 =A0/* palignr */ >> + =A0 =A0 =A0 =A0case 0x660f3a0f: >> + =A0 =A0 =A0 =A0/* pinsrb */ >> + =A0 =A0 =A0 =A0case 0x660f3a20: >> + =A0 =A0 =A0 =A0/* insertps */ >> + =A0 =A0 =A0 =A0case 0x660f3a21: >> + =A0 =A0 =A0 =A0/* pinsrd pinsrq */ >> + =A0 =A0 =A0 =A0case 0x660f3a22: >> + =A0 =A0 =A0 =A0/* dpps */ >> + =A0 =A0 =A0 =A0case 0x660f3a40: >> + =A0 =A0 =A0 =A0/* dppd */ >> + =A0 =A0 =A0 =A0case 0x660f3a41: >> + =A0 =A0 =A0 =A0/* mpsadbw */ >> + =A0 =A0 =A0 =A0case 0x660f3a42: >> + =A0 =A0 =A0 =A0/* pcmpestrm */ >> + =A0 =A0 =A0 =A0case 0x660f3a60: >> + =A0 =A0 =A0 =A0/* pcmpestri */ >> + =A0 =A0 =A0 =A0case 0x660f3a61: >> + =A0 =A0 =A0 =A0/* pcmpistrm */ >> + =A0 =A0 =A0 =A0case 0x660f3a62: >> + =A0 =A0 =A0 =A0/* pcmpistri */ >> + =A0 =A0 =A0 =A0case 0x660f3a63: >> + =A0 =A0 =A0 =A0/* sqrtps */ >> + =A0 =A0 =A0 =A0case 0x0f51: >> + =A0 =A0 =A0 =A0/* sqrtpd */ >> + =A0 =A0 =A0 =A0case 0x660f51: >> + =A0 =A0 =A0 =A0/* sqrtsd */ >> + =A0 =A0 =A0 =A0case 0xf20f51: >> + =A0 =A0 =A0 =A0/* sqrtss */ >> + =A0 =A0 =A0 =A0case 0xf30f51: >> + =A0 =A0 =A0 =A0/* rsqrtps */ >> + =A0 =A0 =A0 =A0case 0x0f52: >> + =A0 =A0 =A0 =A0/* rsqrtss */ >> + =A0 =A0 =A0 =A0case 0xf30f52: >> + =A0 =A0 =A0 =A0/* rcpps */ >> + =A0 =A0 =A0 =A0case 0x0f53: >> + =A0 =A0 =A0 =A0/* rcpss */ >> + =A0 =A0 =A0 =A0case 0xf30f53: >> + =A0 =A0 =A0 =A0/* andps */ >> + =A0 =A0 =A0 =A0case 0x0f54: >> + =A0 =A0 =A0 =A0/* andpd */ >> + =A0 =A0 =A0 =A0case 0x660f54: >> + =A0 =A0 =A0 =A0/* andnps */ >> + =A0 =A0 =A0 =A0case 0x0f55: >> + =A0 =A0 =A0 =A0/* andnpd */ >> + =A0 =A0 =A0 =A0case 0x660f55: >> + =A0 =A0 =A0 =A0/* orps */ >> + =A0 =A0 =A0 =A0case 0x0f56: >> + =A0 =A0 =A0 =A0/* orpd */ >> + =A0 =A0 =A0 =A0case 0x660f56: >> + =A0 =A0 =A0 =A0/* xorps */ >> + =A0 =A0 =A0 =A0case 0x0f57: >> + =A0 =A0 =A0 =A0/* xorpd */ >> + =A0 =A0 =A0 =A0case 0x660f57: >> + =A0 =A0 =A0 =A0/* addps */ >> + =A0 =A0 =A0 =A0case 0x0f58: >> + =A0 =A0 =A0 =A0/* addpd */ >> + =A0 =A0 =A0 =A0case 0x660f58: >> + =A0 =A0 =A0 =A0/* addsd */ >> + =A0 =A0 =A0 =A0case 0xf20f58: >> + =A0 =A0 =A0 =A0/* addss */ >> + =A0 =A0 =A0 =A0case 0xf30f58: >> + =A0 =A0 =A0 =A0/* mulps */ >> + =A0 =A0 =A0 =A0case 0x0f59: >> + =A0 =A0 =A0 =A0/* mulpd */ >> + =A0 =A0 =A0 =A0case 0x660f59: >> + =A0 =A0 =A0 =A0/* mulsd */ >> + =A0 =A0 =A0 =A0case 0xf20f59: >> + =A0 =A0 =A0 =A0/* mulss */ >> + =A0 =A0 =A0 =A0case 0xf30f59: >> + =A0 =A0 =A0 =A0/* cvtps2pd */ >> + =A0 =A0 =A0 =A0case 0x0f5a: >> + =A0 =A0 =A0 =A0/* cvtpd2ps */ >> + =A0 =A0 =A0 =A0case 0x660f5a: >> + =A0 =A0 =A0 =A0/* cvtsd2ss */ >> + =A0 =A0 =A0 =A0case 0xf20f5a: >> + =A0 =A0 =A0 =A0/* cvtss2sd */ >> + =A0 =A0 =A0 =A0case 0xf30f5a: >> + =A0 =A0 =A0 =A0/* cvtdq2ps */ >> + =A0 =A0 =A0 =A0case 0x0f5b: >> + =A0 =A0 =A0 =A0/* cvtps2dq */ >> + =A0 =A0 =A0 =A0case 0x660f5b: >> + =A0 =A0 =A0 =A0/* cvttps2dq */ >> + =A0 =A0 =A0 =A0case 0xf30f5b: >> + =A0 =A0 =A0 =A0/* subps */ >> + =A0 =A0 =A0 =A0case 0x0f5c: >> + =A0 =A0 =A0 =A0/* subpd */ >> + =A0 =A0 =A0 =A0case 0x660f5c: >> + =A0 =A0 =A0 =A0/* subsd */ >> + =A0 =A0 =A0 =A0case 0xf20f5c: >> + =A0 =A0 =A0 =A0/* subss */ >> + =A0 =A0 =A0 =A0case 0xf30f5c: >> + =A0 =A0 =A0 =A0/* minps */ >> + =A0 =A0 =A0 =A0case 0x0f5d: >> + =A0 =A0 =A0 =A0/* minpd */ >> + =A0 =A0 =A0 =A0case 0x660f5d: >> + =A0 =A0 =A0 =A0/* minsd */ >> + =A0 =A0 =A0 =A0case 0xf20f5d: >> + =A0 =A0 =A0 =A0/* minss */ >> + =A0 =A0 =A0 =A0case 0xf30f5d: >> + =A0 =A0 =A0 =A0/* divps */ >> + =A0 =A0 =A0 =A0case 0x0f5e: >> + =A0 =A0 =A0 =A0/* divpd */ >> + =A0 =A0 =A0 =A0case 0x660f5e: >> + =A0 =A0 =A0 =A0/* divsd */ >> + =A0 =A0 =A0 =A0case 0xf20f5e: >> + =A0 =A0 =A0 =A0/* divss */ >> + =A0 =A0 =A0 =A0case 0xf30f5e: >> + =A0 =A0 =A0 =A0/* maxps */ >> + =A0 =A0 =A0 =A0case 0x0f5f: >> + =A0 =A0 =A0 =A0/* maxpd */ >> + =A0 =A0 =A0 =A0case 0x660f5f: >> + =A0 =A0 =A0 =A0/* maxsd */ >> + =A0 =A0 =A0 =A0case 0xf20f5f: >> + =A0 =A0 =A0 =A0/* maxss */ >> + =A0 =A0 =A0 =A0case 0xf30f5f: >> + =A0 =A0 =A0 =A0/* punpcklbw */ >> + =A0 =A0 =A0 =A0case 0x660f60: >> + =A0 =A0 =A0 =A0/* punpcklwd */ >> + =A0 =A0 =A0 =A0case 0x660f61: >> + =A0 =A0 =A0 =A0/* punpckldq */ >> + =A0 =A0 =A0 =A0case 0x660f62: >> + =A0 =A0 =A0 =A0/* packsswb */ >> + =A0 =A0 =A0 =A0case 0x660f63: >> + =A0 =A0 =A0 =A0/* pcmpgtb */ >> + =A0 =A0 =A0 =A0case 0x660f64: >> + =A0 =A0 =A0 =A0/* pcmpgtw */ >> + =A0 =A0 =A0 =A0case 0x660f65: >> + =A0 =A0 =A0 =A0/* pcmpgtl */ >> + =A0 =A0 =A0 =A0case 0x660f66: >> + =A0 =A0 =A0 =A0/* packuswb */ >> + =A0 =A0 =A0 =A0case 0x660f67: >> + =A0 =A0 =A0 =A0/* punpckhbw */ >> + =A0 =A0 =A0 =A0case 0x660f68: >> + =A0 =A0 =A0 =A0/* punpckhwd */ >> + =A0 =A0 =A0 =A0case 0x660f69: >> + =A0 =A0 =A0 =A0/* punpckhdq */ >> + =A0 =A0 =A0 =A0case 0x660f6a: >> + =A0 =A0 =A0 =A0/* packssdw */ >> + =A0 =A0 =A0 =A0case 0x660f6b: >> + =A0 =A0 =A0 =A0/* punpcklqdq */ >> + =A0 =A0 =A0 =A0case 0x660f6c: >> + =A0 =A0 =A0 =A0/* punpckhqdq */ >> + =A0 =A0 =A0 =A0case 0x660f6d: >> + =A0 =A0 =A0 =A0/* movd */ >> + =A0 =A0 =A0 =A0case 0x660f6e: >> + =A0 =A0 =A0 =A0/* movdqa */ >> + =A0 =A0 =A0 =A0case 0x660f6f: >> + =A0 =A0 =A0 =A0/* movdqu */ >> + =A0 =A0 =A0 =A0case 0xf30f6f: >> + =A0 =A0 =A0 =A0/* pshufd */ >> + =A0 =A0 =A0 =A0case 0x660f70: >> + =A0 =A0 =A0 =A0/* pshuflw */ >> + =A0 =A0 =A0 =A0case 0xf20f70: >> + =A0 =A0 =A0 =A0/* pshufhw */ >> + =A0 =A0 =A0 =A0case 0xf30f70: >> + =A0 =A0 =A0 =A0/* pcmpeqb */ >> + =A0 =A0 =A0 =A0case 0x660f74: >> + =A0 =A0 =A0 =A0/* pcmpeqw */ >> + =A0 =A0 =A0 =A0case 0x660f75: >> + =A0 =A0 =A0 =A0/* pcmpeql */ >> + =A0 =A0 =A0 =A0case 0x660f76: >> + =A0 =A0 =A0 =A0/* haddpd */ >> + =A0 =A0 =A0 =A0case 0x660f7c: >> + =A0 =A0 =A0 =A0/* haddps */ >> + =A0 =A0 =A0 =A0case 0xf20f7c: >> + =A0 =A0 =A0 =A0/* hsubpd */ >> + =A0 =A0 =A0 =A0case 0x660f7d: >> + =A0 =A0 =A0 =A0/* hsubps */ >> + =A0 =A0 =A0 =A0case 0xf20f7d: >> + =A0 =A0 =A0 =A0/* movq */ >> + =A0 =A0 =A0 =A0case 0xf30f7e: >> + =A0 =A0 =A0 =A0/* cmpps */ >> + =A0 =A0 =A0 =A0case 0x0fc2: >> + =A0 =A0 =A0 =A0/* cmppd */ >> + =A0 =A0 =A0 =A0case 0x660fc2: >> + =A0 =A0 =A0 =A0/* cmpsd */ >> + =A0 =A0 =A0 =A0case 0xf20fc2: >> + =A0 =A0 =A0 =A0/* cmpss */ >> + =A0 =A0 =A0 =A0case 0xf30fc2: >> + =A0 =A0 =A0 =A0/* pinsrw */ >> + =A0 =A0 =A0 =A0case 0x660fc4: >> + =A0 =A0 =A0 =A0/* shufps */ >> + =A0 =A0 =A0 =A0case 0x0fc6: >> + =A0 =A0 =A0 =A0/* shufpd */ >> + =A0 =A0 =A0 =A0case 0x660fc6: >> + =A0 =A0 =A0 =A0/* addsubpd */ >> + =A0 =A0 =A0 =A0case 0x660fd0: >> + =A0 =A0 =A0 =A0/* addsubps */ >> + =A0 =A0 =A0 =A0case 0xf20fd0: >> + =A0 =A0 =A0 =A0/* psrlw */ >> + =A0 =A0 =A0 =A0case 0x660fd1: >> + =A0 =A0 =A0 =A0/* psrld */ >> + =A0 =A0 =A0 =A0case 0x660fd2: >> + =A0 =A0 =A0 =A0/* psrlq */ >> + =A0 =A0 =A0 =A0case 0x660fd3: >> + =A0 =A0 =A0 =A0/* paddq */ >> + =A0 =A0 =A0 =A0case 0x660fd4: >> + =A0 =A0 =A0 =A0/* pmullw */ >> + =A0 =A0 =A0 =A0case 0x660fd5: >> + =A0 =A0 =A0 =A0/* movq2dq */ >> + =A0 =A0 =A0 =A0case 0xf30fd6: >> + =A0 =A0 =A0 =A0/* psubusb */ >> + =A0 =A0 =A0 =A0case 0x660fd8: >> + =A0 =A0 =A0 =A0/* psubusw */ >> + =A0 =A0 =A0 =A0case 0x660fd9: >> + =A0 =A0 =A0 =A0/* pminub */ >> + =A0 =A0 =A0 =A0case 0x660fda: >> + =A0 =A0 =A0 =A0/* pand */ >> + =A0 =A0 =A0 =A0case 0x660fdb: >> + =A0 =A0 =A0 =A0/* paddusb */ >> + =A0 =A0 =A0 =A0case 0x660fdc: >> + =A0 =A0 =A0 =A0/* paddusw */ >> + =A0 =A0 =A0 =A0case 0x660fdd: >> + =A0 =A0 =A0 =A0/* pmaxub */ >> + =A0 =A0 =A0 =A0case 0x660fde: >> + =A0 =A0 =A0 =A0/* pandn */ >> + =A0 =A0 =A0 =A0case 0x660fdf: >> + =A0 =A0 =A0 =A0/* pavgb */ >> + =A0 =A0 =A0 =A0case 0x660fe0: >> + =A0 =A0 =A0 =A0/* psraw */ >> + =A0 =A0 =A0 =A0case 0x660fe1: >> + =A0 =A0 =A0 =A0/* psrad */ >> + =A0 =A0 =A0 =A0case 0x660fe2: >> + =A0 =A0 =A0 =A0/* pavgw */ >> + =A0 =A0 =A0 =A0case 0x660fe3: >> + =A0 =A0 =A0 =A0/* pmulhuw */ >> + =A0 =A0 =A0 =A0case 0x660fe4: >> + =A0 =A0 =A0 =A0/* pmulhw */ >> + =A0 =A0 =A0 =A0case 0x660fe5: >> + =A0 =A0 =A0 =A0/* cvttpd2dq */ >> + =A0 =A0 =A0 =A0case 0x660fe6: >> + =A0 =A0 =A0 =A0/* cvtpd2dq */ >> + =A0 =A0 =A0 =A0case 0xf20fe6: >> + =A0 =A0 =A0 =A0/* cvtdq2pd */ >> + =A0 =A0 =A0 =A0case 0xf30fe6: >> + =A0 =A0 =A0 =A0/* psubsb */ >> + =A0 =A0 =A0 =A0case 0x660fe8: >> + =A0 =A0 =A0 =A0/* psubsw */ >> + =A0 =A0 =A0 =A0case 0x660fe9: >> + =A0 =A0 =A0 =A0/* pminsw */ >> + =A0 =A0 =A0 =A0case 0x660fea: >> + =A0 =A0 =A0 =A0/* por */ >> + =A0 =A0 =A0 =A0case 0x660feb: >> + =A0 =A0 =A0 =A0/* paddsb */ >> + =A0 =A0 =A0 =A0case 0x660fec: >> + =A0 =A0 =A0 =A0/* paddsw */ >> + =A0 =A0 =A0 =A0case 0x660fed: >> + =A0 =A0 =A0 =A0/* pmaxsw */ >> + =A0 =A0 =A0 =A0case 0x660fee: >> + =A0 =A0 =A0 =A0/* pxor */ >> + =A0 =A0 =A0 =A0case 0x660fef: >> + =A0 =A0 =A0 =A0/* lddqu */ >> + =A0 =A0 =A0 =A0case 0x660ff0: >> + =A0 =A0 =A0 =A0/* psllw */ >> + =A0 =A0 =A0 =A0case 0x660ff1: >> + =A0 =A0 =A0 =A0/* pslld */ >> + =A0 =A0 =A0 =A0case 0x660ff2: >> + =A0 =A0 =A0 =A0/* psllq */ >> + =A0 =A0 =A0 =A0case 0x660ff3: >> + =A0 =A0 =A0 =A0/* pmuludq */ >> + =A0 =A0 =A0 =A0case 0x660ff4: >> + =A0 =A0 =A0 =A0/* pmaddwd */ >> + =A0 =A0 =A0 =A0case 0x660ff5: >> + =A0 =A0 =A0 =A0/* psadbw */ >> + =A0 =A0 =A0 =A0case 0x660ff6: >> + =A0 =A0 =A0 =A0/* psubb */ >> + =A0 =A0 =A0 =A0case 0x660ff8: >> + =A0 =A0 =A0 =A0/* psubw */ >> + =A0 =A0 =A0 =A0case 0x660ff9: >> + =A0 =A0 =A0 =A0/* psubl */ >> + =A0 =A0 =A0 =A0case 0x660ffa: >> + =A0 =A0 =A0 =A0/* psubq */ >> + =A0 =A0 =A0 =A0case 0x660ffb: >> + =A0 =A0 =A0 =A0/* paddb */ >> + =A0 =A0 =A0 =A0case 0x660ffc: >> + =A0 =A0 =A0 =A0/* paddw */ >> + =A0 =A0 =A0 =A0case 0x660ffd: >> + =A0 =A0 =A0 =A0/* paddl */ >> + =A0 =A0 =A0 =A0case 0x660ffe: >> + =A0 =A0 =A0 =A0 =A0if (i386_record_modrm (&ir)) >> + =A0 =A0 =A0 =A0 =A0 return -1; >> + =A0 =A0 =A0 =A0 =A0ir.reg |=3D rex_r; >> + =A0 =A0 =A0 =A0 =A0if (!i386_sse_regnum_p (gdbarch, I387_XMM0_REGNUM (= tdep) + >> ir.reg)) >> + =A0 =A0 =A0 =A0 =A0 =A0goto no_support; >> + =A0 =A0 =A0 =A0 =A0record_arch_list_add_reg (ir.regcache, >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0I387_XMM0_REGNUM (tdep) + ir.reg); >> + =A0 =A0 =A0 =A0 =A0if ((opcode & 0xfffffffc) =3D=3D 0x660f3a60) >> + =A0 =A0 =A0 =A0 =A0 =A0I386_RECORD_ARCH_LIST_ADD_REG (X86_RECORD_EFLAG= S_REGNUM); >> + =A0 =A0 =A0 =A0 =A0break; >> + >> + =A0 =A0 =A0 =A0/* movups */ >> + =A0 =A0 =A0 =A0case 0x0f11: >> + =A0 =A0 =A0 =A0/* movupd */ >> + =A0 =A0 =A0 =A0case 0x660f11: >> + =A0 =A0 =A0 =A0/* movss */ >> + =A0 =A0 =A0 =A0case 0xf30f11: >> + =A0 =A0 =A0 =A0/* movsd */ >> + =A0 =A0 =A0 =A0case 0xf20f11: >> + =A0 =A0 =A0 =A0/* movlps */ >> + =A0 =A0 =A0 =A0case 0x0f13: >> + =A0 =A0 =A0 =A0/* movlpd */ >> + =A0 =A0 =A0 =A0case 0x660f13: >> + =A0 =A0 =A0 =A0/* movhps */ >> + =A0 =A0 =A0 =A0case 0x0f17: >> + =A0 =A0 =A0 =A0/* movhpd */ >> + =A0 =A0 =A0 =A0case 0x660f17: >> + =A0 =A0 =A0 =A0/* movaps */ >> + =A0 =A0 =A0 =A0case 0x0f29: >> + =A0 =A0 =A0 =A0/* movapd */ >> + =A0 =A0 =A0 =A0case 0x660f29: >> + =A0 =A0 =A0 =A0/* pextrb */ >> + =A0 =A0 =A0 =A0case 0x660f3a14: >> + =A0 =A0 =A0 =A0/* pextrw */ >> + =A0 =A0 =A0 =A0case 0x660f3a15: >> + =A0 =A0 =A0 =A0/* pextrd pextrq */ >> + =A0 =A0 =A0 =A0case 0x660f3a16: >> + =A0 =A0 =A0 =A0/* extractps */ >> + =A0 =A0 =A0 =A0case 0x660f3a17: >> + =A0 =A0 =A0 =A0/* movdqa */ >> + =A0 =A0 =A0 =A0case 0x660f7f: >> + =A0 =A0 =A0 =A0/* movdqu */ >> + =A0 =A0 =A0 =A0case 0xf30f7f: >> + =A0 =A0 =A0 =A0 =A0if (i386_record_modrm (&ir)) >> + =A0 =A0 =A0 =A0 =A0 return -1; >> + =A0 =A0 =A0 =A0 =A0if (ir.mod =3D=3D 3) >> + =A0 =A0 =A0 =A0 =A0 =A0{ >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0if (opcode =3D=3D 0x0f13 || opcode =3D=3D 0= x660f13 >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0|| opcode =3D=3D 0x0f17 || opcode = =3D=3D 0x660f17) >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0goto no_support; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0ir.rm |=3D ir.rex_b; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0if (!i386_sse_regnum_p (gdbarch, I387_XMM0_= REGNUM >> (tdep) + ir.rm)) >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0goto no_support; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0record_arch_list_add_reg (ir.regcache, >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0 =A0I387_XMM0_REGNUM (tdep) + ir.rm); >> + =A0 =A0 =A0 =A0 =A0 =A0} >> + =A0 =A0 =A0 =A0 =A0else >> + =A0 =A0 =A0 =A0 =A0 =A0{ >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0switch (opcode) >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0{ >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0case 0x660f3a14: >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0ir.ot =3D OT_BYTE; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0case 0x660f3a15: >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0ir.ot =3D OT_WORD; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0case 0x660f3a16: >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0ir.ot =3D OT_LONG; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0case 0x660f3a17: >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0ir.ot =3D OT_QUAD; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0default: >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0ir.ot =3D OT_DQUAD; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0} >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0if (i386_record_lea_modrm (&ir)) >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0return -1; >> + =A0 =A0 =A0 =A0 =A0 =A0} >> + =A0 =A0 =A0 =A0 =A0break; >> + >> + =A0 =A0 =A0 =A0/* movntps */ >> + =A0 =A0 =A0 =A0case 0x0f2b: >> + =A0 =A0 =A0 =A0/* movntpd */ >> + =A0 =A0 =A0 =A0case 0x660f2b: >> + =A0 =A0 =A0 =A0/* movntq */ >> + =A0 =A0 =A0 =A0case 0x0fe7: >> + =A0 =A0 =A0 =A0/* movntdq */ >> + =A0 =A0 =A0 =A0case 0x660fe7: >> + =A0 =A0 =A0 =A0 =A0if (ir.mod =3D=3D 3) >> + =A0 =A0 =A0 =A0 =A0 =A0goto no_support; >> + =A0 =A0 =A0 =A0 =A0if (opcode =3D=3D 0x0fe7) >> + =A0 =A0 =A0 =A0 =A0 =A0ir.ot =3D OT_QUAD; >> + =A0 =A0 =A0 =A0 =A0else >> + =A0 =A0 =A0 =A0 =A0 =A0ir.ot =3D OT_DQUAD; >> + =A0 =A0 =A0 =A0 =A0if (i386_record_lea_modrm (&ir)) >> + =A0 =A0 =A0 =A0 =A0 =A0return -1; >> + =A0 =A0 =A0 =A0 =A0break; >> + >> + =A0 =A0 =A0 =A0/* cvttss2si */ >> + =A0 =A0 =A0 =A0case 0xf30f2c: >> + =A0 =A0 =A0 =A0/* cvttsd2si */ >> + =A0 =A0 =A0 =A0case 0xf20f2c: >> + =A0 =A0 =A0 =A0/* cvtss2si */ >> + =A0 =A0 =A0 =A0case 0xf30f2d: >> + =A0 =A0 =A0 =A0/* cvtsd2si */ >> + =A0 =A0 =A0 =A0case 0xf20f2d: >> + =A0 =A0 =A0 =A0/* crc32 */ >> + =A0 =A0 =A0 =A0case 0xf20f38f0: >> + =A0 =A0 =A0 =A0/* crc32 */ >> + =A0 =A0 =A0 =A0case 0xf20f38f1: >> + =A0 =A0 =A0 =A0/* movmskps */ >> + =A0 =A0 =A0 =A0case 0x0f50: >> + =A0 =A0 =A0 =A0/* movmskpd */ >> + =A0 =A0 =A0 =A0case 0x660f50: >> + =A0 =A0 =A0 =A0/* pextrw */ >> + =A0 =A0 =A0 =A0case 0x0fc5: >> + =A0 =A0 =A0 =A0/* pextrw */ >> + =A0 =A0 =A0 =A0case 0x660fc5: >> + =A0 =A0 =A0 =A0/* pmovmskb */ >> + =A0 =A0 =A0 =A0case 0x0fd7: >> + =A0 =A0 =A0 =A0/* pmovmskb */ >> + =A0 =A0 =A0 =A0case 0x660fd7: >> + =A0 =A0 =A0 =A0 =A0I386_RECORD_ARCH_LIST_ADD_REG (ir.reg | rex_r); >> + =A0 =A0 =A0 =A0 =A0break; >> + >> + =A0 =A0 =A0 =A0/* pshufb */ >> + =A0 =A0 =A0 =A0case 0x0f3800: >> + =A0 =A0 =A0 =A0/* phaddw */ >> + =A0 =A0 =A0 =A0case 0x0f3801: >> + =A0 =A0 =A0 =A0/* phaddd */ >> + =A0 =A0 =A0 =A0case 0x0f3802: >> + =A0 =A0 =A0 =A0/* phaddsw */ >> + =A0 =A0 =A0 =A0case 0x0f3803: >> + =A0 =A0 =A0 =A0/* pmaddubsw */ >> + =A0 =A0 =A0 =A0case 0x0f3804: >> + =A0 =A0 =A0 =A0/* phsubw */ >> + =A0 =A0 =A0 =A0case 0x0f3805: >> + =A0 =A0 =A0 =A0/* phsubd */ >> + =A0 =A0 =A0 =A0case 0x0f3806: >> + =A0 =A0 =A0 =A0/* phaddsw */ >> + =A0 =A0 =A0 =A0case 0x0f3807: >> + =A0 =A0 =A0 =A0/* psignb */ >> + =A0 =A0 =A0 =A0case 0x0f3808: >> + =A0 =A0 =A0 =A0/* psignw */ >> + =A0 =A0 =A0 =A0case 0x0f3809: >> + =A0 =A0 =A0 =A0/* psignd */ >> + =A0 =A0 =A0 =A0case 0x0f380a: >> + =A0 =A0 =A0 =A0/* pmulhrsw */ >> + =A0 =A0 =A0 =A0case 0x0f380b: >> + =A0 =A0 =A0 =A0/* pabsb */ >> + =A0 =A0 =A0 =A0case 0x0f381c: >> + =A0 =A0 =A0 =A0/* pabsw */ >> + =A0 =A0 =A0 =A0case 0x0f381d: >> + =A0 =A0 =A0 =A0/* pabsd */ >> + =A0 =A0 =A0 =A0case 0x0f381e: >> + =A0 =A0 =A0 =A0/* packusdw */ >> + =A0 =A0 =A0 =A0case 0x0f382b: >> + =A0 =A0 =A0 =A0/* pmovzxbw */ >> + =A0 =A0 =A0 =A0case 0x0f3830: >> + =A0 =A0 =A0 =A0/* pmovzxbd */ >> + =A0 =A0 =A0 =A0case 0x0f3831: >> + =A0 =A0 =A0 =A0/* pmovzxbq */ >> + =A0 =A0 =A0 =A0case 0x0f3832: >> + =A0 =A0 =A0 =A0/* pmovzxwd */ >> + =A0 =A0 =A0 =A0case 0x0f3833: >> + =A0 =A0 =A0 =A0/* pmovzxwq */ >> + =A0 =A0 =A0 =A0case 0x0f3834: >> + =A0 =A0 =A0 =A0/* pmovzxdq */ >> + =A0 =A0 =A0 =A0case 0x0f3835: >> + =A0 =A0 =A0 =A0/* pcmpgtq */ >> + =A0 =A0 =A0 =A0case 0x0f3837: >> + =A0 =A0 =A0 =A0/* pminsb */ >> + =A0 =A0 =A0 =A0case 0x0f3838: >> + =A0 =A0 =A0 =A0/* pminsd */ >> + =A0 =A0 =A0 =A0case 0x0f3839: >> + =A0 =A0 =A0 =A0/* pminuw */ >> + =A0 =A0 =A0 =A0case 0x0f383a: >> + =A0 =A0 =A0 =A0/* pminud */ >> + =A0 =A0 =A0 =A0case 0x0f383b: >> + =A0 =A0 =A0 =A0/* pmaxsb */ >> + =A0 =A0 =A0 =A0case 0x0f383c: >> + =A0 =A0 =A0 =A0/* pmaxsd */ >> + =A0 =A0 =A0 =A0case 0x0f383d: >> + =A0 =A0 =A0 =A0/* pmaxuw */ >> + =A0 =A0 =A0 =A0case 0x0f383e: >> + =A0 =A0 =A0 =A0/* pmaxud */ >> + =A0 =A0 =A0 =A0case 0x0f383f: >> + =A0 =A0 =A0 =A0/* pmulld */ >> + =A0 =A0 =A0 =A0case 0x0f3840: >> + =A0 =A0 =A0 =A0/* phminposuw */ >> + =A0 =A0 =A0 =A0case 0x0f3841: >> + =A0 =A0 =A0 =A0/* palignr */ >> + =A0 =A0 =A0 =A0case 0x0f3a0f: >> + =A0 =A0 =A0 =A0/* punpcklbw */ >> + =A0 =A0 =A0 =A0case 0x0f60: >> + =A0 =A0 =A0 =A0/* punpcklwd */ >> + =A0 =A0 =A0 =A0case 0x0f61: >> + =A0 =A0 =A0 =A0/* punpckldq */ >> + =A0 =A0 =A0 =A0case 0x0f62: >> + =A0 =A0 =A0 =A0/* packsswb */ >> + =A0 =A0 =A0 =A0case 0x0f63: >> + =A0 =A0 =A0 =A0/* pcmpgtb */ >> + =A0 =A0 =A0 =A0case 0x0f64: >> + =A0 =A0 =A0 =A0/* pcmpgtw */ >> + =A0 =A0 =A0 =A0case 0x0f65: >> + =A0 =A0 =A0 =A0/* pcmpgtl */ >> + =A0 =A0 =A0 =A0case 0x0f66: >> + =A0 =A0 =A0 =A0/* packuswb */ >> + =A0 =A0 =A0 =A0case 0x0f67: >> + =A0 =A0 =A0 =A0/* punpckhbw */ >> + =A0 =A0 =A0 =A0case 0x0f68: >> + =A0 =A0 =A0 =A0/* punpckhwd */ >> + =A0 =A0 =A0 =A0case 0x0f69: >> + =A0 =A0 =A0 =A0/* punpckhdq */ >> + =A0 =A0 =A0 =A0case 0x0f6a: >> + =A0 =A0 =A0 =A0/* packssdw */ >> + =A0 =A0 =A0 =A0case 0x0f6b: >> + =A0 =A0 =A0 =A0/* movd */ >> + =A0 =A0 =A0 =A0case 0x0f6e: >> + =A0 =A0 =A0 =A0/* movq */ >> + =A0 =A0 =A0 =A0case 0x0f6f: >> + =A0 =A0 =A0 =A0/* pshufw */ >> + =A0 =A0 =A0 =A0case 0x0f70: >> + =A0 =A0 =A0 =A0/* pcmpeqb */ >> + =A0 =A0 =A0 =A0case 0x0f74: >> + =A0 =A0 =A0 =A0/* pcmpeqw */ >> + =A0 =A0 =A0 =A0case 0x0f75: >> + =A0 =A0 =A0 =A0/* pcmpeql */ >> + =A0 =A0 =A0 =A0case 0x0f76: >> + =A0 =A0 =A0 =A0/* pinsrw */ >> + =A0 =A0 =A0 =A0case 0x0fc4: >> + =A0 =A0 =A0 =A0/* psrlw */ >> + =A0 =A0 =A0 =A0case 0x0fd1: >> + =A0 =A0 =A0 =A0/* psrld */ >> + =A0 =A0 =A0 =A0case 0x0fd2: >> + =A0 =A0 =A0 =A0/* psrlq */ >> + =A0 =A0 =A0 =A0case 0x0fd3: >> + =A0 =A0 =A0 =A0/* paddq */ >> + =A0 =A0 =A0 =A0case 0x0fd4: >> + =A0 =A0 =A0 =A0/* pmullw */ >> + =A0 =A0 =A0 =A0case 0x0fd5: >> + =A0 =A0 =A0 =A0/* movdq2q */ >> + =A0 =A0 =A0 =A0case 0xf20fd6: >> + =A0 =A0 =A0 =A0/* psubusb */ >> + =A0 =A0 =A0 =A0case 0x0fd8: >> + =A0 =A0 =A0 =A0/* psubusw */ >> + =A0 =A0 =A0 =A0case 0x0fd9: >> + =A0 =A0 =A0 =A0/* pminub */ >> + =A0 =A0 =A0 =A0case 0x0fda: >> + =A0 =A0 =A0 =A0/* pand */ >> + =A0 =A0 =A0 =A0case 0x0fdb: >> + =A0 =A0 =A0 =A0/* paddusb */ >> + =A0 =A0 =A0 =A0case 0x0fdc: >> + =A0 =A0 =A0 =A0/* paddusw */ >> + =A0 =A0 =A0 =A0case 0x0fdd: >> + =A0 =A0 =A0 =A0/* pmaxub */ >> + =A0 =A0 =A0 =A0case 0x0fde: >> + =A0 =A0 =A0 =A0/* pandn */ >> + =A0 =A0 =A0 =A0case 0x0fdf: >> + =A0 =A0 =A0 =A0/* pavgb */ >> + =A0 =A0 =A0 =A0case 0x0fe0: >> + =A0 =A0 =A0 =A0/* psraw */ >> + =A0 =A0 =A0 =A0case 0x0fe1: >> + =A0 =A0 =A0 =A0/* psrad */ >> + =A0 =A0 =A0 =A0case 0x0fe2: >> + =A0 =A0 =A0 =A0/* pavgw */ >> + =A0 =A0 =A0 =A0case 0x0fe3: >> + =A0 =A0 =A0 =A0/* pmulhuw */ >> + =A0 =A0 =A0 =A0case 0x0fe4: >> + =A0 =A0 =A0 =A0/* pmulhw */ >> + =A0 =A0 =A0 =A0case 0x0fe5: >> + =A0 =A0 =A0 =A0/* psubsb */ >> + =A0 =A0 =A0 =A0case 0x0fe8: >> + =A0 =A0 =A0 =A0/* psubsw */ >> + =A0 =A0 =A0 =A0case 0x0fe9: >> + =A0 =A0 =A0 =A0/* pminsw */ >> + =A0 =A0 =A0 =A0case 0x0fea: >> + =A0 =A0 =A0 =A0/* por */ >> + =A0 =A0 =A0 =A0case 0x0feb: >> + =A0 =A0 =A0 =A0/* paddsb */ >> + =A0 =A0 =A0 =A0case 0x0fec: >> + =A0 =A0 =A0 =A0/* paddsw */ >> + =A0 =A0 =A0 =A0case 0x0fed: >> + =A0 =A0 =A0 =A0/* pmaxsw */ >> + =A0 =A0 =A0 =A0case 0x0fee: >> + =A0 =A0 =A0 =A0/* pxor */ >> + =A0 =A0 =A0 =A0case 0x0fef: >> + =A0 =A0 =A0 =A0/* psllw */ >> + =A0 =A0 =A0 =A0case 0x0ff1: >> + =A0 =A0 =A0 =A0/* pslld */ >> + =A0 =A0 =A0 =A0case 0x0ff2: >> + =A0 =A0 =A0 =A0/* psllq */ >> + =A0 =A0 =A0 =A0case 0x0ff3: >> + =A0 =A0 =A0 =A0/* pmuludq */ >> + =A0 =A0 =A0 =A0case 0x0ff4: >> + =A0 =A0 =A0 =A0/* pmaddwd */ >> + =A0 =A0 =A0 =A0case 0x0ff5: >> + =A0 =A0 =A0 =A0/* psadbw */ >> + =A0 =A0 =A0 =A0case 0x0ff6: >> + =A0 =A0 =A0 =A0/* psubb */ >> + =A0 =A0 =A0 =A0case 0x0ff8: >> + =A0 =A0 =A0 =A0/* psubw */ >> + =A0 =A0 =A0 =A0case 0x0ff9: >> + =A0 =A0 =A0 =A0/* psubl */ >> + =A0 =A0 =A0 =A0case 0x0ffa: >> + =A0 =A0 =A0 =A0/* psubq */ >> + =A0 =A0 =A0 =A0case 0x0ffb: >> + =A0 =A0 =A0 =A0/* paddb */ >> + =A0 =A0 =A0 =A0case 0x0ffc: >> + =A0 =A0 =A0 =A0/* paddw */ >> + =A0 =A0 =A0 =A0case 0x0ffd: >> + =A0 =A0 =A0 =A0/* paddl */ >> + =A0 =A0 =A0 =A0case 0x0ffe: >> + =A0 =A0 =A0 =A0 =A0if (i386_record_modrm (&ir)) >> + =A0 =A0 =A0 =A0 =A0 return -1; >> + =A0 =A0 =A0 =A0 =A0if (!i386_mmx_regnum_p (gdbarch, I387_MM0_REGNUM (t= dep) + >> ir.reg)) >> + =A0 =A0 =A0 =A0 =A0 =A0goto no_support; >> + =A0 =A0 =A0 =A0 =A0record_arch_list_add_reg (ir.regcache, >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0I387_MM0_REGNUM (tdep) + ir.reg); >> + =A0 =A0 =A0 =A0 =A0break; >> + >> + =A0 =A0 =A0 =A0/* psllw */ >> + =A0 =A0 =A0 =A0case 0x0f71: >> + =A0 =A0 =A0 =A0/* pslld */ >> + =A0 =A0 =A0 =A0case 0x0f72: >> + =A0 =A0 =A0 =A0/* psllq */ >> + =A0 =A0 =A0 =A0case 0x0f73: >> + =A0 =A0 =A0 =A0 =A0if (i386_record_modrm (&ir)) >> + =A0 =A0 =A0 =A0 =A0 return -1; >> + =A0 =A0 =A0 =A0 =A0if (!i386_mmx_regnum_p (gdbarch, I387_MM0_REGNUM (t= dep) + >> ir.rm)) >> + =A0 =A0 =A0 =A0 =A0 =A0goto no_support; >> + =A0 =A0 =A0 =A0 =A0record_arch_list_add_reg (ir.regcache, >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0I387_MM0_REGNUM (tdep) + ir.rm); >> + =A0 =A0 =A0 =A0 =A0break; >> + >> + =A0 =A0 =A0 =A0/* psllw */ >> + =A0 =A0 =A0 =A0case 0x660f71: >> + =A0 =A0 =A0 =A0/* pslld */ >> + =A0 =A0 =A0 =A0case 0x660f72: >> + =A0 =A0 =A0 =A0/* psllq */ >> + =A0 =A0 =A0 =A0case 0x660f73: >> + =A0 =A0 =A0 =A0 =A0if (i386_record_modrm (&ir)) >> + =A0 =A0 =A0 =A0 =A0 return -1; >> + =A0 =A0 =A0 =A0 =A0ir.rm |=3D ir.rex_b; >> + =A0 =A0 =A0 =A0 =A0if (!i386_sse_regnum_p (gdbarch, I387_XMM0_REGNUM (= tdep) + >> ir.rm)) >> + =A0 =A0 =A0 =A0 =A0 =A0goto no_support; >> + =A0 =A0 =A0 =A0 =A0record_arch_list_add_reg (ir.regcache, >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0I387_XMM0_REGNUM (tdep) + ir.rm); >> + =A0 =A0 =A0 =A0 =A0break; >> + >> + =A0 =A0 =A0 =A0/* movd */ >> + =A0 =A0 =A0 =A0case 0x0f7e: >> + =A0 =A0 =A0 =A0/* movd */ >> + =A0 =A0 =A0 =A0case 0x660f7e: >> + =A0 =A0 =A0 =A0 =A0if (i386_record_modrm (&ir)) >> + =A0 =A0 =A0 =A0 =A0 return -1; >> + =A0 =A0 =A0 =A0 =A0if (ir.mod =3D=3D 3) >> + =A0 =A0 =A0 =A0 =A0 =A0I386_RECORD_ARCH_LIST_ADD_REG (ir.rm | ir.rex_b= ); >> + =A0 =A0 =A0 =A0 =A0else >> + =A0 =A0 =A0 =A0 =A0 =A0{ >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0if (ir.dflag =3D=3D 2) >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0ir.ot =3D OT_QUAD; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0else >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0ir.ot =3D OT_LONG; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0if (i386_record_lea_modrm (&ir)) >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0return -1; >> + =A0 =A0 =A0 =A0 =A0 =A0} >> + =A0 =A0 =A0 =A0 =A0break; >> + >> + =A0 =A0 =A0 =A0/* movq */ >> + =A0 =A0 =A0 =A0case 0x0f7f: >> + =A0 =A0 =A0 =A0 =A0if (i386_record_modrm (&ir)) >> + =A0 =A0 =A0 =A0 =A0 return -1; >> + =A0 =A0 =A0 =A0 =A0if (ir.mod =3D=3D 3) >> + =A0 =A0 =A0 =A0 =A0 =A0{ >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0if (!i386_mmx_regnum_p (gdbarch, I387_MM0_R= EGNUM (tdep) + >> ir.rm)) >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0goto no_support; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0record_arch_list_add_reg (ir.regcache, >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0 =A0I387_MM0_REGNUM (tdep) + ir.rm); >> + =A0 =A0 =A0 =A0 =A0 =A0} >> + =A0 =A0 =A0 =A0 =A0else >> + =A0 =A0 =A0 =A0 =A0 =A0{ >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0ir.ot =3D OT_QUAD; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0if (i386_record_lea_modrm (&ir)) >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0return -1; >> + =A0 =A0 =A0 =A0 =A0 =A0} >> + =A0 =A0 =A0 =A0 =A0break; >> + >> + =A0 =A0 =A0 =A0/* popcnt */ >> + =A0 =A0 =A0 =A0case 0xf30fb8: >> + =A0 =A0 =A0 =A0 =A0if (i386_record_modrm (&ir)) >> + =A0 =A0 =A0 =A0 =A0 return -1; >> + =A0 =A0 =A0 =A0 =A0I386_RECORD_ARCH_LIST_ADD_REG (ir.reg); >> + =A0 =A0 =A0 =A0 =A0I386_RECORD_ARCH_LIST_ADD_REG (X86_RECORD_EFLAGS_RE= GNUM); >> + =A0 =A0 =A0 =A0 =A0break; >> + >> + =A0 =A0 =A0 =A0/* movq */ >> + =A0 =A0 =A0 =A0case 0x660fd6: >> + =A0 =A0 =A0 =A0 =A0if (i386_record_modrm (&ir)) >> + =A0 =A0 =A0 =A0 =A0 return -1; >> + =A0 =A0 =A0 =A0 =A0if (ir.mod =3D=3D 3) >> + =A0 =A0 =A0 =A0 =A0 =A0{ >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0ir.rm |=3D ir.rex_b; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0if (!i386_sse_regnum_p (gdbarch, I387_XMM0_= REGNUM >> (tdep) + ir.rm)) >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0goto no_support; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0record_arch_list_add_reg (ir.regcache, >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0 =A0I387_XMM0_REGNUM (tdep) + ir.rm); >> + =A0 =A0 =A0 =A0 =A0 =A0} >> + =A0 =A0 =A0 =A0 =A0else >> + =A0 =A0 =A0 =A0 =A0 =A0{ >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0ir.ot =3D OT_QUAD; >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0if (i386_record_lea_modrm (&ir)) >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0return -1; >> + =A0 =A0 =A0 =A0 =A0 =A0} >> + =A0 =A0 =A0 =A0 =A0break; >> + >> + =A0 =A0 =A0 =A0/* ptest */ >> + =A0 =A0 =A0 =A0case 0x660f3817: >> + =A0 =A0 =A0 =A0/* ucomiss */ >> + =A0 =A0 =A0 =A0case 0x0f2e: >> + =A0 =A0 =A0 =A0/* ucomisd */ >> + =A0 =A0 =A0 =A0case 0x660f2e: >> + =A0 =A0 =A0 =A0/* comiss */ >> + =A0 =A0 =A0 =A0case 0x0f2f: >> + =A0 =A0 =A0 =A0/* comisd */ >> + =A0 =A0 =A0 =A0case 0x660f2f: >> + =A0 =A0 =A0 =A0 =A0I386_RECORD_ARCH_LIST_ADD_REG (X86_RECORD_EFLAGS_RE= GNUM); >> + =A0 =A0 =A0 =A0 =A0break; >> + >> + =A0 =A0 =A0 =A0/* maskmovq */ >> + =A0 =A0 =A0 =A0case 0x0ff7: >> + =A0 =A0 =A0 =A0 =A0regcache_raw_read_unsigned (ir.regcache, >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0ir.regmap[X86_RECORD_REDI_REGNUM], >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0&tmpulongest); >> + =A0 =A0 =A0 =A0 =A0if (record_arch_list_add_mem (tmpulongest, 64)) >> + =A0 =A0 =A0 =A0 =A0 =A0return -1; >> + =A0 =A0 =A0 =A0 =A0break; >> + >> + =A0 =A0 =A0 =A0/* maskmovdqu */ >> + =A0 =A0 =A0 =A0case 0x660ff7: >> + =A0 =A0 =A0 =A0 =A0regcache_raw_read_unsigned (ir.regcache, >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0ir.regmap[X86_RECORD_REDI_REGNUM], >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 = =A0 =A0&tmpulongest); >> + =A0 =A0 =A0 =A0 =A0if (record_arch_list_add_mem (tmpulongest, 128)) >> + =A0 =A0 =A0 =A0 =A0 =A0return -1; >> + =A0 =A0 =A0 =A0 =A0break; >> + >> + =A0 =A0 =A0 =A0default: >> + =A0 =A0 =A0 =A0 =A0goto no_support; >> + =A0 =A0 =A0 =A0 =A0break; >> + =A0 =A0 =A0 =A0} >> + =A0 =A0 =A0break; >> >> =A0 =A0 default: >> - =A0 =A0 =A0if (opcode > 0xff) >> - =A0 =A0 =A0 ir.addr -=3D 2; >> - =A0 =A0 =A0else >> - =A0 =A0 =A0 ir.addr -=3D 1; >> =A0 =A0 =A0 goto no_support; >> =A0 =A0 =A0 break; >> =A0 =A0 } >> @@ -5370,8 +6554,9 @@ reswitch: >> >> =A0no_support: >> =A0 printf_unfiltered (_("Process record doesn't support instruction 0x%= 02x >> " >> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0"at address %s.\n"), >> - =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0(unsigned int) (opcode), paddre= ss (gdbarch, >> ir.addr)); >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 "at address %s.\n"), >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 (unsigned int) (opcode), >> + =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 paddress (gdbarch, ir.orig_add= r)); >> =A0 return -1; >> =A0} > >