From 18a5814e5a21d4532ba3e896af4b43107d75587f Mon Sep 17 00:00:00 2001 From: Dnomd343 Date: Tue, 10 Jan 2023 23:38:11 +0800 Subject: [PATCH] feat: `NEXT_CODE_` macro in core --- src/core_demo.cc | 64 +++++++----------------------------------------- 1 file changed, 9 insertions(+), 55 deletions(-) diff --git a/src/core_demo.cc b/src/core_demo.cc index f6a48a7..6df2e3d 100644 --- a/src/core_demo.cc +++ b/src/core_demo.cc @@ -22,70 +22,24 @@ cache_t cache[16]; #define TOP_LIMIT(ADDR) (addr >= ADDR * 3) #define BOTTOM_LIMIT(ADDR) (addr <= ADDR * 3) +#define NEXT_CODE_1x1 (code & ~(F_1x1 << addr) | (C_1x1 << next_addr)) +#define NEXT_CODE_1x2 (code & ~(F_1x2 << addr) | (C_1x2 << next_addr)) +#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 = code & ~(F_1x1 << addr) | (C_1x1 << next_addr), \ + .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 = code & ~(F_1x2 << addr) | (C_1x2 << next_addr), \ -// .mask = F_1x1 << next_addr, \ -// .filter = FILTER, \ -// .addr = next_addr \ -// }; \ -// cache_insert(next_case); \ -//} -// -//#define release_2x1(FILTER) { \ -// cache_t next_case = { \ -// .code = code & ~(F_2x1 << addr) | (C_2x1 << next_addr), \ -// .mask = F_1x1 << next_addr, \ -// .filter = FILTER, \ -// .addr = next_addr \ -// }; \ -// cache_insert(next_case); \ -//} -// -//#define release_2x2(FILTER) { \ -// cache_t next_case = { \ -// .code = code & ~(F_2x2 << addr) | (C_2x2 << next_addr), \ -// .mask = F_1x1 << next_addr, \ -// .filter = FILTER, \ -// .addr = next_addr \ -// }; \ -// cache_insert(next_case); \ -//} - -//#define release_1x1(FILTER) { \ -// uint64_t next_code = code & ~(F_1x1 << addr) | (C_1x1 << next_addr); \ -// bool flag = true; \ -// auto *cache_p = cache; \ -// for (; cache_p < cache + cache_size; ++cache_p) { \ -// if (cache_p->code == next_code) { \ -// flag = false; \ -// break; \ -// } \ -// } \ -// if (flag) { \ -// *cache_p = { \ -// .code = next_code, \ -// .mask = F_1x1 << next_addr, \ -// .filter = FILTER, \ -// .addr = next_addr \ -// }; \ -// ++cache_size; \ -// } \ -//} #define release_1x2(FILTER) { \ cache_t next_case = { \ - .code = code & ~(F_1x2 << addr) | (C_1x2 << next_addr), \ + .code = NEXT_CODE_1x2, \ .mask = F_1x1 << next_addr, \ .filter = FILTER, \ .addr = next_addr \ @@ -95,7 +49,7 @@ cache_t cache[16]; #define release_2x1(FILTER) { \ cache_t next_case = { \ - .code = code & ~(F_2x1 << addr) | (C_2x1 << next_addr), \ + .code = NEXT_CODE_2x1, \ .mask = F_1x1 << next_addr, \ .filter = FILTER, \ .addr = next_addr \ @@ -105,7 +59,7 @@ cache_t cache[16]; #define release_2x2(FILTER) { \ cache_t next_case = { \ - .code = code & ~(F_2x2 << addr) | (C_2x2 << next_addr), \ + .code = NEXT_CODE_2x2, \ .mask = F_1x1 << next_addr, \ .filter = FILTER, \ .addr = next_addr \