From patchwork Fri Jan 19 11:25:04 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 189528 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:2bc4:b0:101:a8e8:374 with SMTP id hx4csp940161dyb; Fri, 19 Jan 2024 03:25:20 -0800 (PST) X-Google-Smtp-Source: AGHT+IFJ4pC7hG04O1FDL9sP11ZLVwsYwSP8VWAuw6EODbBkYuw4boArMa6Aofpoj+hqVjrfObsM X-Received: by 2002:a05:620a:25d3:b0:783:70fd:d6aa with SMTP id y19-20020a05620a25d300b0078370fdd6aamr1337839qko.95.1705663520136; Fri, 19 Jan 2024 03:25:20 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1705663520; cv=pass; d=google.com; s=arc-20160816; b=UEY9zv3WJKjCamQIw2vizgtFjpQRrryR+kWDmj0M4eubm7dMHZLFT8FRj1WrNXWqCP MZGnIYFVeSyvVkeMSAh9PGPC8zg1Rw8Mbm/znyK5HzGb9uqxALsqRcccs96SsaVJvlPE MH4eYB44/n5S33E+gEd2wkrbzW/JULk+uhODhcz7yQDADi4+DkHqTzyXh8/Au/TndeCt 1eUmSVKkK4h4aavPrACMav8rPhXC8/girvOQsiX+VK7dq3Yt14hc8s8F1COO+IE0lB0s 6wdNwGA1a7FR8HtvtNTlxz0TnymHamCaCA5nbratYeVPnYvuKCskBseCA/QbqJlm2Fpa RQ6A== ARC-Message-Signature: i=2; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:content-transfer-encoding :in-reply-to:autocrypt:references:cc:to:from:content-language :subject:user-agent:mime-version:date:message-id:dkim-signature :arc-filter:dmarc-filter:delivered-to; bh=UyjMcO4VlvbIkqoaDXGS/snPA9FAZXNsgDKETiGOtig=; fh=2DbSPqOhyO7CNtGa024QKgSiHKlKGVt2h+1rlgWLnZI=; b=uM9nnOlXFCMu69kD3xoxCm1Kklbi5B5C0RsVxs068dMRImQUXoN3GRbMpl5MRNgp9V GmWUtHVbUUX6vkA61n6h5ruDUXDCuAAv7abTFoZJ/bshJVXHfmRyL9TlkSnyMTdn5dAD NWV5eBxjSHXmBy9am7n260JBZO9A5OEt+1tCkJsjEnWtT0nIvCO9ee+bgTqIXj3npaJh 0KGdw+R0GADWyQRQnEzVkYqp4W9GkX3FDrbVJnDYjug8hxvBffqYfhhZ+Fweb+4uA/mp DTk2DaNium7aOl4AHeuFnDnhjfb9HSoKHUR4sNHt5LU9JbCOGnR7svBZMVezUwiwrfe0 MTGw== ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@suse.com header.s=google header.b=TNZRLneM; arc=pass (i=1); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from server2.sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id ow21-20020a05620a821500b0078328bda904si15513050qkn.499.2024.01.19.03.25.20 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 19 Jan 2024 03:25:20 -0800 (PST) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) client-ip=2620:52:3:1:0:246e:9693:128c; Authentication-Results: mx.google.com; dkim=pass header.i=@suse.com header.s=google header.b=TNZRLneM; arc=pass (i=1); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 2620:52:3:1:0:246e:9693:128c as permitted sender) smtp.mailfrom="binutils-bounces+ouuuleilei=gmail.com@sourceware.org"; dmarc=pass (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id CC55B3857C61 for ; Fri, 19 Jan 2024 11:25:19 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-wm1-x335.google.com (mail-wm1-x335.google.com [IPv6:2a00:1450:4864:20::335]) by sourceware.org (Postfix) with ESMTPS id 94F763858001 for ; Fri, 19 Jan 2024 11:25:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 94F763858001 Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=suse.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 94F763858001 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::335 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705663509; cv=none; b=r1cIp0XkY+PZsr3E/HiiSyOWhqxFJhAd2unjomKcY1LTOwatzOLvO0oiRJ3xZi08T5gh/yegJmvRVaS70scm8l4gS9Aw/+mhdx8Xa9Z93ADb/bNyx2LaCQfJyk5nIq296jlZFPWQ56HWF68pDYD7Fd5ou50p9oZqzVos/dU1Cig= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1705663509; c=relaxed/simple; bh=tI0fDZPgf5Xw76FgJTzWtRtNa13/r4aYFI7EgHdQJro=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:From:To; b=bslQwBwuFp6rrYHYj3Rb3f34qVfLqXzyG9eZsJQgusTbpDe5kGwfuZ9NxgLoxbKXR3Px0L2FrsWSjY0nzoARrsmjXWy6y/CFaEKQMNpf9qruRhsJLon/b8DlfRz3W8ikDlzE3OuyKh2v4aIQ77P6OP5+E2Us+D29i+MFNLvV1II= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-wm1-x335.google.com with SMTP id 5b1f17b1804b1-40e8801221cso5881015e9.1 for ; Fri, 19 Jan 2024 03:25:06 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1705663505; x=1706268305; darn=sourceware.org; h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to :from:content-language:subject:user-agent:mime-version:date :message-id:from:to:cc:subject:date:message-id:reply-to; bh=UyjMcO4VlvbIkqoaDXGS/snPA9FAZXNsgDKETiGOtig=; b=TNZRLneMHSpCZa+fPLMpkLJY4i/Guv1lBdq9qgbsq4LDFtWGKnfGqbr3VmmIOmgYo8 NSP0XFpGFxV7AFlAyg6pojzyeeVkAmM5a6PLF4BdKLPJRpS8Y0vIBKf+HqamgfOvYGDw TwLdcmOpvc3vqNlvqT8wN21SvShfuGhMlvvT39N+n+9tlEguDefl5tODmmGUPYAFioNX 1ndOUJCcSXYQuOZPc2ROKL1JOa7t5Cx4jaVoR8MKZxN9XyxLlP4YDMCADj5CWFzlW/Jx L0sRFFGi4k9bNaX41pHp1PHFmcWCBy6z6szVLx7j2eZ81aySYqc4Xq81yR5WOumGqEQY pQdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705663505; x=1706268305; h=content-transfer-encoding:in-reply-to:autocrypt:references:cc:to :from:content-language:subject:user-agent:mime-version:date :message-id:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=UyjMcO4VlvbIkqoaDXGS/snPA9FAZXNsgDKETiGOtig=; b=QEn55iGjcjw7Cg/2qNb82qGYuDjmmYt9uuSHVyedJmz8lGccQwJaRIKFaQHIRk8U9l t1MtztKUs8BsmNvoeJ4ZJ/LdJIaetf2ZFSon0KSB7mrqYTJmfBjeZPUYFTcSUzlVRYCT 8W9Pjysc76MUXc6KB7/3IWpZ2VbD2Wwxz8uG4kAHUIRmL7tvZDMkqoR0pqmTe4pN6SUt 7zeD0QludKlwdWXziFg59UBllAMcsmKDBLjsJYXt6vA7I8DOI9nv8HswFn5+UngQgirt cJ+OBzeM7UwJ5t2Qc938vl3w6bygug/ikpACN8B1laWcG6C5+4eILp1QZ5SKAMM5w0VE kugg== X-Gm-Message-State: AOJu0YzHass3jT7XZBwS1DIV0wj7pvrF1QvSuFLR30IXFFoOgnPZWabH 0VcewreEoZ6MgxuywX+d+rgAWI7drSoXgQ9JDHwfpPZiynwu0aWfrCxjwe+xhs2WcS38FtccBPk = X-Received: by 2002:a05:600c:4383:b0:40d:87c9:584d with SMTP id e3-20020a05600c438300b0040d87c9584dmr1346348wmn.85.1705663505335; Fri, 19 Jan 2024 03:25:05 -0800 (PST) Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id l6-20020a7bc346000000b0040d81ca11casm27999094wmj.28.2024.01.19.03.25.04 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 19 Jan 2024 03:25:05 -0800 (PST) Message-ID: <2950fba0-7b54-4163-bcc6-aae5fef98810@suse.com> Date: Fri, 19 Jan 2024 12:25:04 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: [PATCH 1/2] x86/APX: no need to have decode go through x86_64_table[] Content-Language: en-US From: Jan Beulich To: Binutils Cc: "H.J. Lu" , Lili Cui References: <86ed7622-73e5-469e-88fd-550dd2e7fca6@suse.com> Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL In-Reply-To: <86ed7622-73e5-469e-88fd-550dd2e7fca6@suse.com> X-Spam-Status: No, score=-3025.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1788517830991017343 X-GMAIL-MSGID: 1788517830991017343 As suggested during review already, all such entries have their first slot as Bad_Opcode, so by adding two more enumerators we can avoid doing that decode step altogether. --- a/opcodes/i386-dis.c +++ b/opcodes/i386-dis.c @@ -821,6 +821,8 @@ enum USE_PREFIX_TABLE, USE_X86_64_TABLE, USE_X86_64_EVEX_FROM_VEX_TABLE, + USE_X86_64_EVEX_PFX_TABLE, + USE_X86_64_EVEX_W_TABLE, USE_3BYTE_TABLE, USE_XOP_8F_TABLE, USE_VEX_C4_TABLE, @@ -841,6 +843,8 @@ enum #define X86_64_TABLE(I) DIS386 (USE_X86_64_TABLE, (I)) #define X86_64_EVEX_FROM_VEX_TABLE(I) \ DIS386 (USE_X86_64_EVEX_FROM_VEX_TABLE, (I)) +#define X86_64_EVEX_PFX_TABLE(I) DIS386 (USE_X86_64_EVEX_PFX_TABLE, (I)) +#define X86_64_EVEX_W_TABLE(I) DIS386 (USE_X86_64_EVEX_W_TABLE, (I)) #define THREE_BYTE_TABLE(I) DIS386 (USE_3BYTE_TABLE, (I)) #define XOP_8F_TABLE() DIS386 (USE_XOP_8F_TABLE, 0) #define VEX_C4_TABLE() DIS386 (USE_VEX_C4_TABLE, 0) @@ -1317,17 +1321,6 @@ enum X86_64_VEX_0F38EF, X86_64_VEX_MAP7_F8_L_0_W_0_R_0, - - X86_64_EVEX_0F90, - X86_64_EVEX_0F91, - X86_64_EVEX_0F92, - X86_64_EVEX_0F93, - X86_64_EVEX_0F38F2, - X86_64_EVEX_0F38F3, - X86_64_EVEX_0F38F5, - X86_64_EVEX_0F38F6, - X86_64_EVEX_0F38F7, - X86_64_EVEX_0F3AF0, }; enum @@ -4600,8 +4593,6 @@ static const struct dis386 x86_64_table[ { Bad_Opcode }, { PREFIX_TABLE (PREFIX_VEX_MAP7_F8_L_0_W_0_R_0_X86_64) }, }, - -#include "i386-dis-evex-x86-64.h" }; static const struct dis386 three_byte_table[][256] = { @@ -8738,6 +8729,7 @@ get_valid_dis386 (const struct dis386 *d break; case USE_PREFIX_TABLE: + use_prefix_table: if (ins->need_vex) { /* The prefix in VEX is implicit. */ @@ -8808,15 +8800,23 @@ get_valid_dis386 (const struct dis386 *d break; case USE_X86_64_EVEX_FROM_VEX_TABLE: + case USE_X86_64_EVEX_PFX_TABLE: + case USE_X86_64_EVEX_W_TABLE: ins->evex_type = evex_from_vex; - /* EVEX from VEX instrucions require that EVEX.z, EVEX.L’L, EVEX.b and - the lower 2 bits of EVEX.aaa must be 0. */ - if ((ins->vex.mask_register_specifier & 0x3) != 0 + /* EVEX from VEX instructions are 64-bit only and require that EVEX.z, + EVEX.L'L, EVEX.b, and the lower 2 bits of EVEX.aaa must be 0. */ + if (ins->address_mode != mode_64bit + || (ins->vex.mask_register_specifier & 0x3) != 0 || ins->vex.ll != 0 || ins->vex.zeroing != 0 || ins->vex.b) return &bad_opcode; + if (dp->op[0].bytemode == USE_X86_64_EVEX_PFX_TABLE) + goto use_prefix_table; + if (dp->op[0].bytemode == USE_X86_64_EVEX_W_TABLE) + goto use_vex_w_table; + /* Fall through. */ case USE_X86_64_TABLE: vindex = ins->address_mode == mode_64bit ? 1 : 0; @@ -9050,6 +9050,7 @@ get_valid_dis386 (const struct dis386 *d break; case USE_VEX_W_TABLE: + use_vex_w_table: if (!ins->need_vex) abort (); --- a/opcodes/i386-dis-evex.h +++ b/opcodes/i386-dis-evex.h @@ -164,10 +164,10 @@ static const struct dis386 evex_table[][ { Bad_Opcode }, { Bad_Opcode }, /* 90 */ - { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F90) }, - { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F91) }, - { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F92) }, - { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F93) }, + { X86_64_EVEX_W_TABLE (VEX_W_0F90_L_0) }, + { X86_64_EVEX_W_TABLE (VEX_W_0F91_L_0) }, + { X86_64_EVEX_W_TABLE (VEX_W_0F92_L_0) }, + { X86_64_EVEX_W_TABLE (VEX_W_0F93_L_0) }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, @@ -565,12 +565,12 @@ static const struct dis386 evex_table[][ /* F0 */ { Bad_Opcode }, { Bad_Opcode }, - { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38F2) }, - { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38F3) }, + { X86_64_EVEX_PFX_TABLE (PREFIX_VEX_0F38F2_L_0) }, + { X86_64_EVEX_PFX_TABLE (PREFIX_VEX_0F38F3_L_0) }, { Bad_Opcode }, - { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38F5) }, - { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38F6) }, - { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F38F7) }, + { X86_64_EVEX_PFX_TABLE (PREFIX_VEX_0F38F5_L_0) }, + { X86_64_EVEX_PFX_TABLE (PREFIX_VEX_0F38F6_L_0) }, + { X86_64_EVEX_PFX_TABLE (PREFIX_VEX_0F38F7_L_0) }, /* F8 */ { Bad_Opcode }, { Bad_Opcode }, @@ -854,7 +854,7 @@ static const struct dis386 evex_table[][ { Bad_Opcode }, { Bad_Opcode }, /* F0 */ - { X86_64_EVEX_FROM_VEX_TABLE (X86_64_EVEX_0F3AF0) }, + { X86_64_EVEX_PFX_TABLE (PREFIX_VEX_0F3AF0_L_0) }, { Bad_Opcode }, { Bad_Opcode }, { Bad_Opcode }, --- a/opcodes/i386-dis-evex-x86-64.h +++ /dev/null @@ -1,50 +0,0 @@ - /* X86_64_EVEX_0F90 */ - { - { Bad_Opcode }, - { VEX_W_TABLE (VEX_W_0F90_L_0) }, - }, - /* X86_64_EVEX_0F91 */ - { - { Bad_Opcode }, - { VEX_W_TABLE (VEX_W_0F91_L_0) }, - }, - /* X86_64_EVEX_0F92 */ - { - { Bad_Opcode }, - { VEX_W_TABLE (VEX_W_0F92_L_0) }, - }, - /* X86_64_EVEX_0F93 */ - { - { Bad_Opcode }, - { VEX_W_TABLE (VEX_W_0F93_L_0) }, - }, - /* X86_64_EVEX_0F38F2 */ - { - { Bad_Opcode }, - { PREFIX_TABLE (PREFIX_VEX_0F38F2_L_0) }, - }, - /* X86_64_EVEX_0F38F3 */ - { - { Bad_Opcode }, - { PREFIX_TABLE (PREFIX_VEX_0F38F3_L_0) }, - }, - /* X86_64_EVEX_0F38F5 */ - { - { Bad_Opcode }, - { PREFIX_TABLE (PREFIX_VEX_0F38F5_L_0) }, - }, - /* X86_64_EVEX_0F38F6 */ - { - { Bad_Opcode }, - { PREFIX_TABLE(PREFIX_VEX_0F38F6_L_0) }, - }, - /* X86_64_EVEX_0F38F7 */ - { - { Bad_Opcode }, - { PREFIX_TABLE(PREFIX_VEX_0F38F7_L_0) }, - }, - /* X86_64_EVEX_0F3AF0 */ - { - { Bad_Opcode }, - { PREFIX_TABLE (PREFIX_VEX_0F3AF0_L_0) }, - },