insx86e1.h

来自「开放源码的编译器open watcom 1.6.0版的源代码」· C头文件 代码 · 共 193 行 · 第 1/2 页

H
193
字号
/****************************************************************************
*
*                            Open Watcom Project
*
*    Portions Copyright (c) 1983-2002 Sybase, Inc. All Rights Reserved.
*
*  ========================================================================
*
*    This file contains Original Code and/or Modifications of Original
*    Code as defined in and that are subject to the Sybase Open Watcom
*    Public License version 1.0 (the 'License'). You may not use this file
*    except in compliance with the License. BY USING THIS FILE YOU AGREE TO
*    ALL TERMS AND CONDITIONS OF THE LICENSE. A copy of the License is
*    provided with the Original Code and Modifications, and is also
*    available at www.sybase.com/developer/opensource.
*
*    The Original Code and all software distributed under the License are
*    distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
*    EXPRESS OR IMPLIED, AND SYBASE AND ALL CONTRIBUTORS HEREBY DISCLAIM
*    ALL SUCH WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF
*    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR
*    NON-INFRINGEMENT. Please see the License for the specific language
*    governing rights and limitations under the License.
*
*  ========================================================================
*
* Description:  Table of x86 opcodes and corresponding decode routines.
*          only for extension 3DNow!, MMX, SSE, SSE2 and SSE3 
*          without OPND_SIZE, REPNE and REPE prefixes
*
****************************************************************************/

/*
      Idx,              Name,           Opcode,         Mask,           Handler
*/

// Intel MMX, SSE, SSE2 and SSE3 instructions

