diff options
Diffstat (limited to 'executor/x86_64/asm.h')
-rw-r--r-- | executor/x86_64/asm.h | 28 |
1 files changed, 20 insertions, 8 deletions
diff --git a/executor/x86_64/asm.h b/executor/x86_64/asm.h index 6ac74f4..b82a63e 100644 --- a/executor/x86_64/asm.h +++ b/executor/x86_64/asm.h @@ -21,15 +21,27 @@ typedef enum { EDI } Reg32; +#define REG64_EXTENDED_REG_BIT (1 << 3) +#define REG64_REG_BITS 0x7 + typedef enum { - RAX, - RCX, - RDX, - RBX, - RSP, - RBP, - RSI, - RDI + RAX = 0, + RCX = 1, + RDX = 2, + RBX = 3, + RSP = 4, + RBP = 5, + RSI = 6, + RDI = 7, + + R8 = REG64_EXTENDED_REG_BIT | RAX, + R9 = REG64_EXTENDED_REG_BIT | RCX, + R10 = REG64_EXTENDED_REG_BIT | RDX, + R11 = REG64_EXTENDED_REG_BIT | RBX, + R12 = REG64_EXTENDED_REG_BIT | RSP, + R13 = REG64_EXTENDED_REG_BIT | RBP, + R14 = REG64_EXTENDED_REG_BIT | RSI, + R15 = REG64_EXTENDED_REG_BIT | RDI } Reg64; typedef struct { |