insx86e2.h
来自「开放源码的编译器open watcom 1.6.0版的源代码」· C头文件 代码 · 共 168 行 · 第 1/2 页
H
168 行
/****************************************************************************
*
* 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 SSE, SSE2 and SSE3 with OPND_SIZE prefix (0x66)
*
****************************************************************************/
/*
All these instructions required only mandatory prefix 0x66
Idx, Name, Opcode, Mask, Handler
*/
inspick( addpd, "addpd", 0x0000580f, 0x0000ffff, X86XMMRegModRM ) // sse2
inspick( addsubpd, "addsubpd", 0x0000d00f, 0x0000ffff, X86XMMRegModRM ) // sse3
inspick( andnpd, "andnpd", 0x0000550f, 0x0000ffff, X86XMMRegModRM ) // sse2
inspick( andpd, "andpd", 0x0000540f, 0x0000ffff, X86XMMRegModRM ) // sse2
inspick( cmppd, "cmppd", 0x0000c20f, 0x0000ffff, X86XMMRegModRMImm ) // sse2
inspick( comisd, "comisd", 0x00002f0f, 0x0000ffff, X86XMMRegModRM64 ) // sse2
inspick( cvtpd2pi, "cvtpd2pi", 0x00002d0f, 0x0000ffff, X86MMRegModRMMixed ) // sse2
inspick( cvtpd2ps, "cvtpd2ps", 0x00005a0f, 0x0000ffff, X86XMMRegModRM ) // sse2
inspick( cvtpi2pd, "cvtpi2pd", 0x00002a0f, 0x0000ffff, X86XMMRegModRMMixed ) // sse2
inspick( cvtps2dq, "cvtps2dq", 0x00005b0f, 0x0000ffff, X86XMMRegModRM ) // sse2
inspick( cvttpd2dq, "cvttpd2dq", 0x0000e60f, 0x0000ffff, X86XMMRegModRM ) // sse2
inspick( cvttpd2pi, "cvttpd2pi", 0x00002c0f, 0x0000ffff, X86MMRegModRMMixed ) // sse2
inspick( divpd, "divpd", 0x00005e0f, 0x0000ffff, X86XMMRegModRM ) // sse2
inspick( haddpd, "haddpd", 0x00007c0f, 0x0000ffff, X86XMMRegModRM ) // sse3
inspick( hsubpd, "hsubpd", 0x00007d0f, 0x0000ffff, X86XMMRegModRM ) // sse3
inspick( maskmovdqu, "maskmovdqu", 0x00c0f70f, 0x00c0ffff, X86XMMRegModRM ) // sse2
inspick( maxpd, "maxpd", 0x00005f0f, 0x0000ffff, X86XMMRegModRM ) // sse2
inspick( minpd, "minpd", 0x00005d0f, 0x0000ffff, X86XMMRegModRM ) // sse2
inspick( movapd_1, "movapd", 0x0000280f, 0x0000ffff, X86XMMRegModRM ) // sse2
inspick( movapd_2, "movapd", 0x0000290f, 0x0000ffff, X86XMMRegModRM_Rev ) // sse2
inspick( movd_2, "movd", 0x00006e0f, 0x0000ffff, X86XMMRegModRMMixed ) // sse2
inspick( movd_4, "movd", 0x00007e0f, 0x0000ffff, X86XMMRegModRMMixed_Rev ) // sse2
inspick( movdqa_1, "movdqa", 0x00006f0f, 0x0000ffff, X86XMMRegModRM ) // sse2
inspick( movdqa_2, "movdqa", 0x00007f0f, 0x0000ffff, X86XMMRegModRM_Rev ) // sse2
inspick( movhpd00_1, "movhpd", 0x0000160f, 0x00c0ffff, X86XMMRegModRM64 ) // sse2
inspick( movhpd01_1, "movhpd", 0x0040160f, 0x00c0ffff, X86XMMRegModRM64 ) // sse2
inspick( movhpd10_1, "movhpd", 0x0080160f, 0x00c0ffff, X86XMMRegModRM64 ) // sse2
inspick( movhpd00_2, "movhpd", 0x0000170f, 0x00c0ffff, X86XMMRegModRM64_Rev ) // sse2
inspick( movhpd01_2, "movhpd", 0x0040170f, 0x00c0ffff, X86XMMRegModRM64_Rev ) // sse2
inspick( movhpd10_2, "movhpd", 0x0080170f, 0x00c0ffff, X86XMMRegModRM64_Rev ) // sse2
inspick( movlpd00_1, "movlpd", 0x0000120f, 0x00c0ffff, X86XMMRegModRM64 ) // sse2
inspick( movlpd01_1, "movlpd", 0x0040120f, 0x00c0ffff, X86XMMRegModRM64 ) // sse2
inspick( movlpd10_1, "movlpd", 0x0080120f, 0x00c0ffff, X86XMMRegModRM64 ) // sse2
inspick( movlpd00_2, "movlpd", 0x0000130f, 0x00c0ffff, X86XMMRegModRM64_Rev ) // sse2
inspick( movlpd01_2, "movlpd", 0x0040130f, 0x00c0ffff, X86XMMRegModRM64_Rev ) // sse2
inspick( movlpd10_2, "movlpd", 0x0080130f, 0x00c0ffff, X86XMMRegModRM64_Rev ) // sse2
inspick( movmskpd, "movmskpd", 0x00c0500f, 0x00c0ffff, X86RegModRMMixed ) // sse2
inspick( movntdq00, "movntdq", 0x0000e70f, 0x00c0ffff, X86XMMRegModRM_Rev ) // sse2
inspick( movntdq01, "movntdq", 0x0040e70f, 0x00c0ffff, X86XMMRegModRM_Rev ) // sse2
inspick( movntdq10, "movntdq", 0x0080e70f, 0x00c0ffff, X86XMMRegModRM_Rev ) // sse2
inspick( movntpd00, "movntpd", 0x00002b0f, 0x00c0ffff, X86XMMRegModRM_Rev ) // sse2
inspick( movntpd01, "movntpd", 0x00402b0f, 0x00c0ffff, X86XMMRegModRM_Rev ) // sse2
inspick( movntpd10, "movntpd", 0x00802b0f, 0x00c0ffff, X86XMMRegModRM_Rev ) // sse2
inspick( movq_4, "movq", 0x0000d60f, 0x0000ffff, X86XMMRegModRM64_Rev ) // sse2
inspick( movupd_1, "movupd", 0x0000100f, 0x0000ffff, X86XMMRegModRM ) // sse2
inspick( movupd_2, "movupd", 0x0000110f, 0x0000ffff, X86XMMRegModRM_Rev ) // sse2
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?