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