On 16 January 2014 16:59, Thomas Falcon <tlfal...@linux.vnet.ibm.com> wrote: > This patch allows registers to be properly read from and written to > when using the gdbstub to debug a ppc guest running in little > endian mode. It accomplishes this goal by byte swapping the values of > any registers if the MSR:LE value is set. > > Signed-off-by: Thomas Falcon<tlfal...@linux.vnet.ibm.com> > --- > Have created wrapper functions that swap mem_buf in-place. > mem_buf is swapped regardless of the the host's endianness if msr_le is > true. > ---
> + int len = ppc_cpu_gdb_read_register(cs, mem_buf, n),i; > + if(msr_le) > + { > + uint8_t tmp; > + for(i=0;i<len/2;i++) > + { > + tmp=*(mem_buf+i); > + *(mem_buf+i)=*(mem_buf+len-1-i); > + *(mem_buf+len-1-i)=tmp; > + } Please don't roll your own byte swapping. Also see my remarks on the previous patch series suggesting that we should look at this in a more holistic way than just randomly fixing small bits of things. A good place to start would be "what should the semantics of stl_p() be for a QEMU where the CPU is currently operating with a reversed endianness to the TARGET_WORDS_BIGENDIAN setting?". thanks -- PMM