[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:
committed by
commit-bot@chromium.org
parent
298866ed94
commit
44186dfdcd
@@ -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:
|
||||
|
||||
Reference in New Issue
Block a user