From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 79306 invoked by alias); 20 Aug 2015 12:47:05 -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 79292 invoked by uid 89); 20 Aug 2015 12:47:04 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=0.4 required=5.0 tests=AWL,BAYES_05,FREEMAIL_FROM,FROM_LOCAL_NOVOWEL,HK_RANDOM_ENVFROM,HK_RANDOM_FROM,RCVD_IN_DNSWL_LOW,SPF_PASS autolearn=no version=3.3.2 X-HELO: mail-ob0-f178.google.com Received: from mail-ob0-f178.google.com (HELO mail-ob0-f178.google.com) (209.85.214.178) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with (AES128-GCM-SHA256 encrypted) ESMTPS; Thu, 20 Aug 2015 12:47:03 +0000 Received: by obbwr7 with SMTP id wr7so30817193obb.2 for ; Thu, 20 Aug 2015 05:47:01 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.182.144.194 with SMTP id so2mr2429588obb.51.1440074821603; Thu, 20 Aug 2015 05:47:01 -0700 (PDT) Received: by 10.76.10.196 with HTTP; Thu, 20 Aug 2015 05:47:01 -0700 (PDT) In-Reply-To: <20150820120909.GC4571@adacore.com> References: <1433628336-24058-1-git-send-email-jcmvbkbc@gmail.com> <20150820120909.GC4571@adacore.com> Date: Thu, 20 Aug 2015 12:47:00 -0000 Message-ID: Subject: Re: [PATCH] xtensa: initialize call_abi in xtensa_tdep From: Max Filippov To: Joel Brobecker Cc: gdb-patches@sourceware.org, Maxim Grigoriev , Woody LaRue , Marc Gauthier Content-Type: text/plain; charset=UTF-8 X-SW-Source: 2015-08/txt/msg00538.txt.bz2 On Thu, Aug 20, 2015 at 3:09 PM, Joel Brobecker wrote: > On Sun, Jun 07, 2015 at 01:05:36AM +0300, Max Filippov wrote: >> Use XSHAL_ABI value provided by xtensa-config.h to correctly initialize >> xtensa_tdep.call_abi >> This fixes calls to functions from GDB that otherwise fail with the >> following assertion in call0 configuration: >> >> gdb/regcache.c:602: internal-error: regcache_raw_read: Assertion >> `regnum >= 0 && regnum < regcache->descr->nr_raw_registers' failed. >> >> gdb/ >> * xtensa-tdep.h (XTENSA_GDBARCH_TDEP_INSTANTIATE): Initialize >> call_abi using XSHAL_ABI macro. > > I am not sure I understand the patch. > > The first thing I should mention is that, unless what your patch > suggests, the code as I see it on master currently initializes call_abi > to CallAbiDefault: > > .call_abi = CallAbiDefault, \ > > And looking at the definitions of XSHAL_ABI and XTHAL_ABI_CALL0 > in include/xtensa-config.h, those definitions seem to be entirely > static... > > #undef XSHAL_ABI > #undef XTHAL_ABI_WINDOWED > #undef XTHAL_ABI_CALL0 > #define XSHAL_ABI XTHAL_ABI_WINDOWED > #define XTHAL_ABI_WINDOWED 0 > #define XTHAL_ABI_CALL0 1 > > ... and resolving to distinct values. So the condition would always > be false, resulting in call_abi always being set to CallAbiDefault. > > Am I missing something? The file include/xtensa-config.h is meant to be replaced by processor-specific version where XSHAL_ABI definition may be different. That's why I mention 'call0 configuration' in the description: when xtensa core is configured without windowed registers it will necessarily have call0 ABI. >> gdb/xtensa-tdep.h | 3 ++- >> 1 file changed, 2 insertions(+), 1 deletion(-) >> >> diff --git a/gdb/xtensa-tdep.h b/gdb/xtensa-tdep.h >> index adacaf8..3b6ea66 100644 >> --- a/gdb/xtensa-tdep.h >> +++ b/gdb/xtensa-tdep.h >> @@ -246,7 +246,8 @@ struct gdbarch_tdep >> .spill_location = -1, \ >> .spill_size = (spillsz), \ >> .unused = 0, \ >> - .call_abi = 0, \ >> + .call_abi = (XSHAL_ABI == XTHAL_ABI_CALL0) ? \ >> + CallAbiCall0Only : CallAbiDefault, \ > > Small style issue: binary operators should be at the start of > the next line, rather than the end of the current line. I'll send fixed v2. -- Thanks. -- Max