aboutsummaryrefslogtreecommitdiff
path: root/src/ARMJIT.h
diff options
context:
space:
mode:
authorArisotura <thetotalworm@gmail.com>2020-07-01 00:01:11 +0200
committerGitHub <noreply@github.com>2020-07-01 00:01:11 +0200
commit62c6e2f703d88660e0ca9bda78032c5bd6b63a78 (patch)
tree1dbf9eb1bbe418d14f07dc3a0e30821fb5deb258 /src/ARMJIT.h
parentd97ce22b010e868437c649911bce89d679a4deaa (diff)
parentc5381d2911d47fb1fcbd6ec27a83f5da3606c4bd (diff)
Merge pull request #667 from Arisotura/generic_jit
merge jit
Diffstat (limited to 'src/ARMJIT.h')
-rw-r--r--src/ARMJIT.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/ARMJIT.h b/src/ARMJIT.h
new file mode 100644
index 0000000..04add59
--- /dev/null
+++ b/src/ARMJIT.h
@@ -0,0 +1,37 @@
+#ifndef ARMJIT_H
+#define ARMJIT_H
+
+#include "types.h"
+
+#include "ARM.h"
+#include "ARM_InstrInfo.h"
+
+namespace ARMJIT
+{
+
+typedef void (*JitBlockEntry)();
+
+void Init();
+void DeInit();
+
+void Reset();
+
+void CheckAndInvalidateITCM();
+
+void InvalidateByAddr(u32 pseudoPhysical);
+
+template <u32 num, int region>
+void CheckAndInvalidate(u32 addr);
+
+void CompileBlock(ARM* cpu);
+
+void ResetBlockCache();
+
+JitBlockEntry LookUpBlock(u32 num, u64* entries, u32 offset, u32 addr);
+bool SetupExecutableRegion(u32 num, u32 blockAddr, u64*& entry, u32& start, u32& size);
+
+}
+
+extern "C" void ARM_Dispatch(ARM* cpu, ARMJIT::JitBlockEntry entry);
+
+#endif \ No newline at end of file