inspick( addps,         "addps",        0x0000580f,     0x0000ffff,     X86XMMRegModRM )         // sse  
inspick( andnps,        "andnps",       0x0000550f,     0x0000ffff,     X86XMMRegModRM )         // sse  
inspick( andps,         "andps",        0x0000540f,     0x0000ffff,     X86XMMRegModRM )         // sse  
inspick( clflush00,     "clflush",      0x0038ae0f,     0x00f8ffff,     X86ModRM_24 )            // sse2 
inspick( clflush01,     "clflush",      0x0078ae0f,     0x00f8ffff,     X86ModRM_24 )            // sse2 
inspick( clflush10,     "clflush",      0x00b8ae0f,     0x00f8ffff,     X86ModRM_24 )            // sse2 
inspick( cmpps,         "cmpps",        0x0000c20f,     0x0000ffff,     X86XMMRegModRMImm )      // sse  
inspick( comiss,        "comiss",       0x00002f0f,     0x0000ffff,     X86XMMRegModRM32 )       // sse  
inspick( cvtdq2ps,      "cvtdq2ps",     0x00005b0f,     0x0000ffff,     X86XMMRegModRM )         // sse2 
inspick( cvtpi2ps,      "cvtpi2ps",     0x00002a0f,     0x0000ffff,     X86XMMRegModRMMixed )    // sse  
inspick( cvtps2pd,      "cvtps2pd",     0x00005a0f,     0x0000ffff,     X86XMMRegModRM64 )       // sse2 
inspick( cvtps2pi,      "cvtps2pi",     0x00002d0f,     0x0000ffff,     X86MMRegModRMMixed )     // sse  
inspick( cvttps2pi,     "cvttps2pi",    0x00002c0f,     0x0000ffff,     X86MMRegModRMMixed )     // sse  
inspick( divps,         "divps",        0x00005e0f,     0x0000ffff,     X86XMMRegModRM )         // sse  
inspick( emms,          "emms",         0x0000770f,     0x0000ffff,     X86NoOp_16 )             // mmx  
inspick( ldmxcsr00,     "ldmxcsr",      0x0010ae0f,     0x00f8ffff,     X86ModRM_24 )            // sse  
inspick( ldmxcsr01,     "ldmxcsr",      0x0050ae0f,     0x00f8ffff,     X86ModRM_24 )            // sse  
inspick( ldmxcsr10,     "ldmxcsr",      0x0090ae0f,     0x00f8ffff,     X86ModRM_24 )            // sse  
inspick( lfence,        "lfence",       0x00e8ae0f,     0x00ffffff,     X86NoOp_24 )             // sse2 
inspick( maskmovq,      "maskmovq",     0x00c0f70f,     0x00c0ffff,     X86MMRegModRM )          // sse  
inspick( maxps,         "maxps",        0x00005f0f,     0x0000ffff,     X86XMMRegModRM )         // sse  
inspick( mfence,        "mfence",       0x00f0ae0f,     0x00ffffff,     X86NoOp_24 )             // sse2 
inspick( minps,         "minps",        0x00005d0f,     0x0000ffff,     X86XMMRegModRM )         // sse  
inspick( monitor,       "monitor",      0x00c8010f,     0x00ffffff,     X86NoOp_24 )             // sse3 
inspick( movaps_1,      "movaps",       0x0000280f,     0x0000ffff,     X86XMMRegModRM )         // sse  
inspick( movaps_2,      "movaps",       0x0000290f,     0x0000ffff,     X86XMMRegModRM_Rev )     // sse  
inspick( movd_1,        "movd",         0x00006e0f,     0x0000ffff,     X86MMRegModRMMixed )     // mmx  
inspick( movd_3,        "movd",         0x00007e0f,     0x0000ffff,     X86MMRegModRMMixed_Rev ) // mmx  
inspick( movhps00_1,    "movhps",       0x0000160f,     0x00c0ffff,     X86XMMRegModRM64 )       // sse  
inspick( movhps01_1,    "movhps",       0x0040160f,     0x00c0ffff,     X86XMMRegModRM64 )       // sse  
inspick( movhps10_1,    "movhps",       0x0080160f,     0x00c0ffff,     X86XMMRegModRM64 )       // sse  
inspick( movlhps,       "movlhps",      0x00c0160f,     0x00c0ffff,     X86XMMRegModRM64 )       // sse  
inspick( movhps00_2,    "movhps",       0x0000170f,     0x00c0ffff,     X86XMMRegModRM64_Rev )   // sse  
inspick( movhps01_2,    "movhps",       0x0040170f,     0x00c0ffff,     X86XMMRegModRM64_Rev )   // sse  
inspick( movhps10_2,    "movhps",       0x0080170f,     0x00c0ffff,     X86XMMRegModRM64_Rev )   // sse  
inspick( movlps00_1,    "movlps",       0x0000120f,     0x00c0ffff,     X86XMMRegModRM64 )       // sse  
inspick( movlps01_1,    "movlps",       0x0040120f,     0x00c0ffff,     X86XMMRegModRM64 )       // sse  
inspick( movlps10_1,    "movlps",       0x0080120f,     0x00c0ffff,     X86XMMRegModRM64 )       // sse  
inspick( movhlps,       "movhlps",      0x00c0120f,     0x00c0ffff,     X86XMMRegModRM64 )       // sse  
inspick( movlps00_2,    "movlps",       0x0000130f,     0x00c0ffff,     X86XMMRegModRM64_Rev )   // sse  
inspick( movlps01_2,    "movlps",       0x0040130f,     0x00c0ffff,     X86XMMRegModRM64_Rev )   // sse  
inspick( movlps10_2,    "movlps",       0x0080130f,     0x00c0ffff,     X86XMMRegModRM64_Rev )   // sse  
inspick( movmskps,      "movmskps",     0x00c0500f,     0x00c0ffff,     X86RegModRMMixed )       // sse  
inspick( movnti00,      "movnti",       0x0000c30f,     0x00c0ffff,     X86RegModRM32_Rev )      // sse2 
inspick( movnti01,      "movnti",       0x0040c30f,     0x00c0ffff,     X86RegModRM32_Rev )      // sse2 
inspick( movnti10,      "movnti",       0x0080c30f,     0x00c0ffff,     X86RegModRM32_Rev )      // sse2 
inspick( movntps00,     "movntps",      0x00002b0f,     0x00c0ffff,     X86XMMRegModRM_Rev )     // sse  
inspick( movntps01,     "movntps",      0x00402b0f,     0x00c0ffff,     X86XMMRegModRM_Rev )     // sse  
inspick( movntps10,     "movntps",      0x00802b0f,     0x00c0ffff,     X86XMMRegModRM_Rev )     // sse  
inspick( movntq00,      "movntq",       0x0000e70f,     0x00c0ffff,     X86MMRegModRM_Rev )      // sse  
inspick( movntq01,      "movntq",       0x0040e70f,     0x00c0ffff,     X86MMRegModRM_Rev )      // sse  
inspick( movntq10,      "movntq",       0x0080e70f,     0x00c0ffff,     X86MMRegModRM_Rev )      // sse  
inspick( movq_1,        "movq",         0x00006f0f,     0x0000ffff,     X86MMRegModRM )          // mmx  
inspick( movq_3,        "movq",         0x00007f0f,     0x0000ffff,     X86MMRegModRM_Rev )      // mmx  
inspick( movups_1,      "movups",       0x0000100f,     0x0000ffff,     X86XMMRegModRM )         // sse  
inspick( movups_2,      "movups",       0x0000110f,     0x0000ffff,     X86XMMRegModRM_Rev )     // sse  
inspick( mulps,         "mulps",        0x0000590f,     0x0000ffff,     X86XMMRegModRM )         // sse  
inspick( mwait,         "mwait",        0x00c9010f,     0x00ffffff,     X86NoOp_24 )             // sse3 
inspick( orps,          "orps",         0x0000560f,     0x0000ffff,     X86XMMRegModRM )         // sse  

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?