174fe6c29SRuslan Bukin /* 2*85f87cf4SRuslan Bukin * Copyright (c) 2013-2019, Intel Corporation 374fe6c29SRuslan Bukin * 474fe6c29SRuslan Bukin * Redistribution and use in source and binary forms, with or without 574fe6c29SRuslan Bukin * modification, are permitted provided that the following conditions are met: 674fe6c29SRuslan Bukin * 774fe6c29SRuslan Bukin * * Redistributions of source code must retain the above copyright notice, 874fe6c29SRuslan Bukin * this list of conditions and the following disclaimer. 974fe6c29SRuslan Bukin * * Redistributions in binary form must reproduce the above copyright notice, 1074fe6c29SRuslan Bukin * this list of conditions and the following disclaimer in the documentation 1174fe6c29SRuslan Bukin * and/or other materials provided with the distribution. 1274fe6c29SRuslan Bukin * * Neither the name of Intel Corporation nor the names of its contributors 1374fe6c29SRuslan Bukin * may be used to endorse or promote products derived from this software 1474fe6c29SRuslan Bukin * without specific prior written permission. 1574fe6c29SRuslan Bukin * 1674fe6c29SRuslan Bukin * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 1774fe6c29SRuslan Bukin * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 1874fe6c29SRuslan Bukin * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 1974fe6c29SRuslan Bukin * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 2074fe6c29SRuslan Bukin * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 2174fe6c29SRuslan Bukin * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 2274fe6c29SRuslan Bukin * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 2374fe6c29SRuslan Bukin * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 2474fe6c29SRuslan Bukin * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 2574fe6c29SRuslan Bukin * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 2674fe6c29SRuslan Bukin * POSSIBILITY OF SUCH DAMAGE. 2774fe6c29SRuslan Bukin */ 2874fe6c29SRuslan Bukin 2974fe6c29SRuslan Bukin static uint8_t has_modrm_map_0x0[256] = { 3074fe6c29SRuslan Bukin /*opcode 0x0*/ PTI_MODRM_TRUE, 3174fe6c29SRuslan Bukin /*opcode 0x1*/ PTI_MODRM_TRUE, 3274fe6c29SRuslan Bukin /*opcode 0x2*/ PTI_MODRM_TRUE, 3374fe6c29SRuslan Bukin /*opcode 0x3*/ PTI_MODRM_TRUE, 3474fe6c29SRuslan Bukin /*opcode 0x4*/ PTI_MODRM_FALSE, 3574fe6c29SRuslan Bukin /*opcode 0x5*/ PTI_MODRM_FALSE, 3674fe6c29SRuslan Bukin /*opcode 0x6*/ PTI_MODRM_FALSE, 3774fe6c29SRuslan Bukin /*opcode 0x7*/ PTI_MODRM_FALSE, 3874fe6c29SRuslan Bukin /*opcode 0x8*/ PTI_MODRM_TRUE, 3974fe6c29SRuslan Bukin /*opcode 0x9*/ PTI_MODRM_TRUE, 4074fe6c29SRuslan Bukin /*opcode 0xa*/ PTI_MODRM_TRUE, 4174fe6c29SRuslan Bukin /*opcode 0xb*/ PTI_MODRM_TRUE, 4274fe6c29SRuslan Bukin /*opcode 0xc*/ PTI_MODRM_FALSE, 4374fe6c29SRuslan Bukin /*opcode 0xd*/ PTI_MODRM_FALSE, 4474fe6c29SRuslan Bukin /*opcode 0xe*/ PTI_MODRM_FALSE, 4574fe6c29SRuslan Bukin /*opcode 0xf*/ PTI_MODRM_UNDEF, 4674fe6c29SRuslan Bukin /*opcode 0x10*/ PTI_MODRM_TRUE, 4774fe6c29SRuslan Bukin /*opcode 0x11*/ PTI_MODRM_TRUE, 4874fe6c29SRuslan Bukin /*opcode 0x12*/ PTI_MODRM_TRUE, 4974fe6c29SRuslan Bukin /*opcode 0x13*/ PTI_MODRM_TRUE, 5074fe6c29SRuslan Bukin /*opcode 0x14*/ PTI_MODRM_FALSE, 5174fe6c29SRuslan Bukin /*opcode 0x15*/ PTI_MODRM_FALSE, 5274fe6c29SRuslan Bukin /*opcode 0x16*/ PTI_MODRM_FALSE, 5374fe6c29SRuslan Bukin /*opcode 0x17*/ PTI_MODRM_FALSE, 5474fe6c29SRuslan Bukin /*opcode 0x18*/ PTI_MODRM_TRUE, 5574fe6c29SRuslan Bukin /*opcode 0x19*/ PTI_MODRM_TRUE, 5674fe6c29SRuslan Bukin /*opcode 0x1a*/ PTI_MODRM_TRUE, 5774fe6c29SRuslan Bukin /*opcode 0x1b*/ PTI_MODRM_TRUE, 5874fe6c29SRuslan Bukin /*opcode 0x1c*/ PTI_MODRM_FALSE, 5974fe6c29SRuslan Bukin /*opcode 0x1d*/ PTI_MODRM_FALSE, 6074fe6c29SRuslan Bukin /*opcode 0x1e*/ PTI_MODRM_FALSE, 6174fe6c29SRuslan Bukin /*opcode 0x1f*/ PTI_MODRM_FALSE, 6274fe6c29SRuslan Bukin /*opcode 0x20*/ PTI_MODRM_TRUE, 6374fe6c29SRuslan Bukin /*opcode 0x21*/ PTI_MODRM_TRUE, 6474fe6c29SRuslan Bukin /*opcode 0x22*/ PTI_MODRM_TRUE, 6574fe6c29SRuslan Bukin /*opcode 0x23*/ PTI_MODRM_TRUE, 6674fe6c29SRuslan Bukin /*opcode 0x24*/ PTI_MODRM_FALSE, 6774fe6c29SRuslan Bukin /*opcode 0x25*/ PTI_MODRM_FALSE, 6874fe6c29SRuslan Bukin /*opcode 0x26*/ PTI_MODRM_UNDEF, 6974fe6c29SRuslan Bukin /*opcode 0x27*/ PTI_MODRM_FALSE, 7074fe6c29SRuslan Bukin /*opcode 0x28*/ PTI_MODRM_TRUE, 7174fe6c29SRuslan Bukin /*opcode 0x29*/ PTI_MODRM_TRUE, 7274fe6c29SRuslan Bukin /*opcode 0x2a*/ PTI_MODRM_TRUE, 7374fe6c29SRuslan Bukin /*opcode 0x2b*/ PTI_MODRM_TRUE, 7474fe6c29SRuslan Bukin /*opcode 0x2c*/ PTI_MODRM_FALSE, 7574fe6c29SRuslan Bukin /*opcode 0x2d*/ PTI_MODRM_FALSE, 7674fe6c29SRuslan Bukin /*opcode 0x2e*/ PTI_MODRM_UNDEF, 7774fe6c29SRuslan Bukin /*opcode 0x2f*/ PTI_MODRM_FALSE, 7874fe6c29SRuslan Bukin /*opcode 0x30*/ PTI_MODRM_TRUE, 7974fe6c29SRuslan Bukin /*opcode 0x31*/ PTI_MODRM_TRUE, 8074fe6c29SRuslan Bukin /*opcode 0x32*/ PTI_MODRM_TRUE, 8174fe6c29SRuslan Bukin /*opcode 0x33*/ PTI_MODRM_TRUE, 8274fe6c29SRuslan Bukin /*opcode 0x34*/ PTI_MODRM_FALSE, 8374fe6c29SRuslan Bukin /*opcode 0x35*/ PTI_MODRM_FALSE, 8474fe6c29SRuslan Bukin /*opcode 0x36*/ PTI_MODRM_UNDEF, 8574fe6c29SRuslan Bukin /*opcode 0x37*/ PTI_MODRM_FALSE, 8674fe6c29SRuslan Bukin /*opcode 0x38*/ PTI_MODRM_TRUE, 8774fe6c29SRuslan Bukin /*opcode 0x39*/ PTI_MODRM_TRUE, 8874fe6c29SRuslan Bukin /*opcode 0x3a*/ PTI_MODRM_TRUE, 8974fe6c29SRuslan Bukin /*opcode 0x3b*/ PTI_MODRM_TRUE, 9074fe6c29SRuslan Bukin /*opcode 0x3c*/ PTI_MODRM_FALSE, 9174fe6c29SRuslan Bukin /*opcode 0x3d*/ PTI_MODRM_FALSE, 9274fe6c29SRuslan Bukin /*opcode 0x3e*/ PTI_MODRM_UNDEF, 9374fe6c29SRuslan Bukin /*opcode 0x3f*/ PTI_MODRM_FALSE, 9474fe6c29SRuslan Bukin /*opcode 0x40*/ PTI_MODRM_FALSE, 9574fe6c29SRuslan Bukin /*opcode 0x41*/ PTI_MODRM_FALSE, 9674fe6c29SRuslan Bukin /*opcode 0x42*/ PTI_MODRM_FALSE, 9774fe6c29SRuslan Bukin /*opcode 0x43*/ PTI_MODRM_FALSE, 9874fe6c29SRuslan Bukin /*opcode 0x44*/ PTI_MODRM_FALSE, 9974fe6c29SRuslan Bukin /*opcode 0x45*/ PTI_MODRM_FALSE, 10074fe6c29SRuslan Bukin /*opcode 0x46*/ PTI_MODRM_FALSE, 10174fe6c29SRuslan Bukin /*opcode 0x47*/ PTI_MODRM_FALSE, 10274fe6c29SRuslan Bukin /*opcode 0x48*/ PTI_MODRM_FALSE, 10374fe6c29SRuslan Bukin /*opcode 0x49*/ PTI_MODRM_FALSE, 10474fe6c29SRuslan Bukin /*opcode 0x4a*/ PTI_MODRM_FALSE, 10574fe6c29SRuslan Bukin /*opcode 0x4b*/ PTI_MODRM_FALSE, 10674fe6c29SRuslan Bukin /*opcode 0x4c*/ PTI_MODRM_FALSE, 10774fe6c29SRuslan Bukin /*opcode 0x4d*/ PTI_MODRM_FALSE, 10874fe6c29SRuslan Bukin /*opcode 0x4e*/ PTI_MODRM_FALSE, 10974fe6c29SRuslan Bukin /*opcode 0x4f*/ PTI_MODRM_FALSE, 11074fe6c29SRuslan Bukin /*opcode 0x50*/ PTI_MODRM_FALSE, 11174fe6c29SRuslan Bukin /*opcode 0x51*/ PTI_MODRM_FALSE, 11274fe6c29SRuslan Bukin /*opcode 0x52*/ PTI_MODRM_FALSE, 11374fe6c29SRuslan Bukin /*opcode 0x53*/ PTI_MODRM_FALSE, 11474fe6c29SRuslan Bukin /*opcode 0x54*/ PTI_MODRM_FALSE, 11574fe6c29SRuslan Bukin /*opcode 0x55*/ PTI_MODRM_FALSE, 11674fe6c29SRuslan Bukin /*opcode 0x56*/ PTI_MODRM_FALSE, 11774fe6c29SRuslan Bukin /*opcode 0x57*/ PTI_MODRM_FALSE, 11874fe6c29SRuslan Bukin /*opcode 0x58*/ PTI_MODRM_FALSE, 11974fe6c29SRuslan Bukin /*opcode 0x59*/ PTI_MODRM_FALSE, 12074fe6c29SRuslan Bukin /*opcode 0x5a*/ PTI_MODRM_FALSE, 12174fe6c29SRuslan Bukin /*opcode 0x5b*/ PTI_MODRM_FALSE, 12274fe6c29SRuslan Bukin /*opcode 0x5c*/ PTI_MODRM_FALSE, 12374fe6c29SRuslan Bukin /*opcode 0x5d*/ PTI_MODRM_FALSE, 12474fe6c29SRuslan Bukin /*opcode 0x5e*/ PTI_MODRM_FALSE, 12574fe6c29SRuslan Bukin /*opcode 0x5f*/ PTI_MODRM_FALSE, 12674fe6c29SRuslan Bukin /*opcode 0x60*/ PTI_MODRM_FALSE, 12774fe6c29SRuslan Bukin /*opcode 0x61*/ PTI_MODRM_FALSE, 12874fe6c29SRuslan Bukin /*opcode 0x62*/ PTI_MODRM_TRUE, 12974fe6c29SRuslan Bukin /*opcode 0x63*/ PTI_MODRM_TRUE, 13074fe6c29SRuslan Bukin /*opcode 0x64*/ PTI_MODRM_UNDEF, 13174fe6c29SRuslan Bukin /*opcode 0x65*/ PTI_MODRM_UNDEF, 13274fe6c29SRuslan Bukin /*opcode 0x66*/ PTI_MODRM_UNDEF, 13374fe6c29SRuslan Bukin /*opcode 0x67*/ PTI_MODRM_UNDEF, 13474fe6c29SRuslan Bukin /*opcode 0x68*/ PTI_MODRM_FALSE, 13574fe6c29SRuslan Bukin /*opcode 0x69*/ PTI_MODRM_TRUE, 13674fe6c29SRuslan Bukin /*opcode 0x6a*/ PTI_MODRM_FALSE, 13774fe6c29SRuslan Bukin /*opcode 0x6b*/ PTI_MODRM_TRUE, 13874fe6c29SRuslan Bukin /*opcode 0x6c*/ PTI_MODRM_FALSE, 13974fe6c29SRuslan Bukin /*opcode 0x6d*/ PTI_MODRM_FALSE, 14074fe6c29SRuslan Bukin /*opcode 0x6e*/ PTI_MODRM_FALSE, 14174fe6c29SRuslan Bukin /*opcode 0x6f*/ PTI_MODRM_FALSE, 14274fe6c29SRuslan Bukin /*opcode 0x70*/ PTI_MODRM_FALSE, 14374fe6c29SRuslan Bukin /*opcode 0x71*/ PTI_MODRM_FALSE, 14474fe6c29SRuslan Bukin /*opcode 0x72*/ PTI_MODRM_FALSE, 14574fe6c29SRuslan Bukin /*opcode 0x73*/ PTI_MODRM_FALSE, 14674fe6c29SRuslan Bukin /*opcode 0x74*/ PTI_MODRM_FALSE, 14774fe6c29SRuslan Bukin /*opcode 0x75*/ PTI_MODRM_FALSE, 14874fe6c29SRuslan Bukin /*opcode 0x76*/ PTI_MODRM_FALSE, 14974fe6c29SRuslan Bukin /*opcode 0x77*/ PTI_MODRM_FALSE, 15074fe6c29SRuslan Bukin /*opcode 0x78*/ PTI_MODRM_FALSE, 15174fe6c29SRuslan Bukin /*opcode 0x79*/ PTI_MODRM_FALSE, 15274fe6c29SRuslan Bukin /*opcode 0x7a*/ PTI_MODRM_FALSE, 15374fe6c29SRuslan Bukin /*opcode 0x7b*/ PTI_MODRM_FALSE, 15474fe6c29SRuslan Bukin /*opcode 0x7c*/ PTI_MODRM_FALSE, 15574fe6c29SRuslan Bukin /*opcode 0x7d*/ PTI_MODRM_FALSE, 15674fe6c29SRuslan Bukin /*opcode 0x7e*/ PTI_MODRM_FALSE, 15774fe6c29SRuslan Bukin /*opcode 0x7f*/ PTI_MODRM_FALSE, 15874fe6c29SRuslan Bukin /*opcode 0x80*/ PTI_MODRM_TRUE, 15974fe6c29SRuslan Bukin /*opcode 0x81*/ PTI_MODRM_TRUE, 16074fe6c29SRuslan Bukin /*opcode 0x82*/ PTI_MODRM_TRUE, 16174fe6c29SRuslan Bukin /*opcode 0x83*/ PTI_MODRM_TRUE, 16274fe6c29SRuslan Bukin /*opcode 0x84*/ PTI_MODRM_TRUE, 16374fe6c29SRuslan Bukin /*opcode 0x85*/ PTI_MODRM_TRUE, 16474fe6c29SRuslan Bukin /*opcode 0x86*/ PTI_MODRM_TRUE, 16574fe6c29SRuslan Bukin /*opcode 0x87*/ PTI_MODRM_TRUE, 16674fe6c29SRuslan Bukin /*opcode 0x88*/ PTI_MODRM_TRUE, 16774fe6c29SRuslan Bukin /*opcode 0x89*/ PTI_MODRM_TRUE, 16874fe6c29SRuslan Bukin /*opcode 0x8a*/ PTI_MODRM_TRUE, 16974fe6c29SRuslan Bukin /*opcode 0x8b*/ PTI_MODRM_TRUE, 17074fe6c29SRuslan Bukin /*opcode 0x8c*/ PTI_MODRM_TRUE, 17174fe6c29SRuslan Bukin /*opcode 0x8d*/ PTI_MODRM_TRUE, 17274fe6c29SRuslan Bukin /*opcode 0x8e*/ PTI_MODRM_TRUE, 17374fe6c29SRuslan Bukin /*opcode 0x8f*/ PTI_MODRM_TRUE, 17474fe6c29SRuslan Bukin /*opcode 0x90*/ PTI_MODRM_FALSE, 17574fe6c29SRuslan Bukin /*opcode 0x91*/ PTI_MODRM_FALSE, 17674fe6c29SRuslan Bukin /*opcode 0x92*/ PTI_MODRM_FALSE, 17774fe6c29SRuslan Bukin /*opcode 0x93*/ PTI_MODRM_FALSE, 17874fe6c29SRuslan Bukin /*opcode 0x94*/ PTI_MODRM_FALSE, 17974fe6c29SRuslan Bukin /*opcode 0x95*/ PTI_MODRM_FALSE, 18074fe6c29SRuslan Bukin /*opcode 0x96*/ PTI_MODRM_FALSE, 18174fe6c29SRuslan Bukin /*opcode 0x97*/ PTI_MODRM_FALSE, 18274fe6c29SRuslan Bukin /*opcode 0x98*/ PTI_MODRM_FALSE, 18374fe6c29SRuslan Bukin /*opcode 0x99*/ PTI_MODRM_FALSE, 18474fe6c29SRuslan Bukin /*opcode 0x9a*/ PTI_MODRM_FALSE, 18574fe6c29SRuslan Bukin /*opcode 0x9b*/ PTI_MODRM_FALSE, 18674fe6c29SRuslan Bukin /*opcode 0x9c*/ PTI_MODRM_FALSE, 18774fe6c29SRuslan Bukin /*opcode 0x9d*/ PTI_MODRM_FALSE, 18874fe6c29SRuslan Bukin /*opcode 0x9e*/ PTI_MODRM_FALSE, 18974fe6c29SRuslan Bukin /*opcode 0x9f*/ PTI_MODRM_FALSE, 19074fe6c29SRuslan Bukin /*opcode 0xa0*/ PTI_MODRM_FALSE, 19174fe6c29SRuslan Bukin /*opcode 0xa1*/ PTI_MODRM_FALSE, 19274fe6c29SRuslan Bukin /*opcode 0xa2*/ PTI_MODRM_FALSE, 19374fe6c29SRuslan Bukin /*opcode 0xa3*/ PTI_MODRM_FALSE, 19474fe6c29SRuslan Bukin /*opcode 0xa4*/ PTI_MODRM_FALSE, 19574fe6c29SRuslan Bukin /*opcode 0xa5*/ PTI_MODRM_FALSE, 19674fe6c29SRuslan Bukin /*opcode 0xa6*/ PTI_MODRM_FALSE, 19774fe6c29SRuslan Bukin /*opcode 0xa7*/ PTI_MODRM_FALSE, 19874fe6c29SRuslan Bukin /*opcode 0xa8*/ PTI_MODRM_FALSE, 19974fe6c29SRuslan Bukin /*opcode 0xa9*/ PTI_MODRM_FALSE, 20074fe6c29SRuslan Bukin /*opcode 0xaa*/ PTI_MODRM_FALSE, 20174fe6c29SRuslan Bukin /*opcode 0xab*/ PTI_MODRM_FALSE, 20274fe6c29SRuslan Bukin /*opcode 0xac*/ PTI_MODRM_FALSE, 20374fe6c29SRuslan Bukin /*opcode 0xad*/ PTI_MODRM_FALSE, 20474fe6c29SRuslan Bukin /*opcode 0xae*/ PTI_MODRM_FALSE, 20574fe6c29SRuslan Bukin /*opcode 0xaf*/ PTI_MODRM_FALSE, 20674fe6c29SRuslan Bukin /*opcode 0xb0*/ PTI_MODRM_FALSE, 20774fe6c29SRuslan Bukin /*opcode 0xb1*/ PTI_MODRM_FALSE, 20874fe6c29SRuslan Bukin /*opcode 0xb2*/ PTI_MODRM_FALSE, 20974fe6c29SRuslan Bukin /*opcode 0xb3*/ PTI_MODRM_FALSE, 21074fe6c29SRuslan Bukin /*opcode 0xb4*/ PTI_MODRM_FALSE, 21174fe6c29SRuslan Bukin /*opcode 0xb5*/ PTI_MODRM_FALSE, 21274fe6c29SRuslan Bukin /*opcode 0xb6*/ PTI_MODRM_FALSE, 21374fe6c29SRuslan Bukin /*opcode 0xb7*/ PTI_MODRM_FALSE, 21474fe6c29SRuslan Bukin /*opcode 0xb8*/ PTI_MODRM_FALSE, 21574fe6c29SRuslan Bukin /*opcode 0xb9*/ PTI_MODRM_FALSE, 21674fe6c29SRuslan Bukin /*opcode 0xba*/ PTI_MODRM_FALSE, 21774fe6c29SRuslan Bukin /*opcode 0xbb*/ PTI_MODRM_FALSE, 21874fe6c29SRuslan Bukin /*opcode 0xbc*/ PTI_MODRM_FALSE, 21974fe6c29SRuslan Bukin /*opcode 0xbd*/ PTI_MODRM_FALSE, 22074fe6c29SRuslan Bukin /*opcode 0xbe*/ PTI_MODRM_FALSE, 22174fe6c29SRuslan Bukin /*opcode 0xbf*/ PTI_MODRM_FALSE, 22274fe6c29SRuslan Bukin /*opcode 0xc0*/ PTI_MODRM_TRUE, 22374fe6c29SRuslan Bukin /*opcode 0xc1*/ PTI_MODRM_TRUE, 22474fe6c29SRuslan Bukin /*opcode 0xc2*/ PTI_MODRM_FALSE, 22574fe6c29SRuslan Bukin /*opcode 0xc3*/ PTI_MODRM_FALSE, 22674fe6c29SRuslan Bukin /*opcode 0xc4*/ PTI_MODRM_TRUE, 22774fe6c29SRuslan Bukin /*opcode 0xc5*/ PTI_MODRM_TRUE, 22874fe6c29SRuslan Bukin /*opcode 0xc6*/ PTI_MODRM_TRUE, 22974fe6c29SRuslan Bukin /*opcode 0xc7*/ PTI_MODRM_TRUE, 23074fe6c29SRuslan Bukin /*opcode 0xc8*/ PTI_MODRM_FALSE, 23174fe6c29SRuslan Bukin /*opcode 0xc9*/ PTI_MODRM_FALSE, 23274fe6c29SRuslan Bukin /*opcode 0xca*/ PTI_MODRM_FALSE, 23374fe6c29SRuslan Bukin /*opcode 0xcb*/ PTI_MODRM_FALSE, 23474fe6c29SRuslan Bukin /*opcode 0xcc*/ PTI_MODRM_FALSE, 23574fe6c29SRuslan Bukin /*opcode 0xcd*/ PTI_MODRM_FALSE, 23674fe6c29SRuslan Bukin /*opcode 0xce*/ PTI_MODRM_FALSE, 23774fe6c29SRuslan Bukin /*opcode 0xcf*/ PTI_MODRM_FALSE, 23874fe6c29SRuslan Bukin /*opcode 0xd0*/ PTI_MODRM_TRUE, 23974fe6c29SRuslan Bukin /*opcode 0xd1*/ PTI_MODRM_TRUE, 24074fe6c29SRuslan Bukin /*opcode 0xd2*/ PTI_MODRM_TRUE, 24174fe6c29SRuslan Bukin /*opcode 0xd3*/ PTI_MODRM_TRUE, 24274fe6c29SRuslan Bukin /*opcode 0xd4*/ PTI_MODRM_FALSE, 24374fe6c29SRuslan Bukin /*opcode 0xd5*/ PTI_MODRM_FALSE, 24474fe6c29SRuslan Bukin /*opcode 0xd6*/ PTI_MODRM_FALSE, 24574fe6c29SRuslan Bukin /*opcode 0xd7*/ PTI_MODRM_FALSE, 24674fe6c29SRuslan Bukin /*opcode 0xd8*/ PTI_MODRM_TRUE, 24774fe6c29SRuslan Bukin /*opcode 0xd9*/ PTI_MODRM_TRUE, 24874fe6c29SRuslan Bukin /*opcode 0xda*/ PTI_MODRM_TRUE, 24974fe6c29SRuslan Bukin /*opcode 0xdb*/ PTI_MODRM_TRUE, 25074fe6c29SRuslan Bukin /*opcode 0xdc*/ PTI_MODRM_TRUE, 25174fe6c29SRuslan Bukin /*opcode 0xdd*/ PTI_MODRM_TRUE, 25274fe6c29SRuslan Bukin /*opcode 0xde*/ PTI_MODRM_TRUE, 25374fe6c29SRuslan Bukin /*opcode 0xdf*/ PTI_MODRM_TRUE, 25474fe6c29SRuslan Bukin /*opcode 0xe0*/ PTI_MODRM_FALSE, 25574fe6c29SRuslan Bukin /*opcode 0xe1*/ PTI_MODRM_FALSE, 25674fe6c29SRuslan Bukin /*opcode 0xe2*/ PTI_MODRM_FALSE, 25774fe6c29SRuslan Bukin /*opcode 0xe3*/ PTI_MODRM_FALSE, 25874fe6c29SRuslan Bukin /*opcode 0xe4*/ PTI_MODRM_FALSE, 25974fe6c29SRuslan Bukin /*opcode 0xe5*/ PTI_MODRM_FALSE, 26074fe6c29SRuslan Bukin /*opcode 0xe6*/ PTI_MODRM_FALSE, 26174fe6c29SRuslan Bukin /*opcode 0xe7*/ PTI_MODRM_FALSE, 26274fe6c29SRuslan Bukin /*opcode 0xe8*/ PTI_MODRM_FALSE, 26374fe6c29SRuslan Bukin /*opcode 0xe9*/ PTI_MODRM_FALSE, 26474fe6c29SRuslan Bukin /*opcode 0xea*/ PTI_MODRM_FALSE, 26574fe6c29SRuslan Bukin /*opcode 0xeb*/ PTI_MODRM_FALSE, 26674fe6c29SRuslan Bukin /*opcode 0xec*/ PTI_MODRM_FALSE, 26774fe6c29SRuslan Bukin /*opcode 0xed*/ PTI_MODRM_FALSE, 26874fe6c29SRuslan Bukin /*opcode 0xee*/ PTI_MODRM_FALSE, 26974fe6c29SRuslan Bukin /*opcode 0xef*/ PTI_MODRM_FALSE, 27074fe6c29SRuslan Bukin /*opcode 0xf0*/ PTI_MODRM_UNDEF, 27174fe6c29SRuslan Bukin /*opcode 0xf1*/ PTI_MODRM_FALSE, 27274fe6c29SRuslan Bukin /*opcode 0xf2*/ PTI_MODRM_UNDEF, 27374fe6c29SRuslan Bukin /*opcode 0xf3*/ PTI_MODRM_UNDEF, 27474fe6c29SRuslan Bukin /*opcode 0xf4*/ PTI_MODRM_FALSE, 27574fe6c29SRuslan Bukin /*opcode 0xf5*/ PTI_MODRM_FALSE, 27674fe6c29SRuslan Bukin /*opcode 0xf6*/ PTI_MODRM_TRUE, 27774fe6c29SRuslan Bukin /*opcode 0xf7*/ PTI_MODRM_TRUE, 27874fe6c29SRuslan Bukin /*opcode 0xf8*/ PTI_MODRM_FALSE, 27974fe6c29SRuslan Bukin /*opcode 0xf9*/ PTI_MODRM_FALSE, 28074fe6c29SRuslan Bukin /*opcode 0xfa*/ PTI_MODRM_FALSE, 28174fe6c29SRuslan Bukin /*opcode 0xfb*/ PTI_MODRM_FALSE, 28274fe6c29SRuslan Bukin /*opcode 0xfc*/ PTI_MODRM_FALSE, 28374fe6c29SRuslan Bukin /*opcode 0xfd*/ PTI_MODRM_FALSE, 28474fe6c29SRuslan Bukin /*opcode 0xfe*/ PTI_MODRM_TRUE, 28574fe6c29SRuslan Bukin /*opcode 0xff*/ PTI_MODRM_TRUE, 28674fe6c29SRuslan Bukin }; 28774fe6c29SRuslan Bukin static uint8_t has_modrm_map_0x0F[256] = { 28874fe6c29SRuslan Bukin /*opcode 0x0*/ PTI_MODRM_TRUE, 28974fe6c29SRuslan Bukin /*opcode 0x1*/ PTI_MODRM_TRUE, 29074fe6c29SRuslan Bukin /*opcode 0x2*/ PTI_MODRM_TRUE, 29174fe6c29SRuslan Bukin /*opcode 0x3*/ PTI_MODRM_TRUE, 29274fe6c29SRuslan Bukin /*opcode 0x4*/ PTI_MODRM_UNDEF, 29374fe6c29SRuslan Bukin /*opcode 0x5*/ PTI_MODRM_FALSE, 29474fe6c29SRuslan Bukin /*opcode 0x6*/ PTI_MODRM_FALSE, 29574fe6c29SRuslan Bukin /*opcode 0x7*/ PTI_MODRM_FALSE, 29674fe6c29SRuslan Bukin /*opcode 0x8*/ PTI_MODRM_FALSE, 29774fe6c29SRuslan Bukin /*opcode 0x9*/ PTI_MODRM_FALSE, 29874fe6c29SRuslan Bukin /*opcode 0xa*/ PTI_MODRM_UNDEF, 29974fe6c29SRuslan Bukin /*opcode 0xb*/ PTI_MODRM_FALSE, 30074fe6c29SRuslan Bukin /*opcode 0xc*/ PTI_MODRM_UNDEF, 30174fe6c29SRuslan Bukin /*opcode 0xd*/ PTI_MODRM_TRUE, 30274fe6c29SRuslan Bukin /*opcode 0xe*/ PTI_MODRM_FALSE, 30374fe6c29SRuslan Bukin /*opcode 0xf*/ PTI_MODRM_UNDEF, 30474fe6c29SRuslan Bukin /*opcode 0x10*/ PTI_MODRM_TRUE, 30574fe6c29SRuslan Bukin /*opcode 0x11*/ PTI_MODRM_TRUE, 30674fe6c29SRuslan Bukin /*opcode 0x12*/ PTI_MODRM_TRUE, 30774fe6c29SRuslan Bukin /*opcode 0x13*/ PTI_MODRM_TRUE, 30874fe6c29SRuslan Bukin /*opcode 0x14*/ PTI_MODRM_TRUE, 30974fe6c29SRuslan Bukin /*opcode 0x15*/ PTI_MODRM_TRUE, 31074fe6c29SRuslan Bukin /*opcode 0x16*/ PTI_MODRM_TRUE, 31174fe6c29SRuslan Bukin /*opcode 0x17*/ PTI_MODRM_TRUE, 31274fe6c29SRuslan Bukin /*opcode 0x18*/ PTI_MODRM_TRUE, 31374fe6c29SRuslan Bukin /*opcode 0x19*/ PTI_MODRM_TRUE, 31474fe6c29SRuslan Bukin /*opcode 0x1a*/ PTI_MODRM_TRUE, 31574fe6c29SRuslan Bukin /*opcode 0x1b*/ PTI_MODRM_TRUE, 31674fe6c29SRuslan Bukin /*opcode 0x1c*/ PTI_MODRM_TRUE, 31774fe6c29SRuslan Bukin /*opcode 0x1d*/ PTI_MODRM_TRUE, 31874fe6c29SRuslan Bukin /*opcode 0x1e*/ PTI_MODRM_TRUE, 31974fe6c29SRuslan Bukin /*opcode 0x1f*/ PTI_MODRM_TRUE, 32074fe6c29SRuslan Bukin /*opcode 0x20*/ PTI_MODRM_IGNORE_MOD, 32174fe6c29SRuslan Bukin /*opcode 0x21*/ PTI_MODRM_IGNORE_MOD, 32274fe6c29SRuslan Bukin /*opcode 0x22*/ PTI_MODRM_IGNORE_MOD, 32374fe6c29SRuslan Bukin /*opcode 0x23*/ PTI_MODRM_IGNORE_MOD, 32474fe6c29SRuslan Bukin /*opcode 0x24*/ PTI_MODRM_UNDEF, 32574fe6c29SRuslan Bukin /*opcode 0x25*/ PTI_MODRM_UNDEF, 32674fe6c29SRuslan Bukin /*opcode 0x26*/ PTI_MODRM_UNDEF, 32774fe6c29SRuslan Bukin /*opcode 0x27*/ PTI_MODRM_UNDEF, 32874fe6c29SRuslan Bukin /*opcode 0x28*/ PTI_MODRM_TRUE, 32974fe6c29SRuslan Bukin /*opcode 0x29*/ PTI_MODRM_TRUE, 33074fe6c29SRuslan Bukin /*opcode 0x2a*/ PTI_MODRM_TRUE, 33174fe6c29SRuslan Bukin /*opcode 0x2b*/ PTI_MODRM_TRUE, 33274fe6c29SRuslan Bukin /*opcode 0x2c*/ PTI_MODRM_TRUE, 33374fe6c29SRuslan Bukin /*opcode 0x2d*/ PTI_MODRM_TRUE, 33474fe6c29SRuslan Bukin /*opcode 0x2e*/ PTI_MODRM_TRUE, 33574fe6c29SRuslan Bukin /*opcode 0x2f*/ PTI_MODRM_TRUE, 33674fe6c29SRuslan Bukin /*opcode 0x30*/ PTI_MODRM_FALSE, 33774fe6c29SRuslan Bukin /*opcode 0x31*/ PTI_MODRM_FALSE, 33874fe6c29SRuslan Bukin /*opcode 0x32*/ PTI_MODRM_FALSE, 33974fe6c29SRuslan Bukin /*opcode 0x33*/ PTI_MODRM_FALSE, 34074fe6c29SRuslan Bukin /*opcode 0x34*/ PTI_MODRM_FALSE, 34174fe6c29SRuslan Bukin /*opcode 0x35*/ PTI_MODRM_FALSE, 34274fe6c29SRuslan Bukin /*opcode 0x36*/ PTI_MODRM_UNDEF, 34374fe6c29SRuslan Bukin /*opcode 0x37*/ PTI_MODRM_FALSE, 34474fe6c29SRuslan Bukin /*opcode 0x38*/ PTI_MODRM_UNDEF, 34574fe6c29SRuslan Bukin /*opcode 0x39*/ PTI_MODRM_UNDEF, 34674fe6c29SRuslan Bukin /*opcode 0x3a*/ PTI_MODRM_UNDEF, 34774fe6c29SRuslan Bukin /*opcode 0x3b*/ PTI_MODRM_UNDEF, 34874fe6c29SRuslan Bukin /*opcode 0x3c*/ PTI_MODRM_UNDEF, 34974fe6c29SRuslan Bukin /*opcode 0x3d*/ PTI_MODRM_UNDEF, 35074fe6c29SRuslan Bukin /*opcode 0x3e*/ PTI_MODRM_UNDEF, 35174fe6c29SRuslan Bukin /*opcode 0x3f*/ PTI_MODRM_UNDEF, 35274fe6c29SRuslan Bukin /*opcode 0x40*/ PTI_MODRM_TRUE, 35374fe6c29SRuslan Bukin /*opcode 0x41*/ PTI_MODRM_TRUE, 35474fe6c29SRuslan Bukin /*opcode 0x42*/ PTI_MODRM_TRUE, 35574fe6c29SRuslan Bukin /*opcode 0x43*/ PTI_MODRM_TRUE, 35674fe6c29SRuslan Bukin /*opcode 0x44*/ PTI_MODRM_TRUE, 35774fe6c29SRuslan Bukin /*opcode 0x45*/ PTI_MODRM_TRUE, 35874fe6c29SRuslan Bukin /*opcode 0x46*/ PTI_MODRM_TRUE, 35974fe6c29SRuslan Bukin /*opcode 0x47*/ PTI_MODRM_TRUE, 36074fe6c29SRuslan Bukin /*opcode 0x48*/ PTI_MODRM_TRUE, 36174fe6c29SRuslan Bukin /*opcode 0x49*/ PTI_MODRM_TRUE, 36274fe6c29SRuslan Bukin /*opcode 0x4a*/ PTI_MODRM_TRUE, 36374fe6c29SRuslan Bukin /*opcode 0x4b*/ PTI_MODRM_TRUE, 36474fe6c29SRuslan Bukin /*opcode 0x4c*/ PTI_MODRM_TRUE, 36574fe6c29SRuslan Bukin /*opcode 0x4d*/ PTI_MODRM_TRUE, 36674fe6c29SRuslan Bukin /*opcode 0x4e*/ PTI_MODRM_TRUE, 36774fe6c29SRuslan Bukin /*opcode 0x4f*/ PTI_MODRM_TRUE, 36874fe6c29SRuslan Bukin /*opcode 0x50*/ PTI_MODRM_TRUE, 36974fe6c29SRuslan Bukin /*opcode 0x51*/ PTI_MODRM_TRUE, 37074fe6c29SRuslan Bukin /*opcode 0x52*/ PTI_MODRM_TRUE, 37174fe6c29SRuslan Bukin /*opcode 0x53*/ PTI_MODRM_TRUE, 37274fe6c29SRuslan Bukin /*opcode 0x54*/ PTI_MODRM_TRUE, 37374fe6c29SRuslan Bukin /*opcode 0x55*/ PTI_MODRM_TRUE, 37474fe6c29SRuslan Bukin /*opcode 0x56*/ PTI_MODRM_TRUE, 37574fe6c29SRuslan Bukin /*opcode 0x57*/ PTI_MODRM_TRUE, 37674fe6c29SRuslan Bukin /*opcode 0x58*/ PTI_MODRM_TRUE, 37774fe6c29SRuslan Bukin /*opcode 0x59*/ PTI_MODRM_TRUE, 37874fe6c29SRuslan Bukin /*opcode 0x5a*/ PTI_MODRM_TRUE, 37974fe6c29SRuslan Bukin /*opcode 0x5b*/ PTI_MODRM_TRUE, 38074fe6c29SRuslan Bukin /*opcode 0x5c*/ PTI_MODRM_TRUE, 38174fe6c29SRuslan Bukin /*opcode 0x5d*/ PTI_MODRM_TRUE, 38274fe6c29SRuslan Bukin /*opcode 0x5e*/ PTI_MODRM_TRUE, 38374fe6c29SRuslan Bukin /*opcode 0x5f*/ PTI_MODRM_TRUE, 38474fe6c29SRuslan Bukin /*opcode 0x60*/ PTI_MODRM_TRUE, 38574fe6c29SRuslan Bukin /*opcode 0x61*/ PTI_MODRM_TRUE, 38674fe6c29SRuslan Bukin /*opcode 0x62*/ PTI_MODRM_TRUE, 38774fe6c29SRuslan Bukin /*opcode 0x63*/ PTI_MODRM_TRUE, 38874fe6c29SRuslan Bukin /*opcode 0x64*/ PTI_MODRM_TRUE, 38974fe6c29SRuslan Bukin /*opcode 0x65*/ PTI_MODRM_TRUE, 39074fe6c29SRuslan Bukin /*opcode 0x66*/ PTI_MODRM_TRUE, 39174fe6c29SRuslan Bukin /*opcode 0x67*/ PTI_MODRM_TRUE, 39274fe6c29SRuslan Bukin /*opcode 0x68*/ PTI_MODRM_TRUE, 39374fe6c29SRuslan Bukin /*opcode 0x69*/ PTI_MODRM_TRUE, 39474fe6c29SRuslan Bukin /*opcode 0x6a*/ PTI_MODRM_TRUE, 39574fe6c29SRuslan Bukin /*opcode 0x6b*/ PTI_MODRM_TRUE, 39674fe6c29SRuslan Bukin /*opcode 0x6c*/ PTI_MODRM_TRUE, 39774fe6c29SRuslan Bukin /*opcode 0x6d*/ PTI_MODRM_TRUE, 39874fe6c29SRuslan Bukin /*opcode 0x6e*/ PTI_MODRM_TRUE, 39974fe6c29SRuslan Bukin /*opcode 0x6f*/ PTI_MODRM_TRUE, 40074fe6c29SRuslan Bukin /*opcode 0x70*/ PTI_MODRM_TRUE, 40174fe6c29SRuslan Bukin /*opcode 0x71*/ PTI_MODRM_TRUE, 40274fe6c29SRuslan Bukin /*opcode 0x72*/ PTI_MODRM_TRUE, 40374fe6c29SRuslan Bukin /*opcode 0x73*/ PTI_MODRM_TRUE, 40474fe6c29SRuslan Bukin /*opcode 0x74*/ PTI_MODRM_TRUE, 40574fe6c29SRuslan Bukin /*opcode 0x75*/ PTI_MODRM_TRUE, 40674fe6c29SRuslan Bukin /*opcode 0x76*/ PTI_MODRM_TRUE, 40774fe6c29SRuslan Bukin /*opcode 0x77*/ PTI_MODRM_FALSE, 40874fe6c29SRuslan Bukin /*opcode 0x78*/ PTI_MODRM_TRUE, 40974fe6c29SRuslan Bukin /*opcode 0x79*/ PTI_MODRM_TRUE, 41074fe6c29SRuslan Bukin /*opcode 0x7a*/ PTI_MODRM_TRUE, 41174fe6c29SRuslan Bukin /*opcode 0x7b*/ PTI_MODRM_TRUE, 41274fe6c29SRuslan Bukin /*opcode 0x7c*/ PTI_MODRM_TRUE, 41374fe6c29SRuslan Bukin /*opcode 0x7d*/ PTI_MODRM_TRUE, 41474fe6c29SRuslan Bukin /*opcode 0x7e*/ PTI_MODRM_TRUE, 41574fe6c29SRuslan Bukin /*opcode 0x7f*/ PTI_MODRM_TRUE, 41674fe6c29SRuslan Bukin /*opcode 0x80*/ PTI_MODRM_FALSE, 41774fe6c29SRuslan Bukin /*opcode 0x81*/ PTI_MODRM_FALSE, 41874fe6c29SRuslan Bukin /*opcode 0x82*/ PTI_MODRM_FALSE, 41974fe6c29SRuslan Bukin /*opcode 0x83*/ PTI_MODRM_FALSE, 42074fe6c29SRuslan Bukin /*opcode 0x84*/ PTI_MODRM_FALSE, 42174fe6c29SRuslan Bukin /*opcode 0x85*/ PTI_MODRM_FALSE, 42274fe6c29SRuslan Bukin /*opcode 0x86*/ PTI_MODRM_FALSE, 42374fe6c29SRuslan Bukin /*opcode 0x87*/ PTI_MODRM_FALSE, 42474fe6c29SRuslan Bukin /*opcode 0x88*/ PTI_MODRM_FALSE, 42574fe6c29SRuslan Bukin /*opcode 0x89*/ PTI_MODRM_FALSE, 42674fe6c29SRuslan Bukin /*opcode 0x8a*/ PTI_MODRM_FALSE, 42774fe6c29SRuslan Bukin /*opcode 0x8b*/ PTI_MODRM_FALSE, 42874fe6c29SRuslan Bukin /*opcode 0x8c*/ PTI_MODRM_FALSE, 42974fe6c29SRuslan Bukin /*opcode 0x8d*/ PTI_MODRM_FALSE, 43074fe6c29SRuslan Bukin /*opcode 0x8e*/ PTI_MODRM_FALSE, 43174fe6c29SRuslan Bukin /*opcode 0x8f*/ PTI_MODRM_FALSE, 43274fe6c29SRuslan Bukin /*opcode 0x90*/ PTI_MODRM_TRUE, 43374fe6c29SRuslan Bukin /*opcode 0x91*/ PTI_MODRM_TRUE, 43474fe6c29SRuslan Bukin /*opcode 0x92*/ PTI_MODRM_TRUE, 43574fe6c29SRuslan Bukin /*opcode 0x93*/ PTI_MODRM_TRUE, 43674fe6c29SRuslan Bukin /*opcode 0x94*/ PTI_MODRM_TRUE, 43774fe6c29SRuslan Bukin /*opcode 0x95*/ PTI_MODRM_TRUE, 43874fe6c29SRuslan Bukin /*opcode 0x96*/ PTI_MODRM_TRUE, 43974fe6c29SRuslan Bukin /*opcode 0x97*/ PTI_MODRM_TRUE, 44074fe6c29SRuslan Bukin /*opcode 0x98*/ PTI_MODRM_TRUE, 44174fe6c29SRuslan Bukin /*opcode 0x99*/ PTI_MODRM_TRUE, 44274fe6c29SRuslan Bukin /*opcode 0x9a*/ PTI_MODRM_TRUE, 44374fe6c29SRuslan Bukin /*opcode 0x9b*/ PTI_MODRM_TRUE, 44474fe6c29SRuslan Bukin /*opcode 0x9c*/ PTI_MODRM_TRUE, 44574fe6c29SRuslan Bukin /*opcode 0x9d*/ PTI_MODRM_TRUE, 44674fe6c29SRuslan Bukin /*opcode 0x9e*/ PTI_MODRM_TRUE, 44774fe6c29SRuslan Bukin /*opcode 0x9f*/ PTI_MODRM_TRUE, 44874fe6c29SRuslan Bukin /*opcode 0xa0*/ PTI_MODRM_FALSE, 44974fe6c29SRuslan Bukin /*opcode 0xa1*/ PTI_MODRM_FALSE, 45074fe6c29SRuslan Bukin /*opcode 0xa2*/ PTI_MODRM_FALSE, 45174fe6c29SRuslan Bukin /*opcode 0xa3*/ PTI_MODRM_TRUE, 45274fe6c29SRuslan Bukin /*opcode 0xa4*/ PTI_MODRM_TRUE, 45374fe6c29SRuslan Bukin /*opcode 0xa5*/ PTI_MODRM_TRUE, 45474fe6c29SRuslan Bukin /*opcode 0xa6*/ PTI_MODRM_UNDEF, 45574fe6c29SRuslan Bukin /*opcode 0xa7*/ PTI_MODRM_UNDEF, 45674fe6c29SRuslan Bukin /*opcode 0xa8*/ PTI_MODRM_FALSE, 45774fe6c29SRuslan Bukin /*opcode 0xa9*/ PTI_MODRM_FALSE, 45874fe6c29SRuslan Bukin /*opcode 0xaa*/ PTI_MODRM_FALSE, 45974fe6c29SRuslan Bukin /*opcode 0xab*/ PTI_MODRM_TRUE, 46074fe6c29SRuslan Bukin /*opcode 0xac*/ PTI_MODRM_TRUE, 46174fe6c29SRuslan Bukin /*opcode 0xad*/ PTI_MODRM_TRUE, 46274fe6c29SRuslan Bukin /*opcode 0xae*/ PTI_MODRM_TRUE, 46374fe6c29SRuslan Bukin /*opcode 0xaf*/ PTI_MODRM_TRUE, 46474fe6c29SRuslan Bukin /*opcode 0xb0*/ PTI_MODRM_TRUE, 46574fe6c29SRuslan Bukin /*opcode 0xb1*/ PTI_MODRM_TRUE, 46674fe6c29SRuslan Bukin /*opcode 0xb2*/ PTI_MODRM_TRUE, 46774fe6c29SRuslan Bukin /*opcode 0xb3*/ PTI_MODRM_TRUE, 46874fe6c29SRuslan Bukin /*opcode 0xb4*/ PTI_MODRM_TRUE, 46974fe6c29SRuslan Bukin /*opcode 0xb5*/ PTI_MODRM_TRUE, 47074fe6c29SRuslan Bukin /*opcode 0xb6*/ PTI_MODRM_TRUE, 47174fe6c29SRuslan Bukin /*opcode 0xb7*/ PTI_MODRM_TRUE, 47274fe6c29SRuslan Bukin /*opcode 0xb8*/ PTI_MODRM_TRUE, 47374fe6c29SRuslan Bukin /*opcode 0xb9*/ PTI_MODRM_UNDEF, 47474fe6c29SRuslan Bukin /*opcode 0xba*/ PTI_MODRM_TRUE, 47574fe6c29SRuslan Bukin /*opcode 0xbb*/ PTI_MODRM_TRUE, 47674fe6c29SRuslan Bukin /*opcode 0xbc*/ PTI_MODRM_TRUE, 47774fe6c29SRuslan Bukin /*opcode 0xbd*/ PTI_MODRM_TRUE, 47874fe6c29SRuslan Bukin /*opcode 0xbe*/ PTI_MODRM_TRUE, 47974fe6c29SRuslan Bukin /*opcode 0xbf*/ PTI_MODRM_TRUE, 48074fe6c29SRuslan Bukin /*opcode 0xc0*/ PTI_MODRM_TRUE, 48174fe6c29SRuslan Bukin /*opcode 0xc1*/ PTI_MODRM_TRUE, 48274fe6c29SRuslan Bukin /*opcode 0xc2*/ PTI_MODRM_TRUE, 48374fe6c29SRuslan Bukin /*opcode 0xc3*/ PTI_MODRM_TRUE, 48474fe6c29SRuslan Bukin /*opcode 0xc4*/ PTI_MODRM_TRUE, 48574fe6c29SRuslan Bukin /*opcode 0xc5*/ PTI_MODRM_TRUE, 48674fe6c29SRuslan Bukin /*opcode 0xc6*/ PTI_MODRM_TRUE, 48774fe6c29SRuslan Bukin /*opcode 0xc7*/ PTI_MODRM_TRUE, 48874fe6c29SRuslan Bukin /*opcode 0xc8*/ PTI_MODRM_FALSE, 48974fe6c29SRuslan Bukin /*opcode 0xc9*/ PTI_MODRM_FALSE, 49074fe6c29SRuslan Bukin /*opcode 0xca*/ PTI_MODRM_FALSE, 49174fe6c29SRuslan Bukin /*opcode 0xcb*/ PTI_MODRM_FALSE, 49274fe6c29SRuslan Bukin /*opcode 0xcc*/ PTI_MODRM_FALSE, 49374fe6c29SRuslan Bukin /*opcode 0xcd*/ PTI_MODRM_FALSE, 49474fe6c29SRuslan Bukin /*opcode 0xce*/ PTI_MODRM_FALSE, 49574fe6c29SRuslan Bukin /*opcode 0xcf*/ PTI_MODRM_FALSE, 49674fe6c29SRuslan Bukin /*opcode 0xd0*/ PTI_MODRM_TRUE, 49774fe6c29SRuslan Bukin /*opcode 0xd1*/ PTI_MODRM_TRUE, 49874fe6c29SRuslan Bukin /*opcode 0xd2*/ PTI_MODRM_TRUE, 49974fe6c29SRuslan Bukin /*opcode 0xd3*/ PTI_MODRM_TRUE, 50074fe6c29SRuslan Bukin /*opcode 0xd4*/ PTI_MODRM_TRUE, 50174fe6c29SRuslan Bukin /*opcode 0xd5*/ PTI_MODRM_TRUE, 50274fe6c29SRuslan Bukin /*opcode 0xd6*/ PTI_MODRM_TRUE, 50374fe6c29SRuslan Bukin /*opcode 0xd7*/ PTI_MODRM_TRUE, 50474fe6c29SRuslan Bukin /*opcode 0xd8*/ PTI_MODRM_TRUE, 50574fe6c29SRuslan Bukin /*opcode 0xd9*/ PTI_MODRM_TRUE, 50674fe6c29SRuslan Bukin /*opcode 0xda*/ PTI_MODRM_TRUE, 50774fe6c29SRuslan Bukin /*opcode 0xdb*/ PTI_MODRM_TRUE, 50874fe6c29SRuslan Bukin /*opcode 0xdc*/ PTI_MODRM_TRUE, 50974fe6c29SRuslan Bukin /*opcode 0xdd*/ PTI_MODRM_TRUE, 51074fe6c29SRuslan Bukin /*opcode 0xde*/ PTI_MODRM_TRUE, 51174fe6c29SRuslan Bukin /*opcode 0xdf*/ PTI_MODRM_TRUE, 51274fe6c29SRuslan Bukin /*opcode 0xe0*/ PTI_MODRM_TRUE, 51374fe6c29SRuslan Bukin /*opcode 0xe1*/ PTI_MODRM_TRUE, 51474fe6c29SRuslan Bukin /*opcode 0xe2*/ PTI_MODRM_TRUE, 51574fe6c29SRuslan Bukin /*opcode 0xe3*/ PTI_MODRM_TRUE, 51674fe6c29SRuslan Bukin /*opcode 0xe4*/ PTI_MODRM_TRUE, 51774fe6c29SRuslan Bukin /*opcode 0xe5*/ PTI_MODRM_TRUE, 51874fe6c29SRuslan Bukin /*opcode 0xe6*/ PTI_MODRM_TRUE, 51974fe6c29SRuslan Bukin /*opcode 0xe7*/ PTI_MODRM_TRUE, 52074fe6c29SRuslan Bukin /*opcode 0xe8*/ PTI_MODRM_TRUE, 52174fe6c29SRuslan Bukin /*opcode 0xe9*/ PTI_MODRM_TRUE, 52274fe6c29SRuslan Bukin /*opcode 0xea*/ PTI_MODRM_TRUE, 52374fe6c29SRuslan Bukin /*opcode 0xeb*/ PTI_MODRM_TRUE, 52474fe6c29SRuslan Bukin /*opcode 0xec*/ PTI_MODRM_TRUE, 52574fe6c29SRuslan Bukin /*opcode 0xed*/ PTI_MODRM_TRUE, 52674fe6c29SRuslan Bukin /*opcode 0xee*/ PTI_MODRM_TRUE, 52774fe6c29SRuslan Bukin /*opcode 0xef*/ PTI_MODRM_TRUE, 52874fe6c29SRuslan Bukin /*opcode 0xf0*/ PTI_MODRM_TRUE, 52974fe6c29SRuslan Bukin /*opcode 0xf1*/ PTI_MODRM_TRUE, 53074fe6c29SRuslan Bukin /*opcode 0xf2*/ PTI_MODRM_TRUE, 53174fe6c29SRuslan Bukin /*opcode 0xf3*/ PTI_MODRM_TRUE, 53274fe6c29SRuslan Bukin /*opcode 0xf4*/ PTI_MODRM_TRUE, 53374fe6c29SRuslan Bukin /*opcode 0xf5*/ PTI_MODRM_TRUE, 53474fe6c29SRuslan Bukin /*opcode 0xf6*/ PTI_MODRM_TRUE, 53574fe6c29SRuslan Bukin /*opcode 0xf7*/ PTI_MODRM_TRUE, 53674fe6c29SRuslan Bukin /*opcode 0xf8*/ PTI_MODRM_TRUE, 53774fe6c29SRuslan Bukin /*opcode 0xf9*/ PTI_MODRM_TRUE, 53874fe6c29SRuslan Bukin /*opcode 0xfa*/ PTI_MODRM_TRUE, 53974fe6c29SRuslan Bukin /*opcode 0xfb*/ PTI_MODRM_TRUE, 54074fe6c29SRuslan Bukin /*opcode 0xfc*/ PTI_MODRM_TRUE, 54174fe6c29SRuslan Bukin /*opcode 0xfd*/ PTI_MODRM_TRUE, 54274fe6c29SRuslan Bukin /*opcode 0xfe*/ PTI_MODRM_TRUE, 54374fe6c29SRuslan Bukin /*opcode 0xff*/ PTI_MODRM_UNDEF, 54474fe6c29SRuslan Bukin }; 545