summaryrefslogtreecommitdiff
path: root/include/x86.h
diff options
context:
space:
mode:
author0x221E <0x221E@0xinfinity.dev>2026-04-12 16:24:06 +0200
committer0x221E <0x221E@0xinfinity.dev>2026-04-12 16:24:06 +0200
commit4946ca67cf04845737f0f7f70b5ed27bcfe9a18b (patch)
treee0ce4c11f5b81828da7680143ea444003dd355b3 /include/x86.h
Initial commitHEADmaster
Diffstat (limited to 'include/x86.h')
-rw-r--r--include/x86.h36
1 files changed, 36 insertions, 0 deletions
diff --git a/include/x86.h b/include/x86.h
new file mode 100644
index 0000000..6eb8831
--- /dev/null
+++ b/include/x86.h
@@ -0,0 +1,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