summaryrefslogtreecommitdiff
path: root/register.h
diff options
context:
space:
mode:
Diffstat (limited to 'register.h')
-rw-r--r--register.h40
1 files changed, 27 insertions, 13 deletions
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