Hi Julien,
static inline void vreg_reg##sz##_update(uint##sz##_t *reg,
register_t val,
const mmio_info_t *info)
{
uint##sz##_t tmp = *reg;
Drop this as we don't use tmp.
uint##sz##_t mask = VREG_REG_MASK(info->dabt.size);
unsigned int offset = info->gap & (offsetmask);
int shift = offset * 8;
*reg &= ~(mask << shift);
*reg |= ((uint##sz##_t)val & mask) << shift;
}
I think this is correct. Except for an improvement (as above).
Also, we will always keep this defined for both Arm32 and Arm64
VREG_REG_HELPERS(32, 0x3);
VREG_REG_HELPERS(64, 0x7);
- Ayan