From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NzpiV-0006yr-MK for qemu-devel@nongnu.org; Thu, 08 Apr 2010 07:16:11 -0400 Received: from [140.186.70.92] (port=36986 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NzpiR-0006xB-5B for qemu-devel@nongnu.org; Thu, 08 Apr 2010 07:16:11 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1NzpiP-0002bc-7a for qemu-devel@nongnu.org; Thu, 08 Apr 2010 07:16:07 -0400 Received: from hall.aurel32.net ([88.191.82.174]:43153) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1NzpiO-0002bT-VU for qemu-devel@nongnu.org; Thu, 08 Apr 2010 07:16:05 -0400 Date: Thu, 8 Apr 2010 11:58:07 +0200 From: Aurelien Jarno Subject: Re: [Qemu-devel] [PATCH 4/4] tcg-hppa: Don't try to calls to non-constant addresses. Message-ID: <20100408095806.GC5700@volta.aurel32.net> References: <4BBC7304.7020508@aurel32.net> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-15 Content-Disposition: inline In-Reply-To: List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Richard Henderson Cc: qemu-devel@nongnu.org On Thu, Apr 08, 2010 at 01:24:35AM +0200, Richard Henderson wrote: > PA-RISC uses procedure descriptors. We'd need to emit a call to > the millicode routine $$dyncall. However, this situation doesn't > actually arise, since we always have the descriptor available at > TCG code generation time. Thanks, applied. > Signed-off-by: Richard Henderson > --- > tcg/hppa/tcg-target.c | 6 ++++-- > 1 files changed, 4 insertions(+), 2 deletions(-) > > diff --git a/tcg/hppa/tcg-target.c b/tcg/hppa/tcg-target.c > index aaa39e3..a8cb768 100644 > --- a/tcg/hppa/tcg-target.c > +++ b/tcg/hppa/tcg-target.c > @@ -1276,8 +1276,10 @@ static inline void tcg_out_op(TCGContext *s, TCGOpcode opc, const TCGArg *args, > if (const_args[0]) { > tcg_out_call(s, (void *)args[0]); > } else { > - tcg_out32(s, INSN_BLE_SR4 | INSN_R2(args[0])); > - tcg_out_mov(s, TCG_REG_RP, TCG_REG_R31); > + /* ??? FIXME: the value in the register in args[0] is almost > + certainly a procedure descriptor, not a code address. We > + probably need to use the millicode $$dyncall routine. */ > + tcg_abort(); > } > break; > > -- > 1.6.2.5 > > > > -- Aurelien Jarno GPG: 1024D/F1BCDB73 aurelien@aurel32.net http://www.aurel32.net