Re: [Qemu-devel] [PATCH 16/26] target/s390x: implement COMPARE LOGICAL LONG

2017-05-29 Thread Aurelien Jarno
On 2017-05-26 08:32, Richard Henderson wrote: > On 05/25/2017 02:04 PM, Aurelien Jarno wrote: > > -if (srclen) { > > -v1 = cpu_ldub_data_ra(env, src, ra); > > +if (*srclen) { > > +v1 = cpu_ldub_data_ra(env, *src, ra); > > } > > -if (destlen)

Re: [Qemu-devel] [PATCH 16/26] target/s390x: implement COMPARE LOGICAL LONG

2017-05-26 Thread Richard Henderson
On 05/25/2017 02:04 PM, Aurelien Jarno wrote: +static ExitStatus op_clcl(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)); Need to force r1 and r2 even. I guess we didn't do that for clcle ei

Re: [Qemu-devel] [PATCH 16/26] target/s390x: implement COMPARE LOGICAL LONG

2017-05-26 Thread Richard Henderson
On 05/25/2017 02:04 PM, Aurelien Jarno wrote: -if (srclen) { -v1 = cpu_ldub_data_ra(env, src, ra); +if (*srclen) { +v1 = cpu_ldub_data_ra(env, *src, ra); } -if (destlen) { -v2 = cpu_ldub_data_ra(env, dest, ra); +if (*de

[Qemu-devel] [PATCH 16/26] target/s390x: implement COMPARE LOGICAL LONG

2017-05-25 Thread Aurelien Jarno
As CLCL and CLCLE mostly differ by their operands, use a common do_clcl helper. Another difference is that CLCL is not interruptible. Signed-off-by: Aurelien Jarno --- target/s390x/helper.h | 1 + target/s390x/insn-data.def | 2 ++ target/s390x/mem_helper.c | 86 +