From 8dbbc8c2f56e84e9cff97188dc5ad832660d3cc8 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Sun, 30 Aug 2015 09:55:24 -0700 Subject: struct: 4-way set associative slot caches. * lib.h (SLOT_CACHE_SIZE): Adjust value from 32 to 8. (slot_cache_entry_t): New struct typedef. (slot_cache_line_t): Typedef updated: a cache line consists of cache line entry structs rather than cnums. * struct.c (cacheline_lookup, cacheline_insert): New static functions. (lookup_slot): Use cacheline_lookup and cacheline_insert. --- lib.h | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'lib.h') diff --git a/lib.h b/lib.h index f8331b4e..93a2b446 100644 --- a/lib.h +++ b/lib.h @@ -99,10 +99,14 @@ struct string { val alloc; }; -#define SLOT_CACHE_SIZE 32 +#define SLOT_CACHE_SIZE 8 -typedef cnum slot_cache_line_t[2]; -typedef slot_cache_line_t *slot_cache_t; +typedef struct { + cnum id; + cnum slot; +} slot_cache_entry_t; +typedef slot_cache_entry_t slot_cache_set_t[4]; +typedef slot_cache_set_t *slot_cache_t; struct sym { obj_common; -- cgit v1.2.3