diff --git a/.gitmodules b/.gitmodules
index f498a60de..dbb1b0dd3 100644
--- a/.gitmodules
+++ b/.gitmodules
@@ -16,3 +16,6 @@
 [submodule "dynarmic"]
     path = externals/dynarmic
     url = https://github.com/MerryMage/dynarmic.git
+[submodule "xbyak"]
+    path = externals/xbyak
+    url = https://github.com/herumi/xbyak.git
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 2c00690c0..bcee98a5f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -256,6 +256,8 @@ set(INI_PREFIX "${CMAKE_CURRENT_SOURCE_DIR}/externals/inih")
 include_directories(${INI_PREFIX})
 add_subdirectory(${INI_PREFIX})
 
+add_subdirectory(externals)
+
 option(DYNARMIC_TESTS OFF)
 add_subdirectory(externals/dynarmic)
 
diff --git a/externals/CMakeLists.txt b/externals/CMakeLists.txt
new file mode 100644
index 000000000..7e4b05ffc
--- /dev/null
+++ b/externals/CMakeLists.txt
@@ -0,0 +1,8 @@
+# Xbyak
+if (ARCHITECTURE_x86_64)
+    add_library(xbyak INTERFACE)
+    target_include_directories(xbyak INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/xbyak/xbyak)
+    if (NOT MSVC)
+        target_compile_options(xbyak INTERFACE -fno-operator-names)
+    endif()
+endif()
diff --git a/externals/xbyak b/externals/xbyak
new file mode 160000
index 000000000..fe4765d2f
--- /dev/null
+++ b/externals/xbyak
@@ -0,0 +1 @@
+Subproject commit fe4765d2fed4e990ea5e9661b6bc5fc9bf48ec16