1 /* 2 * Copyright (c) 2013-2018, Intel Corporation 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions are met: 6 * 7 * * Redistributions of source code must retain the above copyright notice, 8 * this list of conditions and the following disclaimer. 9 * * Redistributions in binary form must reproduce the above copyright notice, 10 * this list of conditions and the following disclaimer in the documentation 11 * and/or other materials provided with the distribution. 12 * * Neither the name of Intel Corporation nor the names of its contributors 13 * may be used to endorse or promote products derived from this software 14 * without specific prior written permission. 15 * 16 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 17 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 18 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 19 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE 20 * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR 21 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF 22 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS 23 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN 24 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 25 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 26 * POSSIBILITY OF SUCH DAMAGE. 27 */ 28 29 static uint8_t has_modrm_map_0x0[256] = { 30 /*opcode 0x0*/ PTI_MODRM_TRUE, 31 /*opcode 0x1*/ PTI_MODRM_TRUE, 32 /*opcode 0x2*/ PTI_MODRM_TRUE, 33 /*opcode 0x3*/ PTI_MODRM_TRUE, 34 /*opcode 0x4*/ PTI_MODRM_FALSE, 35 /*opcode 0x5*/ PTI_MODRM_FALSE, 36 /*opcode 0x6*/ PTI_MODRM_FALSE, 37 /*opcode 0x7*/ PTI_MODRM_FALSE, 38 /*opcode 0x8*/ PTI_MODRM_TRUE, 39 /*opcode 0x9*/ PTI_MODRM_TRUE, 40 /*opcode 0xa*/ PTI_MODRM_TRUE, 41 /*opcode 0xb*/ PTI_MODRM_TRUE, 42 /*opcode 0xc*/ PTI_MODRM_FALSE, 43 /*opcode 0xd*/ PTI_MODRM_FALSE, 44 /*opcode 0xe*/ PTI_MODRM_FALSE, 45 /*opcode 0xf*/ PTI_MODRM_UNDEF, 46 /*opcode 0x10*/ PTI_MODRM_TRUE, 47 /*opcode 0x11*/ PTI_MODRM_TRUE, 48 /*opcode 0x12*/ PTI_MODRM_TRUE, 49 /*opcode 0x13*/ PTI_MODRM_TRUE, 50 /*opcode 0x14*/ PTI_MODRM_FALSE, 51 /*opcode 0x15*/ PTI_MODRM_FALSE, 52 /*opcode 0x16*/ PTI_MODRM_FALSE, 53 /*opcode 0x17*/ PTI_MODRM_FALSE, 54 /*opcode 0x18*/ PTI_MODRM_TRUE, 55 /*opcode 0x19*/ PTI_MODRM_TRUE, 56 /*opcode 0x1a*/ PTI_MODRM_TRUE, 57 /*opcode 0x1b*/ PTI_MODRM_TRUE, 58 /*opcode 0x1c*/ PTI_MODRM_FALSE, 59 /*opcode 0x1d*/ PTI_MODRM_FALSE, 60 /*opcode 0x1e*/ PTI_MODRM_FALSE, 61 /*opcode 0x1f*/ PTI_MODRM_FALSE, 62 /*opcode 0x20*/ PTI_MODRM_TRUE, 63 /*opcode 0x21*/ PTI_MODRM_TRUE, 64 /*opcode 0x22*/ PTI_MODRM_TRUE, 65 /*opcode 0x23*/ PTI_MODRM_TRUE, 66 /*opcode 0x24*/ PTI_MODRM_FALSE, 67 /*opcode 0x25*/ PTI_MODRM_FALSE, 68 /*opcode 0x26*/ PTI_MODRM_UNDEF, 69 /*opcode 0x27*/ PTI_MODRM_FALSE, 70 /*opcode 0x28*/ PTI_MODRM_TRUE, 71 /*opcode 0x29*/ PTI_MODRM_TRUE, 72 /*opcode 0x2a*/ PTI_MODRM_TRUE, 73 /*opcode 0x2b*/ PTI_MODRM_TRUE, 74 /*opcode 0x2c*/ PTI_MODRM_FALSE, 75 /*opcode 0x2d*/ PTI_MODRM_FALSE, 76 /*opcode 0x2e*/ PTI_MODRM_UNDEF, 77 /*opcode 0x2f*/ PTI_MODRM_FALSE, 78 /*opcode 0x30*/ PTI_MODRM_TRUE, 79 /*opcode 0x31*/ PTI_MODRM_TRUE, 80 /*opcode 0x32*/ PTI_MODRM_TRUE, 81 /*opcode 0x33*/ PTI_MODRM_TRUE, 82 /*opcode 0x34*/ PTI_MODRM_FALSE, 83 /*opcode 0x35*/ PTI_MODRM_FALSE, 84 /*opcode 0x36*/ PTI_MODRM_UNDEF, 85 /*opcode 0x37*/ PTI_MODRM_FALSE, 86 /*opcode 0x38*/ PTI_MODRM_TRUE, 87 /*opcode 0x39*/ PTI_MODRM_TRUE, 88 /*opcode 0x3a*/ PTI_MODRM_TRUE, 89 /*opcode 0x3b*/ PTI_MODRM_TRUE, 90 /*opcode 0x3c*/ PTI_MODRM_FALSE, 91 /*opcode 0x3d*/ PTI_MODRM_FALSE, 92 /*opcode 0x3e*/ PTI_MODRM_UNDEF, 93 /*opcode 0x3f*/ PTI_MODRM_FALSE, 94 /*opcode 0x40*/ PTI_MODRM_FALSE, 95 /*opcode 0x41*/ PTI_MODRM_FALSE, 96 /*opcode 0x42*/ PTI_MODRM_FALSE, 97 /*opcode 0x43*/ PTI_MODRM_FALSE, 98 /*opcode 0x44*/ PTI_MODRM_FALSE, 99 /*opcode 0x45*/ PTI_MODRM_FALSE, 100 /*opcode 0x46*/ PTI_MODRM_FALSE, 101 /*opcode 0x47*/ PTI_MODRM_FALSE, 102 /*opcode 0x48*/ PTI_MODRM_FALSE, 103 /*opcode 0x49*/ PTI_MODRM_FALSE, 104 /*opcode 0x4a*/ PTI_MODRM_FALSE, 105 /*opcode 0x4b*/ PTI_MODRM_FALSE, 106 /*opcode 0x4c*/ PTI_MODRM_FALSE, 107 /*opcode 0x4d*/ PTI_MODRM_FALSE, 108 /*opcode 0x4e*/ PTI_MODRM_FALSE, 109 /*opcode 0x4f*/ PTI_MODRM_FALSE, 110 /*opcode 0x50*/ PTI_MODRM_FALSE, 111 /*opcode 0x51*/ PTI_MODRM_FALSE, 112 /*opcode 0x52*/ PTI_MODRM_FALSE, 113 /*opcode 0x53*/ PTI_MODRM_FALSE, 114 /*opcode 0x54*/ PTI_MODRM_FALSE, 115 /*opcode 0x55*/ PTI_MODRM_FALSE, 116 /*opcode 0x56*/ PTI_MODRM_FALSE, 117 /*opcode 0x57*/ PTI_MODRM_FALSE, 118 /*opcode 0x58*/ PTI_MODRM_FALSE, 119 /*opcode 0x59*/ PTI_MODRM_FALSE, 120 /*opcode 0x5a*/ PTI_MODRM_FALSE, 121 /*opcode 0x5b*/ PTI_MODRM_FALSE, 122 /*opcode 0x5c*/ PTI_MODRM_FALSE, 123 /*opcode 0x5d*/ PTI_MODRM_FALSE, 124 /*opcode 0x5e*/ PTI_MODRM_FALSE, 125 /*opcode 0x5f*/ PTI_MODRM_FALSE, 126 /*opcode 0x60*/ PTI_MODRM_FALSE, 127 /*opcode 0x61*/ PTI_MODRM_FALSE, 128 /*opcode 0x62*/ PTI_MODRM_TRUE, 129 /*opcode 0x63*/ PTI_MODRM_TRUE, 130 /*opcode 0x64*/ PTI_MODRM_UNDEF, 131 /*opcode 0x65*/ PTI_MODRM_UNDEF, 132 /*opcode 0x66*/ PTI_MODRM_UNDEF, 133 /*opcode 0x67*/ PTI_MODRM_UNDEF, 134 /*opcode 0x68*/ PTI_MODRM_FALSE, 135 /*opcode 0x69*/ PTI_MODRM_TRUE, 136 /*opcode 0x6a*/ PTI_MODRM_FALSE, 137 /*opcode 0x6b*/ PTI_MODRM_TRUE, 138 /*opcode 0x6c*/ PTI_MODRM_FALSE, 139 /*opcode 0x6d*/ PTI_MODRM_FALSE, 140 /*opcode 0x6e*/ PTI_MODRM_FALSE, 141 /*opcode 0x6f*/ PTI_MODRM_FALSE, 142 /*opcode 0x70*/ PTI_MODRM_FALSE, 143 /*opcode 0x71*/ PTI_MODRM_FALSE, 144 /*opcode 0x72*/ PTI_MODRM_FALSE, 145 /*opcode 0x73*/ PTI_MODRM_FALSE, 146 /*opcode 0x74*/ PTI_MODRM_FALSE, 147 /*opcode 0x75*/ PTI_MODRM_FALSE, 148 /*opcode 0x76*/ PTI_MODRM_FALSE, 149 /*opcode 0x77*/ PTI_MODRM_FALSE, 150 /*opcode 0x78*/ PTI_MODRM_FALSE, 151 /*opcode 0x79*/ PTI_MODRM_FALSE, 152 /*opcode 0x7a*/ PTI_MODRM_FALSE, 153 /*opcode 0x7b*/ PTI_MODRM_FALSE, 154 /*opcode 0x7c*/ PTI_MODRM_FALSE, 155 /*opcode 0x7d*/ PTI_MODRM_FALSE, 156 /*opcode 0x7e*/ PTI_MODRM_FALSE, 157 /*opcode 0x7f*/ PTI_MODRM_FALSE, 158 /*opcode 0x80*/ PTI_MODRM_TRUE, 159 /*opcode 0x81*/ PTI_MODRM_TRUE, 160 /*opcode 0x82*/ PTI_MODRM_TRUE, 161 /*opcode 0x83*/ PTI_MODRM_TRUE, 162 /*opcode 0x84*/ PTI_MODRM_TRUE, 163 /*opcode 0x85*/ PTI_MODRM_TRUE, 164 /*opcode 0x86*/ PTI_MODRM_TRUE, 165 /*opcode 0x87*/ PTI_MODRM_TRUE, 166 /*opcode 0x88*/ PTI_MODRM_TRUE, 167 /*opcode 0x89*/ PTI_MODRM_TRUE, 168 /*opcode 0x8a*/ PTI_MODRM_TRUE, 169 /*opcode 0x8b*/ PTI_MODRM_TRUE, 170 /*opcode 0x8c*/ PTI_MODRM_TRUE, 171 /*opcode 0x8d*/ PTI_MODRM_TRUE, 172 /*opcode 0x8e*/ PTI_MODRM_TRUE, 173 /*opcode 0x8f*/ PTI_MODRM_TRUE, 174 /*opcode 0x90*/ PTI_MODRM_FALSE, 175 /*opcode 0x91*/ PTI_MODRM_FALSE, 176 /*opcode 0x92*/ PTI_MODRM_FALSE, 177 /*opcode 0x93*/ PTI_MODRM_FALSE, 178 /*opcode 0x94*/ PTI_MODRM_FALSE, 179 /*opcode 0x95*/ PTI_MODRM_FALSE, 180 /*opcode 0x96*/ PTI_MODRM_FALSE, 181 /*opcode 0x97*/ PTI_MODRM_FALSE, 182 /*opcode 0x98*/ PTI_MODRM_FALSE, 183 /*opcode 0x99*/ PTI_MODRM_FALSE, 184 /*opcode 0x9a*/ PTI_MODRM_FALSE, 185 /*opcode 0x9b*/ PTI_MODRM_FALSE, 186 /*opcode 0x9c*/ PTI_MODRM_FALSE, 187 /*opcode 0x9d*/ PTI_MODRM_FALSE, 188 /*opcode 0x9e*/ PTI_MODRM_FALSE, 189 /*opcode 0x9f*/ PTI_MODRM_FALSE, 190 /*opcode 0xa0*/ PTI_MODRM_FALSE, 191 /*opcode 0xa1*/ PTI_MODRM_FALSE, 192 /*opcode 0xa2*/ PTI_MODRM_FALSE, 193 /*opcode 0xa3*/ PTI_MODRM_FALSE, 194 /*opcode 0xa4*/ PTI_MODRM_FALSE, 195 /*opcode 0xa5*/ PTI_MODRM_FALSE, 196 /*opcode 0xa6*/ PTI_MODRM_FALSE, 197 /*opcode 0xa7*/ PTI_MODRM_FALSE, 198 /*opcode 0xa8*/ PTI_MODRM_FALSE, 199 /*opcode 0xa9*/ PTI_MODRM_FALSE, 200 /*opcode 0xaa*/ PTI_MODRM_FALSE, 201 /*opcode 0xab*/ PTI_MODRM_FALSE, 202 /*opcode 0xac*/ PTI_MODRM_FALSE, 203 /*opcode 0xad*/ PTI_MODRM_FALSE, 204 /*opcode 0xae*/ PTI_MODRM_FALSE, 205 /*opcode 0xaf*/ PTI_MODRM_FALSE, 206 /*opcode 0xb0*/ PTI_MODRM_FALSE, 207 /*opcode 0xb1*/ PTI_MODRM_FALSE, 208 /*opcode 0xb2*/ PTI_MODRM_FALSE, 209 /*opcode 0xb3*/ PTI_MODRM_FALSE, 210 /*opcode 0xb4*/ PTI_MODRM_FALSE, 211 /*opcode 0xb5*/ PTI_MODRM_FALSE, 212 /*opcode 0xb6*/ PTI_MODRM_FALSE, 213 /*opcode 0xb7*/ PTI_MODRM_FALSE, 214 /*opcode 0xb8*/ PTI_MODRM_FALSE, 215 /*opcode 0xb9*/ PTI_MODRM_FALSE, 216 /*opcode 0xba*/ PTI_MODRM_FALSE, 217 /*opcode 0xbb*/ PTI_MODRM_FALSE, 218 /*opcode 0xbc*/ PTI_MODRM_FALSE, 219 /*opcode 0xbd*/ PTI_MODRM_FALSE, 220 /*opcode 0xbe*/ PTI_MODRM_FALSE, 221 /*opcode 0xbf*/ PTI_MODRM_FALSE, 222 /*opcode 0xc0*/ PTI_MODRM_TRUE, 223 /*opcode 0xc1*/ PTI_MODRM_TRUE, 224 /*opcode 0xc2*/ PTI_MODRM_FALSE, 225 /*opcode 0xc3*/ PTI_MODRM_FALSE, 226 /*opcode 0xc4*/ PTI_MODRM_TRUE, 227 /*opcode 0xc5*/ PTI_MODRM_TRUE, 228 /*opcode 0xc6*/ PTI_MODRM_TRUE, 229 /*opcode 0xc7*/ PTI_MODRM_TRUE, 230 /*opcode 0xc8*/ PTI_MODRM_FALSE, 231 /*opcode 0xc9*/ PTI_MODRM_FALSE, 232 /*opcode 0xca*/ PTI_MODRM_FALSE, 233 /*opcode 0xcb*/ PTI_MODRM_FALSE, 234 /*opcode 0xcc*/ PTI_MODRM_FALSE, 235 /*opcode 0xcd*/ PTI_MODRM_FALSE, 236 /*opcode 0xce*/ PTI_MODRM_FALSE, 237 /*opcode 0xcf*/ PTI_MODRM_FALSE, 238 /*opcode 0xd0*/ PTI_MODRM_TRUE, 239 /*opcode 0xd1*/ PTI_MODRM_TRUE, 240 /*opcode 0xd2*/ PTI_MODRM_TRUE, 241 /*opcode 0xd3*/ PTI_MODRM_TRUE, 242 /*opcode 0xd4*/ PTI_MODRM_FALSE, 243 /*opcode 0xd5*/ PTI_MODRM_FALSE, 244 /*opcode 0xd6*/ PTI_MODRM_FALSE, 245 /*opcode 0xd7*/ PTI_MODRM_FALSE, 246 /*opcode 0xd8*/ PTI_MODRM_TRUE, 247 /*opcode 0xd9*/ PTI_MODRM_TRUE, 248 /*opcode 0xda*/ PTI_MODRM_TRUE, 249 /*opcode 0xdb*/ PTI_MODRM_TRUE, 250 /*opcode 0xdc*/ PTI_MODRM_TRUE, 251 /*opcode 0xdd*/ PTI_MODRM_TRUE, 252 /*opcode 0xde*/ PTI_MODRM_TRUE, 253 /*opcode 0xdf*/ PTI_MODRM_TRUE, 254 /*opcode 0xe0*/ PTI_MODRM_FALSE, 255 /*opcode 0xe1*/ PTI_MODRM_FALSE, 256 /*opcode 0xe2*/ PTI_MODRM_FALSE, 257 /*opcode 0xe3*/ PTI_MODRM_FALSE, 258 /*opcode 0xe4*/ PTI_MODRM_FALSE, 259 /*opcode 0xe5*/ PTI_MODRM_FALSE, 260 /*opcode 0xe6*/ PTI_MODRM_FALSE, 261 /*opcode 0xe7*/ PTI_MODRM_FALSE, 262 /*opcode 0xe8*/ PTI_MODRM_FALSE, 263 /*opcode 0xe9*/ PTI_MODRM_FALSE, 264 /*opcode 0xea*/ PTI_MODRM_FALSE, 265 /*opcode 0xeb*/ PTI_MODRM_FALSE, 266 /*opcode 0xec*/ PTI_MODRM_FALSE, 267 /*opcode 0xed*/ PTI_MODRM_FALSE, 268 /*opcode 0xee*/ PTI_MODRM_FALSE, 269 /*opcode 0xef*/ PTI_MODRM_FALSE, 270 /*opcode 0xf0*/ PTI_MODRM_UNDEF, 271 /*opcode 0xf1*/ PTI_MODRM_FALSE, 272 /*opcode 0xf2*/ PTI_MODRM_UNDEF, 273 /*opcode 0xf3*/ PTI_MODRM_UNDEF, 274 /*opcode 0xf4*/ PTI_MODRM_FALSE, 275 /*opcode 0xf5*/ PTI_MODRM_FALSE, 276 /*opcode 0xf6*/ PTI_MODRM_TRUE, 277 /*opcode 0xf7*/ PTI_MODRM_TRUE, 278 /*opcode 0xf8*/ PTI_MODRM_FALSE, 279 /*opcode 0xf9*/ PTI_MODRM_FALSE, 280 /*opcode 0xfa*/ PTI_MODRM_FALSE, 281 /*opcode 0xfb*/ PTI_MODRM_FALSE, 282 /*opcode 0xfc*/ PTI_MODRM_FALSE, 283 /*opcode 0xfd*/ PTI_MODRM_FALSE, 284 /*opcode 0xfe*/ PTI_MODRM_TRUE, 285 /*opcode 0xff*/ PTI_MODRM_TRUE, 286 }; 287 static uint8_t has_modrm_map_0x0F[256] = { 288 /*opcode 0x0*/ PTI_MODRM_TRUE, 289 /*opcode 0x1*/ PTI_MODRM_TRUE, 290 /*opcode 0x2*/ PTI_MODRM_TRUE, 291 /*opcode 0x3*/ PTI_MODRM_TRUE, 292 /*opcode 0x4*/ PTI_MODRM_UNDEF, 293 /*opcode 0x5*/ PTI_MODRM_FALSE, 294 /*opcode 0x6*/ PTI_MODRM_FALSE, 295 /*opcode 0x7*/ PTI_MODRM_FALSE, 296 /*opcode 0x8*/ PTI_MODRM_FALSE, 297 /*opcode 0x9*/ PTI_MODRM_FALSE, 298 /*opcode 0xa*/ PTI_MODRM_UNDEF, 299 /*opcode 0xb*/ PTI_MODRM_FALSE, 300 /*opcode 0xc*/ PTI_MODRM_UNDEF, 301 /*opcode 0xd*/ PTI_MODRM_TRUE, 302 /*opcode 0xe*/ PTI_MODRM_FALSE, 303 /*opcode 0xf*/ PTI_MODRM_UNDEF, 304 /*opcode 0x10*/ PTI_MODRM_TRUE, 305 /*opcode 0x11*/ PTI_MODRM_TRUE, 306 /*opcode 0x12*/ PTI_MODRM_TRUE, 307 /*opcode 0x13*/ PTI_MODRM_TRUE, 308 /*opcode 0x14*/ PTI_MODRM_TRUE, 309 /*opcode 0x15*/ PTI_MODRM_TRUE, 310 /*opcode 0x16*/ PTI_MODRM_TRUE, 311 /*opcode 0x17*/ PTI_MODRM_TRUE, 312 /*opcode 0x18*/ PTI_MODRM_TRUE, 313 /*opcode 0x19*/ PTI_MODRM_TRUE, 314 /*opcode 0x1a*/ PTI_MODRM_TRUE, 315 /*opcode 0x1b*/ PTI_MODRM_TRUE, 316 /*opcode 0x1c*/ PTI_MODRM_TRUE, 317 /*opcode 0x1d*/ PTI_MODRM_TRUE, 318 /*opcode 0x1e*/ PTI_MODRM_TRUE, 319 /*opcode 0x1f*/ PTI_MODRM_TRUE, 320 /*opcode 0x20*/ PTI_MODRM_IGNORE_MOD, 321 /*opcode 0x21*/ PTI_MODRM_IGNORE_MOD, 322 /*opcode 0x22*/ PTI_MODRM_IGNORE_MOD, 323 /*opcode 0x23*/ PTI_MODRM_IGNORE_MOD, 324 /*opcode 0x24*/ PTI_MODRM_UNDEF, 325 /*opcode 0x25*/ PTI_MODRM_UNDEF, 326 /*opcode 0x26*/ PTI_MODRM_UNDEF, 327 /*opcode 0x27*/ PTI_MODRM_UNDEF, 328 /*opcode 0x28*/ PTI_MODRM_TRUE, 329 /*opcode 0x29*/ PTI_MODRM_TRUE, 330 /*opcode 0x2a*/ PTI_MODRM_TRUE, 331 /*opcode 0x2b*/ PTI_MODRM_TRUE, 332 /*opcode 0x2c*/ PTI_MODRM_TRUE, 333 /*opcode 0x2d*/ PTI_MODRM_TRUE, 334 /*opcode 0x2e*/ PTI_MODRM_TRUE, 335 /*opcode 0x2f*/ PTI_MODRM_TRUE, 336 /*opcode 0x30*/ PTI_MODRM_FALSE, 337 /*opcode 0x31*/ PTI_MODRM_FALSE, 338 /*opcode 0x32*/ PTI_MODRM_FALSE, 339 /*opcode 0x33*/ PTI_MODRM_FALSE, 340 /*opcode 0x34*/ PTI_MODRM_FALSE, 341 /*opcode 0x35*/ PTI_MODRM_FALSE, 342 /*opcode 0x36*/ PTI_MODRM_UNDEF, 343 /*opcode 0x37*/ PTI_MODRM_FALSE, 344 /*opcode 0x38*/ PTI_MODRM_UNDEF, 345 /*opcode 0x39*/ PTI_MODRM_UNDEF, 346 /*opcode 0x3a*/ PTI_MODRM_UNDEF, 347 /*opcode 0x3b*/ PTI_MODRM_UNDEF, 348 /*opcode 0x3c*/ PTI_MODRM_UNDEF, 349 /*opcode 0x3d*/ PTI_MODRM_UNDEF, 350 /*opcode 0x3e*/ PTI_MODRM_UNDEF, 351 /*opcode 0x3f*/ PTI_MODRM_UNDEF, 352 /*opcode 0x40*/ PTI_MODRM_TRUE, 353 /*opcode 0x41*/ PTI_MODRM_TRUE, 354 /*opcode 0x42*/ PTI_MODRM_TRUE, 355 /*opcode 0x43*/ PTI_MODRM_TRUE, 356 /*opcode 0x44*/ PTI_MODRM_TRUE, 357 /*opcode 0x45*/ PTI_MODRM_TRUE, 358 /*opcode 0x46*/ PTI_MODRM_TRUE, 359 /*opcode 0x47*/ PTI_MODRM_TRUE, 360 /*opcode 0x48*/ PTI_MODRM_TRUE, 361 /*opcode 0x49*/ PTI_MODRM_TRUE, 362 /*opcode 0x4a*/ PTI_MODRM_TRUE, 363 /*opcode 0x4b*/ PTI_MODRM_TRUE, 364 /*opcode 0x4c*/ PTI_MODRM_TRUE, 365 /*opcode 0x4d*/ PTI_MODRM_TRUE, 366 /*opcode 0x4e*/ PTI_MODRM_TRUE, 367 /*opcode 0x4f*/ PTI_MODRM_TRUE, 368 /*opcode 0x50*/ PTI_MODRM_TRUE, 369 /*opcode 0x51*/ PTI_MODRM_TRUE, 370 /*opcode 0x52*/ PTI_MODRM_TRUE, 371 /*opcode 0x53*/ PTI_MODRM_TRUE, 372 /*opcode 0x54*/ PTI_MODRM_TRUE, 373 /*opcode 0x55*/ PTI_MODRM_TRUE, 374 /*opcode 0x56*/ PTI_MODRM_TRUE, 375 /*opcode 0x57*/ PTI_MODRM_TRUE, 376 /*opcode 0x58*/ PTI_MODRM_TRUE, 377 /*opcode 0x59*/ PTI_MODRM_TRUE, 378 /*opcode 0x5a*/ PTI_MODRM_TRUE, 379 /*opcode 0x5b*/ PTI_MODRM_TRUE, 380 /*opcode 0x5c*/ PTI_MODRM_TRUE, 381 /*opcode 0x5d*/ PTI_MODRM_TRUE, 382 /*opcode 0x5e*/ PTI_MODRM_TRUE, 383 /*opcode 0x5f*/ PTI_MODRM_TRUE, 384 /*opcode 0x60*/ PTI_MODRM_TRUE, 385 /*opcode 0x61*/ PTI_MODRM_TRUE, 386 /*opcode 0x62*/ PTI_MODRM_TRUE, 387 /*opcode 0x63*/ PTI_MODRM_TRUE, 388 /*opcode 0x64*/ PTI_MODRM_TRUE, 389 /*opcode 0x65*/ PTI_MODRM_TRUE, 390 /*opcode 0x66*/ PTI_MODRM_TRUE, 391 /*opcode 0x67*/ PTI_MODRM_TRUE, 392 /*opcode 0x68*/ PTI_MODRM_TRUE, 393 /*opcode 0x69*/ PTI_MODRM_TRUE, 394 /*opcode 0x6a*/ PTI_MODRM_TRUE, 395 /*opcode 0x6b*/ PTI_MODRM_TRUE, 396 /*opcode 0x6c*/ PTI_MODRM_TRUE, 397 /*opcode 0x6d*/ PTI_MODRM_TRUE, 398 /*opcode 0x6e*/ PTI_MODRM_TRUE, 399 /*opcode 0x6f*/ PTI_MODRM_TRUE, 400 /*opcode 0x70*/ PTI_MODRM_TRUE, 401 /*opcode 0x71*/ PTI_MODRM_TRUE, 402 /*opcode 0x72*/ PTI_MODRM_TRUE, 403 /*opcode 0x73*/ PTI_MODRM_TRUE, 404 /*opcode 0x74*/ PTI_MODRM_TRUE, 405 /*opcode 0x75*/ PTI_MODRM_TRUE, 406 /*opcode 0x76*/ PTI_MODRM_TRUE, 407 /*opcode 0x77*/ PTI_MODRM_FALSE, 408 /*opcode 0x78*/ PTI_MODRM_TRUE, 409 /*opcode 0x79*/ PTI_MODRM_TRUE, 410 /*opcode 0x7a*/ PTI_MODRM_TRUE, 411 /*opcode 0x7b*/ PTI_MODRM_TRUE, 412 /*opcode 0x7c*/ PTI_MODRM_TRUE, 413 /*opcode 0x7d*/ PTI_MODRM_TRUE, 414 /*opcode 0x7e*/ PTI_MODRM_TRUE, 415 /*opcode 0x7f*/ PTI_MODRM_TRUE, 416 /*opcode 0x80*/ PTI_MODRM_FALSE, 417 /*opcode 0x81*/ PTI_MODRM_FALSE, 418 /*opcode 0x82*/ PTI_MODRM_FALSE, 419 /*opcode 0x83*/ PTI_MODRM_FALSE, 420 /*opcode 0x84*/ PTI_MODRM_FALSE, 421 /*opcode 0x85*/ PTI_MODRM_FALSE, 422 /*opcode 0x86*/ PTI_MODRM_FALSE, 423 /*opcode 0x87*/ PTI_MODRM_FALSE, 424 /*opcode 0x88*/ PTI_MODRM_FALSE, 425 /*opcode 0x89*/ PTI_MODRM_FALSE, 426 /*opcode 0x8a*/ PTI_MODRM_FALSE, 427 /*opcode 0x8b*/ PTI_MODRM_FALSE, 428 /*opcode 0x8c*/ PTI_MODRM_FALSE, 429 /*opcode 0x8d*/ PTI_MODRM_FALSE, 430 /*opcode 0x8e*/ PTI_MODRM_FALSE, 431 /*opcode 0x8f*/ PTI_MODRM_FALSE, 432 /*opcode 0x90*/ PTI_MODRM_TRUE, 433 /*opcode 0x91*/ PTI_MODRM_TRUE, 434 /*opcode 0x92*/ PTI_MODRM_TRUE, 435 /*opcode 0x93*/ PTI_MODRM_TRUE, 436 /*opcode 0x94*/ PTI_MODRM_TRUE, 437 /*opcode 0x95*/ PTI_MODRM_TRUE, 438 /*opcode 0x96*/ PTI_MODRM_TRUE, 439 /*opcode 0x97*/ PTI_MODRM_TRUE, 440 /*opcode 0x98*/ PTI_MODRM_TRUE, 441 /*opcode 0x99*/ PTI_MODRM_TRUE, 442 /*opcode 0x9a*/ PTI_MODRM_TRUE, 443 /*opcode 0x9b*/ PTI_MODRM_TRUE, 444 /*opcode 0x9c*/ PTI_MODRM_TRUE, 445 /*opcode 0x9d*/ PTI_MODRM_TRUE, 446 /*opcode 0x9e*/ PTI_MODRM_TRUE, 447 /*opcode 0x9f*/ PTI_MODRM_TRUE, 448 /*opcode 0xa0*/ PTI_MODRM_FALSE, 449 /*opcode 0xa1*/ PTI_MODRM_FALSE, 450 /*opcode 0xa2*/ PTI_MODRM_FALSE, 451 /*opcode 0xa3*/ PTI_MODRM_TRUE, 452 /*opcode 0xa4*/ PTI_MODRM_TRUE, 453 /*opcode 0xa5*/ PTI_MODRM_TRUE, 454 /*opcode 0xa6*/ PTI_MODRM_UNDEF, 455 /*opcode 0xa7*/ PTI_MODRM_UNDEF, 456 /*opcode 0xa8*/ PTI_MODRM_FALSE, 457 /*opcode 0xa9*/ PTI_MODRM_FALSE, 458 /*opcode 0xaa*/ PTI_MODRM_FALSE, 459 /*opcode 0xab*/ PTI_MODRM_TRUE, 460 /*opcode 0xac*/ PTI_MODRM_TRUE, 461 /*opcode 0xad*/ PTI_MODRM_TRUE, 462 /*opcode 0xae*/ PTI_MODRM_TRUE, 463 /*opcode 0xaf*/ PTI_MODRM_TRUE, 464 /*opcode 0xb0*/ PTI_MODRM_TRUE, 465 /*opcode 0xb1*/ PTI_MODRM_TRUE, 466 /*opcode 0xb2*/ PTI_MODRM_TRUE, 467 /*opcode 0xb3*/ PTI_MODRM_TRUE, 468 /*opcode 0xb4*/ PTI_MODRM_TRUE, 469 /*opcode 0xb5*/ PTI_MODRM_TRUE, 470 /*opcode 0xb6*/ PTI_MODRM_TRUE, 471 /*opcode 0xb7*/ PTI_MODRM_TRUE, 472 /*opcode 0xb8*/ PTI_MODRM_TRUE, 473 /*opcode 0xb9*/ PTI_MODRM_UNDEF, 474 /*opcode 0xba*/ PTI_MODRM_TRUE, 475 /*opcode 0xbb*/ PTI_MODRM_TRUE, 476 /*opcode 0xbc*/ PTI_MODRM_TRUE, 477 /*opcode 0xbd*/ PTI_MODRM_TRUE, 478 /*opcode 0xbe*/ PTI_MODRM_TRUE, 479 /*opcode 0xbf*/ PTI_MODRM_TRUE, 480 /*opcode 0xc0*/ PTI_MODRM_TRUE, 481 /*opcode 0xc1*/ PTI_MODRM_TRUE, 482 /*opcode 0xc2*/ PTI_MODRM_TRUE, 483 /*opcode 0xc3*/ PTI_MODRM_TRUE, 484 /*opcode 0xc4*/ PTI_MODRM_TRUE, 485 /*opcode 0xc5*/ PTI_MODRM_TRUE, 486 /*opcode 0xc6*/ PTI_MODRM_TRUE, 487 /*opcode 0xc7*/ PTI_MODRM_TRUE, 488 /*opcode 0xc8*/ PTI_MODRM_FALSE, 489 /*opcode 0xc9*/ PTI_MODRM_FALSE, 490 /*opcode 0xca*/ PTI_MODRM_FALSE, 491 /*opcode 0xcb*/ PTI_MODRM_FALSE, 492 /*opcode 0xcc*/ PTI_MODRM_FALSE, 493 /*opcode 0xcd*/ PTI_MODRM_FALSE, 494 /*opcode 0xce*/ PTI_MODRM_FALSE, 495 /*opcode 0xcf*/ PTI_MODRM_FALSE, 496 /*opcode 0xd0*/ PTI_MODRM_TRUE, 497 /*opcode 0xd1*/ PTI_MODRM_TRUE, 498 /*opcode 0xd2*/ PTI_MODRM_TRUE, 499 /*opcode 0xd3*/ PTI_MODRM_TRUE, 500 /*opcode 0xd4*/ PTI_MODRM_TRUE, 501 /*opcode 0xd5*/ PTI_MODRM_TRUE, 502 /*opcode 0xd6*/ PTI_MODRM_TRUE, 503 /*opcode 0xd7*/ PTI_MODRM_TRUE, 504 /*opcode 0xd8*/ PTI_MODRM_TRUE, 505 /*opcode 0xd9*/ PTI_MODRM_TRUE, 506 /*opcode 0xda*/ PTI_MODRM_TRUE, 507 /*opcode 0xdb*/ PTI_MODRM_TRUE, 508 /*opcode 0xdc*/ PTI_MODRM_TRUE, 509 /*opcode 0xdd*/ PTI_MODRM_TRUE, 510 /*opcode 0xde*/ PTI_MODRM_TRUE, 511 /*opcode 0xdf*/ PTI_MODRM_TRUE, 512 /*opcode 0xe0*/ PTI_MODRM_TRUE, 513 /*opcode 0xe1*/ PTI_MODRM_TRUE, 514 /*opcode 0xe2*/ PTI_MODRM_TRUE, 515 /*opcode 0xe3*/ PTI_MODRM_TRUE, 516 /*opcode 0xe4*/ PTI_MODRM_TRUE, 517 /*opcode 0xe5*/ PTI_MODRM_TRUE, 518 /*opcode 0xe6*/ PTI_MODRM_TRUE, 519 /*opcode 0xe7*/ PTI_MODRM_TRUE, 520 /*opcode 0xe8*/ PTI_MODRM_TRUE, 521 /*opcode 0xe9*/ PTI_MODRM_TRUE, 522 /*opcode 0xea*/ PTI_MODRM_TRUE, 523 /*opcode 0xeb*/ PTI_MODRM_TRUE, 524 /*opcode 0xec*/ PTI_MODRM_TRUE, 525 /*opcode 0xed*/ PTI_MODRM_TRUE, 526 /*opcode 0xee*/ PTI_MODRM_TRUE, 527 /*opcode 0xef*/ PTI_MODRM_TRUE, 528 /*opcode 0xf0*/ PTI_MODRM_TRUE, 529 /*opcode 0xf1*/ PTI_MODRM_TRUE, 530 /*opcode 0xf2*/ PTI_MODRM_TRUE, 531 /*opcode 0xf3*/ PTI_MODRM_TRUE, 532 /*opcode 0xf4*/ PTI_MODRM_TRUE, 533 /*opcode 0xf5*/ PTI_MODRM_TRUE, 534 /*opcode 0xf6*/ PTI_MODRM_TRUE, 535 /*opcode 0xf7*/ PTI_MODRM_TRUE, 536 /*opcode 0xf8*/ PTI_MODRM_TRUE, 537 /*opcode 0xf9*/ PTI_MODRM_TRUE, 538 /*opcode 0xfa*/ PTI_MODRM_TRUE, 539 /*opcode 0xfb*/ PTI_MODRM_TRUE, 540 /*opcode 0xfc*/ PTI_MODRM_TRUE, 541 /*opcode 0xfd*/ PTI_MODRM_TRUE, 542 /*opcode 0xfe*/ PTI_MODRM_TRUE, 543 /*opcode 0xff*/ PTI_MODRM_UNDEF, 544 }; 545