[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 09/13] target-s390x: implement TRANSLATE EXTENDE
From: |
Richard Henderson |
Subject: |
Re: [Qemu-devel] [PATCH 09/13] target-s390x: implement TRANSLATE EXTENDED instruction |
Date: |
Tue, 02 Jun 2015 10:07:35 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:31.0) Gecko/20100101 Thunderbird/31.7.0 |
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~
- [Qemu-devel] [PATCH 00/13] target-s390x: fixes improvements, Aurelien Jarno, 2015/06/01
- [Qemu-devel] [PATCH 05/13] target-s390x: move STORE CLOCK FAST to the correct facility, Aurelien Jarno, 2015/06/01
- [Qemu-devel] [PATCH 04/13] target-s390x: change CHRL and CGHRL format to RIL-b, Aurelien Jarno, 2015/06/01
- [Qemu-devel] [PATCH 08/13] target-s390x: implement TRANSLATE AND TEST instruction, Aurelien Jarno, 2015/06/01
- [Qemu-devel] [PATCH 01/13] target-s390x: fix exception for invalid operation code, Aurelien Jarno, 2015/06/01