On 12/9/22 07:15, Philippe Mathieu-Daudé wrote:
/* CPU Configuration */ -#if TARGET_BIG_ENDIAN s->regs[GT_CPU] = 0x00000000; -#else - s->regs[GT_CPU] = 0x00001000; -#endif + s->regs[GT_CPU] = FIELD_DP32(s->regs[GT_CPU], GT_CPU, Endianess, cpu_le);
Missing set to zero before deposit. Though I wonder if = cpu_le ? R_GT_CPU_Endianness_MASK : 0 might be easier?
-#if TARGET_BIG_ENDIAN s->regs[GT_PCI0_CMD] = 0x00000000; -#else - s->regs[GT_PCI0_CMD] = 0x00010001; -#endif + s->regs[GT_PCI0_CMD] = FIELD_DP32(s->regs[GT_PCI0_CMD], + GT_PCI0_CMD, MByteSwap, cpu_le); + s->regs[GT_PCI0_CMD] = FIELD_DP32(s->regs[GT_PCI0_CMD], + GT_PCI0_CMD, SByteSwap, cpu_le);
This one at least has the zero, but it might as well use the masks like above.
-#if TARGET_BIG_ENDIAN s->regs[GT_PCI1_CMD] = 0x00000000; -#else - s->regs[GT_PCI1_CMD] = 0x00010001; -#endif + s->regs[GT_PCI1_CMD] = FIELD_DP32(s->regs[GT_PCI1_CMD], + GT_PCI1_CMD, MByteSwap, cpu_le); + s->regs[GT_PCI1_CMD] = FIELD_DP32(s->regs[GT_PCI1_CMD], + GT_PCI1_CMD, SByteSwap, cpu_le);
Likewise. r~