xref: /freebsd/contrib/processor-trace/libipt/internal/include/pti-modrm.h (revision 85f87cf491bec6f90948a85b10f5523ea24db9e3)
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