On 2/26/19 3:38 AM, David Hildenbrand wrote: > +void HELPER(vll)(CPUS390XState *env, void *v1, uint64_t addr, uint64_t bytes) > +{ > + S390Vector tmp = {}; > + int i; > + > + bytes = MIN(bytes, 16); > + for (i = 0; i < bytes; i++) { > + uint8_t byte = cpu_ldub_data_ra(env, addr, GETPC()); > + > + s390_vec_write_element8(&tmp, i, byte); > + addr = wrap_address(env, addr + 1); > + }
TODO: if (likely(bytes >= 16)) { uint64_t t0 = cpu_ldq_data_ra(env, addr, GETPC()); uint64_t t1 = cpu_ldq_data_ra(env, addr, GETPC()); s390_vec_write_element64(v1, 0, t0); s390_vec_write_element64(v1, 1, t1); } else { // byte loop } But what you have is correct, so Reviewed-by: Richard Henderson <richard.hender...@linaro.org> r~