[VM runtime] Dual mapping of executable pages.

Change-Id: Iaad78d324e25462ce951f4df26974a6a368c50b7
Reviewed-on: https://dart-review.googlesource.com/c/93377
Commit-Queue: Régis Crelier <regis@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
This commit is contained in:
Régis Crelier
2019-03-01 22:19:31 +00:00
committed by commit-bot@chromium.org
parent 298866ed94
commit 44186dfdcd
18 changed files with 396 additions and 71 deletions
+3
View File
@@ -19,10 +19,12 @@ class RawCode;
class RawFunction;
class RawObject;
#if defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_DBC)
// Stack-allocated class to create a scope where the specified region
// [address, address + size] has write access enabled. This is used
// when patching generated code. Access is reset to read-execute in
// the destructor of this scope.
// Dual mapping of instructions pages is not supported on these target arch.
class WritableInstructionsScope : public ValueObject {
public:
WritableInstructionsScope(uword address, intptr_t size);
@@ -32,6 +34,7 @@ class WritableInstructionsScope : public ValueObject {
const uword address_;
const intptr_t size_;
};
#endif // defined(TARGET_ARCH_IA32) || defined(TARGET_ARCH_DBC)
class CodePatcher : public AllStatic {
public: