From patchwork Sat Mar 23 16:35:24 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Andrew Burgess X-Patchwork-Id: 87574 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 10DF43858C33 for ; Sat, 23 Mar 2024 16:37:59 +0000 (GMT) X-Original-To: gdb-patches@sourceware.org Delivered-To: gdb-patches@sourceware.org Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.133.124]) by sourceware.org (Postfix) with ESMTPS id E22613858410 for ; Sat, 23 Mar 2024 16:35:45 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org E22613858410 Authentication-Results: sourceware.org; dmarc=pass (p=none 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 E22613858410 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=170.10.133.124 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1711211747; cv=none; b=LlPttyJ7OIVWa0WmK2WP1axE1tKvfJO9P5v2TufcsmR+vDRT7IZ4xiCsPeT1X4/CRIlpqmfSbGbwFQjKee59VoL90lEhKh9aTjO5NtD1onxeggxNOxufbE+SWs9jEbfLVcHsM259Cw9InK7tYyBJans0T5xJDKRuo/jPoITw8ng= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1711211747; c=relaxed/simple; bh=hkhkZOTjcArqDxOuzOV8/svEVOOdE6+01lFVYNJAGVE=; h=DKIM-Signature:From:To:Subject:Date:Message-Id:MIME-Version; b=rHSQVbETV5Ld4/tw5eMbfYcPgK/4qtJH6XMAAVKXCe1TwtRi+OhN+BK4vMcs3aGgQfCCNtjASrtvfVYWvpXrTgPxQzt1qHFVPrKBTcfpE8ZYsYDox6wMCUk4JrrGvx92jD7tpfSuZ/mWTcbAlTvjykhU0CpG0yNevTwPmiwTXfY= ARC-Authentication-Results: i=1; server2.sourceware.org DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1711211745; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=Zo9JmJG5OR/Gi7rzdp87plDihzQNc6+KzAu3HxcYc0s=; b=gqYg+7tIF8GQ2L9w6Vnk17ID++78UuJ271QqiAUtyBZC/R84GL6311Au/Z2EiJeO/ocSJn /hrmOBYKPqHmW+xfv0WruR1nnnGS1VJl3EwFNPIRR2w4rQTaEPRSL0fQL1vhidZNtuktqe mtSLfkJFdq64Iy49pyt+vwF2GQ/zqaA= Received: from mail-ed1-f71.google.com (mail-ed1-f71.google.com [209.85.208.71]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_256_GCM_SHA384) id us-mta-106-kftQzEKhOQC9C8mxzJcxTA-1; Sat, 23 Mar 2024 12:35:44 -0400 X-MC-Unique: kftQzEKhOQC9C8mxzJcxTA-1 Received: by mail-ed1-f71.google.com with SMTP id 4fb4d7f45d1cf-5689f1323f5so1036179a12.2 for ; Sat, 23 Mar 2024 09:35:43 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711211742; x=1711816542; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=Zo9JmJG5OR/Gi7rzdp87plDihzQNc6+KzAu3HxcYc0s=; b=JiyMpXWyYtZUPca52J7Wkb0Jykgm0cqNvMAjBs6vl4AT+rgKVpkYSpT1iXNSln8xEk q4dqMFLp+JgnOXJKqViQv7ZGIYxBt8tq/EzdpGGJ80QrkeYhPURuy/xaDfFs04kwzgTs uGrFmELiiDcW0jAQ3BFDG1pmXy911jPIiY/En9MuAcTg33eBvsdbc0YM5mMQC7FDDh+S aY+JxJhDsGnPAN88VtLgHfjvZhazgm/K2dVejj4ufV+RkReblX+3GHnkG/at4mBi9d6e An/72hCmwg7ntNvAaPO1o8tLNf9WbGWogj1WS+WkLqmWEMEylexhJfcx+8extiZDpbN2 mUGA== X-Gm-Message-State: AOJu0Yxl0WnercGAEKxO+hIgyrnnStnUkzR1Rsi/+jOV3PcUS3qIYfE5 eTGRpSl7+OMMNZ4Z4o1A+d3z/7dLLwmdk57ChPbfH6zmCSg1PheEpjQQaMIz7qe2jBRE2y1TS3J 46TTN5f02gnFobRtAhGGRkY4o+sDokTYNc9KI0ottWLk89qDGGIqFR8I8L5Q6UMPbFDWFqM2w7R GpfpdvUJt31VO9fvvOA3FvhWoTESFO9O4DKlplwOcJHJo= X-Received: by 2002:a50:d593:0:b0:566:ecce:9d3c with SMTP id v19-20020a50d593000000b00566ecce9d3cmr2043414edi.26.1711211742187; Sat, 23 Mar 2024 09:35:42 -0700 (PDT) X-Google-Smtp-Source: AGHT+IGXq7G+pzCC4/RoAIRhkC7wDwWwCO3Xlke0UjQPxxvKiYkN4+j067flq0gOXfy1kT8jnyKDJw== X-Received: by 2002:a50:d593:0:b0:566:ecce:9d3c with SMTP id v19-20020a50d593000000b00566ecce9d3cmr2043406edi.26.1711211741852; Sat, 23 Mar 2024 09:35:41 -0700 (PDT) Received: from localhost (185.223.159.143.dyn.plus.net. [143.159.223.185]) by smtp.gmail.com with ESMTPSA id u8-20020aa7d888000000b0056bbf8898e7sm1059881edq.54.2024.03.23.09.35.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 23 Mar 2024 09:35:40 -0700 (PDT) From: Andrew Burgess To: gdb-patches@sourceware.org Cc: Andrew Burgess , hjl.tools@gmail.com Subject: [PATCHv3 6/8] gdb/arch: assert that X86_XSTATE_MPX is not set for x32 Date: Sat, 23 Mar 2024 16:35:24 +0000 Message-Id: <159cadba5ba824579cbc6426cb26f45228eda0a7.1711211528.git.aburgess@redhat.com> X-Mailer: git-send-email 2.25.4 In-Reply-To: References: MIME-Version: 1.0 X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com X-Spam-Status: No, score=-11.8 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_NUMSUBJECT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H4, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, SPF_NONE, 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 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+patchwork=sourceware.org@sourceware.org While trying to merge this commit: commit 4bb20a6244b7091a9a7a2ae35dfbd7e8db27550a Date: Wed Mar 20 04:13:18 2024 -0700 gdbserver: Clear X86_XSTATE_MPX bits in xcr0 on x32 With this patch series of mine: https://inbox.sourceware.org/gdb-patches/cover.1706801009.git.aburgess@redhat.com I worried that there could be other paths that could result in an xcr0 value that has X86_XSTATE_MPX set in x32 mode. As everyone eventually calls amd64_create_target_description to build their target description, I figured we could assert in here that if X86_XSTATE_MPX is set then we should not be an x32 target, this should uncover any other bugs in this area. I'm not currently able to build/run any x32 binaries, so I have no way to test this. Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=31511 --- gdb/arch/amd64.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gdb/arch/amd64.c b/gdb/arch/amd64.c index b8ff4270079..f182e686dda 100644 --- a/gdb/arch/amd64.c +++ b/gdb/arch/amd64.c @@ -66,8 +66,12 @@ amd64_create_target_description (uint64_t xcr0, bool is_x32, bool is_linux, if (xcr0 & X86_XSTATE_AVX) regnum = create_feature_i386_64bit_avx (tdesc.get (), regnum); - if ((xcr0 & X86_XSTATE_MPX) && !is_x32) - regnum = create_feature_i386_64bit_mpx (tdesc.get (), regnum); + if (xcr0 & X86_XSTATE_MPX) + { + /* MPX is not available on x32. */ + gdb_assert (!is_x32); + regnum = create_feature_i386_64bit_mpx (tdesc.get (), regnum); + } if (xcr0 & X86_XSTATE_AVX512) regnum = create_feature_i386_64bit_avx512 (tdesc.get (), regnum);