static inline register_t vreg_reg##sz##_extract(uint##sz##_t reg, \
const mmio_info_t *info)\
{ \
- return vreg_reg_extract(reg, info->gpa & offmask, \
+ return vreg_reg_extract(reg, info->gpa & (offmask), \
info->dabt.size); \
} \
\
{ \
unsigned long tmp = *reg; \
\
- vreg_reg_update(&tmp, val, info->gpa & offmask, \
+ vreg_reg_update(&tmp, val, info->gpa & (offmask), \
info->dabt.size); \
\
*reg = tmp; \
{ \
unsigned long tmp = *reg; \
\
- vreg_reg_setbits(&tmp, bits, info->gpa & offmask, \
+ vreg_reg_setbits(&tmp, bits, info->gpa & (offmask), \
info->dabt.size); \
\
*reg = tmp; \
{ \
unsigned long tmp = *reg; \
\
- vreg_reg_clearbits(&tmp, bits, info->gpa & offmask, \
+ vreg_reg_clearbits(&tmp, bits, info->gpa & (offmask), \
info->dabt.size); \
\
*reg = tmp; \