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 + -
显示快捷键?