Re: [Qemu-devel] [PATCH v4 3/3] target-mips: Misaligned memory accesses for MSA

2015-05-21 Thread Richard Henderson
On 05/21/2015 02:47 AM, Yongbok Kim wrote: > On 20/05/2015 18:25, Richard Henderson wrote: > >> >>> +int i; \ >>> +for (i = 0; i < DF_ELEMENTS(DF); i++) { \ >>> +wx.TYPE[i] = LD_INSN(env, addr

Re: [Qemu-devel] [PATCH v4 3/3] target-mips: Misaligned memory accesses for MSA

2015-05-21 Thread Yongbok Kim
On 20/05/2015 18:25, Richard Henderson wrote: > >> +int i; \ >> +for (i = 0; i < DF_ELEMENTS(DF); i++) { \ >> +wx.TYPE[i] = LD_INSN(env, addr + (i << DF), ##__VA_ARGS__); \ > > Why the va

Re: [Qemu-devel] [PATCH v4 3/3] target-mips: Misaligned memory accesses for MSA

2015-05-20 Thread Richard Henderson
On 05/20/2015 08:12 AM, Yongbok Kim wrote: > +#define MSA_LD_DF(DF, TYPE, LD_INSN, ...) \ > +void helper_msa_ld_ ## TYPE(CPUMIPSState *env, uint32_t wd, uint32_t rs,\ > + int32_t s10) \ > +{

[Qemu-devel] [PATCH v4 3/3] target-mips: Misaligned memory accesses for MSA

2015-05-20 Thread Yongbok Kim
MIPS SIMD Architecture vector loads and stores require misalignment support. MSA Memory access should work as an atomic operation. Therefore, it has to check validity of all addresses for a vector store access if it is spanning into two pages. Separating helper functions for each data format as fo