diff --git a/src/core_demo.cc b/src/core_demo.cc index 6df2e3d..26d37e5 100644 --- a/src/core_demo.cc +++ b/src/core_demo.cc @@ -27,39 +27,14 @@ cache_t cache[16]; #define NEXT_CODE_2x1 (code & ~(F_2x1 << addr) | (C_2x1 << next_addr)) #define NEXT_CODE_2x2 (code & ~(F_2x2 << addr) | (C_2x2 << next_addr)) -#define release_1x1(FILTER) { \ - cache_t next_case = { \ - .code = NEXT_CODE_1x1, \ - .mask = F_1x1 << next_addr, \ - .filter = FILTER, \ - .addr = next_addr \ - }; \ - cache_insert(next_case); \ -} - -#define release_1x2(FILTER) { \ - cache_t next_case = { \ - .code = NEXT_CODE_1x2, \ - .mask = F_1x1 << next_addr, \ - .filter = FILTER, \ - .addr = next_addr \ - }; \ - cache_insert(next_case); \ -} - -#define release_2x1(FILTER) { \ - cache_t next_case = { \ - .code = NEXT_CODE_2x1, \ - .mask = F_1x1 << next_addr, \ - .filter = FILTER, \ - .addr = next_addr \ - }; \ - cache_insert(next_case); \ -} +#define release_1x1(FILTER) RELEASE(NEXT_CODE_1x1, FILTER) +#define release_1x2(FILTER) RELEASE(NEXT_CODE_1x2, FILTER) +#define release_2x1(FILTER) RELEASE(NEXT_CODE_2x1, FILTER) +#define release_2x2(FILTER) RELEASE(NEXT_CODE_2x2, FILTER) -#define release_2x2(FILTER) { \ +#define RELEASE(NEXT_CODE, FILTER) { \ cache_t next_case = { \ - .code = NEXT_CODE_2x2, \ + .code = NEXT_CODE, \ .mask = F_1x1 << next_addr, \ .filter = FILTER, \ .addr = next_addr \ @@ -246,5 +221,4 @@ void next_step(uint64_t raw_code, uint64_t mask) { std::cout << "=======" << std::endl << std::endl; } - }