summaryrefslogtreecommitdiff
path: root/include/x86.h
blob: 6eb8831b10dc9051c9d94244b068c824cf373c49 (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 X86_H
#define X86_H

#include <stdint.h>

#define	RAX 0
#define	RCX 1
#define	RDX 2
#define	RBX 3
#define	RSP 4
#define	RBP 5
#define	RSI 6
#define	RDI 7
#define R8  8
#define R9  9
#define R10 10
#define R11 11
#define R12 12
#define R13 13
#define R14 14
#define R15 15

#define REXW 0b01001000
#define REXWR 0b01001100

#define MODRM(mod, reg, rm) ((uint8_t)mod << 6)	| ((uint8_t)reg << 3)		\
		| ((uint8_t)rm)

void x86_mov_r_i64(uint8_t reg, uint64_t value);
void x86_push_i32(uint32_t value);
void x86_push_i16(uint16_t value);
void x86_push_i8(uint8_t value);
void x86_push_r64(uint8_t reg);
void x86_push_rm64(uint8_t mode, uint8_t r, uint64_t m);

#endif