From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 7904 invoked by alias); 13 Dec 2009 10:35:48 -0000 Received: (qmail 6319 invoked by uid 22791); 13 Dec 2009 10:35:42 -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-pz0-f189.google.com (HELO mail-pz0-f189.google.com) (209.85.222.189) by sourceware.org (qpsmtpd/0.43rc1) with SMTP; Sun, 13 Dec 2009 10:35:34 +0000 Received: by pzk27 with SMTP id 27so1620502pzk.12 for ; Sun, 13 Dec 2009 02:35:30 -0800 (PST) MIME-Version: 1.0 Received: by 10.142.118.10 with SMTP id q10mr2207892wfc.4.1260700529142; Sun, 13 Dec 2009 02:35:29 -0800 (PST) In-Reply-To: References: <4B215151.6040608@vmware.com> From: Hui Zhu Date: Sun, 13 Dec 2009 10:35: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/msg00179.txt.bz2 Sorry guys, I make a mistake, sigall-reverse.exp sigall-precsave.exp is OK with this patch. Thanks, Hui On Sun, Dec 13, 2009 at 00:59, Hui Zhu wrote: > Hi, > > This the update sse patch that follow cvs-head update. > > And about the testcase, the sse patch fix a lot of fail because some > code in testcase use sse insn. > Now, I just got fail in solib-precsave.exp sigall-reverse.exp > sigall-precsave.exp. > > solib-precsave.exp, this fail is because the core solib error that I > report in before. > sigall-reverse.exp sigall-precsave.exp > sigall-reverse.exp sigall-precsave.exp is because some behavior error. > =A0I need check x86 and amd64's different. =A0And try fix it in yesterday. > > Thanks, > Hui > > 2009-12-13 =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, SSE2, > =A0 =A0 =A0 =A0SSE3, SSSE3 and SSE4. > > --- > =A0i386-tdep.c | 1216 +++++++++++++++++++++++++++++++++++++++++++++++++++= ++++++++- > =A01 file changed, 1200 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 */ > @@ -3295,7 +3296,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) > @@ -3413,7 +3414,7 @@ i386_process_record (struct gdbarch *gdb > =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; > > @@ -5217,7 +5218,7 @@ i386_process_record (struct gdbarch *gdb > =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 suppo= rt " > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 "instruct= ion int 0x%02x.\n"), > @@ -5225,7 +5226,7 @@ i386_process_record (struct gdbarch *gdb > =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.regc= ache); > + =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 } > @@ -5322,14 +5323,14 @@ i386_process_record (struct gdbarch *gdb > =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 NUL= L) > + =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 suppo= rt " > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 "instruct= ion 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.re= gcache); > + =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 } > @@ -5347,14 +5348,14 @@ i386_process_record (struct gdbarch *gdb > =A0 =A0 case 0x0f05: > =A0 =A0 =A0 { > =A0 =A0 =A0 =A0int ret; > - =A0 =A0 =A0 if (gdbarch_tdep (gdbarch)->i386_syscall_record =3D=3D NULL) > + =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 suppo= rt " > =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 "instruct= ion 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.reg= cache); > + =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 } > @@ -5698,14 +5699,1196 @@ i386_process_record (struct gdbarch *gdb > =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(tdep= )); > + =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 reading= 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 (gd= barch, 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 (td= ep) + 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_EFLAGS= _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_EFLAGS= _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_REG= NUM(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_REGNUM= (tdep))) > + =A0 =A0 =A0 =A0 =A0 =A0goto no_support; > + =A0 =A0 =A0 =A0 =A0record_arch_list_add_reg (ir.regcache, I387_MXCSR_RE= GNUM(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: error= 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 =A0padd= ress (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 (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 =A0= I387_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_EFLAGS= _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 0x= 660f13 > + =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_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_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 (td= ep) + 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 =A0= I387_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 (td= ep) + 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 =A0= I387_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 (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 =A0= I387_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_RE= GNUM (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_REG= NUM); > + =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_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_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_REG= NUM); > + =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 } > @@ -5719,8 +6902,9 @@ i386_process_record (struct gdbarch *gdb > > =A0no_support: > =A0 printf_unfiltered (_("Process record doesn't support instruction 0x%0= 2x " > - =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), paddres= s (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_addr= )); > =A0 return -1; > =A0} >