From patchwork Fri Sep 8 12:54:02 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 137737 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:ab0a:0:b0:3f2:4152:657d with SMTP id m10csp520435vqo; Fri, 8 Sep 2023 05:54:57 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEA02DPYtMu5n0sZJPXqCL/LMI2jA7PTYWUySdyBdJrLo+HM2OjRffYqnr0Jpc+WFE/IfWD X-Received: by 2002:a17:906:2259:b0:9a1:c812:cbb9 with SMTP id 25-20020a170906225900b009a1c812cbb9mr1956839ejr.31.1694177696988; Fri, 08 Sep 2023 05:54:56 -0700 (PDT) Received: from server2.sourceware.org (ip-8-43-85-97.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id dt8-20020a170906b78800b009a582a02c60si1286508ejb.964.2023.09.08.05.54.56 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 08 Sep 2023 05:54:56 -0700 (PDT) Received-SPF: pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 as permitted sender) client-ip=8.43.85.97; Authentication-Results: mx.google.com; dkim=pass header.i=@sourceware.org header.s=default header.b=S8QhjUth; arc=fail (signature failed); spf=pass (google.com: domain of binutils-bounces+ouuuleilei=gmail.com@sourceware.org designates 8.43.85.97 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 BBC263858D38 for ; Fri, 8 Sep 2023 12:54:55 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org BBC263858D38 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=sourceware.org; s=default; t=1694177695; bh=HgWVvDHTwYtNoWibntPWGqmUhxEOV+Km5Q93Tzv5Ogc=; 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=S8QhjUthTA5a+YnJ3dWgVBtWegOsjOhryyUc7SJk/rPiOJaque9Xie3vDAnJv1TBp Z7OO/Ki9ezb47YvQvV3qm4UoqWwVq2vgmK7wZ5oQwU8fr3f9G/sbuug0/p7ZP+A+LN yqMDxFYSxU0FukbCRhzl2SIouHfpWOhTTFMnCkoE= X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from EUR05-VI1-obe.outbound.protection.outlook.com (mail-vi1eur05on2056.outbound.protection.outlook.com [40.107.21.56]) by sourceware.org (Postfix) with ESMTPS id 72CD5385841A for ; Fri, 8 Sep 2023 12:54:06 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 72CD5385841A ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=IcsLJtq6BRy7UTQoAXNUQMlQbzs4a7H6MM+TfXSvoEh3xbkYb7CVhY6z5o6IU1B5aql0+9DAMLfihEXMxfSVl/EC1XsQqnim86KEOfdJzrPu2U3Rx3klSa0yUEm88Mx8YbbdZYkn3DCy/+saE2C9nl77U9BiRAoGq/2S+T+tDBLce3cwjUTkDRqQEznV50uzMy9DNKf57L9k5Gp7/PsS0K9tWfa4CwWKuKWJnPPwHirHXrwET+Q2b+jU8zIraG3m+m+r790M6PbAaLDTHJDneZRfLT1aoRAcdac47VtAUgdYBKAEX48Yql9roshcbLW+OE6bKPd97TG12/+GhAk9vA== 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=HgWVvDHTwYtNoWibntPWGqmUhxEOV+Km5Q93Tzv5Ogc=; b=JLIqAe/8jy+0uQDjo43yK+Y4Z60y0mx7ZCu+1/G18l/OcsGcEIT4XV5L+fy6KXpM5I2SXN91iLX+gbBSS4C8VN6iPjIB6LFn9Ibdv3NYkQpahHBTxp72cNr6H+3yMtaN2m76YMz7R/9QMgEAdi5jJOkXM1G6Kz4FSgfE0M5vRuG12Q4jFWIwm4qGgB9/SyoEf77oRBm0KBfUEV/SzotPr/XXBPAsaGcRJa+JyYKb1BGPj0abhbOW7iXfdmZHHEWIShS6UiL4DdMmaPf6NmEK9C2h6zjgGIZ5pJn6jZMbWPqUVHn8Pq7fvwEE/oJ3aW71ahZhq/aeqRLi7qI7Nox/ZA== 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 DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) by GVXPR04MB9760.eurprd04.prod.outlook.com (2603:10a6:150:114::9) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6745.34; Fri, 8 Sep 2023 12:54:04 +0000 Received: from DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::f749:b27f:2187:6654]) by DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::f749:b27f:2187:6654%6]) with mapi id 15.20.6768.029; Fri, 8 Sep 2023 12:54:04 +0000 Message-ID: <806a32b4-d0b8-fcba-bfdf-4e7f4d587172@suse.com> Date: Fri, 8 Sep 2023 14:54:02 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.15.0 Subject: [PATCH 2/4] x86: make code size vs CPU arch checking consistent Content-Language: en-US To: Binutils Cc: "H.J. Lu" References: <830bde4f-c60e-4ab4-2ca0-86381408254f@suse.com> In-Reply-To: <830bde4f-c60e-4ab4-2ca0-86381408254f@suse.com> X-ClientProxiedBy: FR2P281CA0122.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:9d::11) To DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|GVXPR04MB9760:EE_ X-MS-Office365-Filtering-Correlation-Id: 032c00e7-c3b8-46d8-7581-08dbb06aae81 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: OMl3ukq7yn6miQxrVFpxIvIS5P3sUBONQfFXXWHEMIH3auhRfEzLDBYBOC+gFu+nhEgd6LpvCdIClTZ+RbcxLmG00jP5gb60HGqorwh2t3/UzQJcYreCxt6nAkjN45gzJsqZIZIR+dgviW9hOD7pe1lrtXJ4AxaBGuQW3UCaa90DzAm4wMOgmOzz66OGPEjjaB/OaElhGY0Qsz2oHoToLDUkQXVZ5HlMhNJjVHM1moimPppcLgpnjADFzcGwBmQrqHt+SnHIrSu+ulQsE9E2o9RKRmy8avaVVkX1txMIKvDbUUtMVcSiSU0xuQXZCQ2sb8nn+MXalekOWbdk1Xqwij57ezyzf8HIg1FFGgLICyjMC7Tp4XBK7bH+26RkEwSpBonQg3msOyGilT18PHsQjHmG1+VH/MFOgYcvAZPV4sPJUKC9u3YKLGJMR5gKHLBi9VSFYsdi/jjiNUoY6f5DFU+PDuMJccBOq802lqXLgYnzHw9kTYYj+Ov00bNGwtbtxLma9cfn5rwohIDt3zvzVgeunclRM3jvLT/XsZ34EBNk3+hNJRiC/2vDUQFF5po7+8pWSpLZ/u8019o3aYeQQMJ4Kf/ZWaEa2d4fK5+ZLIL41oXhIxdbUWbfVlvYkPzbgz1Tz0WQNy4FLzP0cLkP+A== 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)(346002)(39860400002)(136003)(396003)(376002)(366004)(186009)(451199024)(1800799009)(316002)(6486002)(6506007)(6512007)(83380400001)(478600001)(2906002)(66476007)(66946007)(41300700001)(6916009)(4326008)(8936002)(8676002)(66556008)(5660300002)(2616005)(26005)(36756003)(38100700002)(31696002)(86362001)(31686004)(45980500001)(43740500002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?QSMudMabkkO6Iulk6A9h3zaF8+Oe?= =?utf-8?q?5lWO3rFS9oejxGrtmTuA78WdhGteXKxoM9Vj41xjEc0agKp3kzLhG3CY3iikKcWJ8?= =?utf-8?q?UKxBzonC5XsgkQJsKxvVRx/tkFjCBhRvH1xlZFh5dqFuSJg8ZGEHGMgwLQrvzGm3c?= =?utf-8?q?Y/OVWGZPeGegOFH4AyZ1YT7jlx/xAJ/+uAn4WtLzcmlDo6JiHVkd/fjoOg0zQqx8m?= =?utf-8?q?DLV8DVQ/TCbdLq1UnBTHgUZE79HM43yHk9eHt+sqHtI4cdwOk0/htDltL45C2RVY0?= =?utf-8?q?8LZquOWQoo0SWkuIO40/+2vSgcCNDJbpyWbQwdtYuqRHHZ7JBFMbJ4i7Xk3drdtEJ?= =?utf-8?q?3+ye5o7v9VQ3X1RS8GKZjNORAr0mRBNjHrYZc/DsIrgVmO33A6GdBqLjedrZEnYnJ?= =?utf-8?q?rcIEXzzdIpAjeI48t4CuTgLe7TuO6hy1dCuXA0YHN0o92B6YzWtSjPPFms3RT8jLz?= =?utf-8?q?EDhuqlBHQVRJRYvx2ME0isBlypti4IphdATOt/bpJa8yBvblgtBIs9VTWIU3Tqge6?= =?utf-8?q?vturqWC839nTbbPe96CsOS/QIXPameDUwpnvE4ET81UBaNMJD8+EG/6hmFaGvfGUW?= =?utf-8?q?wu5khS3eWyGsJSoguJ3yAMj+55eKTQ0/Wpd08hu6IdHC7uOR0/VPyUzOlIQGVm+a/?= =?utf-8?q?kCi3nluo27+RdpuGGTC7RF5B83OtJFcBrBJrxLR6hW0jNntgvTeCAb56s/ehHXkfq?= =?utf-8?q?UkhwEj0kJUWNsL49RKJu6ssntSQIOovE5/lGZj2Is6to3UvCCJoOskUO7H8icAQj6?= =?utf-8?q?3u58m03eVAn55HjnRqoWsP8kHGdlGoJl7oh5dOMKYTQmzlK3XInZP+gWa4Emsxv6x?= =?utf-8?q?ntsIjLWGj1qq8XE/loLiRwVy3hkI7jLqzfU7vp22I2KLbv7jTZcsXB1YjY5MGKxVp?= =?utf-8?q?pCoMKde3ED7F/LPU7Hc5Bk769ONWcNZ1dzfG84VZffIGarh0yOHPE86C5XbbnScSi?= =?utf-8?q?KUbmHpMY7FVtR/fBV5jEGjoAfegaXZXU+tJdYnhg2q+DlIkvU2rfTmSXOQIxhdltM?= =?utf-8?q?GzilgXcWj3WDdBhCGBI8GgFYGOvzaoU0YmeJAPXr6rkzvWRRffl2H2WD8gHyeIxuZ?= =?utf-8?q?aKWgFDfJAtgTJ6yRQ3RPewKQ++a3Xsz3QEbORa0x68fN6bD8MylD1op8UX1teOUDY?= =?utf-8?q?x9PnZgqpyYcENlzR1YuwYpPdzBJliCD+ayIcU3BM9GFESgdjAVrWsvniYds0nXqhV?= =?utf-8?q?Ary1hvKXyB5PFJtp5w0rMfwyP5+z2UlHNsQ82M49J0hLaOGdRabl90u4idXA0B/r0?= =?utf-8?q?bWRq8ebVymFKV7vUaw8pU6wuhRzdbv0/AWwYwfP0reUqtwp7uiC08kQaylkZiaR7G?= =?utf-8?q?QDkB6bQrzNYefWw3ikMALzKMoze28yDnlFJ3qpL7UDAMxNyqRzk+DvF4gBOvD8Z9g?= =?utf-8?q?tnmHFPU/0NaVDQfghQuyUOaJ/3KrPOSQQmz56FcNWU69muIh2EqGyVRRovfy5GV/s?= =?utf-8?q?8qyRombHhUaG564iJonDUxPfTEc7gw3YfkLcq22SdEe91srVib8LMkuWRWZp9rojy?= =?utf-8?q?GIH0iOXqhh3q?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 032c00e7-c3b8-46d8-7581-08dbb06aae81 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 08 Sep 2023 12:54:04.4808 (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: 28Ovv7nRSpaZq+MHol8J69EfF2S9igCy2jwGfIpJPBhmckchAFmG4ZJTIbfoiOnZtnfTk8FNX1UvvrqVL7x6PQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: GVXPR04MB9760 X-Spam-Status: No, score=-3026.9 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.30 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: INBOX X-GMAIL-THRID: 1776474072976163492 X-GMAIL-MSGID: 1776474072976163492 While update_code_flag() checks for LM / i386, set_cpu_arch() so far didn't, allowing e.g. 64-bit code to be emitted after ".arch generic32". Oddly enough a few of our testcases actually exhibit bad behavior (and hence need minor adjustments). --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -2928,6 +2928,24 @@ set_cpu_arch (int dummy ATTRIBUTE_UNUSED { check_cpu_arch_compatible (string, cpu_arch[j].enable); + if (flag_code == CODE_64BIT && !cpu_arch[j].enable.bitfield.cpulm ) + { + as_bad (_("64bit mode not supported on `%s'."), + cpu_arch[j].name); + (void) restore_line_pointer (e); + ignore_rest_of_line (); + return; + } + + if (flag_code == CODE_32BIT && !cpu_arch[j].enable.bitfield.cpui386) + { + as_bad (_("32bit mode not supported on `%s'."), + cpu_arch[j].name); + (void) restore_line_pointer (e); + ignore_rest_of_line (); + return; + } + cpu_arch_name = cpu_arch[j].name; free (cpu_sub_arch_name); cpu_sub_arch_name = NULL; --- a/gas/testsuite/gas/i386/287.s +++ b/gas/testsuite/gas/i386/287.s @@ -1,9 +1,9 @@ # Check 287-only instructions. .text + .code16 .arch i286 .arch .287 - .code16 _8087: fnsetpm frstpm --- a/gas/testsuite/gas/i386/8087.s +++ b/gas/testsuite/gas/i386/8087.s @@ -1,9 +1,9 @@ # Check 8087-only instructions. .text + .code16 .arch i8086 .arch .8087 - .code16 _8087: fdisi feni --- a/gas/testsuite/gas/i386/att-regs.s +++ b/gas/testsuite/gas/i386/att-regs.s @@ -1,8 +1,8 @@ .text .att_syntax noprefix - .arch i286 .code16 + .arch i286 mov eax, ax ; add al, (bx,si) mov rax, ax ; add al, (bx,si) mov axl, ax ; add al, (bx,si) --- a/gas/testsuite/gas/i386/intel-regs.s +++ b/gas/testsuite/gas/i386/intel-regs.s @@ -3,8 +3,8 @@ mov eax, tmm1 - .arch i286 .code16 + .arch i286 mov ax, eax ; add [bx+si], al mov ax, rax ; add [bx+si], al mov ax, axl ; add [bx+si], al --- a/gas/testsuite/gas/i386/inval-16.l +++ b/gas/testsuite/gas/i386/inval-16.l @@ -10,7 +10,7 @@ GAS LISTING .* [ ]*1[ ]+\.text -[ ]*2[ ]+\.arch i186; \.code16 +[ ]*2[ ]+\.code16; \.arch i186 [ ]*3[ ]+vmovapd %xmm0,%xmm1 [ ]*4[ ]+vaddsd %xmm4, %xmm5, %xmm6\{%k7\} [ ]*5[ ]+vfrczpd %xmm7,%xmm7 --- a/gas/testsuite/gas/i386/inval-16.s +++ b/gas/testsuite/gas/i386/inval-16.s @@ -1,5 +1,5 @@ .text - .arch i186; .code16 + .code16; .arch i186 vmovapd %xmm0,%xmm1 vaddsd %xmm4, %xmm5, %xmm6{%k7} vfrczpd %xmm7,%xmm7 --- a/gas/testsuite/gas/i386/nops-5.s +++ b/gas/testsuite/gas/i386/nops-5.s @@ -1,4 +1,5 @@ .text + .code32 .arch i386 i386: movsbl %al,%esi