On 11/15/19 6:29 PM, Alex Bennée wrote: > +++ b/target/arm/helper.c > @@ -47,30 +47,27 @@ static bool get_phys_addr_lpae(CPUARMState *env, > target_ulong address, > > static void switch_mode(CPUARMState *env, int mode); > > -static int vfp_gdb_get_reg(CPUARMState *env, uint8_t *buf, int reg) > +static int vfp_gdb_get_reg(CPUARMState *env, GByteArray *buf, int reg) > { > int nregs; > > /* VFP data registers are always little-endian. */ > nregs = arm_feature(env, ARM_FEATURE_VFP3) ? 32 : 16; > if (reg < nregs) { > - stq_le_p(buf, *aa32_vfp_dreg(env, reg)); > - return 8; > + return gdb_get_reg64(buf, *aa32_vfp_dreg(env, reg)); > } > if (arm_feature(env, ARM_FEATURE_NEON)) { > /* Aliases for Q regs. */ > nregs += 16; > if (reg < nregs) { > uint64_t *q = aa32_vfp_qreg(env, reg - 32); > - stq_le_p(buf, q[0]); > - stq_le_p(buf + 8, q[1]); > - return 16; > + return gdb_get_reg128(buf, q[0], q[1]); > }
Mostly ok, except for this change, which has the same endianness problem that the other ARM change did. Why is this not done in patch 6 with the other? r~