__vcpu_sys_reg(vcpu, r->reg) = r->val;
 }
 
-static inline bool sysreg_hidden(const struct kvm_vcpu *vcpu,
-                                const struct sys_reg_desc *r)
+static inline unsigned int sysreg_visibility(const struct kvm_vcpu *vcpu,
+                                            const struct sys_reg_desc *r)
 {
        if (likely(!r->visibility))
-               return false;
+               return 0;
 
-       return r->visibility(vcpu, r) & REG_HIDDEN;
+       return r->visibility(vcpu, r);
+}
+
+static inline bool sysreg_hidden(const struct kvm_vcpu *vcpu,
+                                const struct sys_reg_desc *r)
+{
+       return sysreg_visibility(vcpu, r) & REG_HIDDEN;
 }
 
 static inline bool sysreg_visible_as_raz(const struct kvm_vcpu *vcpu,
                                         const struct sys_reg_desc *r)
 {
-       if (likely(!r->visibility))
-               return false;
-
-       return r->visibility(vcpu, r) & REG_RAZ;
+       return sysreg_visibility(vcpu, r) & REG_RAZ;
 }
 
 static inline int cmp_sys_reg(const struct sys_reg_desc *i1,