On 14/05/2015 20:12, Richard Henderson wrote: > /* We know both pages are present and writable. */ > if (eaddr == baddr + 15) { > /* Consecutive pages in RAM. */ > memcpy(baddr, register, 16); > } else { > /* Someone's doing an MSA store to device memory. */ > for (i = 0; i < 2; ++i) { > helper_ret_stq_mmu(env, vaddr + i*8, register.d[0], > make_memop_idx(MO_UNALN | MO_TEQ, mmu_idx), > GETRA()); > } > }
We would additionally need to take care of vector elements' endianness before using this code. Therefore always using helper_ret_st[bwlq]_mmu (depending on data format) in a loop probably is simpler. Leon