From patchwork Fri Feb 24 13:09:14 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 61307 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a5d:5915:0:0:0:0:0 with SMTP id v21csp896048wrd; Fri, 24 Feb 2023 05:09:32 -0800 (PST) X-Google-Smtp-Source: AK7set8tjClsBVXXDIxPC/PieXeUbTKS+mRtEr295iwcuC4L817auLRFnLLnwYxiZPeYjzIe2OKA X-Received: by 2002:aa7:ccd2:0:b0:4ac:ce82:9825 with SMTP id y18-20020aa7ccd2000000b004acce829825mr15819285edt.16.1677244172025; Fri, 24 Feb 2023 05:09:32 -0800 (PST) Received: from sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id u28-20020a170906109c00b008b2c21f4affsi28387795eju.962.2023.02.24.05.09.31 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 24 Feb 2023 05:09:32 -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=@sourceware.org header.s=default header.b="Y/ldF8p2"; arc=fail (signature failed); 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=NONE sp=NONE dis=NONE) header.from=sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 2DA113857026 for ; Fri, 24 Feb 2023 13:09:30 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 2DA113857026 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1677244170; bh=VdnxJ1JUG7k8nGJb3qzES7+r39sQK7R2cvj745H5zgg=; h=Date:Subject:To:Cc:References:In-Reply-To:List-Id: List-Unsubscribe:List-Archive:List-Post:List-Help:List-Subscribe: From:Reply-To:From; b=Y/ldF8p2V8GYSrpmjigJfsSuQhpntStKuVEXQQkz4o7jJv0TUn4VyFVbVzf3bQE0R 2cpSA34/S3BIST1Igx/4rB9sJ6gBBxg7p3u7x3vpHLfs5roAUMsw18Z5JHv9THhDTI NlqwbVt5MOMzRF/MGDkXMziI1XL+U+Wkev4jx2tg= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on2051.outbound.protection.outlook.com [40.107.14.51]) by sourceware.org (Postfix) with ESMTPS id 3E32F385482E for ; Fri, 24 Feb 2023 13:09:22 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3E32F385482E ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=fEammj6wZCSq+qa07wz3XPinow440VBvg7ojBRdHydEfX7hGBwO0Rc9JCPo6vv9hfPxu907zdb1ny/RzTlqpN0CG099F0Tq0sRV5OSHor2OS/oauPXdwydxrahtEo/6L0fHolqQTJCqLrmNGxFA8JRjRN0zZHNTc2DGlbWesEidUe6YW9MjGwgMe/rdSlQtnmxH064257f+bLZz7aMFTCGmvj+4jevzNbysz6Wqqr+cNPehMZI+qc3khZ75hqqxcmbhwzsym4+PVu3H9l7qWt1s2ov+ctB/MUY0HtgekcZsTpHje8o5aU9L6kbF3hA2l+K7cDErYbm8xI72iml/JKA== 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=VdnxJ1JUG7k8nGJb3qzES7+r39sQK7R2cvj745H5zgg=; b=Wev6y6qRcD3VXSVEPGZReCCy01B3QkG5bCddcHMbM66/hQE4ujNMmnejZHCKOFHaDtNXkbyI/VcuDZF4BzsCphdT9dX/yl523ldhQgx1Wj8yj5YwKgpYXHqk5VLZueBZ4SkX3tH3xo+3NDtVBGSOMgthgfWTO7A05pogTU12YwaCPgNztVcNXCgjIMPDzZtvoN3lZyS8R6VJKpNAiECo7/HyyYdtT+Q37zxT5J3IjesjI9N6bzkkt7jSoDztuA0RUd4NERx8fTxx+VWU5/9kzcA3njDYKwqEoSAOBUeEkULrk2estQOabO0zr63uhkVsU9rkj0uaxZnN4AHhCnFr8A== 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 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by AM9PR04MB8098.eurprd04.prod.outlook.com (2603:10a6:20b:3ef::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6134.24; Fri, 24 Feb 2023 13:09:16 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::154e:166d:ec25:531b]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::154e:166d:ec25:531b%7]) with mapi id 15.20.6134.024; Fri, 24 Feb 2023 13:09:16 +0000 Message-ID: Date: Fri, 24 Feb 2023 14:09:14 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: [PATCH 2/2] x86: use swap_2_operands() in build_vex_prefix() Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: In-Reply-To: X-ClientProxiedBy: FR2P281CA0161.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:99::20) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|AM9PR04MB8098:EE_ X-MS-Office365-Filtering-Correlation-Id: 1eb781e0-1970-4983-66ce-08db166854fa X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: i/mNGNKYtqIFFOeM/T7acyHjoLMDftKLZVT/33dmEDk2IzBRZ/3OZdOGulcb1FfoIed68aX4DpgYJ3hs/FUeu0jJoLTgY9sLLIMGaCbFmq+CN3HEr0o/JP9t57LI1jycw7XILq2QgRWQKvY/uhO7R6cOWCfjyYvtXOo25eWH2Ed8Ab+xUfh1Y2Lml0FuCMGTOsxVen7zeAjCI7LkiBkvYqK6nNm8JpYu3Fc8kNz7VQ0wl6IG0SPbzABLfrgpdKfnSBX1xRoT39rEOjsmyz6kA1fc6k9S1BtPGiNsCq2qxVrvNePKF5rh8k5v4DA2UNe6pYx720KVD4dXMxLA0/3ea0lZBcuBbS/BCZqgw7X0Tgn1dQgAk7N/8l/AcYKyMuebsDeQpW/bmNxWQfznu026qaLvTq15C5BZKCsr50lHUXHy4U2ntVOnZZtyvnim5J6z+fZHHg8VC4V+Nw7kxqyPl0J9Zo58dtuEz5IS0GVUOq/4TkDLBGdKCP/Z31z+4UOIuIFzDN4uG1PAZXJGxaSlJNAcO+AHn8NKl+gL0RMwhtg9KH0yX7HYdZ3kHHcwqB00XEl5/g/FPxBScM+GHZLRA2CMqpNE/wR7XK85mSXqO1decRmqltk8TZRlDhHiacJDgVYovqCk+D5wezh7wxAyTn+NBUcJQXW1iL3HsfjIlvssEGFH2Q6cDcj2Z1cjS180rfXhPvKPt26hq18HPA+huyGYB7tg3WowwQUflnhRTEg= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:VE1PR04MB6560.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230025)(39860400002)(366004)(396003)(136003)(376002)(346002)(451199018)(86362001)(31696002)(2906002)(38100700002)(31686004)(6486002)(2616005)(478600001)(26005)(36756003)(186003)(66556008)(8676002)(66476007)(83380400001)(316002)(66946007)(6512007)(41300700001)(4326008)(6506007)(8936002)(6916009)(5660300002)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?79SUQnDxTLA9piojrPxw7N6urFrR?= =?utf-8?q?BdHGK4WjFuyulTmexCi/stAYGDkxPTXZGsrw9+mgt/8dlogM0ahd0Z1/AIQciJliv?= =?utf-8?q?BnpUr/RYZdZB1PLskPoSguwGMQRCUn3GpiFWmvZ9cHhywD6S2I1zdyR+QXjq84siE?= =?utf-8?q?xPtQXUH0nsfddUo56RvH0j7P+sUZ650+LcLhc1gW/eyfQ7/BZhS71nKNUrD3dnsY2?= =?utf-8?q?Y+4v+QjjAraQNK7NT+GBdOAYkVc2pEqSyASHQHF+bzOohF0E8H9Aget1qr+JSGQm1?= =?utf-8?q?Xw9g4SRIKn/Oor08xeo3U9wpMdOLSxeRCZqukxdKaifRQ1xIL17rLy4+6K4CSgssb?= =?utf-8?q?wB0U/K2d9caBEQ5th6VMxz0HzRDhOQCbOmbaT02vW9b9ahLcaIQi9D9iZ2WBMzzAG?= =?utf-8?q?9RELJA32BjKG06FW3zlYc0GnnaTh9AEIjaXpw3nEfiFQtT1Euu3B3DBt17CF00n0p?= =?utf-8?q?F5M+t3y9O6R1wasYTaAt15auz2t/z1fNxW537AXFsZkVeU0j2HZOm3c+LvPFk7vR1?= =?utf-8?q?ttIQXfZHY9m61JUGZ7cNrRBBE60IBx8qNaeQhHYnEhmEJIy52jovrfA6+zLMRPPUX?= =?utf-8?q?aBinoMCK/F6V27Hvm4qwqrVtucisHueF3UNviTH4ZeCEua1dQpTa6ntW9x1r8kpJD?= =?utf-8?q?m/k24q3J5yb1E4+8cTMi2FhYwT4e/KjBAEzGWBoUdzRL9YtmJTYiKxwncr0xyOwWu?= =?utf-8?q?XhZK582LNfJ3uZk6kirL9rDVqyb/VLK6/xdBocdQL15UTHbBr1Xljp4DaSA35JsGE?= =?utf-8?q?JUXXBO5EAEWv5P0Z3hgVZeWLCVecffQnf5pL376FEVBE9FKJX3VMdFwNRi/8pwazi?= =?utf-8?q?qWDnpZn9r3qUa6P+iAD+gMhYlYzkeUzErAUh9NQPhOjWntCP0pl68SfXtg81cOdtK?= =?utf-8?q?a9uA+8eTQDVtjEKm3YCjQzP7h2SQ/WLLjR3PMzRB8z9W0cao2eDTyLJvQiqg6Tca8?= =?utf-8?q?JL+rAwfQ48nyFtzBsnaFu42Hy2jZne/tVl0uhU3keXlTOTJsn55Pvth1iiLt5TxaM?= =?utf-8?q?+HTysiCCvUb3etM+DAbXN6mAU1kA7gjHiNWprobO2WeGOppXis5jN1vtmJe2cF9Me?= =?utf-8?q?AFgXt2JX9Dl0IXSX2eVydMTFhx5Qp+ybYO16O4btG0X2s+s2pDVPvfTRcatJZ26wG?= =?utf-8?q?4nKZjrC3FPrcOSyY2uc1NhLnFnZ7F2fj2c1dk0H83rT4+6vlTsN0gsqqTRtUuq9tU?= =?utf-8?q?r4y/AQqHfOuKFIL/U6rDld5uMtm218BM5t51XKge714+Qp0PtePbbJVbX4nHX3wx2?= =?utf-8?q?JZpBgzZ2hc7FTh4VUKflwU1vrZHRC27r1yCdAggZ5X58M4wP+7skhxaQln1CUpO5I?= =?utf-8?q?NAslcyeIWgvkNGbnjc27NgeMHG8tV/cQX2YbSa4DKIJ09b1/Q8V3rUnfljWB2sUaW?= =?utf-8?q?ehgHxpSXGhrpxy5TwK0ms9QwsXunZO/KYsYoMDKAjezlTY+qZPhiLDiN6vSfa6yZP?= =?utf-8?q?wa5udedNRLuquqGNvRIsrVs0bcYAreO/FY1GhrvQtn8H5z20koLqJ4sasc2WmfafU?= =?utf-8?q?HQemOK+dlUMz?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1eb781e0-1970-4983-66ce-08db166854fa X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Feb 2023 13:09:16.2569 (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: zEe3y6TUB4ATzpFPtP/I4hwkBSEDebB13pFGv28dngc1/Os4ph+s1ZVHYWvVbUFhN9/Nj8uJsyU3IwFNVkv5dg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8098 X-Spam-Status: No, score=-3028.4 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, 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 X-BeenThere: binutils@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-Patchwork-Original-From: Jan Beulich via Binutils From: Jan Beulich Reply-To: Jan Beulich Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org Sender: "Binutils" X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1758717985094656227?= X-GMAIL-MSGID: =?utf-8?q?1758717985094656227?= Open-coding part of what may eventually be needed is somewhat risky. Let's use the function we have, taking care of all pieces of data which may need swapping, no matter that - right now i.flags[] and i.reloc[] aren't relevant here (yet), - EVEX masking and embedded broadcast aren't applicable. --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -3593,16 +3593,9 @@ build_vex_prefix (const insn_template *t && (i.tm.opcode_modifier.load || i.tm.opcode_modifier.d) && i.rex == REX_B) { - unsigned int xchg = i.operands - 1; - union i386_op temp_op; - i386_operand_type temp_type; - - temp_type = i.types[xchg]; - i.types[xchg] = i.types[0]; - i.types[0] = temp_type; - temp_op = i.op[xchg]; - i.op[xchg] = i.op[0]; - i.op[0] = temp_op; + unsigned int xchg; + + swap_2_operands (0, i.operands - 1); gas_assert (i.rm.mode == 3); @@ -3632,8 +3625,6 @@ build_vex_prefix (const insn_template *t && !(i.vex.register_specifier->reg_flags & RegRex)) { unsigned int xchg = i.operands - i.reg_operands; - union i386_op temp_op; - i386_operand_type temp_type; gas_assert (i.tm.opcode_space == SPACE_0F); gas_assert (!i.tm.opcode_modifier.sae); @@ -3641,12 +3632,7 @@ build_vex_prefix (const insn_template *t &i.types[i.operands - 3])); gas_assert (i.rm.mode == 3); - temp_type = i.types[xchg]; - i.types[xchg] = i.types[xchg + 1]; - i.types[xchg + 1] = temp_type; - temp_op = i.op[xchg]; - i.op[xchg] = i.op[xchg + 1]; - i.op[xchg + 1] = temp_op; + swap_2_operands (xchg, xchg + 1); i.rex = 0; xchg = i.rm.regmem | 8;