On 4/30/20 11:09 AM, Peter Maydell wrote:
> These don't use do_3same() because they want to
> operate on VFP double registers, whose offsets are different from the
> neon_reg_offset() calculations do_3same does.

Actually, no, it's an around the bush way of computing the same register offset.

vfp_reg_offset(true, reg)

->  vfp.zregs[reg >> 1].d[reg & 1];

neon_reg_offset(reg, 0)

->  vfp_reg_offset(false, 2 * reg + 0)
->  vfp.zregs[(2 * reg) >> 2].d[((2 * reg) >> 1) & 1]
    + ((2 * reg) & 1) * offsetof(lower/upper)
->  vfp.zregs[reg >> 1].d[reg & 1] + 0


r~

Reply via email to