From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 13093 invoked by alias); 12 Aug 2013 12:30:37 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 13082 invoked by uid 89); 12 Aug 2013 12:30:36 -0000 X-Spam-SWARE-Status: No, score=-5.8 required=5.0 tests=AWL,BAYES_00,KHOP_RCVD_UNTRUST,KHOP_THREADED,RCVD_IN_DNSWL_MED,RCVD_IN_HOSTKARMA_W,RP_MATCHES_RCVD autolearn=ham version=3.3.2 Received: from mms1.broadcom.com (HELO mms1.broadcom.com) (216.31.210.17) by sourceware.org (qpsmtpd/0.84/v0.84-167-ge50287c) with ESMTP; Mon, 12 Aug 2013 12:30:36 +0000 Received: from [10.9.208.57] by mms1.broadcom.com with ESMTP (Broadcom SMTP Relay (Email Firewall v6.5)); Mon, 12 Aug 2013 05:26:40 -0700 X-Server-Uuid: 06151B78-6688-425E-9DE2-57CB27892261 Received: from IRVEXCHSMTP2.corp.ad.broadcom.com (10.9.207.52) by IRVEXCHCAS08.corp.ad.broadcom.com (10.9.208.57) with Microsoft SMTP Server (TLS) id 14.1.438.0; Mon, 12 Aug 2013 05:30:31 -0700 Received: from mail-irva-13.broadcom.com (10.10.10.20) by IRVEXCHSMTP2.corp.ad.broadcom.com (10.9.207.52) with Microsoft SMTP Server id 14.1.438.0; Mon, 12 Aug 2013 05:30:31 -0700 Received: from [10.177.73.61] (unknown [10.177.73.61]) by mail-irva-13.broadcom.com (Postfix) with ESMTP id E9332F2D76 for ; Mon, 12 Aug 2013 05:30:26 -0700 (PDT) Message-ID: <5208D561.8050309@broadcom.com> Date: Mon, 12 Aug 2013 12:30:00 -0000 From: "Andrew Burgess" User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:17.0) Gecko/20130801 Thunderbird/17.0.8 MIME-Version: 1.0 To: gdb-patches@sourceware.org Subject: [PATCH 09/12] DWARF value, mark unavailable in bits not bytes. References: <5208D1DF.1090201@broadcom.com> In-Reply-To: <5208D1DF.1090201@broadcom.com> Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: 7bit X-SW-Source: 2013-08/txt/msg00309.txt.bz2 A later patch revealed that in the dwarf code we're marking a value unavailable in bytes using a bit based offset and a byte based size. Here I switch to using just bits to do the job. OK to apply? Thanks, Andrew gdb/ChangeLog 2013-08-08 Andrew Burgess * dwarf2loc.c (read_pieced_value): Mark optimized out and unavailable in bits not bytes. * value.c (mark_value_bits_unavailable): New function. (mark_value_bytes_unavailable): Use mark_value_bits_unavailable. * value.h (mark_value_bits_unavailable): New function. diff --git a/gdb/dwarf2loc.c b/gdb/dwarf2loc.c index bae425a..553f720 100644 --- a/gdb/dwarf2loc.c +++ b/gdb/dwarf2loc.c @@ -1694,9 +1694,9 @@ read_pieced_value (struct value *v) memset (buffer, 0, this_size); if (optim) - mark_value_bytes_optimized_out (v, offset, this_size); + mark_value_bits_optimized_out (v, offset, this_size_bits); if (unavail) - mark_value_bytes_unavailable (v, offset, this_size); + mark_value_bits_unavailable (v, offset, this_size_bits); } } else diff --git a/gdb/value.c b/gdb/value.c index 19ba16c..c41e6e1 100644 --- a/gdb/value.c +++ b/gdb/value.c @@ -572,9 +572,17 @@ insert_into_bit_range_vector (VEC(range_s) **vectorp, int offset, int length) void mark_value_bytes_unavailable (struct value *value, int offset, int length) { + mark_value_bits_unavailable (value, offset * TARGET_CHAR_BIT, + length * TARGET_CHAR_BIT); +} + +void +mark_value_bits_unavailable (struct value *value, int offset, int length) +{ insert_into_bit_range_vector (&value->unavailable, - offset * TARGET_CHAR_BIT, - length * TARGET_CHAR_BIT); + offset, + length, + bit_range_unavailable); } void diff --git a/gdb/value.h b/gdb/value.h index 81c1cc5..8226a0d 100644 --- a/gdb/value.h +++ b/gdb/value.h @@ -449,6 +449,12 @@ extern int value_entirely_unavailable (struct value *value); extern void mark_value_bytes_unavailable (struct value *value, int offset, int length); +/* Mark VALUE's content bits starting at OFFSET and extending for + LENGTH bits as unavailable. */ + +extern void mark_value_bits_unavailable (struct value *value, + int offset, int length); + /* Set contents of OPTIMIZEDP to nonzero if any part of VALUE is optimized out, otherwise set to zero. Set contents of UNAVAILABLEP to nonzero if any part of VALUE is unavailable, otherwise set to zero. */