On 28.02.19 00:46, Richard Henderson wrote: > On 2/26/19 3:39 AM, David Hildenbrand wrote: >> +static DisasJumpType op_vst(DisasContext *s, DisasOps *o) >> +{ >> + /* >> + * FIXME: On exceptions we must not modify any memory. >> + */ >> + store_vec_element(s, get_field(s->fields, v1), 0, o->addr1, MO_64); >> + gen_addi_and_wrap_i64(s, o->addr1, o->addr1, 8); >> + store_vec_element(s, get_field(s->fields, v1), 1, o->addr1, MO_64); >> + return DISAS_NEXT; > > Should handle alignment though.
Again, as unaligned access must not trigger an exception, I don't think we can use MO_ALIGN. > > FWIW, there is a probe_write function that can be called to make sure a region > is writable before actually accessing it. But this is common enough that we > should probably just handle 16-byte quantities as a native tcg type. That would make most sense. It won't help for the VECTOR_STORE_MULTIPLE part, though. I'll keep it as is for now. Thanks! > > Reviewed-by: Richard Henderson <richard.hender...@linaro.org> > > > r~ > -- Thanks, David / dhildenb