From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-VE1-obe.outbound.protection.outlook.com (mail-ve1eur01on2070.outbound.protection.outlook.com [40.107.14.70]) by sourceware.org (Postfix) with ESMTPS id 89C233858D32 for ; Fri, 13 Jan 2023 11:05:47 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 89C233858D32 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=Yk5X1N6FH4Z43XsyZ8bMsbHb+YTBkD71QXFZCUyzpz58V8A9Qy5Wu7NofhSU5FDrGa4DZFt4GDpAxFGV5ZFGG3+LtW/v3sOoVippzTLr+asy/gGIK+mBrKj30mZNHocaLjuI4tOOxLeu7F+WkCAR4/+3UH+a61Qoo6H7RyTIsCVccBNGICFBs/ObjRre8erz5IIeUBP+ADSzexbibi/5PqxI3AnFVPUnXHLTsw+MT8OQTUMnPMhgyL5eZBFm9gf1QYUbcXWJUCVoJsquDmxlO890LQ62FxmE8KCuckWhDxQShEyE1fiOQQpvU6X0N0n1Y0N3r6I+lkcvZA5PdmEDYg== 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=MaciVek9AxBEa/jCZeqdJQHfivaqlnvgAzFEwfuz5Iw=; b=F+p+Oyjebqw1rZhp2h7ldVHrbS6WaR0zHIDwijPHZ8XXYUwVOMWDJTEHJ+qwR7Vcw31USfYq7o5HXuSfB/r3GXZM68h2WXfdmeqeQxLxFqSYD19JwdvMmPyg9hsyZAfDefgCqt/tVa4btNnhFrHOMIBvTcg0h4t8Hp3qOL0OBTKvzHamgyJtSc0wpxFjJ2iHugfttbcrWkk0WkwtT9oTlbP/B2qV+cBh0MptH80qGokz9K9iIAjZYA9rs3FqQA5krF6JR3Z6ILv8dt9XNet6z1uYryt2VcFXUdeaSjt7/QKsh+DJYieY5m/CS+69ebS9h5AaZs+ARpNlBNqm2cXP1w== 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=MaciVek9AxBEa/jCZeqdJQHfivaqlnvgAzFEwfuz5Iw=; b=Jli7NlyDqz3ehUxe5RkKpEwfICmqzhlOr7l6aIQWfqyKcPBqlNGpsEsGCgzDfX7vfErlFXNskbPAQRO4EqbwoLM4Al3JmiWW7mk/0CBS5VN0kGpjgVtZf0wRaGF7eHa4qUJMigknmFZ2p/Df6lQJlzQ1uhr4cMcphtxSj0mhkjoEBhAsiRBdXNn+q0/wL3qWDMooZXwGaoZTixutRDKnZ/0oFrtTUUjDsm8u8rByj/rvgbHF5sO8TyakTFtcbGdL5+fTEVoeyr447dkt1A9rJWnjyNKFgktfsgY+jeGOm4HpO8vP96Y9YtqltbMbaUxqJHNooLn0BtY3gtIUzoOx2A== 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 AS8PR04MB8133.eurprd04.prod.outlook.com (2603:10a6:20b:3b1::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5986.18; Fri, 13 Jan 2023 11:05:45 +0000 Received: from VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2991:58a4:e308:4389]) by VE1PR04MB6560.eurprd04.prod.outlook.com ([fe80::2991:58a4:e308:4389%7]) with mapi id 15.20.6002.012; Fri, 13 Jan 2023 11:05:44 +0000 Message-ID: <55dd0365-1b8c-45d0-cb85-fc8ebdc2ac21@suse.com> Date: Fri, 13 Jan 2023 12:05:43 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.6.1 Subject: [PATCH 1/8] x86: abstract out obtaining of a template's mnemonic 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: FR3P281CA0175.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a0::12) To VE1PR04MB6560.eurprd04.prod.outlook.com (2603:10a6:803:122::25) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: VE1PR04MB6560:EE_|AS8PR04MB8133:EE_ X-MS-Office365-Filtering-Correlation-Id: 02060df8-e42a-4dbd-af9b-08daf5561e12 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: EQElIzUuqji5icHjOqfTQaVRDSqI5rHky14VbtK9t2vXEGp8FEkbjF/und+iskJUOntkymr89EN4bC3frv6Z5pPRZbwY/6c/l2jUhAduQKNLynF9BXRAQCfjF1opbbUf1HE0eeoJNRoh12mqyg+kHeExD4RgUBi53cL/QyQT/TDpYqpmRfim4MZ2QI6Ezo7kNOwWIM/N9GNcWltBErZQD95Hkl+6nxSwOHXEY+m7gm7F0Aj7RvbTdAdpJulEr/575aa5rNYruaNOau2LpDwsqn/g5NESGTmqZJFRSy7QDsnUOpa6scIwzkkRJTk81riMsUC6iL2qiw00C6HPrSOBla5VV+MvRVqsdYtYz+1unkW7s/tcFZH5bbNI+mfs4vi4GHfcze9vBPzwkb8zkJXMdvBijyHaxeWEIcMpqUQQqYkG1lWz+JCg4ehSP8jIHMhRZ3mCBbIutTXn9PBGox57nztzhn4xcmdYXkKLGTedZlPr5u/EtvlZWwVJYER6wb95/oihj+wIyJ1aQAlSNzVnmTQXUxYPUqYKs7VAHnwgXVpqRCKVmFHaceMEN63gYREYHLIBcMoXqf33uXWoW/DqUsuu5Lz93mHG2QkDjJ6SA8r/5/LItxHPpqfzSnx664LmFwv35b6vjT1jphDE2C6X6JHGLZi9l0l6RTherHsLwVcg+LkUB5iX+B/UHQ+Pcv9UX6Kou4Vo4LQjbwivCw4N6H9YyJqWYTxEvbBsy6GCyB4= 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)(376002)(39860400002)(136003)(366004)(346002)(396003)(451199015)(4326008)(41300700001)(6916009)(8936002)(5660300002)(30864003)(2906002)(31686004)(8676002)(66476007)(66556008)(66946007)(478600001)(6486002)(26005)(186003)(6506007)(6512007)(2616005)(83380400001)(31696002)(38100700002)(36756003)(86362001)(316002)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?QUxORFBIR1N6ZlBoeWw5VGNtVTd5OHBXRDEzbkZFMi9KbnQ1UEdYc0V2Z1pr?= =?utf-8?B?T2ZpeVNUWHRGb0FjVitBZDFlUEh4VTZ1OVpxeWhHR0lHd1Y5TmVzakRFZEpv?= =?utf-8?B?VGkxN1gyN3R6cG5FVndocWU5MFpUeEE5UWJ4bnYxNXM0S0xRYTExcmdDZ2sw?= =?utf-8?B?VVhPUzdIaWtwZjlSY25VT1o4U1FEdi9tMGUvMjBKSmQxU0dkb2YzdkdoQ0NY?= =?utf-8?B?cWFBcE5LZytoYWttQmtYdjJrVFNBZ2V2T3h3d2F2d1Z1QTBMQUdqdlBnMGFp?= =?utf-8?B?OGR1VDZLUU0xMHgvdk9UVXB2cEkzcFdQOVQ0UkRVRjQwckNwbG5aY1BLWDlS?= =?utf-8?B?eEZycUhVN1F0TGFVdENQUXUzOG1HQTVMcGUzL3BKYkpKVlhoMG8rWXhtUm5w?= =?utf-8?B?N1IwQ0t0Q0dwM2VnRXR6QkJDaHVWckhtTmNYVTkrem9GR1NjSTFzZG92TjMz?= =?utf-8?B?eE9ORkJ6N0w0L2YrazNLZW5xcE1LT0pxcm5LVWlpKzdNams4R0UxOFRXbEpr?= =?utf-8?B?RmV0QkpUb3NldGlOQTAwNFBjWURibUg0YklVZk5FVnVxajB0YmsxKzNnNDNa?= =?utf-8?B?SkJtWXlJTTh5Sm51QjVsRmUwUVU4KzlPdHhaRGZYNGVXNGtFOWJOcTgzMmoy?= =?utf-8?B?YmdXQUFXTlBPN0ZqSDBBdkhsYzNJbi9yTElaS1I0RWs3RFRWanBKK25ua0tS?= =?utf-8?B?c2lHVy9EQVVLaHFNUWNnVlV4eFBqMlN0VEVlLy9JVVlFZE5MKzR2dnRBeE5L?= =?utf-8?B?YytrNjdod3NwMnUvNWpNL25xRWMzUHpocDBtbGd3T0EwcFhKeGlVQkIwVHBJ?= =?utf-8?B?c0lqV0lxOGZ0RnZEK3c3R3Ixc3U2YmR6RHJYaW9xUGRGMTQ0T1loODY2c2Mr?= =?utf-8?B?LytOMVRQN3FTSVd3UUxHZVBiU2FRZ3NYeWhVZGw5c05GMTNKQ1YzTGR5SndB?= =?utf-8?B?dXFiS25scmJaWXN2ZTQvME5hdlljQjRwcklDUHpPZWhwa1ljMWNDYlp2L0hI?= =?utf-8?B?aHA1RzVPd3NSMGNxVk1GeXhiWnhvR1lOQ3JjcUQ0dW52V3QrUEVpekF2VkRB?= =?utf-8?B?TTZxR1hPb2hIaWcvQy8yc1pwL0k4VWNqaFJPNkY1V015eDNaaElOR1lKSkNl?= =?utf-8?B?QUc3SmROQTRsdzVSc2E4WWVGbmZiQ2s3bHVUcWwrN2RZbmduNWxwNzFqS0ZK?= =?utf-8?B?Zko5TWJ2TXN5cmQ1dmJHMEpJdytud1Z1Y1VVSWJkOFBMR0FCUEtOMUlqbDNi?= =?utf-8?B?RlJrdlk3OTMrcnhiSGVaNkJRbVQzZWpVeXo5cmgremNHOGJkTy9SK1dZbVZL?= =?utf-8?B?aHhuaGxqeFRXYmMzODlHY0VWR21QSTRlMFVTYXpkWWUzRUtFOW1WY2xQS0ZX?= =?utf-8?B?eUVWNXBQOVZmaUZtUXdmTWVDZkYraDhoT2c1OS8xR3owb1R4YlorSEEzc1VT?= =?utf-8?B?U1czR0xIT0VvY05jSFM0TmtNaUtTajRtNi8rOFNNbnVwblkwTjB1czFjK1JU?= =?utf-8?B?NjNGQ244ZjEvOVUreCtHMm5ZY0VJMFZWV2xvelBNY1NiemMrOW9ZeW1ydG9S?= =?utf-8?B?WXh1VkswK0VwU0ppYW1kOVBxY2ZrZmpNb0xsZjN4QU0zZ2diOGVMYkRTanZ2?= =?utf-8?B?TmpxNGdqSG1sRlJFT2pUUlFuUnZHVDhZOWJSUkxuaTI1Sm12WUlXKzV6eFRa?= =?utf-8?B?dFgvM3lubk5tc0pNdS9RMkROWEJlQmVqcmZmOVgrNzRmbUloRlBwYTFVMVIx?= =?utf-8?B?a2RRT3RGNjdHbHV5aHVZdlJIQ2lKdVR6V0MyZ3BYNjNzbkVPZk5sMjdha0dC?= =?utf-8?B?NHBlQXNDNmNzeThhRVlpV2ZNRUs2THJhTlZYdEpraVRRa05hWXBTRzJGOXpp?= =?utf-8?B?OWFwU1hRakRZQU5ybk1uZU1ySGhZZi9wS1hiVFJqQ0xyWVlZalJWSFBFZjVr?= =?utf-8?B?L1QxN0VhS29YazBIc1RNdHpaby9wMjc4ZjV2RDU1MjZDM09LWkl6Uy9LRTNC?= =?utf-8?B?QTYvZWdzRjJoQWE2byswTnNhZGRxT3pTcGYyVVBYU0FXdm9yYWN5dkJ3eWJL?= =?utf-8?B?cUdzMysrNVFmMVB5T05YSzUvSUlTTUlOSE9BZDc5QnlNc1daSVUyVE5NQ1U1?= =?utf-8?Q?blLVbmPvMYYJEqQOMvLvgcWUJ?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 02060df8-e42a-4dbd-af9b-08daf5561e12 X-MS-Exchange-CrossTenant-AuthSource: VE1PR04MB6560.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Jan 2023 11:05:44.8598 (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: i5GUyGUyvWb+Ssalbo/xdzvFHffPoTA9ubw7CJ4P5Gwz0niWPDTJRHvS+fq0Bp3ThOd8Vrlmp53HAlkQrjAm1A== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR04MB8133 X-Spam-Status: No, score=-3028.7 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: In preparation for changing the representation of the "name" field introduce a wrapper function. This keeps the mechanical change separate from the functional one. --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -2426,6 +2426,11 @@ offset_in_range (offsetT val, int size) return val & mask; } +static INLINE const char *insn_name (const insn_template *t) +{ + return t->name; +} + enum PREFIX_GROUP { PREFIX_EXIST = 0, @@ -2989,8 +2994,8 @@ md_begin (void) (void) sizeof (sets == ¤t_templates->start); (void) sizeof (end == ¤t_templates->end); for (; sets < end; ++sets) - if (str_hash_insert (op_hash, (*sets)->name, sets, 0)) - as_fatal (_("duplicate %s"), (*sets)->name); + if (str_hash_insert (op_hash, insn_name (*sets), sets, 0)) + as_fatal (_("duplicate %s"), insn_name (*sets)); } /* Initialize reg_hash hash table. */ @@ -3809,7 +3814,7 @@ get_broadcast_bytes (const insn_template if (diag) as_warn (_("ambiguous broadcast for `%s', using %u-bit form"), - t->name, bytes * 8); + insn_name (t), bytes * 8); return bytes; } @@ -4030,7 +4035,7 @@ check_hle (void) case PrefixNoTrack: case PrefixRep: as_bad (_("invalid instruction `%s' after `%s'"), - i.tm.name, i.hle_prefix); + insn_name (&i.tm), i.hle_prefix); return 0; case PrefixHLELock: if (i.prefix[LOCK_PREFIX]) @@ -4043,13 +4048,13 @@ check_hle (void) if (i.prefix[HLE_PREFIX] != XRELEASE_PREFIX_OPCODE) { as_bad (_("instruction `%s' after `xacquire' not allowed"), - i.tm.name); + insn_name (&i.tm)); return 0; } if (i.mem_operands == 0 || !(i.flags[i.operands - 1] & Operand_Mem)) { as_bad (_("memory destination needed for instruction `%s'" - " after `xrelease'"), i.tm.name); + " after `xrelease'"), insn_name (&i.tm)); return 0; } return 1; @@ -4544,7 +4549,7 @@ load_insn_p (void) return 0; /* pop. */ - if (strcmp (i.tm.name, "pop") == 0) + if (strcmp (insn_name (&i.tm), "pop") == 0) return 1; } @@ -4723,7 +4728,7 @@ insert_lfence_after (void) && i.prefix[REP_PREFIX]) { as_warn (_("`%s` changes flags which would affect control flow behavior"), - i.tm.name); + insn_name (&i.tm)); } char *p = frag_more (3); *p++ = 0xf; @@ -4765,7 +4770,7 @@ insert_lfence_before (void) && lfence_before_indirect_branch != lfence_branch_register) { as_warn (_("indirect `%s` with memory operand should be avoided"), - i.tm.name); + insn_name (&i.tm)); return; } else @@ -4776,7 +4781,7 @@ insert_lfence_before (void) { as_warn_where (last_insn.file, last_insn.line, _("`%s` skips -mlfence-before-indirect-branch on `%s`"), - last_insn.name, i.tm.name); + last_insn.name, insn_name (&i.tm)); return; } @@ -4797,7 +4802,7 @@ insert_lfence_before (void) { as_warn_where (last_insn.file, last_insn.line, _("`%s` skips -mlfence-before-ret on `%s`"), - last_insn.name, i.tm.name); + last_insn.name, insn_name (&i.tm)); return; } @@ -5014,7 +5019,7 @@ md_assemble (char *line) copy = NULL; no_match: pass1_err = i.error; - pass1_mnem = current_templates->start->name; + pass1_mnem = insn_name (current_templates->start); goto retry; } @@ -5057,11 +5062,11 @@ md_assemble (char *line) break; case unsupported: as_bad (_("unsupported instruction `%s'"), - pass1_mnem ? pass1_mnem : current_templates->start->name); + pass1_mnem ? pass1_mnem : insn_name (current_templates->start)); return; case unsupported_on_arch: as_bad (_("`%s' is not supported on `%s%s'"), - pass1_mnem ? pass1_mnem : current_templates->start->name, + pass1_mnem ? pass1_mnem : insn_name (current_templates->start), cpu_arch_name ? cpu_arch_name : default_arch, cpu_sub_arch_name ? cpu_sub_arch_name : ""); return; @@ -5070,23 +5075,22 @@ md_assemble (char *line) { if (flag_code == CODE_64BIT) as_bad (_("`%s%c' is not supported in 64-bit mode"), - pass1_mnem ? pass1_mnem : current_templates->start->name, + pass1_mnem ? pass1_mnem : insn_name (current_templates->start), mnem_suffix); else as_bad (_("`%s%c' is only supported in 64-bit mode"), - pass1_mnem ? pass1_mnem : current_templates->start->name, + pass1_mnem ? pass1_mnem : insn_name (current_templates->start), mnem_suffix); } else { if (flag_code == CODE_64BIT) as_bad (_("`%s' is not supported in 64-bit mode"), - pass1_mnem ? pass1_mnem : current_templates->start->name); + pass1_mnem ? pass1_mnem : insn_name (current_templates->start)); else as_bad (_("`%s' is only supported in 64-bit mode"), - pass1_mnem ? pass1_mnem : current_templates->start->name); + pass1_mnem ? pass1_mnem : insn_name (current_templates->start)); } - return; case invalid_sib_address: err_msg = _("invalid SIB address"); @@ -5129,7 +5133,7 @@ md_assemble (char *line) break; } as_bad (_("%s for `%s'"), err_msg, - pass1_mnem ? pass1_mnem : current_templates->start->name); + pass1_mnem ? pass1_mnem : insn_name (current_templates->start)); return; } @@ -5156,7 +5160,7 @@ md_assemble (char *line) if (j >= t->operands && simd) (sse_check == check_warning ? as_warn - : as_bad) (_("SSE instruction `%s' is used"), i.tm.name); + : as_bad) (_("SSE instruction `%s' is used"), insn_name (&i.tm)); } if (i.tm.opcode_modifier.fwait) @@ -5167,7 +5171,7 @@ md_assemble (char *line) if (i.rep_prefix && i.tm.opcode_modifier.prefixok != PrefixRep) { as_bad (_("invalid instruction `%s' after `%s'"), - i.tm.name, i.rep_prefix); + insn_name (&i.tm), i.rep_prefix); return; } @@ -5190,7 +5194,7 @@ md_assemble (char *line) /* Check for data size prefix on VEX/XOP/EVEX encoded and SIMD insns. */ if (i.prefix[DATA_PREFIX]) { - as_bad (_("data size prefix invalid with `%s'"), i.tm.name); + as_bad (_("data size prefix invalid with `%s'"), insn_name (&i.tm)); return; } @@ -5202,7 +5206,7 @@ md_assemble (char *line) case BFD_RELOC_386_TLS_LE_32: case BFD_RELOC_X86_64_GOTTPOFF: case BFD_RELOC_X86_64_TLSLD: - as_bad (_("TLS relocation cannot be used with `%s'"), i.tm.name); + as_bad (_("TLS relocation cannot be used with `%s'"), insn_name (&i.tm)); return; default: break; @@ -5259,7 +5263,7 @@ md_assemble (char *line) || i.tm.opcode_modifier.opcodespace != SPACE_BASE)) { as_bad (_("input/output port address isn't allowed with `%s'"), - i.tm.name); + insn_name (&i.tm)); return; } @@ -5275,7 +5279,7 @@ md_assemble (char *line) /* Check if IP-relative addressing requirements can be satisfied. */ if (i.tm.cpu_flags.bitfield.cpuprefetchi && !(i.base_reg && i.base_reg->reg_num == RegIP)) - as_warn (_("'%s' only supports RIP-relative address"), i.tm.name); + as_warn (_("'%s' only supports RIP-relative address"), insn_name (&i.tm)); /* Update operand types and check extended states. */ for (j = 0; j < i.operands; j++) @@ -5329,7 +5333,7 @@ md_assemble (char *line) else if (!quiet_warnings && i.tm.opcode_modifier.operandconstraint == UGH) { /* UnixWare fsub no args is alias for fsubp, fadd -> faddp, etc. */ - as_warn (_("translating to `%sp'"), i.tm.name); + as_warn (_("translating to `%sp'"), insn_name (&i.tm)); } if (is_any_vex_encoding (&i.tm)) @@ -5337,14 +5341,14 @@ md_assemble (char *line) if (!cpu_arch_flags.bitfield.cpui286) { as_bad (_("instruction `%s' isn't supported outside of protected mode."), - i.tm.name); + insn_name (&i.tm)); return; } /* Check for explicit REX prefix. */ if (i.prefix[REX_PREFIX] || i.rex_encoding) { - as_bad (_("REX prefix invalid with `%s'"), i.tm.name); + as_bad (_("REX prefix invalid with `%s'"), insn_name (&i.tm)); return; } @@ -5454,7 +5458,7 @@ md_assemble (char *line) if (i.tm.opcode_modifier.isprefix) { last_insn.kind = last_insn_prefix; - last_insn.name = i.tm.name; + last_insn.name = insn_name (&i.tm); last_insn.file = as_where (&last_insn.line); } else @@ -5535,7 +5539,7 @@ parse_insn (const char *line, char *mnem as_bad ((flag_code != CODE_64BIT ? _("`%s' is only supported in 64-bit mode") : _("`%s' is not supported in 64-bit mode")), - current_templates->start->name); + insn_name (current_templates->start)); return NULL; } /* If we are in 16-bit mode, do not allow addr16 or data16. @@ -5547,7 +5551,7 @@ parse_insn (const char *line, char *mnem ^ (flag_code == CODE_16BIT))) { as_bad (_("redundant %s prefix"), - current_templates->start->name); + insn_name (current_templates->start)); return NULL; } @@ -5609,15 +5613,15 @@ parse_insn (const char *line, char *mnem return NULL; case PREFIX_DS: if (current_templates->start->cpu_flags.bitfield.cpuibt) - i.notrack_prefix = current_templates->start->name; + i.notrack_prefix = insn_name (current_templates->start); break; case PREFIX_REP: if (current_templates->start->cpu_flags.bitfield.cpuhle) - i.hle_prefix = current_templates->start->name; + i.hle_prefix = insn_name (current_templates->start); else if (current_templates->start->cpu_flags.bitfield.cpumpx) - i.bnd_prefix = current_templates->start->name; + i.bnd_prefix = insn_name (current_templates->start); else - i.rep_prefix = current_templates->start->name; + i.rep_prefix = insn_name (current_templates->start); break; default: break; @@ -6792,8 +6796,8 @@ match_template (char mnem_suffix) && !cpu_arch_flags.bitfield.cpui386 && (intel_syntax ? (t->opcode_modifier.mnemonicsize != IGNORESIZE - && !intel_float_operand (t->name)) - : intel_float_operand (t->name) != 2) + && !intel_float_operand (insn_name (t))) + : intel_float_operand (insn_name (t)) != 2) && (t->operands == i.imm_operands || (operand_types[i.imm_operands].bitfield.class != RegMMX && operand_types[i.imm_operands].bitfield.class != RegSIMD @@ -7103,14 +7107,14 @@ match_template (char mnem_suffix) { if (!intel_syntax && (i.jumpabsolute != (t->opcode_modifier.jump == JUMP_ABSOLUTE))) - as_warn (_("indirect %s without `*'"), t->name); + as_warn (_("indirect %s without `*'"), insn_name (t)); if (t->opcode_modifier.isprefix && t->opcode_modifier.mnemonicsize == IGNORESIZE) { /* Warn them that a data or address size prefix doesn't affect assembly of the next line of code. */ - as_warn (_("stand-alone `%s' prefix"), t->name); + as_warn (_("stand-alone `%s' prefix"), insn_name (t)); } } @@ -7170,7 +7174,7 @@ check_string (void) if (i.seg[op] != NULL && i.seg[op] != reg_es) { as_bad (_("`%s' operand %u must use `%ses' segment"), - i.tm.name, + insn_name (&i.tm), intel_syntax ? i.tm.operands - es_op : es_op + 1, register_prefix); return 0; @@ -7309,7 +7313,7 @@ process_suffix (void) /* Warn about changed behavior for segment register push/pop. */ else if ((i.tm.base_opcode | 1) == 0x07) as_warn (_("generating 32-bit `%s', unlike earlier gas versions"), - i.tm.name); + insn_name (&i.tm)); } } else if (!i.suffix @@ -7425,13 +7429,13 @@ process_suffix (void) && (i.tm.opcode_modifier.mnemonicsize != DEFAULTSIZE || operand_check == check_error)) { - as_bad (_("ambiguous operand size for `%s'"), i.tm.name); + as_bad (_("ambiguous operand size for `%s'"), insn_name (&i.tm)); return 0; } if (operand_check == check_error) { as_bad (_("no instruction mnemonic suffix given and " - "no register operands; can't size `%s'"), i.tm.name); + "no register operands; can't size `%s'"), insn_name (&i.tm)); return 0; } if (operand_check == check_warning) @@ -7440,7 +7444,7 @@ process_suffix (void) ? _("ambiguous operand size") : _("no instruction mnemonic suffix given and " "no register operands"), - i.tm.name); + insn_name (&i.tm)); if (i.tm.opcode_modifier.floatmf) i.suffix = SHORT_MNEM_SUFFIX; @@ -7578,7 +7582,7 @@ process_suffix (void) && i.op[0].regs->reg_type.bitfield.word) { as_bad (_("16-bit addressing unavailable for `%s'"), - i.tm.name); + insn_name (&i.tm)); return 0; } @@ -7646,7 +7650,7 @@ process_suffix (void) } as_bad (_("invalid register operand size for `%s'"), - i.tm.name); + insn_name (&i.tm)); return 0; } } @@ -7687,7 +7691,7 @@ check_byte_reg (void) /* Any other register is bad. */ as_bad (_("`%s%s' not allowed with `%s%c'"), register_prefix, i.op[op].regs->reg_name, - i.tm.name, i.suffix); + insn_name (&i.tm), i.suffix); return 0; } return 1; @@ -7713,7 +7717,7 @@ check_long_reg (void) as_bad (_("`%s%s' not allowed with `%s%c'"), register_prefix, i.op[op].regs->reg_name, - i.tm.name, + insn_name (&i.tm), i.suffix); return 0; } @@ -7761,7 +7765,7 @@ check_qword_reg (void) as_bad (_("`%s%s' not allowed with `%s%c'"), register_prefix, i.op[op].regs->reg_name, - i.tm.name, + insn_name (&i.tm), i.suffix); return 0; } @@ -7800,7 +7804,7 @@ check_word_reg (void) as_bad (_("`%s%s' not allowed with `%s%c'"), register_prefix, i.op[op].regs->reg_name, - i.tm.name, + insn_name (&i.tm), i.suffix); return 0; } @@ -8057,7 +8061,7 @@ process_operands (void) register_prefix, i.op[1].regs->reg_name, register_prefix, i.op[1].regs->reg_name, first_reg_in_group, register_prefix, i.op[1].regs->reg_name, last_reg_in_group, - i.tm.name); + insn_name (&i.tm)); } else if (i.tm.opcode_modifier.operandconstraint == REG_KLUDGE) { @@ -8097,7 +8101,7 @@ process_operands (void) && i.op[0].regs->reg_num < 4) { as_bad (_("you can't `%s %s%s'"), - i.tm.name, register_prefix, i.op[0].regs->reg_name); + insn_name (&i.tm), register_prefix, i.op[0].regs->reg_name); return 0; } if (i.op[0].regs->reg_num > 3 @@ -8138,13 +8142,13 @@ process_operands (void) if (i.operands != 2) { /* Extraneous `l' suffix on fp insn. */ - as_warn (_("translating to `%s %s%s'"), i.tm.name, + as_warn (_("translating to `%s %s%s'"), insn_name (&i.tm), 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, + as_warn (_("translating to `%s %s%s,%s%s'"), insn_name (&i.tm), register_prefix, i.op[!intel_syntax].regs->reg_name, register_prefix, i.op[intel_syntax].regs->reg_name); } @@ -8157,7 +8161,7 @@ process_operands (void) && !is_any_vex_encoding(&i.tm)) { if (!quiet_warnings) - as_warn (_("segment override on `%s' is ineffectual"), i.tm.name); + as_warn (_("segment override on `%s' is ineffectual"), insn_name (&i.tm)); if (optimize) { i.seg[0] = NULL; @@ -8889,7 +8893,7 @@ output_branch (void) } if (i.prefixes != 0) - as_warn (_("skipping prefixes on `%s'"), i.tm.name); + as_warn (_("skipping prefixes on `%s'"), insn_name (&i.tm)); /* It's always a symbol; End frag & setup for relax. Make sure there is enough room in this frag for the largest @@ -9037,7 +9041,7 @@ output_jump (void) } if (i.prefixes != 0) - as_warn (_("skipping prefixes on `%s'"), i.tm.name); + as_warn (_("skipping prefixes on `%s'"), insn_name (&i.tm)); if (now_seg == absolute_section) { @@ -9119,7 +9123,7 @@ output_interseg_jump (void) size = 2; if (i.prefixes != 0) - as_warn (_("skipping prefixes on `%s'"), i.tm.name); + as_warn (_("skipping prefixes on `%s'"), insn_name (&i.tm)); if (now_seg == absolute_section) { @@ -9438,7 +9442,7 @@ add_fused_jcc_padding_frag_p (enum mf_cm if (flag_debug) as_warn_where (last_insn.file, last_insn.line, _("`%s` skips -malign-branch-boundary on `%s`"), - last_insn.name, i.tm.name); + last_insn.name, insn_name (&i.tm)); } return 0; @@ -9470,7 +9474,7 @@ add_branch_prefix_frag_p (void) if (flag_debug) as_warn_where (last_insn.file, last_insn.line, _("`%s` skips -malign-branch-boundary on `%s`"), - last_insn.name, i.tm.name); + last_insn.name, insn_name (&i.tm)); return 0; } @@ -9559,7 +9563,7 @@ add_branch_padding_frag_p (enum align_br if (flag_debug) as_warn_where (last_insn.file, last_insn.line, _("`%s` skips -malign-branch-boundary on `%s`"), - last_insn.name, i.tm.name); + last_insn.name, insn_name (&i.tm)); return 0; } @@ -9759,10 +9763,10 @@ output_insn (void) /* Encode lfence, mfence, and sfence as f0 83 04 24 00 lock addl $0x0, (%{re}sp). */ if (flag_code == CODE_16BIT) - as_bad (_("Cannot convert `%s' in 16-bit mode"), i.tm.name); + as_bad (_("Cannot convert `%s' in 16-bit mode"), insn_name (&i.tm)); else if (omit_lock_prefix) as_bad (_("Cannot convert `%s' with `-momit-lock-prefix=yes' in effect"), - i.tm.name); + insn_name (&i.tm)); else if (now_seg != absolute_section) { offsetT val = 0x240483f0ULL; @@ -11673,7 +11677,7 @@ i386_att_operand (char *operand_string) if (i.rounding.type == RC_NamesTable[j].type) break; as_bad (_("`%s': misplaced `{%s}'"), - current_templates->start->name, RC_NamesTable[j].name); + insn_name (current_templates->start), RC_NamesTable[j].name); return 0; } } @@ -11695,7 +11699,7 @@ i386_att_operand (char *operand_string) if (i.rounding.type != rc_none) { as_bad (_("`%s': RC/SAE operand must follow immediate operands"), - current_templates->start->name); + insn_name (current_templates->start)); return 0; } } @@ -11708,7 +11712,7 @@ i386_att_operand (char *operand_string) && i.op[0].regs->reg_type.bitfield.class != Reg)) { as_bad (_("`%s': misplaced `%s'"), - current_templates->start->name, operand_string); + insn_name (current_templates->start), operand_string); return 0; } } --- a/gas/config/tc-i386-intel.c +++ b/gas/config/tc-i386-intel.c @@ -609,7 +609,7 @@ i386_intel_operand (char *operand_string if (i.imm_operands) { as_bad (_("`%s': RC/SAE operand must precede immediate operands"), - current_templates->start->name); + insn_name (current_templates->start)); return 0; } @@ -705,9 +705,9 @@ i386_intel_operand (char *operand_string case O_dword_ptr: i.types[this_operand].bitfield.dword = 1; - if ((current_templates->start->name[0] == 'l' - && current_templates->start->name[2] == 's' - && current_templates->start->name[3] == 0) + if ((insn_name (current_templates->start)[0] == 'l' + && insn_name (current_templates->start)[2] == 's' + && insn_name (current_templates->start)[3] == 0) || (current_templates->start->opcode_modifier.opcodespace == SPACE_BASE && current_templates->start->base_opcode == 0x62 /* bound */)) suffix = WORD_MNEM_SUFFIX; @@ -727,9 +727,9 @@ i386_intel_operand (char *operand_string case O_fword_ptr: i.types[this_operand].bitfield.fword = 1; - if (current_templates->start->name[0] == 'l' - && current_templates->start->name[2] == 's' - && current_templates->start->name[3] == 0) + if (insn_name (current_templates->start)[0] == 'l' + && insn_name (current_templates->start)[2] == 's' + && insn_name (current_templates->start)[3] == 0) suffix = LONG_MNEM_SUFFIX; else if (!got_a_float) { @@ -990,7 +990,7 @@ i386_intel_operand (char *operand_string if (i.rounding.type == RC_NamesTable[j].type) break; as_bad (_("`%s': misplaced `{%s}'"), - current_templates->start->name, RC_NamesTable[j].name); + insn_name (current_templates->start), RC_NamesTable[j].name); return 0; } }