From nobody Tue May 14 08:37:18 2024 Delivered-To: importer@patchew.org Authentication-Results: mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org ARC-Seal: i=1; a=rsa-sha256; t=1683131886; cv=none; d=zohomail.com; s=zohoarc; b=XCTHbdVhCN4UWZ3wTVuRxTybZ6gjLfuonDqqx9l9hUq7WDBFjnVHxOHvqNQnkk0OTRX+VFjq8SmRgSGLNyrYAagNLVUlsdbhS8njhhXRJaa6orBAafEYZJgZNVkH2gJ8Prv1p/fc5bwVMotAPldWjNvvPAEsadj3inUqig9Ejj4= ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=zohomail.com; s=zohoarc; t=1683131886; h=Content-Type:Date:From:List-Subscribe:List-Post:List-Id:List-Archive:List-Help:List-Unsubscribe:MIME-Version:Message-ID:Sender:Subject:To; bh=oBsg9XjdSZ42Gt2w9motxI9YvhFUccWY6ii0NkEQeDA=; b=FzF2J7dZJnhjU/91bVvIYIKyHwZ0f3sAyAV7VERhxvQhGy1Pz5+YHRwuuj+iSq3Gpq8FBx0v/6GMOeIZfs7c5Z7hlJrrZCBfZJM8/VGJ52uYbGmZC5NTGKEyhy3+pmzaILa78hgC/SBQW7Q147aEo6FTJbqXWpN5Lb5LTmodvls= ARC-Authentication-Results: i=1; mx.zohomail.com; dkim=pass; spf=pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) smtp.mailfrom=qemu-devel-bounces+importer=patchew.org@nongnu.org Return-Path: Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mx.zohomail.com with SMTPS id 168313188636383.63663719933515; Wed, 3 May 2023 09:38:06 -0700 (PDT) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1puFUD-0002Eg-5W; Wed, 03 May 2023 12:37:49 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1puFU7-0001ms-F2 for qemu-devel@nongnu.org; Wed, 03 May 2023 12:37:43 -0400 Received: from mail-oi1-x22a.google.com ([2607:f8b0:4864:20::22a]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1puFU5-00043j-Qq for qemu-devel@nongnu.org; Wed, 03 May 2023 12:37:43 -0400 Received: by mail-oi1-x22a.google.com with SMTP id 5614622812f47-38ef6217221so3167046b6e.3 for ; Wed, 03 May 2023 09:37:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=junsun-net.20221208.gappssmtp.com; s=20221208; t=1683131860; x=1685723860; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=oBsg9XjdSZ42Gt2w9motxI9YvhFUccWY6ii0NkEQeDA=; b=X3VxPqtkaTyMPORp2yyY6iRBNgQ4dLKBuaH2hRzD7Bz4p5vPgvsamoU9ZjW++0hu0l BJGptPu823aXcm4QlTmZZ4JkNOEiOaMIMnBe0M7eopCf5sR8FIHxkM+TEGEvHr75uhQm RrG1vb3mP0RuwMCHwuk9gTdrFQxH5uN9eBPay+5CJSSEGbO7uLTXcH07eY5jGvcnVDyG 5/9UT+jSaEeDqqiKOk29YoppwDvymOoQP8pk4vyFOcdLgxcvQPvNYZrnCbXu267NV23f 420zPJK2tlnHq2SzCQIRISaedQQHHA9baEju7eUqmBhiS7gMA+wOTmH8U/ZCiiNznhLB ck8Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1683131860; x=1685723860; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=oBsg9XjdSZ42Gt2w9motxI9YvhFUccWY6ii0NkEQeDA=; b=fj/iH07ifPXj2jC9AnGt3xkmxzUeJ866sO0ZjTW98q1Mi49EjVFM2sMFinf6yOZ2jD xA33o3QlvrdLwl4P76kDTn51xk1yNNkd+jvI0WI9slx7sEDOkzyw3sYl2Iytw5JG47dI NMsjJpNu9ScgRo7pBwMT6ZvfwsLg/uzf67iXwoTsZHneU4k9c5qxH1JqhBn0W26pfowh 3JB/MgJeYUncD4hymqhEZ5t1fMBXhW4dGMJIujjB2f6Qzv8lIiCgD6R6Sl36+3jD1d9L CE1ozXGUidL/ZzgRsYm5OQ4oPCeA5aUbt7/f//XI4QpYQ5IXgksz3N6BcYcnpSGkym9z 7C3A== X-Gm-Message-State: AC+VfDwhsleJRXF9UJ/gLxANl7neqGIVfSwZoKjzc8YFbMSwBRwino7f ywOUECOvm+ssQK5o4XDMU8jESEqnJ7LHxvkDTrJX+iESi/JYBECoIpA= X-Google-Smtp-Source: ACHHUZ6dSVKZr+cpbO3XHb9OKEnk3ndHyNLYecrujdSVN45EtjmjpGulhW2v/43F8+QLN28SwdqO9tAHpqEFpa06sUM= X-Received: by 2002:a05:6808:150a:b0:38e:b92:dbc3 with SMTP id u10-20020a056808150a00b0038e0b92dbc3mr387253oiw.49.1683131860197; Wed, 03 May 2023 09:37:40 -0700 (PDT) MIME-Version: 1.0 From: Jun Sun Date: Wed, 3 May 2023 09:37:29 -0700 Message-ID: Subject: [PATCH risu] Add "--not-group" option to exclude groups of instructions. To: qemu-devel@nongnu.org Content-Type: multipart/alternative; boundary="000000000000a3363905faccacd3" Received-SPF: pass (zohomail.com: domain of gnu.org designates 209.51.188.17 as permitted sender) client-ip=209.51.188.17; envelope-from=qemu-devel-bounces+importer=patchew.org@nongnu.org; helo=lists.gnu.org; Received-SPF: none client-ip=2607:f8b0:4864:20::22a; envelope-from=jsun@junsun.net; helo=mail-oi1-x22a.google.com X-Spam_score_int: -18 X-Spam_score: -1.9 X-Spam_bar: - X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: qemu-devel-bounces+importer=patchew.org@nongnu.org Sender: qemu-devel-bounces+importer=patchew.org@nongnu.org X-ZohoMail-DKIM: pass (identity @junsun-net.20221208.gappssmtp.com) X-ZM-MESSAGEID: 1683131887220100003 Content-Transfer-Encoding: quoted-printable --000000000000a3363905faccacd3 MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 VGhpcyBtaXJyb3JzIHRoZSAiLS1ub3QtcGF0dGVybiIgb3B0aW9uIGFuZCBnaXZlcyBjb21wbGV0 ZSBjb250cm9sIG92ZXIKZ3JvdXAtYmFzZWQKaW5zdHJ1Y3Rpb24gc2VsZWN0aW9uIHJ1bGVzLgoK U2lnbmVkLW9mZi1ieTogSnVuIFN1biA8anN1bkBqdW5zdW4ubmV0PgotLS0KIHJpc3VnZW4gfCAx MCArKysrKysrKysrCiAxIGZpbGUgY2hhbmdlZCwgMTAgaW5zZXJ0aW9ucygrKQoKZGlmZiAtLWdp dCBhL3Jpc3VnZW4gYi9yaXN1Z2VuCmluZGV4IGY4OGMyMmEuLmY0NDFmMDYgMTAwNzU1Ci0tLSBh L3Jpc3VnZW4KKysrIGIvcmlzdWdlbgpAQCAtMzksNiArMzksNyBAQCBteSAkYXJjaCA9M0QgIiI7 CiBteSBAaW5zbl9ncm91cHM7CgogbXkgQGdyb3VwcyA9M0QgKCk7ICAgICAgICAgICAgICAgICMg aW5jbHVkZSBncm91cHMKK215IEBub3RfZ3JvdXBzID0zRCAoKTsgICAgICAgICAgICAjIGV4Y2x1 ZGUgZ3JvdXBzCiBteSBAcGF0dGVybl9yZSA9M0QgKCk7ICAgICAgICAgICAgIyBpbmNsdWRlIHBh dHRlcm4KIG15IEBub3RfcGF0dGVybl9yZSA9M0QgKCk7ICAgICAgICAjIGV4Y2x1ZGUgcGF0dGVy bgoKQEAgLTI3Miw2ICsyNzMsMTIgQEAgc3ViIHNlbGVjdF9pbnNuX2tleXMgKCkKICAgICAgICAg bXkgJHJlID0zRCAnXGIoKCcgLiBqb2luKCcpfCgnLEBwYXR0ZXJuX3JlKSAuICcpKVxiJzsKICAg ICAgICAgQGluc25fa2V5cyA9M0QgZ3JlcCAvJHJlLywgQGluc25fa2V5czsKICAgICB9CisgICAg aWYgKEBub3RfZ3JvdXBzKSB7CisgICAgICAgIEBpbnNuX2tleXMgPTNEIGdyZXAgeworICAgICAg ICAgICAgZGVmaW5lZCgkaW5zbl9kZXRhaWxzeyRffS0+e2dyb3Vwc30pICYmCisgICAgICAgICAg ICAgICAgMCA9M0Q9M0Qgc2NhbGFyKGdldF9pbnRlcnNlY3Rpb24oWyRpbnNuX2RldGFpbHN7JF99 LT57Z3JvdT0KcHN9LApcQG5vdF9ncm91cHNdKSkKKyAgICAgICAgfSBAaW5zbl9rZXlzCisgICAg fQogICAgICMgZXhjbHVkZSBhbnkgc3BlY2lmaWNzCiAgICAgaWYgKEBub3RfcGF0dGVybl9yZSkg ewogICAgICAgICBteSAkcmUgPTNEICdcYigoJyAuIGpvaW4oJyl8KCcsQG5vdF9wYXR0ZXJuX3Jl KSAuICcpKVxiJzsKQEAgLTMwMyw2ICszMTAsNyBAQCBWYWxpZCBvcHRpb25zOgogICAgICAgICAg ICAgICAgICAgIHRoZSBwZXJsIHJlZ2V4ICdcXGIoKHJlKXwocmUpKVxcYicpLiBUaGlzIG1lYW5z IHRoYXQKICAgICAgICAgICAgICAgICAgICAnVk1VTEwnIHdpbGwgbWF0Y2ggJ1ZNVUxMIEExJyBh bmQgJ1ZNVUxMIEEyJyBidXQgbm90CiAgICAgICAgICAgICAgICAgICAgJ1ZNVUxMX3NjYWxhciBB MScuIFRoaXMgaXMgZ2VuZXJhbGx5IHdoYXQgeW91IHdhbnRlZC4KKyAgICAtLW5vdC1ncm91cCBu YW1lWyxuYW1lLi5dOiBleGNsdWRlIGluc3RydWN0aW9ucyBpbiB0aGUgc3BlY2lmaWVkIGdyb3Vw cwogICAgIC0tbm90LXBhdHRlcm4gcmVbLHJlLi4uXSA6IGV4Y2x1ZGUgcGF0dGVybnMgbWF0Y2hp bmcgcmVndWxhcgpleHByZXNzaW9uLgogICAgICAgICAgICAgICAgICAgIFRoZXNlIFJFcyBhcmUg YXBwbGllZCBhZnRlciB0aGUgbWF0Y2hpbmcgcGF0dGVybiB3aGljaAogICAgICAgICAgICAgICAg ICAgIGlzIHVzZWZ1bCBpZiB5b3Ugd2FudCB0byBleGNsdWRlIGEgc3BlY2lmaWMgaW5zdHJ1Y3Rp b24KZnJvbQpAQCAtMzMxLDYgKzMzOSw3IEBAIHN1YiBtYWluKCkKICAgICAgICAgICAgICAgICAi cmFuZHNlZWQ9M0RpIiA9M0Q+IFwkcmFuZHNlZWQsCiAgICAgICAgICAgICAgICAgImZwc2NyPTNE byIgPTNEPiBcJGZwc2NyLAogICAgICAgICAgICAgICAgICJncm91cD0zRHMiID0zRD4gXEBncm91 cHMsCisgICAgICAgICAgICAgICAgIm5vdC1ncm91cD0zRHMiID0zRD4gXEBub3RfZ3JvdXBzLAog ICAgICAgICAgICAgICAgICJwYXR0ZXJuPTNEcyIgPTNEPiBcQHBhdHRlcm5fcmUsCiAgICAgICAg ICAgICAgICAgIm5vdC1wYXR0ZXJuPTNEcyIgPTNEPiBcQG5vdF9wYXR0ZXJuX3JlLAogICAgICAg ICAgICAgICAgICJjb25kcHJvYj0zRGYiID0zRD4gc3ViIHsKQEAgLTM0Nyw2ICszNTYsNyBAQCBz dWIgbWFpbigpCiAgICAgQHBhdHRlcm5fcmUgPTNEIHNwbGl0KC8sLyxqb2luKCcsJyxAcGF0dGVy bl9yZSkpOwogICAgIEBub3RfcGF0dGVybl9yZSA9M0Qgc3BsaXQoLywvLGpvaW4oJywnLEBub3Rf cGF0dGVybl9yZSkpOwogICAgIEBncm91cHMgPTNEIHNwbGl0KC8sLyxqb2luKCcsJyxAZ3JvdXBz KSk7CisgICAgQG5vdF9ncm91cHMgPTNEIHNwbGl0KC8sLyxqb2luKCcsJyxAbm90X2dyb3Vwcykp OwoKICAgICBpZiAoJCNBUkdWICE9M0QgMSkgewogICAgICAgICB1c2FnZSgpOwotLT0yMAoyLjM0 LjE= --000000000000a3363905faccacd3 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable
This mirrors the=C2=A0"--not-pattern" option and= gives complete control over group-based
instruction selection rules.
Signed-off-by: Jun Sun <jsun@ju= nsun.net>
---
=C2=A0risugen | 10 ++++++++++
=C2=A01 file ch= anged, 10 insertions(+)

diff --git a/risugen b/risugen
index f88c= 22a..f441f06 100755
--- a/risugen
+++ b/risugen
@@ -39,6 +39,7 @@ = my $arch =3D "";
=C2=A0my @insn_groups;
=C2=A0
=C2=A0my = @groups =3D (); =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0# in= clude groups
+my @not_groups =3D (); =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0# exclude groups
=C2=A0my @pattern_re =3D (); =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0# include pattern
=C2=A0my @not_pattern_re =3D (); = =C2=A0 =C2=A0 =C2=A0 =C2=A0# exclude pattern
=C2=A0
@@ -272,6 +273,12= @@ sub select_insn_keys ()
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0my $re =3D= '\b((' . join(')|(',@pattern_re) . '))\b';
=C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0@insn_keys =3D grep /$re/, @insn_keys;
= =C2=A0 =C2=A0 =C2=A0}
+ =C2=A0 =C2=A0if (@not_groups) {
+ =C2=A0 =C2= =A0 =C2=A0 =C2=A0@insn_keys =3D grep {
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0defined($insn_details{$_}->{groups}) &&
+ =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A00 =3D=3D scalar(get_interse= ction([$insn_details{$_}->{groups}, \@not_groups]))
+ =C2=A0 =C2=A0 = =C2=A0 =C2=A0} @insn_keys
+ =C2=A0 =C2=A0}
=C2=A0 =C2=A0 =C2=A0# excl= ude any specifics
=C2=A0 =C2=A0 =C2=A0if (@not_pattern_re) {
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0my $re =3D '\b((' . join(')|(',@= not_pattern_re) . '))\b';
@@ -303,6 +310,7 @@ Valid options:
= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 the p= erl regex '\\b((re)|(re))\\b'). This means that
=C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 'VMULL' wil= l match 'VMULL A1' and 'VMULL A2' but not
=C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 'VMULL_scalar A= 1'. This is generally what you wanted.
+ =C2=A0 =C2=A0--not-group na= me[,name..]: exclude instructions in the specified groups
=C2=A0 =C2=A0 = =C2=A0--not-pattern re[,re...] : exclude patterns matching regular expressi= on.
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 These REs are applied after the matching pattern which
=C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 is useful if you w= ant to exclude a specific instruction from
@@ -331,6 +339,7 @@ sub main(= )
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0"ra= ndseed=3Di" =3D> \$randseed,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0"fpscr=3Do" =3D> \$fpscr,
=C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0"group=3Ds&quo= t; =3D> \@groups,
+ =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0"not-group=3Ds" =3D> \@not_groups,
=C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0"pattern=3Ds" =3D>= ; \@pattern_re,
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0"not-pattern=3Ds" =3D> \@not_pattern_re,
=C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0"condprob=3Df"= ; =3D> sub {
@@ -347,6 +356,7 @@ sub main()
=C2=A0 =C2=A0 =C2=A0@p= attern_re =3D split(/,/,join(',',@pattern_re));
=C2=A0 =C2=A0 = =C2=A0@not_pattern_re =3D split(/,/,join(',',@not_pattern_re));
= =C2=A0 =C2=A0 =C2=A0@groups =3D split(/,/,join(',',@groups));
+ = =C2=A0 =C2=A0@not_groups =3D split(/,/,join(',',@not_groups));
= =C2=A0
=C2=A0 =C2=A0 =C2=A0if ($#ARGV !=3D 1) {
=C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0usage();
--
2.34.1

--000000000000a3363905faccacd3--