summaryrefslogtreecommitdiff
path: root/src/sys/include/np
diff options
context:
space:
mode:
authorIan Moffett <ian@osmora.org>2025-10-03 16:36:06 -0400
committerIan Moffett <ian@osmora.org>2025-10-03 16:36:06 -0400
commit39bd29f7dea6426db6fa78b4f18aae9aa76d8bc4 (patch)
treed97305f833e1a442a9b35daf3135b4d2c6ca834a /src/sys/include/np
parent5ac96ca0f277c447254bcc50f98457c779d59dd6 (diff)
np: piir: Add bitmap based register allocation
Introduce register allocation via a bitmap where each bit corresponds to a specific register index. Signed-off-by: Ian Moffett <ian@osmora.org>
Diffstat (limited to 'src/sys/include/np')
-rw-r--r--src/sys/include/np/piir.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/sys/include/np/piir.h b/src/sys/include/np/piir.h
index 5625409..b892231 100644
--- a/src/sys/include/np/piir.h
+++ b/src/sys/include/np/piir.h
@@ -42,6 +42,7 @@
*/
typedef int8_t ir_byte_t;
typedef int8_t md_byte_t;
+typedef int8_t reg_t;
/*
* The maxiumum size of the bytecode stack per
@@ -65,11 +66,13 @@ typedef int8_t md_byte_t;
* @code: Generated machine code
* @last_ir: Last IR byte used
* @code_i: Current index into code buffer
+ * @regset: Register set bitmap
*/
struct piir_vm {
md_byte_t code[4096];
ir_byte_t last_ir;
uint32_t code_i;
+ uint8_t regset;
};
/*