From patchwork Mon Nov 6 14:22:12 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 162030 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:8f47:0:b0:403:3b70:6f57 with SMTP id j7csp2690981vqu; Mon, 6 Nov 2023 06:22:22 -0800 (PST) X-Google-Smtp-Source: AGHT+IGnB9iaAsS30Tc2MndJvjS/h6sQOEj3qgQWTLEYVjmj8r0e0RUI9PaGE/D6pdLWDh1P+y54 X-Received: by 2002:a05:622a:19a2:b0:418:79a:e350 with SMTP id u34-20020a05622a19a200b00418079ae350mr38024532qtc.23.1699280541786; Mon, 06 Nov 2023 06:22:21 -0800 (PST) ARC-Seal: i=3; a=rsa-sha256; t=1699280541; cv=pass; d=google.com; s=arc-20160816; b=y+imSCOTNdU7olyeJNyOaBm7MOqyB7ps/bp4ai6KStu5nRsAD5lOqgKU1I5avHxlab EfeC5GcQvjTfKUmfPg2/xLbvDSztxyTf+xpkbpoesZ6CEaormOzyGeJuXn48DE0GXc0U slRh6aGsKmAMFjudRq4f0OHmhMlsGjTCA0BWfWbCJZXkn9nCs6T/YYLU2vRn7K4SXYTN f0u46h892IXg7X9JgwFWRImjLU+36T+GAs6pPFOhHBxwBjPJpgvsWEAj348dTn2RUWuI 86NjXo+NQciFyjpmMW41qHzloIU94mENRReuiy0U0fDIkLayoH55D+W8d1vdx9wJ19CF aH3g== ARC-Message-Signature: i=3; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=errors-to:list-subscribe:list-help:list-post:list-archive :list-unsubscribe:list-id:precedence:mime-version :content-transfer-encoding:in-reply-to:references:cc:to:from :content-language:subject:user-agent:date:message-id:dkim-signature :arc-filter:dmarc-filter:delivered-to; bh=5oXKe39eMIfjOJimxdb29iLEOtpJqKMZfo3tcmYksFk=; fh=2DbSPqOhyO7CNtGa024QKgSiHKlKGVt2h+1rlgWLnZI=; b=CG2dInaYmXGtpsN/Ioq+WsN6SREqgN91rohF75pwtsqInx/3eFsDcHPuijXbppHaF4 CX0BDKiCpj/VsjtT267EyiC6aPeGMxn4Bj7ukjYlzWGhZh+RCw/YrjszDl3HQVy2JO/N qnDScgTL10/FENciec9wjjQSxtnIEaR3s4B+MRVjMrukc3/mCkVEtW4oXi3JtD7UejpA Oxs9N/VGP+x71J/Rskxgidd5jyvn3RzD37Rur5Fg3VZL9tV0QiNjGbYPJh+iVkcWD8F2 tp7GkKQIahRGPYbCZsZvjEOLY4jVfIf4KcVPCt+YlkrbTor+/6htvDG+Qb+2s8trBdrM rPVg== ARC-Authentication-Results: i=3; mx.google.com; dkim=pass header.i=@suse.com header.s=selector1 header.b=KHYUk2Nr; arc=pass (i=2); 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from server2.sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id b2-20020ac85bc2000000b00419900396c6si5613838qtb.207.2023.11.06.06.22.21 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 06 Nov 2023 06:22:21 -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=@suse.com header.s=selector1 header.b=KHYUk2Nr; arc=pass (i=2); 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 898E6385DC2B for ; Mon, 6 Nov 2023 14:22:21 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04on2043.outbound.protection.outlook.com [40.107.8.43]) by sourceware.org (Postfix) with ESMTPS id 3C18F3857B93 for ; Mon, 6 Nov 2023 14:22:16 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 3C18F3857B93 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-Filter: OpenARC Filter v1.0.0 sourceware.org 3C18F3857B93 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.8.43 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1699280538; cv=pass; b=aFOckSZTWMAbLy9cFKpC9e6XIAc75vSsrD6B+Ig+Jc88a71CyZ/eHlpsLKKZdljRSPjlwn9uTKzhZfA2+8sPZtT5h8SuTnlVXLAfSdtxM0Gmvf1TyMJQ9Mx3J8LQgogboalLPbTz9Bj2RLWZ7qyDiaBlXkiRNggTE71Tkvpbddg= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1699280538; c=relaxed/simple; bh=Tl7uLyKdlPesGt1saDolOerqW4hTn+tjhdxt6vEvLGU=; h=DKIM-Signature:Message-ID:Date:Subject:From:To:MIME-Version; b=Wwe7tVkFwpI+wJjAViGb+bRNDE6xOd90S9AS1cKW7QCFtcZMXyoRu2CTlYAyo9gUhcSusETmdCYLjp8yQfWEGNth3BgERJDEFzxR1feDXEiY7YcQg0XhbeYjJuwEEBZFD1H804tUYLlr8X/s+lGXep8QmGtfX6ta4e1/Ozv2rqk= ARC-Authentication-Results: i=2; server2.sourceware.org ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Dg4Dsrq7LBRQVQI/mgITHkp9hJcjzJv5wLbOJcTn+8IntcVSX5Zp3mOXjEmN1khmD0Rpe1g7wzJdEzoQry+iMuaiNAE7ZFBMo5EPr8Nhrng+FfSyivZQxXhfhpNgA7HDtFHJLWsBU1twT1VLm6KuH4zdhBQYdlK5wnpo+zv5u+V6223mpgQEzJkSKLvV7sfXQ3BpodRW/R4CLyuLahX/d9ongwElK7T95AZUbH9jQuE/lZcwBS620ryWgMWoNoUZwIm4cQ5MsXtXyhDnIC1zyuupgImvFFb0dtj7KFAEdqlHrzF+WIAYJ4uH+hqLXec6VGs/SR45mWbIknZC0al6xA== 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=5oXKe39eMIfjOJimxdb29iLEOtpJqKMZfo3tcmYksFk=; b=jG1yqSGVeFDwlj9idFSwe3pt3k/7SW+T6FQscXjRPRrOzb1iUTAWsxZQlbruhN//H6VD3vsl0BkpBjDyefTbTKc+HQgqDAm513RpOr1pk9+Rgyv65lhpTDIA87EgDtO2gGbJIWPPxIxSMLKUvNiRyRwfxZDJCsx0gl3Z+N/CgOZpgtl715YLMAjLByw3KJ/EtRmyjhkyxCm/kJP8wxcCn+uq9CL08Wy3i3ootMmwzc0Ckxd6J4z8O10bXPUWO5kjYIpyE4kImjaqlpSc+toPaut06+vchzEqfqWwvRlKr/5uAn2YG+dnUJMPt+1r/XUed5zzur3Dw7BKZ2ZqueMeTg== 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=5oXKe39eMIfjOJimxdb29iLEOtpJqKMZfo3tcmYksFk=; b=KHYUk2NrQWAccQYq5VLbd+yOsYaHCmQhiS+K8aGU4Rw0+FhR03Gy8V0NZo6IB3K3ALTjaJ+GOsa3Mhdx2HDMb8OtvkjPW4j5ncFdRt5+DPBdvAJO1IAP03V4FMZhUqlj5tFSwkfYY9dgNUWGYYFh9Dd43gAC2Z9WVn5dwU0Xu99KQJWmXHiI7Bl4g6fjr2SddVAeAiWecFZ2d0lLdfXIFTRymw+zD7WRz+a6DoF82eTH0RCIkoKw1S/S1pTTw49zkT1cXMFcRubhGAAnEsA9Ng8XmzSwH+JTyRd68Gk1+ELxv2Wwe71iT27RTFcjkZ6+Iq4Otl0OSg+DUxNIXozP+g== 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 AM0PR04MB6802.eurprd04.prod.outlook.com (2603:10a6:208:184::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6977.13; Mon, 6 Nov 2023 14:22:14 +0000 Received: from DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::eb8e:fa24:44c1:5d44]) by DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::eb8e:fa24:44c1:5d44%3]) with mapi id 15.20.6977.016; Mon, 6 Nov 2023 14:22:14 +0000 Message-ID: <56e9550a-91d3-6849-0f3c-ad0559371de1@suse.com> Date: Mon, 6 Nov 2023 15:22:12 +0100 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Subject: [PATCH 1/2] x86: CPU-qualify {disp16} / {disp32} Content-Language: en-US From: Jan Beulich To: Binutils Cc: "H.J. Lu" , Lili Cui References: In-Reply-To: X-ClientProxiedBy: FR3P281CA0082.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:1f::8) To DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|AM0PR04MB6802:EE_ X-MS-Office365-Filtering-Correlation-Id: 4f447217-fed2-43d2-6d92-08dbded3c5bd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: fX6E3opOKZ0Tcd/CEK/rxbHfc9I6qio11KuHikZiT1nwO15dmQs5tteSybPKifyyFztVOfQpPriqgXZnsMXgjEoI81Mv06yqrv6MVI5+j8QaxVlJ5Iw3gZ2uylEKFU2DfSnr9wgCqQJ+EmyYWzVA7rGKMxl1LkJnBJo67qDz8nE+45sUmMg5q5f0UxXlYV1SJ3ere2azbwA/O8EloSCC7Ea9JYw3C5HCoa6f12GVLlGiREyVJ6JtYc2PF43UozCiZTyrFCNjOVg+FUZ0DR53KzHOPYsbAr3qanor1X0WLO4v2sx62gX+BCS6IyDaKEXewYZoR7LRtC2xZChiSNLIoSJt85KIQHBXOjxMKaZM3qz7F5a66bVQZQw/322Ge6PuiqFI8MiulGBisP0DkB0GrlbUyGoDxdkGalXldoKZNli+jyyGXFJZtIfHaFlHH4wriOg+Zr/XhA3p8WN1xfqNclLrTAuwgPQV2sXllVJi5+OCj1/SD4gw+XxcR0I1FiDethoj3gXZCURYmqFvfX8Tu7KYwtST6lNJpH4GRkArz+OlwCTFsVzVoF6o8nV8qgmJIMf7ag2ZNr/1Qzd9qyySYGr/OExxX/ngkZgE6jf757hdcXQolrJhKjmkQYiJR5ZNjFFrNBQEYQ/ogCD+PuIF6Q== 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)(39860400002)(396003)(366004)(136003)(376002)(346002)(230922051799003)(64100799003)(1800799009)(186009)(451199024)(31686004)(66556008)(66476007)(66946007)(316002)(54906003)(6916009)(31696002)(86362001)(36756003)(38100700002)(83380400001)(6512007)(2616005)(26005)(6506007)(8936002)(478600001)(5660300002)(4326008)(41300700001)(2906002)(6486002)(8676002)(43740500002)(45980500001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?oMhY69XYjn8CPlsMqR2HmFZBV1Ip?= =?utf-8?q?Da81u7mXuGeMCrtojYEHgx3mznLxYaJhG7zx7B3A2cxde0e6kmitbuStMTjljPZ0X?= =?utf-8?q?+y4NZQwFtIIPvbqc8pcrJCEhpM2R6sNZ4Z3KZDBLpUHWmumquN9J8e4ITJ73ic1bB?= =?utf-8?q?h//2xXtrmGD6oywmhosvpBNUHSo/sJvGubMQaTbszPoAu1uhfnNJvBMi1E9gz+fUB?= =?utf-8?q?MQ2O4fhS5S13rv40t5il3VqQ4K7pKAUSNtLnn2zqD7Wi8AmkGZXpCDAPLZ8l/RCi8?= =?utf-8?q?2CRccGF6/rGGJILUzgL5xzBJjFku2Wl7Uoue4OrmmdEJWiLtpG14J7t+pxW2U8T5y?= =?utf-8?q?H5/3/VVGsb1l5GdkXKDFXV+RPEy6Hyg9LmV3R1Y0XFWXMOrI3cRs8MWqDn1oeyhM2?= =?utf-8?q?Pea2JzQxqlHpYFgG6w4n+X3iMV+nsHE50rMs3nUutt9770FyRWchZ3aceUjbuZ9xk?= =?utf-8?q?DHx+1DDfZXkrSSDmPpTxZAz8xp0+cXgdmGB3md3DnIMnfbhyAZa+dX49RnebEqVSD?= =?utf-8?q?VDqzzaSPBDhxtDvoWeMaGQGTjsCj7jbWmEZAqWDiET+ay411vU1MCsfETtZ2sa1JH?= =?utf-8?q?T4vVEmaFmfzJ8/AezdwCmAwmGGvYR1TxaJqcRl57UU8td58Qr7Ynb5HdUpTuthGS7?= =?utf-8?q?Ux7PfkCMP6okYbdV6Bir/kq2LzwglMrUvgm7ED1dGqtMGREnKXjZ2anRo7LyhMXSw?= =?utf-8?q?wYG/ZmJDfWEnpxWd6NxXt3sSQXdz5K3Lc5zw2XSKquNAE3AZtPrgjaGMOXXJ+w01A?= =?utf-8?q?Ez9ifjqKqqB7fHjpaP+HX7xachFgLN4kDxjQfhcbCfU/5cbSixYKKaPvSlqdFlcK4?= =?utf-8?q?CZsPnWyo5jP+yz07xvQ4SLaYiYUJXXXrLHq+ulTbyIP8GFAZJgZTTNHsjQNYh8ZS/?= =?utf-8?q?BPRbuA+HNCtiOapVqsxzvfKWG57+VNHnLN9n9CZlWjKexsVONzzVywyjJQyBlo8JV?= =?utf-8?q?O6R/177CLJUhjmZmlUNSjKBfmymSIxcOpMVQJ0rSHVqgnx9l4qbEs+1dGDpBhl8BA?= =?utf-8?q?kQoXdpYwbPkxnZWyvSJOt9EzbC74hsWiVUhqMs832Yp+8KQgUHTSrOr+aXAkqCKTa?= =?utf-8?q?6kGuR05MO8V8hQwdkn2N1b9687MAGayojrrB74hMiDhSz2WQTqfvl/pTeQ5dyjPQT?= =?utf-8?q?o0eVY7Zou32NOS17DLtt0y2hL8/BwyXC5oSwATI1tY+/Wof9UTrJYptBee6QGK7uS?= =?utf-8?q?KdE/qdCIuMOBh2xvYKDTxWrM3AMARsOFN0VNVyaNWwDGatwTKp9kzhW2oasvih5lp?= =?utf-8?q?18FY6Az4DbkYv6y+KS3PpFWWazb5gVlvTO8M8itCWXOnk/Ne3aHWGkCTcxC8A7C8A?= =?utf-8?q?AOuZbwv5sDx9Guj7xHLZJqVPOD2nysyx9cid6iSNZoDhjbbXch8QChusOotJG4/Ip?= =?utf-8?q?90Svy4z7Cifn5OFCN45ON2Wc4XXVjQkCFYXuNexUQlfPaehTeCycDillQuOgbMIVn?= =?utf-8?q?RX6i6Q26DkPadbMC9eBP6xpHuir9N4ZcjTY1aw1zleIexHSS1lkwjmr/jy6kU2VO4?= =?utf-8?q?fosB/welvwal?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4f447217-fed2-43d2-6d92-08dbded3c5bd X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 06 Nov 2023 14:22:14.1229 (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: 8g0IsnJv+5+QN7prow+P53tD4KTJFbcGmStGFH8AoqbimSu7hKgRhGxTwkoIg1htwv3ZUM6DxUlCMCMtaK04Fw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR04MB6802 X-Spam-Status: No, score=-3026.6 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, T_SCC_BODY_TEXT_LINE 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.30 Precedence: list List-Id: Binutils mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: binutils-bounces+ouuuleilei=gmail.com@sourceware.org X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1781824793557877183 X-GMAIL-MSGID: 1781824793557877183 {disp16} is invalid to use in 64-bit mode, while {disp32} is invalid to use on pre-386 CPUs. The latter, also affecting other (real) prefixes, further requires that like for insns we fully check the CPU flags; till now only Cpu64/CpuNo64 were taken into consideration. --- While this is consistent with i386_index_check() diagnosing wrong {dispN} use as an error, that and the change here aren't consistent with documentation saying "prefer", suggesting such prefixes - like {rex}, albeit even there not fully consistent, seeing the error md_assemble() generates when used with VEX/XOP/EVEX encoded insns - are ignored when impossible to fulfill. Otoh the change here is consistent with {rex} being refused (rather than ignored) outside of 64-bit mode. --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -5781,7 +5781,8 @@ parse_insn (const char *line, char *mnem && current_templates && current_templates->start->opcode_modifier.isprefix) { - if (!cpu_flags_check_cpu64 (current_templates->start)) + supported = cpu_flags_match (current_templates->start); + if (!(supported & CPU_FLAGS_64BIT_MATCH)) { as_bad ((flag_code != CODE_64BIT ? _("`%s' is only supported in 64-bit mode") @@ -5789,6 +5790,14 @@ parse_insn (const char *line, char *mnem insn_name (current_templates->start)); return NULL; } + if (supported != CPU_FLAGS_PERFECT_MATCH) + { + as_bad (_("`%s' is not supported on `%s%s'"), + insn_name (current_templates->start), + cpu_arch_name ? cpu_arch_name : default_arch, + cpu_sub_arch_name ? cpu_sub_arch_name : ""); + return NULL; + } /* If we are in 16-bit mode, do not allow addr16 or data16. Similarly, in 32-bit mode, do not allow addr32 or data32. */ if ((current_templates->start->opcode_modifier.size == SIZE16 --- a/gas/testsuite/gas/i386/prefix32.l +++ b/gas/testsuite/gas/i386/prefix32.l @@ -10,6 +10,13 @@ .*:20: Error: data size .* `vaddps' .*:21: Error: data size .* `vaddpd' .*:25: Error: same type of prefix .* +.*:31: Error: `xacquire' is not supported on `i386' +.*:32: Error: `notrack' is not supported on `i386' +.*:33: Error: `bnd' is not supported on `i386' +.*:38: Error: `gs' is not supported on `i286' +.*:39: Error: `data32' is not supported on `i286' +.*:40: Error: `addr32' is not supported on `i286' +.*:41: Error: .*disp32.* is not supported on `i286' GAS LISTING .* #... [ ]*1[ ]+\.text @@ -40,4 +47,18 @@ GAS LISTING .* [ ]*26[ ]+\?\?\?\? 3E8B4500[ ]+ds mov %ss:\(%ebp\), %eax [ ]*27[ ]+\?\?\?\? 3E8B4500[ ]+ds mov %ds:\(%ebp\), %eax [ ]*28[ ]* +[ ]*[0-9]+[ ]+\.L386: +[ ]*[0-9]+[ ]+\.arch i386 +[ ]*[0-9]+[ ]+xacquire lock add \[esi\], eax +[ ]*[0-9]+[ ]+notrack call eax +[ ]*[0-9]+[ ]+bnd call eax +[ ]*[0-9]+[ ]* +[ ]*[0-9]+[ ]+\.L286: +[ ]*[0-9]+[ ]+\.code16 +[ ]*[0-9]+[ ]+\.arch i286 +[ ]*[0-9]+[ ]+gs inc word ptr \[si\] +[ ]*[0-9]+[ ]+data32 nop +[ ]*[0-9]+[ ]+addr32 nop +[ ]*[0-9]+[ ]+\{disp32\} nop +[ ]*[0-9]+[ ]* #pass --- a/gas/testsuite/gas/i386/prefix32.s +++ b/gas/testsuite/gas/i386/prefix32.s @@ -26,4 +26,18 @@ prefix: ds mov %ss:(%ebp), %eax ds mov %ds:(%ebp), %eax +.L386: + .arch i386 + xacquire lock add [esi], eax + notrack call eax + bnd call eax + +.L286: + .code16 + .arch i286 + gs inc word ptr [si] + data32 nop + addr32 nop + {disp32} nop + .p2align 4,0 --- a/gas/testsuite/gas/i386/prefix64.l +++ b/gas/testsuite/gas/i386/prefix64.l @@ -3,12 +3,13 @@ .*:7: Error: invalid .* `addss' after `repne' .*:8: Error: invalid .* `vaddss' after `repe' .*:9: Error: invalid .* `vaddss' after `repne' -.*:14: Error: same type of prefix .* -.*:15: Error: same type of prefix .* -.*:18: Error: data size .* `addps' -.*:19: Error: data size .* `addpd' -.*:20: Error: data size .* `vaddps' -.*:21: Error: data size .* `vaddpd' +.*:11: Error: .*disp16.* is not supported .* +.*:16: Error: same type of prefix .* +.*:17: Error: same type of prefix .* +.*:20: Error: data size .* `addps' +.*:21: Error: data size .* `addpd' +.*:22: Error: data size .* `vaddps' +.*:23: Error: data size .* `vaddpd' GAS LISTING .* #... [ ]*1[ ]+\.text @@ -21,16 +22,18 @@ GAS LISTING .* [ ]*8[ ]+repe vaddss %xmm0, %xmm0, %xmm0 [ ]*9[ ]+repne vaddss %xmm0, %xmm0, %xmm0 [ ]*10[ ]* -[ ]*11[ ]+\.Lrep_ret: -[ ]*12[ ]+\?\?\?\? F2C3[ ]+bnd ret -[ ]*13[ ]+\?\?\?\? F3C3[ ]+rep ret -[ ]*14[ ]+bnd rep ret -[ ]*15[ ]+rep bnd ret -[ ]*16[ ]* -[ ]*17[ ]+\.Ldata16: -[ ]*18[ ]+data16 addps %xmm0, %xmm0 -[ ]*19[ ]+data16 addpd %xmm0, %xmm0 -[ ]*20[ ]+data16 vaddps %xmm0, %xmm0, %xmm0 -[ ]*21[ ]+data16 vaddpd %xmm0, %xmm0, %xmm0 -[ ]*22[ ]* +[ ]*[0-9]+[ ]+\{disp16\} nop +[ ]*[0-9]+[ ]* +[ ]*[0-9]+[ ]+\.Lrep_ret: +[ ]*[0-9]+[ ]+\?\?\?\? F2C3[ ]+bnd ret +[ ]*[0-9]+[ ]+\?\?\?\? F3C3[ ]+rep ret +[ ]*[0-9]+[ ]+bnd rep ret +[ ]*[0-9]+[ ]+rep bnd ret +[ ]*[0-9]+[ ]* +[ ]*[0-9]+[ ]+\.Ldata16: +[ ]*[0-9]+[ ]+data16 addps %xmm0, %xmm0 +[ ]*[0-9]+[ ]+data16 addpd %xmm0, %xmm0 +[ ]*[0-9]+[ ]+data16 vaddps %xmm0, %xmm0, %xmm0 +[ ]*[0-9]+[ ]+data16 vaddpd %xmm0, %xmm0, %xmm0 +[ ]*[0-9]+[ ]* #pass --- a/gas/testsuite/gas/i386/prefix64.s +++ b/gas/testsuite/gas/i386/prefix64.s @@ -8,6 +8,8 @@ prefix: repe vaddss %xmm0, %xmm0, %xmm0 repne vaddss %xmm0, %xmm0, %xmm0 + {disp16} nop + .Lrep_ret: bnd ret rep ret --- a/opcodes/i386-opc.tbl +++ b/opcodes/i386-opc.tbl @@ -890,7 +890,7 @@ rex.wrxb, 0x4f, x64, NoSuf|IsPrefix, {} // Pseudo prefixes (base_opcode == PSEUDO_PREFIX) -