diff options
Diffstat (limited to 'examples/synthetic/bitfield/program.cpp')
| -rw-r--r-- | examples/synthetic/bitfield/program.cpp | 112 | 
1 files changed, 47 insertions, 65 deletions
| diff --git a/examples/synthetic/bitfield/program.cpp b/examples/synthetic/bitfield/program.cpp index 5276824a2fb4..1db4aa4e719e 100644 --- a/examples/synthetic/bitfield/program.cpp +++ b/examples/synthetic/bitfield/program.cpp @@ -1,74 +1,56 @@  typedef unsigned int uint32_t; -enum MaskingOperator -{ -	eMaskingOperatorDefault = 0, -	eMaskingOperatorAnd = 1, -	eMaskingOperatorOr = 2, -	eMaskingOperatorXor = 3, -	eMaskingOperatorNand = 4, -	eMaskingOperatorNor = 5 +enum MaskingOperator { +  eMaskingOperatorDefault = 0, +  eMaskingOperatorAnd = 1, +  eMaskingOperatorOr = 2, +  eMaskingOperatorXor = 3, +  eMaskingOperatorNand = 4, +  eMaskingOperatorNor = 5  }; -class MaskedData -{ +class MaskedData {  private: -	uint32_t value; -	uint32_t mask; -	MaskingOperator oper; +  uint32_t value; +  uint32_t mask; +  MaskingOperator oper; +  public: -	MaskedData( uint32_t V = 0, -				uint32_t M = 0, -				MaskingOperator P = eMaskingOperatorDefault) : -		value(V), -		mask(M), -		oper(P) -	{ -	} -		 -	uint32_t apply() -	{ -		switch(oper) -		{ -			case eMaskingOperatorAnd: -				return value & mask; -			case eMaskingOperatorOr: -				return value | mask; -			case eMaskingOperatorXor: -				return value ^ mask; -			case eMaskingOperatorNand: -				return ~(value & mask); -			case eMaskingOperatorNor: -				return ~(value | mask); -			case eMaskingOperatorDefault: // fall through -			default: -				return value; -		} -	} -	 -	void setValue(uint32_t V) -	{ -		value = V; -	} -	 -	void setMask (uint32_t M) -	{ -		mask = M; -	} -	 -	void setOperator(MaskingOperator P) -	{ -		oper = P; -	}	 +  MaskedData(uint32_t V = 0, uint32_t M = 0, +             MaskingOperator P = eMaskingOperatorDefault) +      : value(V), mask(M), oper(P) {} + +  uint32_t apply() { +    switch (oper) { +    case eMaskingOperatorAnd: +      return value & mask; +    case eMaskingOperatorOr: +      return value | mask; +    case eMaskingOperatorXor: +      return value ^ mask; +    case eMaskingOperatorNand: +      return ~(value & mask); +    case eMaskingOperatorNor: +      return ~(value | mask); +    case eMaskingOperatorDefault: // fall through +    default: +      return value; +    } +  } + +  void setValue(uint32_t V) { value = V; } + +  void setMask(uint32_t M) { mask = M; } + +  void setOperator(MaskingOperator P) { oper = P; }  }; -int main() -{ -	MaskedData data_1(0xFF0F,0xA01F,eMaskingOperatorAnd); -	MaskedData data_2(data_1.apply(),0x1AFC,eMaskingOperatorXor); -	MaskedData data_3(data_2.apply(),0xFFCF,eMaskingOperatorOr); -	MaskedData data_4(data_3.apply(),0xAABC,eMaskingOperatorAnd); -	MaskedData data_5(data_4.apply(),0xFFAC,eMaskingOperatorNor); -	MaskedData data_6(data_5.apply(),0x0000BEEF,eMaskingOperatorAnd); -	return data_6.apply(); // <-- what comes out of here? +int main() { +  MaskedData data_1(0xFF0F, 0xA01F, eMaskingOperatorAnd); +  MaskedData data_2(data_1.apply(), 0x1AFC, eMaskingOperatorXor); +  MaskedData data_3(data_2.apply(), 0xFFCF, eMaskingOperatorOr); +  MaskedData data_4(data_3.apply(), 0xAABC, eMaskingOperatorAnd); +  MaskedData data_5(data_4.apply(), 0xFFAC, eMaskingOperatorNor); +  MaskedData data_6(data_5.apply(), 0x0000BEEF, eMaskingOperatorAnd); +  return data_6.apply(); // <-- what comes out of here?  }
\ No newline at end of file | 
