diff --git a/src/common/x64/emitter.cpp b/src/common/x64/emitter.cpp
index 6c8d10ea7c8f6c08f2aa0b1794e2b36b82e4acc4..5662f7f86744b222b0fa63ad31bcfb12c8a625b5 100644
--- a/src/common/x64/emitter.cpp
+++ b/src/common/x64/emitter.cpp
@@ -455,6 +455,18 @@ void XEmitter::CALL(const void* fnptr)
     Write32(u32(distance));
 }
 
+FixupBranch XEmitter::CALL()
+{
+    FixupBranch branch;
+    branch.type = 1;
+    branch.ptr = code + 5;
+
+    Write8(0xE8);
+    Write32(0);
+
+    return branch;
+}
+
 FixupBranch XEmitter::J(bool force5bytes)
 {
     FixupBranch branch;
diff --git a/src/common/x64/emitter.h b/src/common/x64/emitter.h
index 80dfa96d25240acd36f50f872f5a86d63e111955..a33724146d1d10d0a8066b438fa3617fe24ef09d 100644
--- a/src/common/x64/emitter.h
+++ b/src/common/x64/emitter.h
@@ -425,6 +425,7 @@ public:
 #undef CALL
 #endif
     void CALL(const void* fnptr);
+    FixupBranch CALL();
     void CALLptr(OpArg arg);
 
     FixupBranch J_CC(CCFlags conditionCode, bool force5bytes = false);