From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04on2054.outbound.protection.outlook.com [40.107.8.54]) by sourceware.org (Postfix) with ESMTPS id 2645D383F978 for ; Fri, 3 Mar 2023 13:03:21 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 2645D383F978 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=FqVV1u1zYWd0JqkXyl4OVkwF1U5EtXqc5EzwLO8BJAxbYnqmp1FbCpzXZWRR6iDTK9W8WWPzfACdavb427ZCs25aRbUiluymLRp1Hby6RGxk4sZMnK3V7spupZ5vcQOly8/S/xvRqSO+WK3ZxkyK464oznrQmD+QS7icMqkPU5dhRc3Iyuk2jtRvKd/436WhP49HyO/ib6ZA+5GX+8V0k0C8TWBrN3GZ8Z5CAFkSljITGMPysolz1rKGnefedxJQOKxs4b1V0iV4RdX+E7nzCeiMqXcNbAd/Ejg9Rgj4Pu2Awc9pzIuRJ2nMjoMYxiMDjwcOuf4gAhu3bMZpp6XX5Q== 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=I9O33zdQPqraewdUB6jryDX/fe/DJ6GLVJDCEjDKHH8=; b=SKjHEsHZ6o51Xrq4AxSklVNUs0bYTIp0qQgjEFyHUGev/ZnAY8amPIIXS6827or3Q/d/NhMTovmylp35T8nR9NaiCqzxg582NgzbhN7GBXcRwUKLhxr08nl0E7klJFJQ7FKI2CDjSy07rYo+goGgzaiXVECFqt56B6ngJdkPU7gC9Q4CQr+GpD1/G80h8XSCSL+ScY+wO18SPSpYxT/wWxlsftmoqCDonxSgTRsNJVPr6sM9/8nj/5c/r0vlH+FzLFe2l7nlQpJbp2q/a3gBZ+w7oTZT8Xunb5s2zaYjF/IUjxFJsnh+bL6DW9BTpzGfcHDeEqU3rAAs/EfwIEsdyA== 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=I9O33zdQPqraewdUB6jryDX/fe/DJ6GLVJDCEjDKHH8=; b=ybHG1HwsKXgvQhh6GXlP7Pj49KL0VPEqmzRjYac0pziUgox7qed4cUf6Nhx7gANJaT6v/gbji1uW2z44TuANXMBVzAVAAdoF651we/QKjE5xXov08cjKnxFhF8uWzcaOolpoBnj0c1Fz/bf1SpIqjwjZXG5vgWtgqqTqrIp6mYvhwA3sohKrwcSnDh9fLnjxsGK6c9Gs7cQnG8jPmQ+jWOtbaoQ9qJFObaX958NAWNK20CSt1+Pc85BZrxpK9XX6LEEkDhwmrKpbcaHD9ANPVuwUoQiwTTx6g1C25KBYu29h08XGGthgiPAhd7RGMco8XZ08Al2bRNmK2q2omquQHw== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Received: from VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) by PA4PR04MB9222.eurprd04.prod.outlook.com (2603:10a6:102:2a1::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6156.18; Fri, 3 Mar 2023 13:03:19 +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.6156.019; Fri, 3 Mar 2023 13:03:19 +0000 Message-ID: <689eb629-ad65-4611-2a22-ac0dea62590d@suse.com> Date: Fri, 3 Mar 2023 14:03:17 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.8.0 Subject: [PATCH 12/18] x86: decouple broadcast type and bytes fields Content-Language: en-US To: Binutils Cc: "H.J. Lu" , "Jiang, Haochen" References: <764b9e03-18bd-6945-692f-a250522196ca@suse.com> From: Jan Beulich In-Reply-To: <764b9e03-18bd-6945-692f-a250522196ca@suse.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR3P281CA0096.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a1::8) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|PA4PR04MB9222:EE_ X-MS-Office365-Filtering-Correlation-Id: 155dfa52-b832-4259-224f-08db1be7a922 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: tCGdH20rxCPtHay45QrCSY77/4mzJE9fbKX0HQIfo8yhG3VbUjOyEgmhq2V6cB1LIylBsLKTPlpsMonq98g/C7gwlAcH+1uIqu6WmhtusgtC+8kAxYlDxPh1VKJdwCehlyc0G8Ktc+uHoiJIGgIW1FRMoIyyiwBT1lF/YBNuhnpNVlWyl6RGUbPWL93IMvTj3LVoyL5we+4cYFVBzNAwgY6WflLE3wT1Dx4onM8AsL8mnTzRXXNgyz6sEKiVyxxxfmcn8C1gfyrUNKVK5CpGjuVUiGUkwwftZVV/hg3kH5nQXSXEsCi22j02Z4REClwp78gBVvs8f5Z7M0UE8zp0NNuMN+gl2kQ/1lDv8knJrEy5hMVlrKfpYmycchhpDIUHBbBtdnq5Wt8GpdzP5xdozpC84fKPmxdRrNcoC3yOmuNZIWF+59u122NWIhuGjVBOfwFLyBigfRgK9bT/3OZNakbCk9aAAMvBl+eWdnS9M0JUCvTsKBSz13/ZWppg08+ILeYf6sMjiMHOefLfv5ni+dArKOIjN40sEUuY/XQpvtn8B5g7mGCcF4oTLd6gLq7zB7ftaSK1mDl+W/zDh3wPBFFrf3nt/H4Dpm8Dx4Kb4sQpqGQDkAq3WfKVjMXMrHrflsqFT0v5yR6PuUsLkL5MJzTM5RJy5A2cv68V1AH/TmLJea3++oJRY/Lgyiq9aK8nbIKhT3fnQS0dckde72075kJbtNgxMkU5cDL2Me1VSxo= 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)(376002)(136003)(346002)(366004)(396003)(451199018)(6486002)(31686004)(5660300002)(66476007)(4326008)(36756003)(8936002)(41300700001)(66946007)(2906002)(8676002)(66556008)(316002)(38100700002)(6916009)(26005)(6506007)(6512007)(186003)(2616005)(86362001)(478600001)(54906003)(31696002)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?NHZrK2RrRk02WUppMm42UXc5TFU1K0d4ZTM0a29GSllnc0JIcHlIQk05bnpi?= =?utf-8?B?cVdVNVRObjNTT3N5am01ZlRwcUZpNDBPaVY2eXlORHF1TUpoUzk0ekxlS3hv?= =?utf-8?B?ajBoTGp6Zmo5Z2JyN3BaUTVUTFpDTndYdUMyTFlsdVJhTUkzaWNXcGpqUTdQ?= =?utf-8?B?U3BOL2JVSkx0K2UwNFVRQlVKRUw5VW9lWE9nREVicEhyM1pDTENCb0pwZStX?= =?utf-8?B?TlFIMEp0SFM1YTBaUDBRUU5IRGdNazNIODVXKzhzdU5JMmtUM3p6QXFSbHp2?= =?utf-8?B?ZDc1K2xYMTR2b1RaWXorV250R2pBVGhTNTF6VFVhRDYvZSs3ZXlOYythN3k1?= =?utf-8?B?cUhBSm1maTY4L0U1RHNZVDVoeVNzWUcvcGtPVGxiVUJSQ1dWRG15bHBIMDlU?= =?utf-8?B?SFhkaU8zR1ljZGhBU28vR1JjaG5sQ2daRndMcTRCcHFMdDF3V1FsM3htckli?= =?utf-8?B?aytwd2xSRHIyb2dZamVKQlhwUGh0b3hFcE9IWW40T01KN1h2WWZWanRmVStR?= =?utf-8?B?NzhielpPbWpPRldYWHZHdWJxQW9Bc0lRLzVXTmE0aEY0M2kwQ0JrQW9pUzN1?= =?utf-8?B?enViaWZpT0dlTm9OUHFndndNbFAvV1krV2U0QXZpWFZLL0s3ODFncU1zMzBz?= =?utf-8?B?K2pDNTErN0IwbE1CNUNJVlEzUGkrcWRKdGlJVGo5c1d1c2tPY0hWbjg2MVdh?= =?utf-8?B?aWZJVW5FVFpwMngrdjBIQjVkUGR6akw3dnB6cThWTi90Z2l3TG44eHhDeWxw?= =?utf-8?B?Y2lqWE81MXlxSjE2TThNNzJieG9xZDFSRW1XVDdhOUZqeUpZU2FYQi9aZ3U0?= =?utf-8?B?OFVBM3JJbWQ3UDBwNUFlaWNnZFpUMFdKamZKTmllVHlONHQ0NDRrNmpxRWx3?= =?utf-8?B?MWRaazN4aDFXZkJCZmJvb2g4UjB3YUVQb0RuT3VDQUFJNi9QTmRaTUdyMG1F?= =?utf-8?B?dGhxcFdpVVRnQm16TSswY2Z3TXdEUmNzTko5Ly9lTEFhNlQvUXhTenVGUkdt?= =?utf-8?B?NFVhdGxqZHRvWXFUNmJyT1YzL0k0NC9MYytUMFVJbjJzU1hCYW9oeUdsMDBO?= =?utf-8?B?a3pOdTV5aXN2TlBIdUxjZFVTMWdjdUczNG9VZzlPV3FCYXFRSHJBZ0ZpS3ho?= =?utf-8?B?R3hRc2E1ZEtDbGgyVm9LTk9OTHpzU2F6Tjh0NVV4VDZHa0pOMVo4b3dRRlVP?= =?utf-8?B?MnliRVN1ZHMxOHRkaTNkMGk0YWpVM3BLb01rSlhIeDRaUVJQQUtiYmxaNWQ3?= =?utf-8?B?YW1yRys2anc0S1QzbmI0dDg5NUgrS0MzOUhoYlgyTFk2ZEl1ZzZmKzl5VnFZ?= =?utf-8?B?V1ZaeDlva0trWDlidjlCSktGR2NES0o0THZMRHhVQi9nYXNHYndzN1ZQeUdo?= =?utf-8?B?clhvQlpQV0FkVXlDYWdXdjN4WW9mR1NremZTcVVHQTJVOVpaK290elVrcHlU?= =?utf-8?B?RDlCbzRGUzkyNWg0d2pnMm8rb0JWbUd1RmVXUkhZbWFnYWNwSFJTZFJ1cFpS?= =?utf-8?B?TXQ3ZU80WUFyTkxiWGFvaE9HbW5QTGNxMTJ0b1N4N3JkT1oyQklrSlFreFRO?= =?utf-8?B?VHRYamY3aGZZcmUvbk1NM29mbVJka3F1OEdFcWo0QWNZU0E3c0hWaUVmano5?= =?utf-8?B?ZVhSSDhNQ1hySmlodnVFVTc4eC95Mlg5Z25jTSt4WTcwenF0NGJjVktVMmNC?= =?utf-8?B?T21QU0JnMEE3cDlFVzFjWjFmY2Z3Wk1FZ0JPLy91QkFpTWNoT1YzekV0YklT?= =?utf-8?B?Umt2WmpESFBOa05mVEJ5RThCWjBncVJjMkJWWCsvV0FWd3FCejRxd3p0NFF4?= =?utf-8?B?VWpTb04wZSsvSVo1bVhmVjBHWCs3Z0VVVnN6K2FhcFFKb0RjemRJZ1Z0K1JN?= =?utf-8?B?VWVqUGVHT3l5TWhOSG9aanRIY3lOcXhDYWNHMnlmc045ckVmZmlIV2J3VFFh?= =?utf-8?B?V0NlaFVrZVc0dHhWMVNqS0pBU254UGtBSXc2eDhQeEhDbUpBTVFXMlh6YnNm?= =?utf-8?B?R1RETFZjT25iYnJMR1ErYm5pQkE0WjdBcE41TzdQb1lYUUdTSjNFOVBhd092?= =?utf-8?B?NzE2MnFxamhHZHhVYXBPN2xEd3kxaDgzM2M2c0NaaS9NaGMzV28xTGR1WG95?= =?utf-8?Q?nuC8soTUEBC1sEIAKSwcdPxCv?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 155dfa52-b832-4259-224f-08db1be7a922 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 Mar 2023 13:03:19.3601 (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: EOpb62FwAPKG02gq2EmT6gifYtJGOSe3TQbi7BHQhvxDu9r2xtDXO8cvWz1K+f1QkpW2N0eWUl/6DT9taPTs9g== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PA4PR04MB9222 X-Spam-Status: No, score=-3028.3 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 List-Id: Keep both representing exclusively what was parsed from input, to avoid the need for (potentially bogus) calculations when processing .insn. --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -3756,8 +3756,7 @@ get_broadcast_bytes (const insn_template const i386_operand_type *types; if (i.broadcast.type) - return i.broadcast.bytes = ((1 << (t->opcode_modifier.broadcast - 1)) - * i.broadcast.type); + return (1 << (t->opcode_modifier.broadcast - 1)) * i.broadcast.type; gas_assert (intel_syntax); @@ -3943,7 +3942,8 @@ build_evex_prefix (void) i.tm.opcode_modifier.evex = EVEX128; break; } - else if (i.broadcast.bytes && op == i.broadcast.operand) + else if ((i.broadcast.type || i.broadcast.bytes) + && op == i.broadcast.operand) { switch (get_broadcast_bytes (&i.tm, true)) { @@ -3994,7 +3994,7 @@ build_evex_prefix (void) } i.vex.bytes[3] |= vec_length; /* Encode the broadcast bit. */ - if (i.broadcast.bytes) + if (i.broadcast.type || i.broadcast.bytes) i.vex.bytes[3] |= 0x10; } else if (i.rounding.type != saeonly) @@ -4495,6 +4495,7 @@ optimize_encoding (void) && !i.types[0].bitfield.zmmword && !i.types[1].bitfield.zmmword && !i.mask.reg + && !i.broadcast.type && !i.broadcast.bytes && is_evex_encoding (&i.tm) && ((i.tm.base_opcode & ~Opcode_SIMD_IntD) == 0x6f @@ -6594,7 +6595,7 @@ check_VecOperands (const insn_template * if (t->opcode_modifier.disp8memshift && i.disp_encoding <= disp_encoding_8bit) { - if (i.broadcast.bytes) + if (i.broadcast.type || i.broadcast.bytes) i.memshift = t->opcode_modifier.broadcast - 1; else if (t->opcode_modifier.disp8memshift != DISP8_SHIFT_VL) i.memshift = t->opcode_modifier.disp8memshift; @@ -11099,7 +11100,8 @@ s_insn (int dummy ATTRIBUTE_UNUSED) if (operand_type_check (i.types[j], disp)) i.types[j].bitfield.baseindex = 1; - if (i.broadcast.type && j == i.broadcast.operand) + if ((i.broadcast.type || i.broadcast.bytes) + && j == i.broadcast.operand) continue; combined = operand_type_or (combined, i.types[j]); @@ -11168,10 +11170,10 @@ s_insn (int dummy ATTRIBUTE_UNUSED) if (i.vec_encoding == vex_encoding_error || (i.vec_encoding != vex_encoding_evex - ? i.broadcast.type + ? i.broadcast.type || i.broadcast.bytes || i.rounding.type != rc_none || i.mask.reg - : i.broadcast.type + : (i.broadcast.type || i.broadcast.bytes) && i.rounding.type != rc_none)) { as_bad (_("conflicting .insn operands"));