Make the JIT zygote memory shared.

Test: boots
Bug: 119800099
Change-Id: I75ff8a58eea4de5cb833139641b4e15b8394d9b1
diff --git a/compiler/optimizing/nodes.h b/compiler/optimizing/nodes.h
index 8ac33a4..759a8e6 100644
--- a/compiler/optimizing/nodes.h
+++ b/compiler/optimizing/nodes.h
@@ -320,6 +320,7 @@
          bool dead_reference_safe = false,
          bool debuggable = false,
          bool osr = false,
+         bool is_shared_jit_code = false,
          int start_instruction_id = 0)
       : allocator_(allocator),
         arena_stack_(arena_stack),
@@ -355,7 +356,8 @@
         art_method_(nullptr),
         inexact_object_rti_(ReferenceTypeInfo::CreateInvalid()),
         osr_(osr),
-        cha_single_implementation_list_(allocator->Adapter(kArenaAllocCHA)) {
+        cha_single_implementation_list_(allocator->Adapter(kArenaAllocCHA)),
+        is_shared_jit_code_(is_shared_jit_code) {
     blocks_.reserve(kDefaultNumberOfBlocks);
   }
 
@@ -585,6 +587,10 @@
 
   bool IsCompilingOsr() const { return osr_; }
 
+  bool IsCompilingForSharedJitCode() const {
+    return is_shared_jit_code_;
+  }
+
   ArenaSet<ArtMethod*>& GetCHASingleImplementationList() {
     return cha_single_implementation_list_;
   }
@@ -774,6 +780,10 @@
   // List of methods that are assumed to have single implementation.
   ArenaSet<ArtMethod*> cha_single_implementation_list_;
 
+  // Whether we are JIT compiling in the shared region area, putting
+  // restrictions on, for example, how literals are being generated.
+  bool is_shared_jit_code_;
+
   friend class SsaBuilder;           // For caching constants.
   friend class SsaLivenessAnalysis;  // For the linear order.
   friend class HInliner;             // For the reverse post order.