On Wed, Apr 04, 2018 at 12:15:24PM +0800, Bin Meng wrote: > > Doesn't readX/writeX imply a single I/O operation? > > It may be misleading to define it as two. > > > > Assuming MMX or SSE2 to be supported by all x86 processors, 64-bit I/O > > registers can be accessed as a single operation even in 32-bit code: > > > > Adding such requirement (MMX or SSE2) to U-Boot is not good. Why do we > require MMX or SSE2 for readq? Can we use general purpose registers?
In 32-bit code, we can't make a 64-bit memory read operation using only general purpose registers. > > > static inline u64 readq(void *addr) > > { > > u64 value; > > > > asm volatile ("movq (%0), %%xmm0" : : "r" (addr)); > > asm volatile ("movq %%xmm0, %0" : "=m" (value)); > > > > return value; > > } > > > > I can add these definitions to "asm/io.h". _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot