From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-DB5-obe.outbound.protection.outlook.com (mail-db5eur01on2042.outbound.protection.outlook.com [40.107.15.42]) by sourceware.org (Postfix) with ESMTPS id 488F63858298 for ; Fri, 27 Oct 2023 13:36:40 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 488F63858298 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 488F63858298 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=40.107.15.42 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1698413801; cv=pass; b=Jee+Q7SSsqMIDm1F0+GIp3F6GJsyGnFaJ6D4TK38d0vVt8NQFwBZAnVAqjS8qtxuy6SnAnKlTmLHvyHS37iGkLRG/fBmAJwTTofoS7246BcWy9WEJos9joBTmnwLKl9u4lO5hATqfhpsLOjb0vPcDkuLzIrg7tsefAeJIiff8eg= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1698413801; c=relaxed/simple; bh=tSv6AZ3A2f/swFN5Nj3YYJ+oEDj4RtQLQevgMwW5uFw=; h=DKIM-Signature:Message-ID:Date:Subject:To:From:MIME-Version; b=wEI6uY4KXa68aTzpscjlCrey53LuEPj4gCY0hxhVJfuohK+YOoXqwUPwjHmtH6Kf9ylNIgVf1BynM4l6cwD82ibkIswjDxrEI0KVQTv3tA0KoHxSK3pag1F2MtIUrNa6NEseZ+mfSh1wJXwiuzM5ESPnKyqN2UOhyWSjYoJPTyE= ARC-Authentication-Results: i=2; server2.sourceware.org ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=M1BWo5J4p3oJZ5g+JNNOiyBb5CLdtfn80QAPGKBN0xhno417BdyMfdB95o/JNhHYmZcLA2Ligvy5/Jtf+jwlD2yjiXXclmQ8OJysdtRydFH4XCAIkOmxvSp+9uyUmYfaMSyi2BHb4b0+9x2w2ZD5EP8Qs/EjZCm0Otba1siTxkC06M7rwV3GZ8rSnVcxaQ9qhBMv9VDUysnug8LGyXhZUnh8ofQHXyPce9mMCdaW6AkWaConq+pl7/PmgF9qeCJQaiiE4erJdh2yc0ggVh8I9PBQaMMqcAMm0eRgJw/uhgzeducl0i/XajrMz74PmLTUQlNky+TvnfIaZGWnfhzODA== 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=+g53XV9hB0KCh9e2CTmujs90ip2pbSAwS6CJXV7jOPw=; b=GebdBWvKVvwKkgXeqpzA+5R1SxMAqYvIOItdBJZcmjCK4YmqLbshxtojKQJhBExwKyAd3hiBWHFDkXPuYjWFHoPfIMDfqWny7JeIevwd16YFC1Dejo/HGxIGzE68YP39VczSnoTTGa6Y2JBbj4eQkh4MS+auNdzx+fNsgK/pr9Mhs14ZESKLFjrMWwnoKIcBAx2Iy16jo9UY8D7qLVkAQovFWkSNBolZvnhZv1LfscZaZRzRp5UwqJ7buale3/NRsoEJfJ6LoliQNTdb+OsMlMY/WDy88vNr0+uy08Y3pTEDiiMWprGgUo3TNcx1zmh4ADHupTWh58nGnxg83RUSwQ== 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=+g53XV9hB0KCh9e2CTmujs90ip2pbSAwS6CJXV7jOPw=; b=yI72E+fGbaUeilfU+r5erhVEkd/4imlayvDmBHvpomoaCkgZ57+7S0CVoPG5JJ9r2OPlAxvuNGB6AmeuWFSg8Nps9a8LwMmLB9yC9sdSToUSjvsz/3Pnr5FA5eqIYv2EynKyXXRZR90nYDi3WIfUqVOhddevf9aG5kPoq9XZfYb1naZNhNiVBFK3L24VeRsVIMheoVK0QOzZxoVE/lQPfPswkPnrG7qbVTpWixkPxr0ZFjq4mizylBP11Qz2iLMc0njnFMSCKdqtUT0g+xjueK7EAGM2BISDj7a2iJqtZ4Uk0dfIybSFXMfy21ipcpVxKeBVU1JQkon6Q2S6wFzFgw== 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 PR3PR04MB7322.eurprd04.prod.outlook.com (2603:10a6:102:8e::10) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6933.11; Fri, 27 Oct 2023 13:36:38 +0000 Received: from DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::d924:b650:a2ad:7b25]) by DU2PR04MB8790.eurprd04.prod.outlook.com ([fe80::d924:b650:a2ad:7b25%3]) with mapi id 15.20.6954.008; Fri, 27 Oct 2023 13:36:37 +0000 Message-ID: <78d5c172-399d-9224-6241-bd2d4c6fc884@suse.com> Date: Fri, 27 Oct 2023 15:36:35 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:102.0) Gecko/20100101 Thunderbird/102.15.1 Subject: Re: [PATCH][v5] Support Intel USER_MSR Content-Language: en-US To: "Hu, Lin1" Cc: hongjiu.lu@intel.com, binutils@sourceware.org References: <2b4a78d3-a4e1-9fc3-c143-63bef46b276d@suse.com> <20231027090044.481533-1-lin1.hu@intel.com> From: Jan Beulich In-Reply-To: <20231027090044.481533-1-lin1.hu@intel.com> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 7bit X-ClientProxiedBy: FR3P281CA0179.DEUP281.PROD.OUTLOOK.COM (2603:10a6:d10:a0::16) To DU2PR04MB8790.eurprd04.prod.outlook.com (2603:10a6:10:2e1::23) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: DU2PR04MB8790:EE_|PR3PR04MB7322:EE_ X-MS-Office365-Filtering-Correlation-Id: 4a41d1bd-d050-4f90-44d3-08dbd6f1bea8 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: YZ980nEdoMJ/KthANhjs/dyHCtjMSVbmGKnWP6wBCXjURdis7Ay0Sc2qDOJi8SiqLuSXXqT9PQg7yi3Ifxn56lR2IEvIbgHdLJWF7MW/hfFDY62LduCEfNwJVeXJJ6QIUBvG+db7fQM0HI2pFS+GOJDqshlko8aAdsq0r5EVlDkdpG8yUr4UzrqzQLqRPQ25eSCem14ToAMGL5TBPWRE5wJ+0tERVVTLJ018ft9qkdnA9gix8kVDo+Syy2ymUW6pYtBqAm5MjIpKxnPr+JDRvLjt7X1BqvvbFqwBCnv5sE0CGh/0Jz2xwmHyfxDdNLa+nru8I034iLl2OT1VgCqsX+7Cz04+6RV2aIPH2RCLniYOP2U4P0NqWoDVBo2I8GAkq9nuPEzLSNnzEEx39qLtzI0b1Ni2hDpt03ZXFupJVyokwWVUBHc9df9ehKsZBxrzDxc4ie6hiExPghlEreuGBUaYxMLfQ++H1r8FrUMJ7sdwN24b2LNsJ4mi2Q42rcMzhrrnvjmfUgzfYmfCIJk2Jwh/TPgWRO67P5ftmfmM6Vs9pKZU/eofX73zPUQsTOdphIrapvE3zXWs5iTTbl9DibpiYCHJizHDVzxz5AGFT0rKXz6sFEtEI3iEb81AGsvvoAYQUzO05fuiG/qIqObmbw== 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)(366004)(346002)(376002)(39860400002)(396003)(136003)(230922051799003)(64100799003)(186009)(1800799009)(451199024)(31686004)(2906002)(26005)(6512007)(53546011)(38100700002)(36756003)(31696002)(86362001)(6916009)(8676002)(83380400001)(6486002)(2616005)(6506007)(8936002)(316002)(4326008)(478600001)(66476007)(66946007)(5660300002)(66556008)(41300700001)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?ZGtzYTJRUDFPOHdoUmtzeGRmK251cWRlYTNRUzJ6Z0FMdDhkcXkvOGNHVGdX?= =?utf-8?B?RHJ4dFVZbWVnbGp1eUxZenpMWW9uNHVhb2grWDJJNUJrOWpickM3OUovaWFT?= =?utf-8?B?SDFjNUk3VlBWbkk5dFBKVVRBbkdHU2YrbDFFQmQvelVVQk8zWHU5K245ejZh?= =?utf-8?B?MGFnNWM4UDNrTEhFdjdRczJJcUhZdFdVdlNNdXJRWEt0eW1hRmU3cGVTUkRy?= =?utf-8?B?bWkwV1hvbFZmZFZKMGpkanlyd0oyd3U4dU9kS3VBRTFiZVdGZzVYaDVsc3p6?= =?utf-8?B?amVMdERkbkpMVUNmejhlckVJNmN6cXJJRlJBWkF2SS85SXptK3JER1BRTnJZ?= =?utf-8?B?bmZBTTdQVldONlNuKzcyT3gyaXBvbWxMOU1aZU51UHk3akU4NTMxemFtVFhi?= =?utf-8?B?THZWUi9UdnhaRWtQR0kwTkVrWURQQWFlZ2FpV2lOTzlnRE93MHBRcVFPd245?= =?utf-8?B?TVk4S3Nhd2lBMmRJRk5SQkN4TjlQclQvWGFTUmkvYXZhSW90VXY3ZmpvTTFX?= =?utf-8?B?WmJaVWNDZkdzb3lQUzVnNzkySytIcEtDUm1aVHpmUGNncWpHRWF5SjhyQnp6?= =?utf-8?B?eXd0MGhxQVg2TXFEcGZsQ0oweVVnYnBuNWZMTkt1MklxSm1WRm44V3ZsWHZ6?= =?utf-8?B?TmZPekh0QllVV2ZtQ0E0cEFUN01MS3ZGWEhzTEpDdVU2eStzWWlrWDBvUkdD?= =?utf-8?B?Z1g4Rk8ySFpYRjFPR0pmOWlPU1pSaWNjV3EvZzg0QUt5eWY0Ymk0d3U1Zkw2?= =?utf-8?B?Y3FmZ3lDVXJMQ1Vmdm5LR2RWRnRmUFE5aEo3eE9KTmNoajVPcFhXTHV1ZlJr?= =?utf-8?B?dnZwZjhKakJNekFjYjY3TjJtb1BXYlVUeUdSS2ttdERNRW5LN1JhRWNJT2lD?= =?utf-8?B?cS9RaWtjcE81K1NZeXEyVExkanFHb0hKSVJsSWtrR2Iwd0txWStaVHZYcUtT?= =?utf-8?B?MDNEQTBNMHFqeEx1cFU5UGJmUlFrSWNJNnp1YmRSbldjemozTmoxSWltUXdF?= =?utf-8?B?Q3dHQStHZDQzOCtvTmR1YllpUENwYkFqcDRmWmVmalQ2WnFwRUhqbFlWR01a?= =?utf-8?B?aEo5aXdKeWplZDNXRTVhK3krcmpYOStvNDB5eVlXVTdaTHpYZ0hmM1p4d0tB?= =?utf-8?B?Q2FoWm45cnlUSk5Bd2NoaXE2d0VTNjhpYmczTlZWZEw3YU5WTDBqa1BWd0VX?= =?utf-8?B?RHJZQVJkbjlQRlBUdEdsVmRDNmNyd0NPNWNtT1liUWhFcEtkQnJVblBUQXhx?= =?utf-8?B?QUo0SEVpMnRWdjBqWkJhS1pxdUhMSUt3cTc4TU5JQnZ0MUFNeUJpc2dROUpx?= =?utf-8?B?TG13b1MrL2wzNkdtZUNOQWVUSDhGMkdxQVI2RHE1N2Z2NGNGa3IvdlFIaEV2?= =?utf-8?B?a21EbW9KdVZVUlJhZW1OSWNRQXFnTHE1TENpcEFyd25EM1J1Uk4wZ1RRVGRw?= =?utf-8?B?blBMZmpHWnhFbnl4QitMOEpraXd0bzRMTTgxV25qL3BSUk5rOXVnSWhXY25j?= =?utf-8?B?SmZiYXIyZytZejdWRzhHajYvVkdaUEg4cHNKRG9ERHhuWDQxS1lBeEJzOHl1?= =?utf-8?B?Qjg2VmxuZVhRT1JiS3BNcXZmclpEVnEvbG9URmZNSVhsaVB0V1A4ZEo1UXlP?= =?utf-8?B?WmFieVJRRmcwbGx4aG9OME1kRlRFeVFUTHkwYjJENThUMEtsL3F0TVJlUWZv?= =?utf-8?B?U3lKV0JIUDBYY051bFpLVzkyR2tZRmxWK3BYUVZlKzhuR0I4eGVrTzhOdWJQ?= =?utf-8?B?bWlFZDhGZG42Z1BveFladVhoeFJHN1d2MEh1djVuQmZCTDlVSGpsNDl3TUlu?= =?utf-8?B?a1lEYVh4VFZ2czJEdnV2L2RjTkFxMVJtc3MzdUlaNGUyd29KbEVCRjlReGxR?= =?utf-8?B?L1dMQThxRStHV0pYNTRWSDZudy8yK3FmRUZnV0RaRUd1M3hHRHBtOXViQ1py?= =?utf-8?B?ZWdIS1RibFpwQ0pkbHA4NXpvaDcxcDM4QU41VVIxV3NwU0xEMCt3RWc0RTBC?= =?utf-8?B?NUg3dTIxVytCOFpidzF2cVcrcXpHQWVrQ3hucllOd0UyQ1VKZm5kREZOTC8v?= =?utf-8?B?c2ZkcjVxN3kxU08rNXdXUUlRT1RrbFVhVHVJQXhSaTl1N1lxNXBEeXIvSXZ1?= =?utf-8?Q?lBCGZ02A8Ywup8mpg61tZpIYZ?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4a41d1bd-d050-4f90-44d3-08dbd6f1bea8 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8790.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Oct 2023 13:36:37.8196 (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: CjxDUVOco5ZCVF5Kf+eCtAtqU3TnTYaDBi49bbe+wKqqp7Kx/1BGu0AwVbouliLelo6r401lAC7D5dAYFLQowg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PR3PR04MB7322 X-Spam-Status: No, score=-3028.4 required=5.0 tests=BAYES_00,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,NICE_REPLY_A,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: On 27.10.2023 11:00, Hu, Lin1 wrote: > @@ -2504,7 +2505,10 @@ smallest_imm_type (offsetT num) > t.bitfield.imm8 = 1; > t.bitfield.imm8s = 1; > t.bitfield.imm16 = 1; > - t.bitfield.imm32 = 1; > + if (flag_code != CODE_64BIT) > + t.bitfield.imm32 = 1; > + else if (fits_in_unsigned_long (num)) > + t.bitfield.imm32 = 1; > t.bitfield.imm32s = 1; > } if (flag_code != CODE_64BIT || fits_in_unsigned_long (num)) t.bitfield.imm32 = 1; would be more clear imo (same further down then). > @@ -5158,6 +5169,7 @@ md_assemble (char *line) > const char *end, *pass1_mnem = NULL; > enum i386_error pass1_err = 0; > const insn_template *t; > + int op; I know there are lots of example like this, but this new variable would benefit from being "unsigned int" and from being declared in the narrow- most scope possible. Then again, why don't you re-use j below? > @@ -5232,8 +5244,23 @@ md_assemble (char *line) > && (t->mnem_off == MN_extrq || t->mnem_off == MN_insertq)) > swap_2_operands (0, 1); Did you, btw, consider extending this to cater for UWRMSR as well, in place of the new construct at the bottom of match_template()? (I'm not saying it needs to be that way; if you decide to leave things as is, I may later see about folding both.) > + /* For USER_MSR instructions, imm32 stands for the name of an model specific > + register (MSR). So we need to avoid set i.types[op].bitfield.imm32 = 0, > + when guess_suffix == QWORD_MNEM_SUFFIX. For time-saving reasons, > + we specialize the USER_MSR and make only the necessary judgments. */ This comment wants to move ... > if (i.imm_operands) > - optimize_imm (); > + { > + if (!is_cpu(current_templates->start, CpuUSER_MSR)) ... right above this if(). I'd also like to suggest rewording, as emphasis ought to be on 32-bit immediates normally being imm32s for 64-bit operand- size insns. Mentioning guess_suffix == QWORD_MNEM_SUFFIX would make sense only when also saying what function this is talking about. Overall maybe: "For USER_MSR instructions, imm32 stands for the name of an model specific register (MSR). That's an unsigned quantity, whereas all other insns with 32-bit immediate and 64-bit operand size use sign-extended immediates (imm32s). Therefore these insns are special-cased, bypassing the normal handling of immediates here." > + optimize_imm (); > + else > + { > + for (op = i.operands; --op >= 0;) To accommodate the request further up this will need adjustment. It's not quite clear anyway why the loop here works downwards. Unless you think any of the remaining adjustment requests are unclear or undesirable, okay with those adjustments. Jan