diff options
author | Yuri Kunde Schlesner <yuriks@yuriks.net> | 2016-09-21 11:29:48 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-09-21 11:29:48 -0700 |
commit | d5d2ca8058a0f1c00ab7ca9fe2c058ba47546c0a (patch) | |
tree | 8a22ca73ff838f3f0090b29a548ae81087fc90ed /src/common/code_block.h | |
parent | 2a910a6d883f2227edc74aacf5b93a58a3dea07c (diff) | |
parent | 0e3f0120a8ec2996e73bb6b7b6c9d7531f7a7eb1 (diff) |
Merge pull request #2086 from linkmauve/clang-format
Add clang-format as part of our {commit,travis}-time checks
Diffstat (limited to 'src/common/code_block.h')
-rw-r--r-- | src/common/code_block.h | 40 |
1 files changed, 18 insertions, 22 deletions
diff --git a/src/common/code_block.h b/src/common/code_block.h index 2fa4a0090..6a55a8e30 100644 --- a/src/common/code_block.h +++ b/src/common/code_block.h @@ -5,7 +5,6 @@ #pragma once #include <cstddef> - #include "common/common_types.h" #include "common/memory_util.h" @@ -14,24 +13,27 @@ // having to prefix them with gen-> or something similar. // Example implementation: // class JIT : public CodeBlock<ARMXEmitter> {} -template<class T> class CodeBlock : public T, NonCopyable -{ +template <class T> +class CodeBlock : public T, NonCopyable { private: // A privately used function to set the executable RAM space to something invalid. - // For debugging usefulness it should be used to set the RAM to a host specific breakpoint instruction + // For debugging usefulness it should be used to set the RAM to a host specific breakpoint + // instruction virtual void PoisonMemory() = 0; protected: - u8 *region; + u8* region; size_t region_size; public: CodeBlock() : region(nullptr), region_size(0) {} - virtual ~CodeBlock() { if (region) FreeCodeSpace(); } + virtual ~CodeBlock() { + if (region) + FreeCodeSpace(); + } // Call this before you generate any code. - void AllocCodeSpace(int size) - { + void AllocCodeSpace(int size) { region_size = size; region = (u8*)AllocateExecutableMemory(region_size); T::SetCodePtr(region); @@ -39,15 +41,13 @@ public: // Always clear code space with breakpoints, so that if someone accidentally executes // uninitialized, it just breaks into the debugger. - void ClearCodeSpace() - { + void ClearCodeSpace() { PoisonMemory(); ResetCodePtr(); } // Call this when shutting down. Don't rely on the destructor, even though it'll do the job. - void FreeCodeSpace() - { + void FreeCodeSpace() { #ifdef __SYMBIAN32__ ResetExecutableMemory(region); #else @@ -57,33 +57,29 @@ public: region_size = 0; } - bool IsInSpace(const u8 *ptr) - { + bool IsInSpace(const u8* ptr) { return (ptr >= region) && (ptr < (region + region_size)); } // Cannot currently be undone. Will write protect the entire code region. // Start over if you need to change the code (call FreeCodeSpace(), AllocCodeSpace()). - void WriteProtect() - { + void WriteProtect() { WriteProtectMemory(region, region_size, true); } - void ResetCodePtr() - { + void ResetCodePtr() { T::SetCodePtr(region); } - size_t GetSpaceLeft() const - { + size_t GetSpaceLeft() const { return region_size - (T::GetCodePtr() - region); } - u8 *GetBasePtr() { + u8* GetBasePtr() { return region; } - size_t GetOffset(const u8 *ptr) const { + size_t GetOffset(const u8* ptr) const { return ptr - region; } }; |