From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:52551) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YzpfD-00069I-9h for qemu-devel@nongnu.org; Tue, 02 Jun 2015 13:07:44 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YzpfA-0006Vo-2H for qemu-devel@nongnu.org; Tue, 02 Jun 2015 13:07:43 -0400 Received: from mail-qk0-x22e.google.com ([2607:f8b0:400d:c09::22e]:36777) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Yzpf9-0006Vk-R6 for qemu-devel@nongnu.org; Tue, 02 Jun 2015 13:07:40 -0400 Received: by qkx62 with SMTP id 62so104354770qkx.3 for ; Tue, 02 Jun 2015 10:07:39 -0700 (PDT) Sender: Richard Henderson Message-ID: <556DE2D7.5000005@twiddle.net> Date: Tue, 02 Jun 2015 10:07:35 -0700 From: Richard Henderson MIME-Version: 1.0 References: <1433193897-24110-1-git-send-email-aurelien@aurel32.net> <1433193897-24110-10-git-send-email-aurelien@aurel32.net> In-Reply-To: <1433193897-24110-10-git-send-email-aurelien@aurel32.net> Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] [PATCH 09/13] target-s390x: implement TRANSLATE EXTENDED instruction List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Aurelien Jarno , qemu-devel@nongnu.org Cc: Alexander Graf On 06/01/2015 02:24 PM, Aurelien Jarno wrote: > +/* TRANSLATE EXTENDED */ > + C(0xb2a5, TRE, RRE, Z, 0, 0, 0, 0, tre, 0) ... > +static ExitStatus op_tre(DisasContext *s, DisasOps *o) > +{ > + TCGv_i32 r1 = tcg_const_i32(get_field(s->fields, r1)); > + TCGv_i32 r2 = tcg_const_i32(get_field(s->fields, r2)); > + potential_page_fault(s); > + gen_helper_tre(cpu_env, r1, r2); > + tcg_temp_free_i32(r1); > + tcg_temp_free_i32(r2); > + set_cc_static(s); > + return NO_EXIT; > +} Missing the specification exception for odd r1. Easily fixable by using prep_r1_P. You don't necessarily have to do anything else -- merely prepping out+out2 are sufficient. But why don't we just pass and return (most) of the data to the helper? Like C(0xb2a5, TRE, RRE, Z, 0, r2, r1_P, 0, tre, 0) potential_page_fault(s); gen_helper_tre(o->out, cpu_env, o->out, o->out2, o->in2); return_low128(o->out2); set_cc_static(s); r~