16615SN/A// Copyright (c) 2008 The Regents of The University of Michigan 26615SN/A// All rights reserved. 36615SN/A// 46615SN/A// Redistribution and use in source and binary forms, with or without 56615SN/A// modification, are permitted provided that the following conditions are 66615SN/A// met: redistributions of source code must retain the above copyright 76615SN/A// notice, this list of conditions and the following disclaimer; 86615SN/A// redistributions in binary form must reproduce the above copyright 96615SN/A// notice, this list of conditions and the following disclaimer in the 106615SN/A// documentation and/or other materials provided with the distribution; 116615SN/A// neither the name of the copyright holders nor the names of its 126615SN/A// contributors may be used to endorse or promote products derived from 136615SN/A// this software without specific prior written permission. 146615SN/A// 156615SN/A// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 166615SN/A// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 176615SN/A// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 186615SN/A// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 196615SN/A// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 206615SN/A// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 216615SN/A// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 226615SN/A// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 236615SN/A// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 246615SN/A// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 256615SN/A// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 266615SN/A// 276615SN/A// Authors: Gabe Black 286615SN/A 296615SN/A//////////////////////////////////////////////////////////////////// 306615SN/A// 3110593Sgabeblack@google.com// Decode the three byte opcodes with the 0f3a prefix. 326615SN/A// 3310593Sgabeblack@google.comformat WarnUnimpl { 3410593Sgabeblack@google.com 'X86ISA::ThreeByte0F3AOpcode': decode LEGACY_OP { 3510593Sgabeblack@google.com 1: decode OPCODE_OP { 3610593Sgabeblack@google.com 0x08: roundps_Vdq_Wdq_Ib(); 3710593Sgabeblack@google.com 0x09: roundpd_Vdq_Wdq_Ib(); 3810593Sgabeblack@google.com 0x0A: roundss_Vss_Wss_Ib(); 3910593Sgabeblack@google.com 0x0B: roundsd_Vsd_Wsd_Ib(); 4010593Sgabeblack@google.com 0x0C: blendps_Vdq_Wdq_Ib(); 4110593Sgabeblack@google.com 0x0D: blendpd_Vdq_Wdq_Ib(); 4210593Sgabeblack@google.com 0x0E: pblendw_Vdq_Wdq_Ib(); 4310593Sgabeblack@google.com 0x0F: palignr_Vdq_Wdq_Ib(); 4410593Sgabeblack@google.com 0x14: pextrb_Rd_or_Mb_Vdq_Ib(); 4510593Sgabeblack@google.com 0x15: decode MODRM_MOD { 4610593Sgabeblack@google.com 0x3: Inst::PEXTRW(Rd,Vdq,Ib); 4710593Sgabeblack@google.com default: pextrw_Mw_Vdq_Ib(); 486615SN/A } 4910593Sgabeblack@google.com 0x16: pextrd_pextrq_Ed_or_Eq_Vdq_Ib(); 5010593Sgabeblack@google.com 0x17: extractps_Ed_Vdq_Ib(); 5110593Sgabeblack@google.com 0x20: pinsrb_Vdq_Rd_or_Rq_or_Mb_Ib(); 5210593Sgabeblack@google.com 0x21: insertps_Vdq_Udq_or_Md_Ib(); 5310593Sgabeblack@google.com 0x22: pinsrd_pinsrq_Vdq_Ed_or_Eq_Ib(); 5410593Sgabeblack@google.com 0x40: dpps_Vdq_Wdq_Ib(); 5510593Sgabeblack@google.com 0x41: dppd_Vdq_Wdq_Ib(); 5610593Sgabeblack@google.com 0x42: pcmpistrm_Vdq_Wdq_Ib(); 5710593Sgabeblack@google.com 0x43: pcmpistri_Vdq_Wdq_Ib(); 5810593Sgabeblack@google.com default: Inst::UD2(); 596615SN/A } 6010593Sgabeblack@google.com default: decode OPCODE_OP { 6110593Sgabeblack@google.com 0x0F: palignr_Pq_Qq_Ib(); 6210593Sgabeblack@google.com default: Inst::UD2(); 636615SN/A } 646615SN/A } 656615SN/A} 66