From patchwork Thu Feb 15 15:58:13 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jens Remus X-Patchwork-Id: 201603 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a05:7300:b825:b0:106:860b:bbdd with SMTP id da37csp495885dyb; Thu, 15 Feb 2024 08:00:49 -0800 (PST) X-Forwarded-Encrypted: i=3; AJvYcCWnDPYDc5ltcjSh/o8l3yzrVo7zfp7OfOMrAtSnpLfWhxIw/7ExqO1Gowmdcl6miU6USGcKGDsjtqW+xd+KugfnmC1d5w== X-Google-Smtp-Source: AGHT+IHY4OHwRZAzJ4+tVuWyeCbMuuba0CLuUFlQcfUcFq2jt91ywW1X3+LiEJ9nZPHv9XUEul8s X-Received: by 2002:a25:874a:0:b0:dc6:d738:1fa6 with SMTP id e10-20020a25874a000000b00dc6d7381fa6mr2295345ybn.6.1708012849016; Thu, 15 Feb 2024 08:00:49 -0800 (PST) ARC-Seal: i=2; a=rsa-sha256; t=1708012849; cv=pass; d=google.com; s=arc-20160816; b=OZtyLENX13lRfpFwz9qLe6zGynGFQhZ4ZH/JoJc9Q9P2eYGgYUzfYpKcnqbQC622dy T29YEUbIKWSeExz0nyrGAoVtlDgFAR0AqWL0WNtDfCbeAMqSf4fwhj90XV9PNdllRZlu CtPgshNEx3VdH/bjoq41AG1aErKvqg6f2WLj5XfPayyFAnSDVtKkp9PYJFiV1YMoUVVk RU+MAN0wGCainD34dWkCQzWdNPaw+Uc+NhuZwskesPo/EZ1pr+YUCKkSNwUCj0zg8cux uOcE7RKZPfMgZi5X5AfsszKafNQ7LgXGoQpJnfbSUGhwF3g6suzi9H/1EZpbs/7kp+Gc 0uCA== 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 :mime-version:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature:arc-filter:dmarc-filter:delivered-to; bh=vFsEejuF/rrpUdROhAO3WlRaZPB/xaNO0kTVHocH+p8=; fh=6sWHPsCQUoLz5ZcbqIohOjwdU7jjRT/citiAJwaEf0c=; b=NmCcEt0+tZRBVdkneckfadLa0+mO+P9ttFl4MBmxAbMyKjQ+M+sakF6XbprCiGKqpJ JDjzlRN0jfqy84apL1KiD58Sr6HjvmSOCODa//zWtWAaqVSvqIAXAG/5vE6U5k3fL99W 3Uts63kKQ74mBERXEoCMglGnvOKfwz6MBb+LTZnNz4uk3Y9TntaYPD5zjkI6tFlfwX3N 9WH8lHLT6JCHTeMqwcUt/oNmlfOvUfW9qN3coTmJfvRREaafPXSfErUo4mctE6+t3GP3 KVTTS5vl3IrVQNxPT0AAzoGmBucy4xhL+LFG1284c0RCslUko6j6jXQydLnH2I7dYoWz D63Q==; dara=google.com ARC-Authentication-Results: i=2; mx.google.com; dkim=pass header.i=@ibm.com header.s=pp1 header.b=YZgQmfAG; arc=pass (i=1); 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=REJECT sp=NONE dis=NONE) header.from=ibm.com Received: from server2.sourceware.org (server2.sourceware.org. [2620:52:3:1:0:246e:9693:128c]) by mx.google.com with ESMTPS id x133-20020a25ce8b000000b00dcd07ba504csi669308ybe.92.2024.02.15.08.00.48 for (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 15 Feb 2024 08:00:48 -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=@ibm.com header.s=pp1 header.b=YZgQmfAG; arc=pass (i=1); 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=REJECT sp=NONE dis=NONE) header.from=ibm.com Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id D05063865490 for ; Thu, 15 Feb 2024 16:00:41 +0000 (GMT) X-Original-To: binutils@sourceware.org Delivered-To: binutils@sourceware.org Received: from mx0a-001b2d01.pphosted.com (mx0a-001b2d01.pphosted.com [148.163.156.1]) by sourceware.org (Postfix) with ESMTPS id 1F0DC384DED1 for ; Thu, 15 Feb 2024 15:58:36 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 1F0DC384DED1 Authentication-Results: sourceware.org; dmarc=none (p=none dis=none) header.from=linux.ibm.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=linux.ibm.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 1F0DC384DED1 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=148.163.156.1 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1708012718; cv=none; b=P0UNphH3DT+w1O8oD5lFzBuGKLWy/GmX8T9aDMnR4SJEeAeztwj1nUe4P7dhgqdIHEt6VJ1vE7QafCPFpWjZ1bEkHbTfxuTYAGKx1FJLD5rMeJxijLQzVXNvpO18D968kSumNHmjHA7c0ANUaqoD6fDcG8Hg9cTjlDWMNnDyw+k= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1708012718; c=relaxed/simple; bh=CEo57zhHKLfOd8PdYQsKC/uQe1u9YxVxyYGc8hpQfzg=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=xk7YNoqiMbufEHxP3SG0SPvG91bp4wOVSn6QrMxHqw5epQ/CVFqLwEJQDGq3+eMvCQvoe4ihLrINNXK779V7viOLyzSe3i2K5InSKoIWUlijR6CRuzBBmX/wyZjh2cQjGT2JLAw9c1J2WSAKQJ4WO7qByOKhJz0PJEJsNmgUuGU= ARC-Authentication-Results: i=1; server2.sourceware.org Received: from pps.filterd (m0356517.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 41FF0PSh017932 for ; Thu, 15 Feb 2024 15:58:35 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=ibm.com; h=from : to : cc : subject : date : message-id : in-reply-to : references : mime-version : content-transfer-encoding; s=pp1; bh=vFsEejuF/rrpUdROhAO3WlRaZPB/xaNO0kTVHocH+p8=; b=YZgQmfAGm7WTTFinK9U6CRZY3vwpCByZbZBe7UoK5phrFkrI4GHtzrefe++SNTs9yI+B fuOG9zZd+XpSoQi2yBn0nWYMzJDLO09GlqFL2yb50n70Q0m+OrwZ2UjNuhz9r9WFl566 QB5JiQOpq8ybCNrDynDXd98a2CSefpoi38Srb7ae2aMWRfpvc68S5PQs09Rn0uRU1RkG /Gl0OAstiiQcSrWWy+B8LQuzlaJQBBac2+EY9U0Lzd8E62GahZ6sHs1GNunFhU9qa3yI j5R6HC/oIMCyig23gTsmWnvhWpksbA8VkZ6BVDJ3sAAHQ2OixjthQMoFjaQI/CkEpNUe 4Q== Received: from ppma13.dal12v.mail.ibm.com (dd.9e.1632.ip4.static.sl-reverse.com [50.22.158.221]) by mx0a-001b2d01.pphosted.com (PPS) with ESMTPS id 3w9mvhsuux-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 15 Feb 2024 15:58:34 +0000 Received: from pps.filterd (ppma13.dal12v.mail.ibm.com [127.0.0.1]) by ppma13.dal12v.mail.ibm.com (8.17.1.19/8.17.1.19) with ESMTP id 41FFSkhG010050 for ; Thu, 15 Feb 2024 15:58:34 GMT Received: from smtprelay01.fra02v.mail.ibm.com ([9.218.2.227]) by ppma13.dal12v.mail.ibm.com (PPS) with ESMTPS id 3w6npm5bjw-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 15 Feb 2024 15:58:33 +0000 Received: from smtpav04.fra02v.mail.ibm.com (smtpav04.fra02v.mail.ibm.com [10.20.54.103]) by smtprelay01.fra02v.mail.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id 41FFwTVi65995070 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 15 Feb 2024 15:58:31 GMT Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 11E0120067; Thu, 15 Feb 2024 15:58:29 +0000 (GMT) Received: from smtpav04.fra02v.mail.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id E6CDF2005A; Thu, 15 Feb 2024 15:58:28 +0000 (GMT) Received: from tuxmaker.boeblingen.de.ibm.com (unknown [9.152.85.9]) by smtpav04.fra02v.mail.ibm.com (Postfix) with ESMTP; Thu, 15 Feb 2024 15:58:28 +0000 (GMT) From: Jens Remus To: binutils@sourceware.org Cc: Jens Remus , Andreas Krebbel Subject: [PATCH 06/14] s390: Add comments to assembler operand parsing logic Date: Thu, 15 Feb 2024 16:58:13 +0100 Message-Id: <20240215155821.4065623-7-jremus@linux.ibm.com> X-Mailer: git-send-email 2.40.1 In-Reply-To: <20240215155821.4065623-1-jremus@linux.ibm.com> References: <20240215155821.4065623-1-jremus@linux.ibm.com> MIME-Version: 1.0 X-TM-AS-GCONF: 00 X-Proofpoint-ORIG-GUID: wi5Su08tdw4gqfCQy533lVE6h0Z3XaL5 X-Proofpoint-GUID: wi5Su08tdw4gqfCQy533lVE6h0Z3XaL5 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.1011,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2024-02-15_14,2024-02-14_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 spamscore=0 mlxscore=0 lowpriorityscore=0 phishscore=0 adultscore=0 clxscore=1015 malwarescore=0 mlxlogscore=906 bulkscore=0 suspectscore=0 impostorscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311290000 definitions=main-2402150129 X-Spam-Status: No, score=-12.1 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_EF, GIT_PATCH_0, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, 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: 1790981280845110120 X-GMAIL-MSGID: 1790981280845110120 gas/ * config/tc-s390.c: Add comments to assembler operand parsing logic. Reviewed-by: Andreas Krebbel Signed-off-by: Jens Remus --- gas/config/tc-s390.c | 31 +++++++++++++++++++++++++------ 1 file changed, 25 insertions(+), 6 deletions(-) diff --git a/gas/config/tc-s390.c b/gas/config/tc-s390.c index 55a5873edc18..9aebd8ca91e5 100644 --- a/gas/config/tc-s390.c +++ b/gas/config/tc-s390.c @@ -1474,9 +1474,10 @@ md_gather_operands (char *str, /* After a displacement a block in parentheses can start. */ if (*str != '(') { - /* Check if parenthesized block can be skipped. If the next - operand is neither an optional operand nor a base register - then we have a syntax error. */ + /* There is no opening parentheses. Check if operands of + parenthesized block can be skipped. Only index and base + register operands as well as optional operands may be + skipped. A length operand may not be skipped. */ operand = s390_operands + *(++opindex_ptr); if (!(operand->flags & (S390_OPERAND_INDEX|S390_OPERAND_BASE))) as_bad (_("syntax error; missing '(' after displacement")); @@ -1485,6 +1486,8 @@ md_gather_operands (char *str, while (!(operand->flags & S390_OPERAND_BASE)) operand = s390_operands + *(++opindex_ptr); + /* If there is no further input and the remaining operands are + optional then have these optional operands processed. */ if (*str == '\0' && skip_optargs_p (opcode->flags, &opindex_ptr[1])) continue; @@ -1493,6 +1496,7 @@ md_gather_operands (char *str, { if (*str != ',') { + /* There is no comma. Skip all operands and stop. */ while (opindex_ptr[1] != '\0') { operand = s390_operands + *(++opindex_ptr); @@ -1501,7 +1505,10 @@ md_gather_operands (char *str, } } else - str++; + { + /* Comma. */ + str++; + } } } else @@ -1535,6 +1542,8 @@ md_gather_operands (char *str, str++; omitted_base_or_index = 0; + /* If there is no further input and the remaining operands are + optional then have these optional operands processed. */ if (*str == '\0' && skip_optargs_p (opcode->flags, &opindex_ptr[1])) continue; @@ -1543,6 +1552,7 @@ md_gather_operands (char *str, { if (*str != ',') { + /* There is no comma. Skip all operands and stop. */ while (opindex_ptr[1] != '\0') { operand = s390_operands + *(++opindex_ptr); @@ -1551,7 +1561,10 @@ md_gather_operands (char *str, } } else - str++; + { + /* Comma. */ + str++; + } } } else @@ -1567,6 +1580,8 @@ md_gather_operands (char *str, str++; } + /* If there is no further input and the remaining operands are + optional then have these optional operands processed. */ if (*str == '\0' && skip_optargs_p (opcode->flags, &opindex_ptr[1])) continue; @@ -1575,6 +1590,7 @@ md_gather_operands (char *str, { if (*str != ',') { + /* There is no comma. Skip all operands and stop. */ while (opindex_ptr[1] != '\0') { operand = s390_operands + *(++opindex_ptr); @@ -1583,7 +1599,10 @@ md_gather_operands (char *str, } } else - str++; + { + /* Comma. */ + str++; + } } } }