diff options
author | bd <bdunahu@operationnull.com> | 2025-03-28 18:10:14 -0400 |
---|---|---|
committer | bd <bdunahu@operationnull.com> | 2025-03-28 18:10:14 -0400 |
commit | 136417edd709f0e2d30931d222b658ff7dd9a5a8 (patch) | |
tree | 7ecf0837278e46146360134bb43252357acfe494 /inc/definitions.h | |
parent | ab6d02361b04a18b7823aef0ff1cb0ff2a215ec2 (diff) |
add get_instr_fields func to parse instruction fields from raw bits
Diffstat (limited to 'inc/definitions.h')
-rw-r--r-- | inc/definitions.h | 27 |
1 files changed, 26 insertions, 1 deletions
diff --git a/inc/definitions.h b/inc/definitions.h index ff2f7c6..c9367ff 100644 --- a/inc/definitions.h +++ b/inc/definitions.h @@ -11,6 +11,10 @@ * The total number of words in a line */ #define LINE_SIZE static_cast<int>(pow(2, 2)) +/** + * Number of bits in a word + */ +#define WORD_SPEC 32 /** * The number of bits to specify a memory word @@ -28,7 +32,8 @@ * The total number of lines in l1 cache */ #define L1_CACHE_WORD_SPEC 7 -#define L1_CACHE_LINE_SPEC static_cast<unsigned int>(L1_CACHE_WORD_SPEC - LINE_SPEC) +#define L1_CACHE_LINE_SPEC \ + static_cast<unsigned int>(L1_CACHE_WORD_SPEC - LINE_SPEC) #define L1_CACHE_LINES static_cast<int>(pow(2, L1_CACHE_LINE_SPEC)) /** @@ -47,6 +52,26 @@ #define GPR_NUM 16 /** + * The number of bits to specify an instruction type + */ +#define TYPE_SIZE 2 + +/** + * The number of bits to specify a register + */ +#define REG_SIZE 5 + +/** + * The number of bits to specify an R-Type opcode. + */ +#define R_OPCODE_SIZE 5 + +/** + * The number of bits to specify an opcode. + */ +#define OPCODE_SIZE 4 + +/** * Return the N least-significant bits from integer K using a bit mask * @param the integer to be parsed * @param the number of bits to be parsed |