From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from [140.186.70.92] (port=55044 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OTZ1E-00022O-Uf for qemu-devel@nongnu.org; Tue, 29 Jun 2010 07:30:26 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OTZ1D-0003Dz-AJ for qemu-devel@nongnu.org; Tue, 29 Jun 2010 07:30:24 -0400 Received: from mail.codesourcery.com ([38.113.113.100]:60189) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OTZ1D-0003Dc-1S for qemu-devel@nongnu.org; Tue, 29 Jun 2010 07:30:23 -0400 From: Paul Brook Subject: Re: [Qemu-devel] Re: [PATCH 4/4] require #define NEED_GLOBAL_ENV for files that need the global register variable Date: Tue, 29 Jun 2010 12:30:16 +0100 References: <1277745445-30560-1-git-send-email-pbonzini@redhat.com> <201006282129.34080.paul@codesourcery.com> <4C29A478.1080805@redhat.com> In-Reply-To: <4C29A478.1080805@redhat.com> MIME-Version: 1.0 Content-Type: Text/Plain; charset="iso-8859-15" Content-Transfer-Encoding: 7bit Message-Id: <201006291230.18759.paul@codesourcery.com> List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: blauwirbel@gmail.com, Paolo Bonzini > On 06/28/2010 10:29 PM, Paul Brook wrote: > >> diff --git a/exec-all.h b/exec-all.h > >> index a775582..ebe88ad 100644 > >> --- a/exec-all.h > >> +++ b/exec-all.h > >> @@ -353,4 +353,8 @@ extern int singlestep; > >> > >> /* cpu-exec.c */ > >> extern volatile sig_atomic_t exit_request; > >> > >> +#ifdef NEED_GLOBAL_ENV > >> +register CPUState *env asm(AREG0); > >> +#endif > > > > Wouldn't it be better to just put this in dyngen-exec.h ? > > AFAICT there's a direct correlation between NEED_GLOBAL_ENV and #include > > "exec.h". > > True, see cover letter in 0/4. I was told to make each file request > explicitly the global variable though. So I'd have to leave the #ifdef > even if I moved it into dyngen-exec.h. I don't understand what this is supposed to achieve. The inclusion of exec.h is what defines whether this global variable is available. Just as importantly, it also prevents code clobbering this value. Having one without the other makes no sense. Making "env" available without including exec.h would be a different problem, but we never do that and would probably indicate we're doing something else wrong. Paul