.val = v,                               \
 }
 
+#define EL2_REG_FILTERED(name, acc, rst, v, filter) {  \
+       SYS_DESC(SYS_##name),                   \
+       .access = acc,                          \
+       .reset = rst,                           \
+       .reg = name,                            \
+       .visibility = filter,                   \
+       .val = v,                               \
+}
+
 #define EL2_REG_VNCR(name, rst, v)     EL2_REG(name, bad_vncr_trap, rst, v)
 #define EL2_REG_REDIR(name, rst, v)    EL2_REG(name, bad_redir_trap, rst, v)
 
        EL2_REG_VNCR(HFGITR_EL2, reset_val, 0),
        EL2_REG_VNCR(HACR_EL2, reset_val, 0),
 
-       { SYS_DESC(SYS_ZCR_EL2), .access = access_zcr_el2, .reset = reset_val,
-         .visibility = sve_el2_visibility, .reg = ZCR_EL2 },
+       EL2_REG_FILTERED(ZCR_EL2, access_zcr_el2, reset_val, 0,
+                        sve_el2_visibility),
 
        EL2_REG_VNCR(HCRX_EL2, reset_val, 0),