insppc.h
来自「开放源码的编译器open watcom 1.6.0版的源代码」· C头文件 代码 · 共 288 行 · 第 1/2 页
H
288 行
/****************************************************************************
*
* 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 PowerPC opcodes and corresponding decode routines.
*
****************************************************************************/
#define u(a) ((a##ul)<<26)
#define v(a,b) (u(a) + ((b##ul)<<1))
#define w(a,b) (u(a) + (b##ul))
#define x(a,b) (u(a) + ((b##ul)<<2))
/*
Idx, Name, Opcode, Mask, Handler
*/
inspick( abs, "abs", v(31,360), 0xFC00FBFE, PPCMathda )
inspick( add, "add", v(31,266), 0xFC0003FE, PPCMath )
inspick( addc, "addc", v(31, 10), 0xFC0003FE, PPCMath )
inspick( adde, "adde", v(31,138), 0xFC0003FE, PPCMath )
inspick( addi, "addi", u(14), 0xFC000000, PPCImmediate )
inspick( addic, "addic", u(12), 0xFC000000, PPCImmediate )
inspick( addic_dot, "addic.", u(13), 0xFC000000, PPCImmediate )
inspick( addis, "addis", u(15), 0xFC000000, PPCImmediate )
inspick( addme, "addme", v(31,234), 0xFC00FBFE, PPCMathda )
inspick( addze, "addze", v(31,202), 0xFC00FBFE, PPCMathda )
inspick( and, "and", v(31, 28), 0xFC0007FE, PPCMath )
inspick( andc, "andc", v(31, 60), 0xFC0007FE, PPCMath )
inspick( andi_dot, "andi.", u(28), 0xFC000000, PPCImmediate )
inspick( andis_dot, "andis.", u(29), 0xFC000000, PPCImmediate )
inspick( b, "b", u(18), 0xFC000000, PPCBranch )
inspick( bc, "bc", u(16), 0xFC000000, PPCBranch )
inspick( bcctr, "bcctr", v(19,528), 0xFC00FFFE, PPCBranch )
inspick( bclr, "bclr", v(19, 16), 0xFC00FFFE, PPCBranch )
inspick( clcs, "clcs", v(31,531), 0xFC00FFFE, PPCMathda )
inspick( cmp, "cmp", v(31, 0), 0xFC4007FF, PPCCompare )
inspick( cmpi, "cmpi", u(11), 0xFC400000, PPCCompare )
inspick( cmpl, "cmpl", v(31, 32), 0xFC4007FF, PPCCompare )
inspick( cmpli, "cmpli", u(10), 0xFC400000, PPCCompare )
inspick( cntlzd, "cntlzd", v(31, 58), 0xFC00FFFE, PPCMathsa )
inspick( cntlzw, "cntlzw", v(31, 26), 0xFC00FFFE, PPCMathsa )
inspick( crand, "crand", v(19,257), 0xFC0007FF, PPCCondition )
inspick( crandc, "crandc", v(19,129), 0xFC0007FF, PPCCondition )
inspick( creqv, "creqv", v(19,289), 0xFC0007FF, PPCCondition )
inspick( crnand, "crnand", v(19,225), 0xFC0007FF, PPCCondition )
inspick( crnor, "crnor", v(19, 33), 0xFC0007FF, PPCCondition )
inspick( cror, "cror", v(19,449), 0xFC0007FF, PPCCondition )
inspick( crorc, "crorc", v(19,417), 0xFC0007FF, PPCCondition )
inspick( crxor, "crxor", v(19,193), 0xFC0007FF, PPCCondition )
inspick( dcbf, "dcbf", v(31, 86), 0xFFE007FF, PPCMathab )
inspick( dcbi, "dcbi", v(31,470), 0xFFE007FF, PPCMathab )
inspick( dcbst, "dcbst", v(31, 54), 0xFFE007FF, PPCMathab )
inspick( dcbt, "dcbt", v(31,278), 0xFFE007FF, PPCMathab )
inspick( dcbtst, "dcbtst", v(31,246), 0xFFE007FF, PPCMathab )
inspick( dcbz, "dcbz", v(31,1014), 0xFFE007FF, PPCMathab )
inspick( div, "div", v(31,331), 0xFC0003FE, PPCMath )
inspick( divd, "divd", v(31,489), 0xFC0003FE, PPCMath )
inspick( divdu, "divdu", v(31,457), 0xFC0003FE, PPCMath )
inspick( divs, "divs", v(31,363), 0xFC0003FE, PPCMath )
inspick( divw, "divw", v(31,491), 0xFC0003FE, PPCMath )
inspick( divwu, "divwu", v(31,459), 0xFC0003FE, PPCMath )
inspick( doz, "doz", v(31,264), 0xFC0003FE, PPCMath )
inspick( dozi, "dozi", u( 9), 0xFC000000, PPCImmediate )
inspick( eciwx, "eciwx", v(31,310), 0xFC0007FF, PPCMath )
inspick( ecowx, "ecowx", v(31,438), 0xFC0007FF, PPCMath )
inspick( eieio, "eieio", v(31,854), 0xFC0007FF, PPCNull )
inspick( eqv, "eqv", v(31,284), 0xFC0007FE, PPCMath2 )
inspick( extsb, "extsb", v(31,954), 0xFC00FFFE, PPCMathsa )
inspick( extsh, "extsh", v(31,922), 0xFC00FFFE, PPCMathsa )
inspick( extsw, "extsw", v(31,986), 0xFC00FFFE, PPCMathsa )
inspick( fabs, "fabs", v(63,264), 0xFC1F07FE, PPCFloatdb )
inspick( fadd, "fadd", v(63, 21), 0xFC0007FE, PPCFloatdab )
inspick( fadds, "fadds", v(59, 21), 0xFC0007FE, PPCFloatdab )
inspick( fcfid, "fcfid", v(63,846), 0xFC1F07FE, PPCFloatdb )
inspick( fcmpo, "fcmpo", v(63, 32), 0xFC6007FF, PPCFloatCmpab )
inspick( fcmpu, "fcmpu", v(63, 0), 0xFC6007FF, PPCFloatCmpab )
inspick( fctid, "fctid", v(63,814), 0xFC1F07FE, PPCFloatdb )
inspick( fctidz, "fctidz", v(63,815), 0xFC1F07FE, PPCFloatdb )
inspick( fctiw, "fctiw", v(63, 14), 0xFC1F07FE, PPCFloatdb )
inspick( fctiwz, "fctiwz", v(63, 15), 0xFC1F07FE, PPCFloatdb )
inspick( fdiv, "fdiv", v(63, 18), 0xFC0007FE, PPCFloatdab )
inspick( fdivs, "fdivs", v(59, 18), 0xFC0007FE, PPCFloatdab )
inspick( fmadd, "fmadd", v(63, 29), 0xFC00003E, PPCFloat )
inspick( fmadds, "fmadds", v(59, 29), 0xFC00003E, PPCFloat )
inspick( fmr, "fmr", v(63, 72), 0xFC1F07FE, PPCFloatdb )
inspick( fmsub, "fmsub", v(63, 28), 0xFC00003E, PPCFloat )
inspick( fmsubs, "fmsubs", v(59, 28), 0xFC00003E, PPCFloat )
inspick( fmul, "fmul", v(63, 25), 0xFC00F83E, PPCFloatdac )
inspick( fmuls, "fmuls", v(59, 25), 0xFC00F83E, PPCFloatdac )
inspick( fnabs, "fnabs", v(63,136), 0xFC1F07FE, PPCFloatdb )
inspick( fneg, "fneg", v(63, 40), 0xFC1F07FE, PPCFloatdb )
inspick( fnmadd, "fnmadd", v(63, 31), 0xFC00003E, PPCFloat )
inspick( fnmadds, "fnmadds", v(59, 31), 0xFC00003E, PPCFloat )
inspick( fnmsub, "fnmsub", v(63, 30), 0xFC00003E, PPCFloat )
inspick( fnmsubs, "fnmsubs", v(59, 30), 0xFC00003E, PPCFloat )
inspick( frsp, "frsp", v(63, 12), 0xFC1F07FE, PPCFloatdb )
inspick( fsub, "fsub", v(63, 20), 0xFC0007FE, PPCFloatdab )
inspick( fsubs, "fsubs", v(59, 20), 0xFC0007FE, PPCFloatdab )
inspick( icbi, "icbi", v(31,982), 0xFFE007FF, PPCMathab )
inspick( isync, "isync", v(19,150), 0xFFFFFFFF, PPCNull )
inspick( lbz, "lbz", u(34), 0xFC000000, PPCMem1 )
inspick( lbzu, "lbzu", u(35), 0xFC000000, PPCMem1 )
inspick( lbzux, "lbzux", v(31,119), 0xFC0007FF, PPCMem2 )
inspick( lbzx, "lbzx", v(31, 87), 0xFC0007FF, PPCMem2 )
inspick( ld, "ld", w(58,0), 0xFC000003, PPCMemD1 )
inspick( ldarx, "ldarx", v(31, 84), 0xFC0007FF, PPCMemD2 )
inspick( ldu, "ldu", w(58,1), 0xFC000003, PPCMemD1 )
inspick( ldux, "ldux", v(31, 53), 0xFC0007FF, PPCMemD2 )
inspick( ldx, "ldx", v(31, 21), 0xFC0007FF, PPCMemD2 )
inspick( lfd, "lfd", u(50), 0xFC000000, PPCFloatMem1 )
inspick( lfdu, "lfdu", u(51), 0xFC000000, PPCFloatMem1 )
inspick( lfdux, "lfdux", v(31,631), 0xFC0007FF, PPCFloatMem2 )
inspick( lfdx, "lfdx", v(31,599), 0xFC0007FF, PPCFloatMem2 )
inspick( lfs, "lfs", u(48), 0xFC000000, PPCFloatMem1 )
inspick( lfsu, "lfsu", u(49), 0xFC000000, PPCFloatMem1 )
inspick( lfsux, "lfsux", v(31,567), 0xFC0007FF, PPCFloatMem2 )
inspick( lfsx, "lfsx", v(31,535), 0xFC0007FF, PPCFloatMem2 )
inspick( lha, "lha", u(42), 0xFC000000, PPCMem1 )
inspick( lhau, "lhau", u(43), 0xFC000000, PPCMem1 )
inspick( lhaux, "lhaux", v(31,375), 0xFC0007FF, PPCMem2 )
inspick( lhax, "lhax", v(31,343), 0xFC0007FF, PPCMem2 )
inspick( lhbrx, "lhbrx", v(31,790), 0xFC0007FF, PPCMem2 )
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?