From b1ff7e8bf24b40cf64127a6194d45661db3a4baf Mon Sep 17 00:00:00 2001 From: Carson Fleming Date: Fri, 31 Jul 2026 23:52:09 -0400 Subject: code gen can use registers besides RAX now --- register.h | 40 +++++++++++++++++++++++++++------------- 1 file changed, 27 insertions(+), 13 deletions(-) (limited to 'register.h') diff --git a/register.h b/register.h index 943e839..8a8ae3c 100644 --- a/register.h +++ b/register.h @@ -2,21 +2,35 @@ #define REGISTER_H struct reg { - const char* qword; - const char* dword; - const char* word; - const char* byte; + const char* const qword; + const char* const dword; + const char* const word; + const char* const byte; + bool is_occupied; }; -extern const struct reg RAX; -extern const struct reg RDI; -extern const struct reg RSI; -extern const struct reg RDX; -extern const struct reg R10; -extern const struct reg R9; -extern const struct reg R8; +/* TODO: maybe don't need these in the header file */ +extern struct reg RAX; +extern struct reg RBX; +extern struct reg RCX; +extern struct reg RDX; -extern const struct reg* const CALLING_CONV[]; -extern const unsigned char CC_N_REGS; +extern struct reg RDI; +extern struct reg RSI; +extern struct reg RSP; +extern struct reg RBP; + +extern struct reg R8; +extern struct reg R9; +extern struct reg R10; +extern struct reg R11; +extern struct reg R12; +extern struct reg R13; +extern struct reg R14; +extern struct reg R15; +/* END TODO */ + +extern struct reg* const CALLING_CONV[]; +extern struct reg* const DATA_REGS[]; #endif -- cgit v1.2.3