> Am 16.01.2014 um 18:41 schrieb Peter Maydell <peter.mayd...@linaro.org>: > >> 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?".
That'd open a giant can of worms that I'd rather not open. RTAS for example is still BE regardless of guest endianness. Alex > > thanks > -- PMM