Re: [PATCH] target/sparc: Handle FPRS correctly on big-endian hosts

2023-07-17 Thread Philippe Mathieu-Daudé
On 16/7/23 19:32, Peter Maydell wrote: On Fri, 14 Jul 2023 at 18:52, Philippe Mathieu-Daudé wrote: Hi Peter, On 14/7/23 19:26, Peter Maydell wrote: In CPUSparcState we define the fprs field as uint64_t. However we then refer to it in translate.c via a TCGv_i32 which we set up with

Re: [PATCH] target/sparc: Handle FPRS correctly on big-endian hosts

2023-07-16 Thread Peter Maydell
On Fri, 14 Jul 2023 at 18:52, Philippe Mathieu-Daudé wrote: > > Hi Peter, > > On 14/7/23 19:26, Peter Maydell wrote: > > In CPUSparcState we define the fprs field as uint64_t. However we > > then refer to it in translate.c via a TCGv_i32 which we set up with > > tcg_global_mem_new_ptr(). This

Re: [PATCH] target/sparc: Handle FPRS correctly on big-endian hosts

2023-07-16 Thread Richard Henderson
On 7/14/23 18:26, Peter Maydell wrote: +++ b/target/sparc/gdbstub.c @@ -96,7 +96,10 @@ int sparc_cpu_gdb_read_register(CPUState *cs, GByteArray *mem_buf, int n) case 83: return gdb_get_regl(mem_buf, env->fsr); case 84: -return gdb_get_regl(mem_buf, env->fprs); +

Re: [PATCH] target/sparc: Handle FPRS correctly on big-endian hosts

2023-07-14 Thread Philippe Mathieu-Daudé
Hi Peter, On 14/7/23 19:26, Peter Maydell wrote: In CPUSparcState we define the fprs field as uint64_t. However we then refer to it in translate.c via a TCGv_i32 which we set up with tcg_global_mem_new_ptr(). This means that on a big-endian host when the guest does something to writo te the

Re: [PATCH] target/sparc: Handle FPRS correctly on big-endian hosts

2023-07-14 Thread Peter Maydell
On Fri, 14 Jul 2023 at 18:26, Peter Maydell wrote: > > In CPUSparcState we define the fprs field as uint64_t. However we > then refer to it in translate.c via a TCGv_i32 which we set up with > tcg_global_mem_new_ptr(). This means that on a big-endian host when > the guest does something to

[PATCH] target/sparc: Handle FPRS correctly on big-endian hosts

2023-07-14 Thread Peter Maydell
In CPUSparcState we define the fprs field as uint64_t. However we then refer to it in translate.c via a TCGv_i32 which we set up with tcg_global_mem_new_ptr(). This means that on a big-endian host when the guest does something to writo te the FPRS register this value ends up in the wrong half of