summaryrefslogtreecommitdiff
path: root/examples/synthetic/bitfield/program.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'examples/synthetic/bitfield/program.cpp')
-rw-r--r--examples/synthetic/bitfield/program.cpp56
1 files changed, 0 insertions, 56 deletions
diff --git a/examples/synthetic/bitfield/program.cpp b/examples/synthetic/bitfield/program.cpp
deleted file mode 100644
index d14edda30515..000000000000
--- a/examples/synthetic/bitfield/program.cpp
+++ /dev/null
@@ -1,56 +0,0 @@
-typedef unsigned int uint32_t;
-
-enum MaskingOperator {
- eMaskingOperatorDefault = 0,
- eMaskingOperatorAnd = 1,
- eMaskingOperatorOr = 2,
- eMaskingOperatorXor = 3,
- eMaskingOperatorNand = 4,
- eMaskingOperatorNor = 5
-};
-
-class MaskedData {
-private:
- 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; }
-};
-
-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?
-}