diff options
author | Arisotura <thetotalworm@gmail.com> | 2020-07-01 00:01:11 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-07-01 00:01:11 +0200 |
commit | 62c6e2f703d88660e0ca9bda78032c5bd6b63a78 (patch) | |
tree | 1dbf9eb1bbe418d14f07dc3a0e30821fb5deb258 /src/ARMJIT.h | |
parent | d97ce22b010e868437c649911bce89d679a4deaa (diff) | |
parent | c5381d2911d47fb1fcbd6ec27a83f5da3606c4bd (diff) |
Merge pull request #667 from Arisotura/generic_jit
merge jit
Diffstat (limited to 'src/ARMJIT.h')
-rw-r--r-- | src/ARMJIT.h | 37 |
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 |