Quellcode durchsuchen

emitter: Add CALL that can be fixed up.

bunnei vor 10 Jahren
Ursprung
Commit
507e0b5989
2 geänderte Dateien mit 13 neuen und 0 gelöschten Zeilen
  1. 12 0
      src/common/x64/emitter.cpp
  2. 1 0
      src/common/x64/emitter.h

+ 12 - 0
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;

+ 1 - 0
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);