From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from simark.ca by simark.ca with LMTP id +XiaLAn+R2qaDSQAWB0awg (envelope-from ) for ; Fri, 03 Jul 2026 14:23:05 -0400 Authentication-Results: simark.ca; dkim=pass (1024-bit key; unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=ciUs7SL0; dkim-atps=neutral Received: by simark.ca (Postfix, from userid 112) id A3A991E024; Fri, 03 Jul 2026 14:23:05 -0400 (EDT) X-Spam-Checker-Version: SpamAssassin 4.0.1 (2024-03-25) on simark.ca X-Spam-Level: X-Spam-Status: No, score=-6.4 required=5.0 tests=ARC_SIGNED,ARC_VALID,BAYES_00, DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,MAILING_LIST_MULTI, RCVD_IN_DNSWL_MED autolearn=ham autolearn_force=no version=4.0.1 Received: from vm01.sourceware.org (vm01.sourceware.org [38.145.34.32]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange x25519 server-signature ECDSA (prime256v1) server-digest SHA256) (No client certificate requested) by simark.ca (Postfix) with ESMTPS id E5FD91E024 for ; Fri, 03 Jul 2026 14:23:04 -0400 (EDT) Received: from vm01.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id A744C4BA2E3E for ; Fri, 3 Jul 2026 18:23:03 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org A744C4BA2E3E Authentication-Results: sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=ciUs7SL0 Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTP id 625834BA2E3B for ; Fri, 3 Jul 2026 18:22:28 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 625834BA2E3B Authentication-Results: sourceware.org; dmarc=pass (p=quarantine dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 625834BA2E3B Authentication-Results: sourceware.org; arc=none smtp.remote-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1783102948; cv=none; b=bOvbBKLX+TP51vzqdrliIoJp+vueZORdA8/bCdo/BAtxWfw9YFl18ABeMEL3Rg75j4aOyx62atsj8rcw7i/fPcQ5+3yOvN1XVKYcTTpEBhHxfKImJAfqqrad7afFwqSzd6NCXvUCQz46eBzqyZRAdiFSCYZwNjZPPSiXkMDmP9I= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1783102948; c=relaxed/simple; bh=4tFQ5cx7LQBEAtoluzOt0YtoupuLsPQHkSH5+Cu6Sro=; h=DKIM-Signature:Message-ID:Date:MIME-Version:Subject:To:From; b=Rk0zn/WKdVKR4qr0ToBEzscP2nkvL3lKcb3yJh2bbn3SxMLm6QlqEhKzdwu8O+XsmyE7OGZHybKiMauI+1KveYZa5BToVZPjPo8Z6jz2keyh9650Jvz8Te65VMJym7derEJsXVrVyPr3JgOXkyem0vU4K4DlAxgwZDoPztnwpcU= ARC-Authentication-Results: i=1; sourceware.org; dkim=pass (1024-bit key, unprotected) header.d=redhat.com header.i=@redhat.com header.a=rsa-sha256 header.s=mimecast20190719 header.b=ciUs7SL0 DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org 625834BA2E3B DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1783102948; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=giEaMXxBJIwbkk8qaEZTd6+0hMcLrwJWL9uaz9bL+eI=; b=ciUs7SL0O8TvaGSD3fWR0D3dTZ1cg1MWSa6FFQIZXLxbqgR1UA1RV9AKEfdECoRJUNOfqP diJM4jjyxnwmqkT/wHS3nYNfRwqsA9VvmkCLVKWTEYbTgYhx+1iRrcS7KXnc7IVBfrb/PE 0adKOelr/7sQXV5yBIuzHOkeMXaKhag= Received: from mail-pj1-f71.google.com (mail-pj1-f71.google.com [209.85.216.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-522-APOTDzEwOQOkkwvGwC9tPA-1; Fri, 03 Jul 2026 14:22:27 -0400 X-MC-Unique: APOTDzEwOQOkkwvGwC9tPA-1 X-Mimecast-MFC-AGG-ID: APOTDzEwOQOkkwvGwC9tPA_1783102946 Received: by mail-pj1-f71.google.com with SMTP id 98e67ed59e1d1-3811279d51aso1527364a91.1 for ; Fri, 03 Jul 2026 11:22:26 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1783102946; x=1783707746; h=content-transfer-encoding:content-type:in-reply-to:from :content-language:references:to:subject:user-agent:mime-version:date :message-id:x-gm-gg:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to:content-type; bh=giEaMXxBJIwbkk8qaEZTd6+0hMcLrwJWL9uaz9bL+eI=; b=eFrpCebG7Wq41H1trWS7d6vux/tc/jr/AHrjSWv51bPwU6EEPjVt6r0scVhGAAxSKq oKqks/q5XDuGEeUo0PpkC5nz0lwc79uvVbwA+W9Hi2N78Zv3yfSTdbw5DEv8HHGxSirY QEhUop7+jIi+ZJKHhYDi1Bds0+8Tqj7IMZQaHdV0Q4HJrCk/H2H3Jk9RJ3fEjY6Gdj8p x5sdX0RHzmGyVoz2Pdf1CmXyKZvStQx9XlTrviKfWAI/2g+Yp4mC7vzowR/jQu0E5JvX f0kzqlid//41HSoBleIgnuVVVJeA9w2Fw73LV5fIhExGJ2T9b4p9vkSS/iGQBR6zNIsK ST1g== X-Gm-Message-State: AOJu0YwS0Hfbz78/fvfJb46gFi/PXjdUqE51nloY3UGBeowIAQKSa071 i1HQ2GAIYTT1R91n4nDJHdM1kjkQnaoG1BgaMXEPQqySwQTIVpL17X7jLjC2zTJmercDAoAN+xy S7AE5jcHPZyAi9g0YNALjSGV69zOkXvo/l6QTuvzyyJKCzzDjXB2VcDiKdfWsA8+8r1WB+Zv5QA 3CGGVL3AbKm9vtYNCE9HJqS5Lj2A7RJ8ZebEPOA5bd+2PJXV1x X-Gm-Gg: AfdE7clKps3S+ezanIvBz8QF0lS0W0g9KgUisR/apu0ocOYz25HlXsHxfPOJKDn/nFV 9YpNmrj5aZZtsUJBu6WH+PPFJgyb86lcL6tRXTvb62rzV7KvPankLKWqa3+VsVt4OF74gQ+VZcr CZmJ3ZggRrWJXSkjY134rn/+6nYJ/KzWLGAjjhAUPlc2uVj3fEzOjq9eeChgJZBdI8DFSFakiM2 cVq8oYfymYGFZ8C+h3LBDJbU9peqD2oJBahj5MQ9HCz20//myEElDPGsduH1IuYiE7BNyk5YLeb C6j1y7aAXaugXy0MQdCAhaZ1awcp2s+Mapx6ylFEkPNsNhv2q10+9BXL9SCX/Qbt9DSZYZVHGOD utP9kI3J94od5HiDINN7E X-Received: by 2002:a17:90b:3808:b0:37f:9ce1:cda4 with SMTP id 98e67ed59e1d1-3829f2f3fafmr600031a91.26.1783102945772; Fri, 03 Jul 2026 11:22:25 -0700 (PDT) X-Received: by 2002:a17:90b:3808:b0:37f:9ce1:cda4 with SMTP id 98e67ed59e1d1-3829f2f3fafmr599995a91.26.1783102944914; Fri, 03 Jul 2026 11:22:24 -0700 (PDT) Received: from ?IPV6:2804:14d:8084:993e::75d? ([2804:14d:8084:993e::75d]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-30f0bc38e5fsm23170490eec.29.2026.07.03.11.22.23 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 03 Jul 2026 11:22:24 -0700 (PDT) Message-ID: <70b4fa57-d4c5-4c8c-95b0-0db51fe586ef@redhat.com> Date: Fri, 3 Jul 2026 15:22:21 -0300 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH 2/2] gdb/record: add support for BMI2 instructions To: gdb-patches@sourceware.org References: <20260617124201.15794-1-guinevere@redhat.com> <20260617140058.20727-2-guinevere@redhat.com> <20260617140058.20727-3-guinevere@redhat.com> From: Guinevere Larsen In-Reply-To: <20260617140058.20727-3-guinevere@redhat.com> X-Mimecast-Spam-Score: 0 X-Mimecast-MFC-PROC-ID: VZIJO9cQbvddC9f4W0HNtqxSY7O9JE02p6XfQ3gLaEU_1783102946 X-Mimecast-Originator: redhat.com Content-Language: en-US Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gdb-patches-bounces~public-inbox=simark.ca@sourceware.org I'm pushing this series with a trivial change to the test, fixing an oversight I had when writing the original patch On 6/17/26 11:00 AM, Guinevere Larsen wrote: > This commit adds support for recording all instructions in the Bit > Manipulation Instruction set 2, for x86 cpus. The specific instructions > are: > > * mulx > * pdep > * pext > * rorx > * sarx > * sh[r|l]x > * bzhi > > And adds them to the AVX test, for the same reason as the previous > commit. > --- > gdb/i386-tdep.c | 18 ++++++++++++++++-- > gdb/testsuite/gdb.reverse/i386-avx-reverse.c | 13 +++++++++++++ > gdb/testsuite/gdb.reverse/i386-avx-reverse.exp | 14 ++++++++++++++ > 3 files changed, 43 insertions(+), 2 deletions(-) > > diff --git a/gdb/i386-tdep.c b/gdb/i386-tdep.c > index 8b4dfb43f61..189a711fd81 100644 > --- a/gdb/i386-tdep.c > +++ b/gdb/i386-tdep.c > @@ -5128,7 +5128,7 @@ i386_record_vex (struct i386_record_s *ir, uint8_t vex_w, uint8_t vex_r, > case 0xf2: /* VPSLLD, dynamic shift and ANDN. */ > case 0xf3: /* VPSLLQ, dynamic shift and BLSI, BLSR and BLSMSK. */ > case 0xf4: /* VPMULUDQ */ > - case 0xf6: /* VPSADBW. */ > + case 0xf6: /* VPSADBW or MULX. */ > case 0xfc: /* VPADDB */ > case 0xfd: /* VPADDW */ > case 0xfe: /* VPADDD */ > @@ -5152,6 +5152,15 @@ i386_record_vex (struct i386_record_s *ir, uint8_t vex_w, uint8_t vex_r, > record_full_arch_list_add_reg > (ir->regcache, ir->regmap[X86_RECORD_EFLAGS_REGNUM]); > } > + else if (opcode == 0xf6 && ir->map_select == 2) > + { > + record_full_arch_list_add_reg (ir->regcache, > + ir->regmap[X86_RECORD_REAX_REGNUM > + + ir->vvvv]); > + record_full_arch_list_add_reg (ir->regcache, > + ir->regmap[X86_RECORD_REAX_REGNUM > + + reg_offset]); > + } > else > { > /* This set of instructions all share the same exact way to > @@ -5164,11 +5173,16 @@ i386_record_vex (struct i386_record_s *ir, uint8_t vex_w, uint8_t vex_r, > } > break; > > - case 0xf7: /* BEXTR. */ > + case 0xf0: /* RORX. */ > + case 0xf5: /* PDEP or PEXT or BZHI. */ > + case 0xf7: /* BEXTR or SARX or SHLX or SHRX. */ > i386_record_modrm (ir); > record_full_arch_list_add_reg (ir->regcache, > ir->regmap[X86_RECORD_REAX_REGNUM > + ir->reg + vex_r * 8]); > + if (opcode == 0xf5 && ir->pp == 0) > + record_full_arch_list_add_reg (ir->regcache, > + ir->regmap[X86_RECORD_EFLAGS_REGNUM]); > break; > > case 0x2e: /* VUCOMIS[S|D]. */ > diff --git a/gdb/testsuite/gdb.reverse/i386-avx-reverse.c b/gdb/testsuite/gdb.reverse/i386-avx-reverse.c > index 190bc6f4a7a..4e4428f695a 100644 > --- a/gdb/testsuite/gdb.reverse/i386-avx-reverse.c > +++ b/gdb/testsuite/gdb.reverse/i386-avx-reverse.c > @@ -799,6 +799,19 @@ bmi_test () > asm volatile ("tzcnt %eax, %ebx"); > asm volatile ("tzcnt %ax, %r8w"); > > + asm volatile ("mulx %eax, %ebx, %ecx"); > + asm volatile ("mulx %ebx, %ecx, %ebx"); > + > + asm volatile ("pdep %r8, %rcx, %rbx"); > + asm volatile ("pext %edx, %ecx, %ebx"); > + asm volatile ("rorx $10, %r8, %rbx"); > + asm volatile ("sarx %edx, %ebx, %eax"); > + asm volatile ("shlx %eax, %ecx, %ebx"); > + asm volatile ("shrx %r8d, %eax, %ecx"); > + > + asm volatile ("bzhi %edx, %ebx, %r8d"); > + asm volatile ("bzhi %rax, %rcx, %r8"); > + > return 0; /* end bmi_test */ > } > > diff --git a/gdb/testsuite/gdb.reverse/i386-avx-reverse.exp b/gdb/testsuite/gdb.reverse/i386-avx-reverse.exp > index e1780267ad0..a482142edde 100644 > --- a/gdb/testsuite/gdb.reverse/i386-avx-reverse.exp > +++ b/gdb/testsuite/gdb.reverse/i386-avx-reverse.exp > @@ -1206,9 +1206,23 @@ gdb_test_no_output \ > "set \$eax = 0x1312" "set eax for bmi test" > gdb_test_no_output "set \$ebx = 0xdeadbeef" "set ebx for bmi test" > gdb_test_no_output "set \$ecx = 0xcafeface" "set ecx for bmi test" > +gdb_test_no_output "set \$edx = 0x2337" "set edx for bmi test" > > if {[record_full_function "bmi"] == true} { > > + test_one_general_register "bzhi" "r8" "0xe884173" > + test_one_general_register "bzhi" "r8" "0x0" > + > + test_one_general_register "shrx" "ecx" "0x0" This was updated to look for 0xe884173 -- Cheers, Guinevere Larsen it/its she/her (deprecated) > + test_one_general_register "shlx" "ebx" "0x0" > + test_one_general_register "sarx" "eax" "0x3" > + test_one_general_register "rorx" "ebx" "0x3b" > + test_one_general_register "pext" "ebx" "0x0" > + test_one_general_register "pdep" "ebx" "0x0" > + > + test_one_general_register "mulx" "ecx" "0x0" > + test_one_general_register "mulx" "ebx" "0x0" > + > test_one_general_register "tzcnt" "r8" "0x3e" > test_one_general_register "tzcnt" "ebx" "0xe" > test_one_general_register "tzcnt" "ecx" "0x1e"