From patchwork Fri Feb 2 10:25:59 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 195780 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7301:9bc1:b0:106:209c:c626 with SMTP id op1csp332093dyc; Fri, 2 Feb 2024 02:27:12 -0800 (PST) X-Google-Smtp-Source: AGHT+IHOepQ9CtRC56dtoCVjbHwmlLzzPf0wTQJI7ekRj9NMUtsekeBV//OXOpzkudiC5js/PjQp X-Received: by 2002:a67:b109:0:b0:46c:aace:d0d8 with SMTP id w9-20020a67b109000000b0046caaced0d8mr6811646vsl.18.1706869632406; Fri, 02 Feb 2024 02:27:12 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1706869632; cv=pass; d=google.com; s=arc-20160816; b=i0cy9ud31CCJbKGFF3RMa6D+PtmsLLAjMD18+PS5Kty7TOHMsm8TScNj4ysoN9Oa3W E3tj2QXGjfGMUFryrfjYMKDLgtof/iKMjoPt1Y83NFA9DP+RO4CyOPr2Jv0hOUiNF2vv POu46Jiorv7PcUYhj/cngbuD0tCGNKY9oo6psibY72t3tH4dofI9y2fLxbLmd/oYwfUO CZP8OoVsXSojUmKcoWDs6UYkJyboGfTU9OEdHHa6XBC/Jp7ltsLFCS8R5lmaNXY8N/pw jXjF3RgHm5zleRxcWaM4ZYLq7yBFOhu0iprEL1OZSBtNQFGc3CoRHLcnLjEcrYq32KsT ZH6g== ARC-Message-Signature: i=2; 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:content-transfer-encoding :autocrypt:subject:from:cc:to:content-language:user-agent :mime-version:date:message-id:dkim-signature:arc-filter:dmarc-filter :delivered-to; bh=TwnSKtMHvR6W1urnvuxKNOwJmpGsCc16uuIdQOarZHY=; fh=X976cbRU2X4rfZlFeLY4QZnrpCowoS6orYpcDwyZejo=; b=nMaZ7IV4Gyiwh2k/bT1ci+IQB9ww94t8Ma9V2vlQSvb1gwtHB5/KaaN7C4U+AMx5dx BLP7j/9R7iAyc3crK7PwIQVIFv7nzrVVTWwlAjI2TNJEHHE/S9mCxR/2Fvkym9C2l2Ft dfLYooq+E6ngVkjo5zJe2lp0+LDEeKkKV8Og1AhJ5D/QhKE9/ekClFNuCmSTTo61EY9C h5w8+/P0wZZjf+b+BXo+iJFkDyqPL1cWfrndjXuYbjrFkFd1zaW1h6gNSf/G2C7p/1kr lfkbKjmAR05liZdF6EC+mGooULR2MCnNwZ9GWaTftm2oH/GPr3QkWci0171XhDTh8mzZ QBOQ==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@suse.com header.s=google header.b=J8V6XGNb; arc=pass (i=1); 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com X-Forwarded-Encrypted: i=1; AJvYcCUhsUTf1/0T1RH1akOoRrNSzU/sS5XY+qqWub1esJp5NPZI8XOFc8mxJU0Ycrm96Cl+38bu/9EYDkfhd+8heSJwoqE3rQ== Received: from server2.sourceware.org (server2.sourceware.org. [8.43.85.97]) by mx.google.com with ESMTPS id s3-20020a05621412c300b0068c6fd89649si1692741qvv.10.2024.02.02.02.27.12 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 02 Feb 2024 02:27:12 -0800 (PST) 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=@suse.com header.s=google header.b=J8V6XGNb; arc=pass (i=1); 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=QUARANTINE sp=QUARANTINE dis=NONE) header.from=suse.com Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 1ECA63857B8D for ; Fri, 2 Feb 2024 10:27:12 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mail-ed1-x529.google.com (mail-ed1-x529.google.com [IPv6:2a00:1450:4864:20::529]) by sourceware.org (Postfix) with ESMTPS id D571A3857C51 for ; Fri, 2 Feb 2024 10:26:01 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org D571A3857C51 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 D571A3857C51 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::529 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1706869567; cv=none; b=dvKLSQbModDxlJUFWdZ8tIrb+mwai+OEj4/hziphD7fbOMvNkMctkFD80PmSrRzqOfbBvaFsDJrmW8SmLqIdOXapaPJyX0W2UJWt1SnFw9uaExWzn097xWA0G8mBP09uVmC5vxLsIaCYOU0AtJS/7Fw3doV3HxHeL9DDDl1bPcc= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1706869567; c=relaxed/simple; bh=+rWDXgXZNSExkTlUam3wRiJRNJGGQZdIsMzase4ogQU=; h=DKIM-Signature:Message-ID:Date:MIME-Version:To:From:Subject; b=oM6MtxZZR0dSO2/ACPAfToOV4kD/ZK6AwrpDGw8qJKoVwxw8qektZ1pAfxzZhgMWkt6vnY9XOHukFaALXwarTRj7sfRkpD7vWxkIqR/7+pqSiAgHlhJrZca7cgygKuCs/h0C8vKxTvIgiwRzIRWS8k4Ug5HizzW7W8bu7pHFA24= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-ed1-x529.google.com with SMTP id 4fb4d7f45d1cf-55f0367b15fso2537493a12.0 for ; Fri, 02 Feb 2024 02:26:01 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1706869560; x=1707474360; darn=sourceware.org; h=content-transfer-encoding:autocrypt:subject:from:cc:to :content-language:user-agent:mime-version:date:message-id:from:to:cc :subject:date:message-id:reply-to; bh=TwnSKtMHvR6W1urnvuxKNOwJmpGsCc16uuIdQOarZHY=; b=J8V6XGNbAzGf7UXEmW3JMt8EyYnAhZpQkD6YajHwmYRGqu5K038ZaHPew1zdlvc1SH Js9QyMsS/tajRY2gn0I85HfuYYsY+x+Qg05G6Y9tT2UVOX0DqC64YfaUAH+EK5sxIRzK DRk0Dw0zETasRXg5cuMAX379Qyx1uLFuZHuqBVdtaQ4tFad7Va54OKKtrtKHjRed4ySs i/1WHwqoUlCF7QZa2Fcwshjm49zzQGYYzJ8VTHhSEqcs642vIFCCEeJxpjk3jicb3oDW fMj2XRLXPKxEJPK3sfkFyyObt6DmX9aoVoy5Zux9xlKczdoLDk/PyOZWatmOe6ksZXnN NrVA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1706869560; x=1707474360; h=content-transfer-encoding:autocrypt:subject:from:cc:to :content-language:user-agent:mime-version:date:message-id :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=TwnSKtMHvR6W1urnvuxKNOwJmpGsCc16uuIdQOarZHY=; b=d7Pu4068jFpkqc4foZ2du1eVs7uOsA0GAyk9M4wonbk2y5sPETiSjAJES8560rs21v 3tnSKsT3zcwyAADp+Y4rm8jlCNu9issB3R4+JmXfa/2nO8laZlVDR6eeHjKY5fuve7+I uVdvd8ROCsFsHfz+8klMU3lbgZLvAwrWii0Ndwflos1/impFyulPOVWTS21jo/Yf0o/k VTUiQHV3fPvYqKbIvvYITWQZdSsbfcppgKLtC4XwaadsmdZeskNg1zFWlk2lgxpm5Vbx 0z30H/8/sVSV+xB/ftYQzNlfhhbVucFJgYg1p71lQRT32DK+G/ZrXh4Oe7jcbp0s7yOw l73w== X-Gm-Message-State: AOJu0YxHfvxP8FIEwX5akZ7pvKZ0czCbQPwR4sFDt2oi/amxiD53kF7j tKzTCsUi4sYQ1PFFKBgUzxDN2xwmvvf2hS/10GAfERUFVkPgxANBPZCx3uogZmIHDqb3AARF75A = X-Received: by 2002:a17:907:3602:b0:a35:6c2f:f0e7 with SMTP id bk2-20020a170907360200b00a356c2ff0e7mr1410816ejc.74.1706869560545; Fri, 02 Feb 2024 02:26:00 -0800 (PST) X-Forwarded-Encrypted: i=0; AJvYcCVl8DtVQGW7DJEayn66RhpzB5fbnQakoCVdhCfgP/IS3V88RoJm2kF9UwWYUWpkR0sW6QISOMdg4GV+o3qzqmSX3M9JH3qk Received: from [10.156.60.236] (ip-037-024-206-209.um08.pools.vodafone-ip.de. [37.24.206.209]) by smtp.gmail.com with ESMTPSA id vt4-20020a170907a60400b00a35cf6727c1sm728777ejc.105.2024.02.02.02.26.00 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 02 Feb 2024 02:26:00 -0800 (PST) Message-ID: <2384ac80-6530-4097-8d60-d37336aaa341@suse.com> Date: Fri, 2 Feb 2024 11:25:59 +0100 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Content-Language: en-US To: Binutils Cc: "H.J. Lu" , Indu Bhagat From: Jan Beulich Subject: [PATCH] x86: change type of Dwarf2 register numbers in register table Autocrypt: addr=jbeulich@suse.com; keydata= xsDiBFk3nEQRBADAEaSw6zC/EJkiwGPXbWtPxl2xCdSoeepS07jW8UgcHNurfHvUzogEq5xk hu507c3BarVjyWCJOylMNR98Yd8VqD9UfmX0Hb8/BrA+Hl6/DB/eqGptrf4BSRwcZQM32aZK 7Pj2XbGWIUrZrd70x1eAP9QE3P79Y2oLrsCgbZJfEwCgvz9JjGmQqQkRiTVzlZVCJYcyGGsD /0tbFCzD2h20ahe8rC1gbb3K3qk+LpBtvjBu1RY9drYk0NymiGbJWZgab6t1jM7sk2vuf0Py O9Hf9XBmK0uE9IgMaiCpc32XV9oASz6UJebwkX+zF2jG5I1BfnO9g7KlotcA/v5ClMjgo6Gl MDY4HxoSRu3i1cqqSDtVlt+AOVBJBACrZcnHAUSuCXBPy0jOlBhxPqRWv6ND4c9PH1xjQ3NP nxJuMBS8rnNg22uyfAgmBKNLpLgAGVRMZGaGoJObGf72s6TeIqKJo/LtggAS9qAUiuKVnygo 3wjfkS9A3DRO+SpU7JqWdsveeIQyeyEJ/8PTowmSQLakF+3fote9ybzd880fSmFuIEJldWxp Y2ggPGpiZXVsaWNoQHN1c2UuY29tPsJgBBMRAgAgBQJZN5xEAhsDBgsJCAcDAgQVAggDBBYC AwECHgECF4AACgkQoDSui/t3IH4J+wCfQ5jHdEjCRHj23O/5ttg9r9OIruwAn3103WUITZee e7Sbg12UgcQ5lv7SzsFNBFk3nEQQCACCuTjCjFOUdi5Nm244F+78kLghRcin/awv+IrTcIWF hUpSs1Y91iQQ7KItirz5uwCPlwejSJDQJLIS+QtJHaXDXeV6NI0Uef1hP20+y8qydDiVkv6l IreXjTb7DvksRgJNvCkWtYnlS3mYvQ9NzS9PhyALWbXnH6sIJd2O9lKS1Mrfq+y0IXCP10eS FFGg+Av3IQeFatkJAyju0PPthyTqxSI4lZYuJVPknzgaeuJv/2NccrPvmeDg6Coe7ZIeQ8Yj t0ARxu2xytAkkLCel1Lz1WLmwLstV30g80nkgZf/wr+/BXJW/oIvRlonUkxv+IbBM3dX2OV8 AmRv1ySWPTP7AAMFB/9PQK/VtlNUJvg8GXj9ootzrteGfVZVVT4XBJkfwBcpC/XcPzldjv+3 HYudvpdNK3lLujXeA5fLOH+Z/G9WBc5pFVSMocI71I8bT8lIAzreg0WvkWg5V2WZsUMlnDL9 mpwIGFhlbM3gfDMs7MPMu8YQRFVdUvtSpaAs8OFfGQ0ia3LGZcjA6Ik2+xcqscEJzNH+qh8V m5jjp28yZgaqTaRbg3M/+MTbMpicpZuqF4rnB0AQD12/3BNWDR6bmh+EkYSMcEIpQmBM51qM EKYTQGybRCjpnKHGOxG0rfFY1085mBDZCH5Kx0cl0HVJuQKC+dV2ZY5AqjcKwAxpE75MLFkr wkkEGBECAAkFAlk3nEQCGwwACgkQoDSui/t3IH7nnwCfcJWUDUFKdCsBH/E5d+0ZnMQi+G0A nAuWpQkjM1ASeQwSHEeAWPgskBQL X-Spam-Status: No, score=-3025.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_NONE, 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: 1789782531530706387 X-GMAIL-MSGID: 1789782531530706387 Already the %bnd registers used numbers beyond 127, and eGPR ones are all out of reach for "signed char", at least when CHAR_BITS=8. Switch to "unsigned char", covering appropriately in places where the value returned for "none" actually matters (in tc_x86_parse_to_dw2regnum() this is actually achieved by altering how X_op is set). --- I question the use of flag_code here, btw: Imo the choice ought to be tied to object format, not present assembly mode. Thoughts? --- a/gas/config/tc-i386.c +++ b/gas/config/tc-i386.c @@ -5395,10 +5395,8 @@ ginsn_opsize_prefix_p (void) static unsigned int ginsn_dw2_regnum (const reg_entry *ireg) { - /* PS: Note the data type here as int32_t, because of Dw2Inval (-1). */ - int32_t dwarf_reg = Dw2Inval; const reg_entry *temp = ireg; - unsigned int idx = 0; + unsigned int dwarf_reg = Dw2Inval, idx = 0; /* ginsn creation is available for AMD64 abi only ATM. Other flag_code are not expected. */ @@ -5441,7 +5439,7 @@ ginsn_dw2_regnum (const reg_entry *ireg) /* Sanity check - failure may indicate state corruption, bad ginsn or perhaps the i386-reg table and the current function got out of sync. */ - gas_assert (dwarf_reg >= 0); + gas_assert (dwarf_reg < Dw2Inval); return (unsigned int) dwarf_reg; } @@ -17459,14 +17457,14 @@ tc_x86_parse_to_dw2regnum (expressionS * if (exp->X_op == O_register && exp->X_add_number >= 0) { + exp->X_op = O_illegal; if ((addressT) exp->X_add_number < i386_regtab_size) { - exp->X_op = O_constant; exp->X_add_number = i386_regtab[exp->X_add_number] .dw2_regnum[flag_code >> 1]; + if (exp->X_add_number != Dw2Inval) + exp->X_op = O_constant; } - else - exp->X_op = O_illegal; } } --- a/opcodes/i386-opc.h +++ b/opcodes/i386-opc.h @@ -1051,7 +1051,7 @@ typedef struct #define RegIZ (RegIP - 1) /* FLAT is a fake segment register (Intel mode). */ #define RegFlat ((unsigned char) ~0) - signed char dw2_regnum[2]; -#define Dw2Inval (-1) + unsigned char dw2_regnum[2]; +#define Dw2Inval 0xff } reg_entry;