#ifndef REGISTER_H
#define REGISTER_H

struct reg {
    const char* const qword;
    const char* const dword;
    const char* const word;
    const char* const byte;
    bool is_occupied;
};

/* 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 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
