From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on2088.outbound.protection.outlook.com [40.107.14.88]) by sourceware.org (Postfix) with ESMTPS id 3184C3858D20 for ; Thu, 28 Sep 2023 13:11:29 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3184C3858D20 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-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=WSTeydLWSp4WEGTXkQJw50WHLZmYdZBUzyuagMk2zpftimYQxpy++1iLW3HLHLEn+9bcrG+oTty8zMJ5mZoiGKxq1QMwgPsU1LHz0WcGhoPOSdRme1FXRdVzCHslHxiF+j9jnlJBUCnhpJaF+UZEk2sjaw3X+UQRgLzxLIeSpMmTgFahZu06oPkKi8UXKUH4wzo3aF5JS3M0bEISfRXocwqbOvTV/HtxeJqSvntRCl2f0n1jRMzsHcul7i3ptdD8e2WwfMquC0eIhCnlp5RHGr8hn5uhLAZAXg2Rzp8Qc+0pf8gqrGY+/Ru0SNXc2qezCHyjsTpPDWMbyJ7HfLGl7Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=dYfiTxZMChLmnK2pm+7f71dpl3SQC1P+0cDaPRtyqb0=; b=mGtu6xoIxQ4LZhvC3d5NzKcVKGJ6vjr4sEy1YHM4dT5gsoAFIJhSMZwq4NAkpc1imdDZz/m6KHebkNLUMWRlsGHBWzealbEMQZcU+Ktpc4CYpX9EPCBPNrmF9Moot2w45rSVBljvPk9wCPEV8c8LHEtuSNBTDswhpuAa38npUvVEPpbGIPMA9m/lhndrW9gpw4ABX+Y645ent8rihy9rIsTc03KHfA7xbZFQAF4RmDhGHcYmEEEp0puTRGmuldgWHYhhmhi6/9RVHl1QceBscJaFf2a07TBMxC0YNmz0XBtqPRzQAizYN9EXsE936iz3kPuUuooNfUxDmwYYWRMVGg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=dYfiTxZMChLmnK2pm+7f71dpl3SQC1P+0cDaPRtyqb0=; b=J4pE80RHMO01NvTbpXQquijEQRsxda8hnQF37rKM2wt8tOi6g/juk7mh20ZczwWSv2giNHEWxJY5XhLx60ds2LXs73EGvC7Ae+4PfFobT/ntU62B9iquj8WvCYDqCqF972CQNl/85ZyUjZpqG3CHSgSdxQ5sikH9a/u3pct5MqbzVzGN+1e0E7GnbpXQLwr71J/kyYs6EBT/2U2K2V2G7ZPT1MhyucpdArYd2PQbx4Vm1jjPZtS02dKD2Q3cdxuygsHYmNbBxqm2aVZjlEU0G2YpFnKuj7ro2t9GzJ1RhgUHdcS6rugOlFsdmgBzorHVtox9j9/TDBHDLXria3wv0Q== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) by DB9PR04MB8234.eurprd04.prod.outlook.com (2603:10a6:10:25d::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6813.28; Thu, 28 Sep 2023 13:11:26 +0000 Received: from DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::9f5d:8bed:7a5b:e75a]) by DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::9f5d:8bed:7a5b:e75a%6]) with mapi id 15.20.6838.016; Thu, 28 Sep 2023 13:11:26 +0000 Message-ID: <683a2554-7481-dee6-c3d4-2781b0bc747b@suse.com> Date: Thu, 28 Sep 2023 15:11:24 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Subject: Re: [PATCH 8/8] Support APX JMPABS Content-Language: en-US To: "Cui, Lili" Cc: hongjiu.lu@intel.com, "Hu, Lin1" , binutils@sourceware.org References: <20230919152527.497773-1-lili.cui@intel.com> <20230919152527.497773-9-lili.cui@intel.com> From: Jan Beulich In-Reply-To: <20230919152527.497773-9-lili.cui@intel.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR0P281CA0258.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:b5::10) To DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|DB9PR04MB8234:EE_ X-MS-Office365-Filtering-Correlation-Id: eefe3b38-cb19-442d-7479-08dbc0246bcf X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: yK200HOlXyNDix9Or0hD0coyPek4FHCLvoJZSnyxp6r2oh/gM3iwKb6sP3z0FnHPl1cvvFvIr98Te+7cAvMoLdbtsZejjgGEuwPt6yvZZATg0Sr5B8dkHh1Jk6a08A2jPiEJwCJwJnbmMtGJxNEdlhBz6UAZkLT6C7Wff5eNXwb4Z/L+mmj8HTeZVdD4ZvNDll8TGCM2OrMDufGuVYpwbek8AA5yecOmHDAeWK0c3zQH+y7ocWrpLszVlxLMC3JeCGTfsF8WEiNDn0gn7InLjmsTxyhi74GPeaFY0Ttjfn7fjSUyoQ/yu2/tz2fXRKBtyJ/FuxUKE5JMflDwX7PXcTrY4BlxOjWgpZO+vJaTJJXUJb6om7I3JkAHM05ScdOCKpgPJa/MdZrlm9q/CA4moWbeR9B4li3I9YjMonDZ4A7vu1cPl6+apcJx7KK1aEjoETYuF1Rz1ntFtOsJMR+FpzGNxiOgEa7u1c7AAcxr7X1AX+EwjvmVkVABj4y9K4Gyqz7+ZDJ3XHIHR4ZGti1AQgnD/WouxD5wLhkeTVArJJfnGZe1L7iZII+IkrJNjFvX4TfGFYcZAZ/+GD4FPYFG209jZwuZP0MQE+EA0A3u4yVvlx/gREkTJgJieRaXbn3tb24qhHr11I5Cca8ivt5aCQ== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8790.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230031)(376002)(346002)(136003)(366004)(396003)(39860400002)(230922051799003)(64100799003)(451199024)(1800799009)(186009)(8676002)(8936002)(41300700001)(31686004)(2906002)(26005)(4326008)(478600001)(66556008)(6916009)(66946007)(66476007)(316002)(5660300002)(6506007)(6486002)(53546011)(66899024)(6512007)(2616005)(83380400001)(86362001)(36756003)(38100700002)(31696002)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?VTZKcUdudHlQL2F6NzB6R0UyTlk3K0RUUVdWcUE0ZlVPQVdGN1BCWjB4MmxK?= =?utf-8?B?YldWalJ0QXV4MGFadDBIa2N5V2J4STBkV1ZFb3JHLzZldFBiZlBuajA0L1FN?= =?utf-8?B?QkhQdGZjU0I4NCtGV2Q1RkpsSWFzcy9rc1VmYjdPK1ZFWnJNQi9BWUFUOXda?= =?utf-8?B?S0lnUmt5VnJuVjZySG5lMDY2cnNUOVZCbnhJTll4NEtRY01iWHV1SE9HdHhk?= =?utf-8?B?V1VPMmdKY0xhVFVBZmRDVEtwTGxBeGNrVGlvTkNuanh5OW05UVZDZTlYV1pW?= =?utf-8?B?ZmFmZ2JYRnVqUjhMamNqclZ1aVppZlFWZDRKRkxLN085bHZkTVpjdmZvdlls?= =?utf-8?B?dXBmcENwSTlwTUVwbjlhZTR6UjBrVmF5K1dQa0MyT1VTTXc3Yk8wWFBmR1dD?= =?utf-8?B?eGZzTGNRc2JJU0ExSjlsL0JQWlkzUG0xZnZoVlhGVDNxWXRhTW83Y1U0QTFi?= =?utf-8?B?bGwyMzJDalFLUkw4MFROVkQxWmF3THIxRGx6THVGcVkzRUZNcVFkTERzM2Fp?= =?utf-8?B?bEU5QkRvWmQrQ1YvVzVxNGlPeDlyK1ROcUdmMC8yYVJTcUNXeW53ZTJvUEFh?= =?utf-8?B?UWIxa1I4cmkxZ0ZnTTgxMlZCRG55N3JIV2ZpY3NzeHlwaWk2aFdxdFIwR1Rx?= =?utf-8?B?UXZoR28xS2lSUkZlOXBKV2N1eUhDVGlId2o0NWFzSDFXa2l5UEpVT1hvTGJk?= =?utf-8?B?WjZJOTBjNG5CVU0yMExlR0F5WWxyUlZ5UHZVQW1LYWYxcmlNK3Z6ZlkvUlp4?= =?utf-8?B?ekJIVk9jdHhueDZuemQrYngxcjZYRXVYZDBrTlJiM1VkUWxnakZMUC9kcFBN?= =?utf-8?B?cCttTm1QeXlhTzN3TWkxMm9QTGt5cm1DVmVIU0lMT3FWZU5JaWtNQUJCTTh6?= =?utf-8?B?MVV0S1dHeUNnWFNjSEFLN0w4blJKamJtQ1dPVW9Wcit0djlLTUVxM3NJQ1Jy?= =?utf-8?B?cHlVVkthS2gzMTN1NG5yUDdVQmJ5ajczWG9selhnSE9PbHJYVGhTeDZPd0d0?= =?utf-8?B?VVpJOVprWWJGRjNSYXFLcmxSdCsrWDFFYVFoU0ZqaUwxbklqU3pxTVNLR3RL?= =?utf-8?B?K3lid2RXZUtTLzNSWGc1NWFDZnROZUYxOEpSQVU2V2F6M1kwK2huNXpHMTUv?= =?utf-8?B?RTdlRkpZK21LNmJRR1pTVDBJZTlsZExBdzhPeU84ZStCM3FwL3ZWRElWaE1m?= =?utf-8?B?M21MTVpLV3Q1ZWs2Qmo4YWF5MFkweVRXRUEwaE5WdVFWNWtuSlMralJMREJN?= =?utf-8?B?YTQwU2o3a0NzSnJ6bUJnSHo0VHhjck4xeExZSitWOXpjVzNFTCtLYzVLUVMw?= =?utf-8?B?RlVHL2Y0Y0hjdzVOZFBHVUx2ZENKREkwa0lYVkwvUDNzTVRGdWJkL2J0MUNJ?= =?utf-8?B?U0ZJeTVEYytjbGtFT1FkSzVnemtVcXREbDhJRFBSQ0RtOVM2UVZsM0NNVTJw?= =?utf-8?B?cXB1SFQyTmdzVHVMZnpuelFTSXpRNk9xM04xQ3ErSUpicHdMMEhKNmk1cVhX?= =?utf-8?B?dXVSSlNESHhtN3g3Q2w2SUlqZW8yZjFCNWFURzlyMk8rZXozc3NFZXUwbU4r?= =?utf-8?B?Y2VXNG8zaVRqKzJxeEFFbzdUR1VndlROVnFkMCs0dUR5cHowY3l5WWRiMnNK?= =?utf-8?B?Mm1ORkVRdFh5aFdYUkZGL0diSTdSeURLN1BxYmk2dkc3S3BuSk5lZzlIT3pK?= =?utf-8?B?cTFySVprYmRndXNpQ3VzRk1udDNzVFU4cDRqKzAvcjJISHVVSXdZTWtqeGdh?= =?utf-8?B?SUNzNWh1aVZmWHMzSDFvMGtCbGdIUkRvdU80N2hWUWdBZFBXeVBSdkxZQzgr?= =?utf-8?B?N2VhYlFPS3czc3ZCc1F4THY0OWxjOHpSbktXd3QzOXpoc0wvQURLdTRTYW5Z?= =?utf-8?B?ZzlXSk9HSHF3L3ZjOWVjWGYva0QwZmFkSmxSWEs3WTc2RVpMWnk0TkxyL2pw?= =?utf-8?B?U0RIMzFJUnJ3QzlWZkVrREZwajdtZDU2KzdnZkxFWGtxcHVBU09OYzQzUlBP?= =?utf-8?B?MExxRnpKREJjL2dOdzF1cHpibm1tcU1RMlVkMG4xTnlyTUMwR0gvRUZ6eHI2?= =?utf-8?B?SW9GdzMyazZwZHZhanVGd0ViUkFOL1JGc3J1azB6TTdTYnVueUJnNjdKN3Nv?= =?utf-8?Q?dS/V1q1vITw9kU93KlKL1M9FY?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: eefe3b38-cb19-442d-7479-08dbc0246bcf X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Sep 2023 13:11:26.4194 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: dnGl3omxsyv+redUjQ05x+ETbMR0k8GUxGNMD99SGMixrDbbeRZMoGXo5fpLFO4nJhdD3oDRbpqgORfKAyi1BA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB9PR04MB8234 X-Spam-Status: No, score=-3027.5 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: On 19.09.2023 17:25, Cui, Lili wrote: > --- a/gas/config/tc-i386.c > +++ b/gas/config/tc-i386.c > @@ -3880,6 +3880,7 @@ is_any_apx_encoding (void) > || i.tm.opcode_space == SPACE_EVEXMAP4 > || i.has_nf > || i.has_zero_upper > + || i.tm.mnem_off == MN_jmpabs > || (i.vex.register_specifier > && i.vex.register_specifier->reg_flags & RegRex2); > } > @@ -3887,7 +3888,8 @@ is_any_apx_encoding (void) > static INLINE bool > is_any_apx_rex2_encoding (void) > { > - return (i.rex2 && i.vex.length == 2) || i.rex2_encoding; > + return (i.rex2 && i.vex.length == 2) || i.rex2_encoding > + || i.tm.mnem_off == MN_jmpabs; > } These are getting both too complex for my taste, when they - iirc - sit on a relatively common (and hence hot) path. > @@ -7703,7 +7705,7 @@ match_template (char mnem_suffix) > if (!quiet_warnings) > { > if (!intel_syntax > - && (i.jumpabsolute != (t->opcode_modifier.jump == JUMP_ABSOLUTE))) > + && (i.jumpabsolute != (t->opcode_modifier.jump == JUMP_ABSOLUTE) && t->mnem_off != MN_jmpabs)) Nit: Too long line. But - does this need changing? JMPABS isn't an indirect jump. > --- /dev/null > +++ b/gas/testsuite/gas/i386/apx-mov-inval.l > @@ -0,0 +1,2 @@ > +.* Assembler messages: > +.*:5: Error: unsupport rex2 pseudo prefix for `mov' What is this new file doing here, entirely in isolation? > @@ -2057,7 +2061,7 @@ static const struct dis386 dis386[] = { > { "lahf", { XX }, 0 }, > /* a0 */ > { "mov%LB", { AL, Ob }, 0 }, > - { "mov%LS", { eAX, Ov }, 0 }, > + { "mov%LS", { { JMPABS_Fixup, eAX_reg }, { JMPABS_Fixup, v_mode } }, 0 }, > { "mov%LB", { Ob, AL }, 0 }, > { "mov%LS", { Ov, eAX }, 0 }, > { "movs{b|}", { Ybr, Xb }, 0 }, > @@ -9690,6 +9694,15 @@ print_insn (bfd_vma pc, disassemble_info *info, int intel_syntax) > goto out; > } > > + if (ins.jmpabs > + && ((ins.prefixes & (PREFIX_OPCODE | PREFIX_ADDR)) != 0x0 > + || (ins.rex2_payload & 0x8) != 0x0)) > + { > + i386_dis_printf (info, dis_style_text, "(bad)"); > + ret = ins.end_codep - priv.the_buffer; > + goto out; > + } Why can't this be dealt with in JMPABS_Fixup()? > --- a/opcodes/i386-opc.tbl > +++ b/opcodes/i386-opc.tbl > @@ -161,7 +161,7 @@ > > // Move instructions. > mov, 0xa0, No64, D|W|CheckOperandSize|No_sSuf|No_qSuf, { Disp16|Disp32|Unspecified|Byte|Word|Dword, Acc|Byte|Word|Dword } > -mov, 0xa0, x64, D|W|CheckOperandSize|No_sSuf, { Disp64|Unspecified|Byte|Word|Dword|Qword, Acc|Byte|Word|Dword|Qword } > +mov, 0xa0, x64, D|W|CheckOperandSize|No_sSuf|No_egpr, { Disp64|Unspecified|Byte|Word|Dword|Qword, Acc|Byte|Word|Dword|Qword } Isn't this (and perhaps more) needed already earlier? And can't that be generalized to treating egpr as invalid for everything that doesn't have Modrm? > movabs, 0xa0, x64, D|W|CheckOperandSize|No_sSuf, { Disp64|Unspecified|Byte|Word|Dword|Qword, Acc|Byte|Word|Dword|Qword } Plus, why would this one not need a similar adjustment? Jan