Lines Matching refs:CPUFeatures
41 CPUFeatures CPUFeatures::All() {
42 CPUFeatures all;
47 CPUFeatures CPUFeatures::InferFromIDRegisters() {
49 CPUFeatures features(CPUFeatures::kIDRegisterEmulation);
58 CPUFeatures CPUFeatures::InferFromOS(QueryIDRegistersOption option) {
63 return CPUFeatures();
67 void CPUFeatures::Combine(const CPUFeatures& other) {
71 void CPUFeatures::Combine(Feature feature) {
72 if (feature != CPUFeatures::kNone) features_.set(feature);
75 void CPUFeatures::Remove(const CPUFeatures& other) {
79 void CPUFeatures::Remove(Feature feature) {
80 if (feature != CPUFeatures::kNone) features_.reset(feature);
83 bool CPUFeatures::Has(const CPUFeatures& other) const {
87 bool CPUFeatures::Has(Feature feature) const {
88 return (feature == CPUFeatures::kNone) || features_[feature];
91 size_t CPUFeatures::Count() const { return features_.count(); }
93 std::ostream& operator<<(std::ostream& os, CPUFeatures::Feature feature) {
97 case CPUFeatures::SYMBOL: \
101 case CPUFeatures::kNone:
103 case CPUFeatures::kNumberOfFeatures:
111 CPUFeatures::const_iterator CPUFeatures::begin() const {
117 CPUFeatures::const_iterator CPUFeatures::end() const {
121 std::ostream& operator<<(std::ostream& os, const CPUFeatures& features) {
123 for (CPUFeatures::Feature feature : features) {
141 feature_ = static_cast<CPUFeatures::Feature>(feature_ + 1);
142 if (feature_ == CPUFeatures::kNumberOfFeatures) {
143 feature_ = CPUFeatures::kNone;
144 VIXL_STATIC_ASSERT(CPUFeatures::kNone == -1);
146 VIXL_ASSERT(CPUFeatures::kNone <= feature_);
147 VIXL_ASSERT(feature_ < CPUFeatures::kNumberOfFeatures);