From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-eopbgr80081.outbound.protection.outlook.com [40.107.8.81]) by sourceware.org (Postfix) with ESMTPS id C499B383236A for ; Thu, 24 Nov 2022 08:58:42 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org C499B383236A 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=XlnwQq5b7p9Ie1LXkpz1zDYk1tkD7YLLgnNwIDNarDVzmYfR7DHdx82LUHii4Po5eWK89IUf46s9uOgYRfIqAc4ucdMZRsCuDk37VqLM+6pw37YCpfswyMgbcC3egHnlPhs5idhq1254dvoJlFPl28YPh16NlbGnLv8Wq6DDkqxCWfDy4yqUzErNSwW3Pn+0HbJknnMJI4ak6zgz9bIc7yBSmStHLwj49KyMMFtNJJeldmOOv5tFpprWCWnuwnSrIHuIQ3B6tITllqD9aRcOqP60632Qs24DKWrMn3zp1HEhGAoNwqs6ctoOyzHPpvhyBL6RH0XhoapteE6f6sHsbA== 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=3KFyYmBJucSlijYrZt/nV5VM1HUfiJTB4AhyyR2q32E=; b=ctlRoEtxsMqunB+lOa29DAAOyDow8V/Dgw379o8fFFxmyOIVE6LrfUG7kxqFJl/WnEisF1IPGmn0OcZe2CWRievqBt9KRyUa63GMyocfVSro2XcqJzU5PZFu9sFoxE0YHMsxykyaU8FaepfdxPXl2M9hY9lM1jmPavHcRNh/N77IBpNLfUdkfZ++D6VRG5le+ksoEQSDzql/DO6KFDgBDgGcc9moyW6Dz9lV74OMgfcOk+xIWFdCmgOcSvZb0RSIjEUemSbYtiqP70NoIr9tXicdBAsZqCk6lJJ432/UAzVL9U+JyRqLdPZyg5v8GY0DRVNfA2WIbMAvO5nuYdVxyw== 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=3KFyYmBJucSlijYrZt/nV5VM1HUfiJTB4AhyyR2q32E=; b=QIClRW0exdSZD5XMEQtQu+FYxOwTPTSwv7TIcHXgmaR8vhAV9jY8qbWu6zdUtKG+S/VtWrXu2GlEP5mvDkIj5/36jUd9Obc1gXPR7LS8Y5M0FAiPEKgFSWSlkoY7m5nd8+bpTb+9GMnI+zkMBX0PkPN1l5P7BsVaFpYgW7/4ye3QTrBSSelGs8UqQ/kvvCGGmQ0gfZghkk7Reg/lsc45h8e7GI0RuSi6yInvgI/0CICCgCCidIZXp14wsD+Jq3oY+LB7szys4XOrOlTZvl1qAU3Dl1oMi3n3wz2jpCnwFG+/k/wMh19UZ7lg+xmMKEYTO+O9TcI0Vzjopyp1auGcpQ== 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 AM9PR04MB8242.eurprd04.prod.outlook.com (2603:10a6:20b:3ee::7) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5834.9; Thu, 24 Nov 2022 08:58:39 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::4da2:ea8b:e71e:b8d8]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::4da2:ea8b:e71e:b8d8%4]) with mapi id 15.20.5857.019; Thu, 24 Nov 2022 08:58:37 +0000 Message-ID: <5dd8b2df-62f2-a551-4b35-f3df66d57e04@suse.com> Date: Thu, 24 Nov 2022 09:58:36 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.5.0 Subject: [PATCH 3/3] x86: clean up after removal of support for gcc <= 2.8.1 Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: From: Jan Beulich In-Reply-To: Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR0P281CA0131.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:97::16) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|AM9PR04MB8242:EE_ X-MS-Office365-Filtering-Correlation-Id: 1f980158-3415-41e0-d6c0-08dacdfa12f0 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: TOTqcjHtvAE8+rW++pCrKQ/Ufftol0brg6t/aUu0edMqZ5W+00c7n745taX2z275KmmRN8fP9KCASXwj7fgNi/Hf0iePawaIjrKsUzZ2cGAE7nvYSN3EJUyd4Iag9cJdCXtnuzbDeU7j285FcNsS5ZI1UzttWvNuucs/k4ak3XUeJ6ppLqdEwE3SxsxmVUysKnpcRXtWk1f9ObefA3mMzy3rjogywjnm0ZbB1ckp/JmRU8QvIJ59c/cNs3rkuGUIsGmZOaeuhVRlQgfIU194mzRgx3RLubL8SjVBeVnGRA6BeeJVagsl+yfUfTcAXbx1BSezU56tIBl+RRlOdIhQ0I4M3i8i9mSugW5/4tmD5uqV/BMFvrBTBcyodoumzbwqSMVVBRlG/lxUiv2vcmH6hS4s4VJ+KjheFIdoUpyMPG4BVKzxqYEIMnp2MC/M+KbWCgF1U6hfohN1hZ9lVkuj0ptNrl51sLiSCOMzDXxEf9Foe+28lC30ygWUDknaRP8DjeyaEh7PArJ9o9B2cRG0bFqActBr0OfVKtbGxpy3/2wzU8kLL+lZR0anC7uouXAVV32vrT6ymfiEzd3nt37JUo6HGciZaO01cUYquZp7NtrrwWmFdZcSRSpypTmlbXfrTQrb0gym9xFVLLM+0OmoH/CIDy4Yi+pgbKV1GO4cn8MdZoYFaJ6AZQNIuFJ9pM1mr8iH2G1uvjlEDZhhvhGn0iILzn7O3GdKUX2aCkiiRVU= 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:(13230022)(39860400002)(346002)(136003)(366004)(376002)(396003)(451199015)(31686004)(66899015)(186003)(2906002)(83380400001)(2616005)(6506007)(478600001)(66476007)(86362001)(31696002)(36756003)(4326008)(26005)(8676002)(66946007)(6512007)(66556008)(5660300002)(8936002)(41300700001)(6486002)(6916009)(316002)(38100700002)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dXowMW1qRGR4QzVHWFhVM2JDdTZYZ0xjUHVLQy9yTDM0M1FxQkNvdjUzaVhv?= =?utf-8?B?NlNGWnJDYXl1THhXbW5ISndvd3c3M3QyV25jdzFVT2xnclMvenZGYWlnRHRl?= =?utf-8?B?OXNiSi8vRmlqVXhhRFhaKzJzYjFqb3c2c0JENGgvSElodHB5bkdKY2FHTVpW?= =?utf-8?B?RnRpMHVVU2pFZWx5aE40MDVPNzdUTHcydWRwK2NpVVJIczY2YkdVTEpGZ3RT?= =?utf-8?B?TGRFMG5zcmhiTVpmQWdWUVVaRnduK2RBUnpYRmY1M1puQ1dEb1kvYlhvMlJi?= =?utf-8?B?UXVKYjZBYUlDUDFxUjBJQzgwbTlMVXdNNUEyN1pzeGZRRlpRYkw2b1FYVUl2?= =?utf-8?B?NjJaVWxISDUvL3Y5NituM1FUTXhXaEpNNXNteFlNUXp3R3l5SXFFWlh0SFJP?= =?utf-8?B?YXN1UU5mMzdUTktGaDlkUnl3a2xpdTgvWWh0b0svR2NCdFBwSW5QekhJRndI?= =?utf-8?B?ZFcyQ3NDelMwR3RyT3lLTE04SVgxbkZGZ3B6Mkw3UTlSVWtLckg5WUI0a3A0?= =?utf-8?B?ek9QT2JKeVBKaWtpZ29vNTU0UnAwanZqVmhwK3J1ZEJNenhHcFVPRTUydUp2?= =?utf-8?B?aW5oc3RuUGhDTXlrRXBDYTBMYUlHVTNvSWNoUWRSNU5LV2paMGVsQmUxV3FW?= =?utf-8?B?di9udW1WaW8vN0RUSGcyWnAwcktrbFF4Y3MzRU5yZEFmZlZMaGV1VVhJeHlN?= =?utf-8?B?MEQ3bjdxcTBOcjUyTTNkRDR0cmxveXZaRTlKd0U2RUpXOWV1MXVRemU4aUd3?= =?utf-8?B?Y01CSjRjbmJtT2I0OS9MUXQrUHRRL3ZmMVNNZ1NWVXBlYWIzVlZSSWhXcGtF?= =?utf-8?B?ZUZHbnZFSWdId0FxNERWR3IvTDBFbHM3NE1JbitybWdoSVY5YlV5T1RaYXN3?= =?utf-8?B?TEdGdE9RZjV0K3hYVlFXN0FFVjRwVUFVOUpXZ21zaGJxMVZpc01kdnlnLzZl?= =?utf-8?B?andYN3MvZm40bGU2VEJ1bHdDT1JVZEpmcUY0cHU1Zy9QRTJ1U3hiZGsxSmZn?= =?utf-8?B?em9oTUxwNmdJekZUYUhMZEZGZDNZR0tmYnlQSVlrQmVZbmhBL1BTT3FGVXRV?= =?utf-8?B?Nkt6NEtPYTRnY25BSHh1b3B1dFU3Z1pJb3AwWHFuT2JMaTF5dDdFOHJHL0JN?= =?utf-8?B?L09ySGtySXhpSTRYT3NYZWZlU3duejQyZXdsUmNtOW83MFhyOE9iZDJIdjRa?= =?utf-8?B?NTJIdzJqVXU1WTB0OXVzbkQ4SllnbWFVS1JCSUFPSGkzSFFrUTMxejhpN09p?= =?utf-8?B?M2lvWkpJZnVMc3dldk1BV3h0b3cza2ZFMGVkNW5LeWM0SUduZFhML1dKNzY4?= =?utf-8?B?VGZ2Y1pGek40ZUdSMVpyMzR4UUlIeUxHUlRWZWpRMDZwNkEwd3c4REFzTjJ5?= =?utf-8?B?ZEdYYUI5d2lyakVubENXNngycENCeVMzczVWdzk5cys2NFlRNm9qOHFOWGRM?= =?utf-8?B?d2FkdXFodzZVZ1A2OFRQN0lHUzBWSk81bzY1RFJ2a1NVYTRKTC9vODZ6NGZ0?= =?utf-8?B?eTZQWTlocWN4MVVQcHpTRHl3QlBHUTJZNzhYTXgyQzhnWW1kM1REUVNaMGJ2?= =?utf-8?B?SnRSUkdEU0xtVkU3UkxDNER5YlRJVHpFZkVyWEtyRGRBTVhWNmFFWFRQOUFk?= =?utf-8?B?alc3RjQySzRiVVRaZldhNmx1bVdqZmNIZDd6d2JlUkF0ajR2WFAzc05rOEZR?= =?utf-8?B?a012WDZQQm5VejJsSkpNYjk1eTIxSWt6K05mL3VtVWt2T2N1UHp5bkRETmVN?= =?utf-8?B?SUsvbVhqem1uNFB3ME9KSm1KaE5vUVJsVXo4UFNnZHc4SGIzYWRhUXBadmtB?= =?utf-8?B?L09ubWdFaisxeHY3K3ZYMDBhdFFDYjZhV0FhTFplMmo4bnpXREtQc29sM3hX?= =?utf-8?B?ZFdLS2k0NUpGbmR1cC9ISWQ3cW5vMkZHRGlxWGZReW1YZFNUamg5WE9hZkpa?= =?utf-8?B?Sy9qZmJTN1pBRmxvak9HbUZ5NUxndnlzTTZKcUh2VGgxOGpRbmRaZjR1bUtr?= =?utf-8?B?UWRsVTBDS0kvRDJnRVlSTTFoM2pnQXprQzJ5NTlPZjRuMGZPTjlCMThSZHQw?= =?utf-8?B?ZFpuY21YbW1YalNaeTRBd0hqR3NDT3paQlJPVmw4Q0dsV2VKOXZwSWpzanNG?= =?utf-8?Q?aGxFT1xyjgZSkFRbQ5yicAqRl?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1f980158-3415-41e0-d6c0-08dacdfa12f0 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 24 Nov 2022 08:58:37.0419 (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: PT/NX9Ryd4qW1p09/4m6N2z6QkVByO0IMP4XYg8Zm8ezq0kF52OYnaHkDbvUsMYyC5sO2Z6XHQnqtDusEqlFvA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB8242 X-Spam-Status: No, score=-3028.9 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,KAM_NUMSUBJECT,RCVD_IN_DNSWL_NONE,RCVD_IN_MSPIKE_H2,SPF_HELO_PASS,SPF_PASS,TXREP autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: At the very least a comment in process_operands() is stale. Beyond that there are effectively two options: 1) It is possible that FADDP and FMULP were mistakenly not marked as being in need of dealing with the compiler anomaly, and hence the respective templates weren't removed at the time when they should have been. 2) It is also possible that there are indeed uses known beyond compiler generated output for these two commutative opcodes, and hence the templates need to stay. To be on the safe side assume 2: Update the comment and fold the templates into their "normal" ones (utilizing D), adjusting consuming code accordingly. For FMULP also add a comment paralleling a similar one FADDP has. --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -6806,7 +6806,8 @@ match_template (char mnem_suffix) found_reverse_match = 0; else if (operand_types[0].bitfield.tbyte) { - found_reverse_match = Opcode_FloatD; + if (t->opcode_modifier.operandconstraint != UGH) + found_reverse_match = Opcode_FloatD; /* FSUB{,R} and FDIV{,R} may need a 2nd bit flipped. */ if ((t->base_opcode & 0x20) && (intel_syntax || intel_mnemonic)) @@ -7997,29 +7998,31 @@ process_operands (void) { /* The register or float register operand is in operand 0 or 1. */ - unsigned int op = i.tm.operand_types[0].bitfield.class != Reg; + const reg_entry *r = i.op[0].regs; + if (i.imm_operands + || (r->reg_type.bitfield.instance == Accum && i.op[1].regs)) + r = i.op[1].regs; /* Register goes in low 3 bits of opcode. */ - i.tm.base_opcode |= i.op[op].regs->reg_num; - if ((i.op[op].regs->reg_flags & RegRex) != 0) + i.tm.base_opcode |= r->reg_num; + if ((r->reg_flags & RegRex) != 0) i.rex |= REX_B; if (!quiet_warnings && i.tm.opcode_modifier.operandconstraint == UGH) { - /* Warn about some common errors, but press on regardless. - The first case can be generated by gcc (<= 2.8.1). */ - if (i.operands == 2) - { - /* Reversed arguments on faddp, fsubp, etc. */ - as_warn (_("translating to `%s %s%s,%s%s'"), i.tm.name, - register_prefix, i.op[!intel_syntax].regs->reg_name, - register_prefix, i.op[intel_syntax].regs->reg_name); - } - else + /* Warn about some common errors, but press on regardless. */ + if (i.operands != 2) { /* Extraneous `l' suffix on fp insn. */ as_warn (_("translating to `%s %s%s'"), i.tm.name, register_prefix, i.op[0].regs->reg_name); } + else if (i.op[0].regs->reg_type.bitfield.instance != Accum) + { + /* Reversed arguments on faddp or fmulp. */ + as_warn (_("translating to `%s %s%s,%s%s'"), i.tm.name, + register_prefix, i.op[!intel_syntax].regs->reg_name, + register_prefix, i.op[intel_syntax].regs->reg_name); + } } } --- a/opcodes/i386-opc.tbl +++ b/opcodes/i386-opc.tbl @@ -686,11 +686,10 @@ fadd, 0xdec1, None, CpuFP, NoSuf|Ugh|ATT fadd, 0xd8, 0, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Dword|Qword|Unspecified|BaseIndex } fiadd, 0xde, 0, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Word|Dword|Unspecified|BaseIndex } -faddp, 0xdec0, None, CpuFP, NoSuf, { FloatAcc, FloatReg } +faddp, 0xdec0, None, CpuFP, D|NoSuf|Ugh, { FloatAcc, FloatReg } faddp, 0xdec0, None, CpuFP, NoSuf, { FloatReg } // alias for faddp %st, %st(1) faddp, 0xdec1, None, CpuFP, NoSuf, {} -faddp, 0xdec0, None, CpuFP, NoSuf|Ugh, { FloatReg, FloatAcc } // subtract fsub, 0xd8e0, None, CpuFP, NoSuf, { FloatReg } @@ -732,10 +731,10 @@ fmul, 0xdec9, None, CpuFP, NoSuf|Ugh|ATT fmul, 0xd8, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Dword|Qword|Unspecified|BaseIndex } fimul, 0xde, 1, CpuFP, Modrm|FloatMF|No_bSuf|No_wSuf|No_qSuf|No_ldSuf, { Word|Dword|Unspecified|BaseIndex } -fmulp, 0xdec8, None, CpuFP, NoSuf, { FloatAcc, FloatReg } +fmulp, 0xdec8, None, CpuFP, D|NoSuf|Ugh, { FloatAcc, FloatReg } fmulp, 0xdec8, None, CpuFP, NoSuf, { FloatReg } +// alias for fmulp %st, %st(1) fmulp, 0xdec9, None, CpuFP, NoSuf, {} -fmulp, 0xdec8, None, CpuFP, NoSuf|Ugh, { FloatReg, FloatAcc } // divide fdiv, 0xd8f0, None, CpuFP, NoSuf, { FloatReg }