summaryrefslogtreecommitdiff
path: root/register.h
blob: 8a8ae3cd0a92a12ca4c23ac4050b20fb6ebe25cc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#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