JIT root tables.
Implement root tables for the JIT. Each JIT compiled method
gets a table allocated before the stack maps.
The table gets visited through Runtime::SweepSystemWeaks.
Implement String roots for x86_64 as an example.
Test: test-art-host test-art-target
Change-Id: Id3d5bc67479e08b52dd4b253e970201203a0f0d2
diff --git a/compiler/optimizing/code_generator_mips.cc b/compiler/optimizing/code_generator_mips.cc
index 12b1ab9..eedd4d5 100644
--- a/compiler/optimizing/code_generator_mips.cc
+++ b/compiler/optimizing/code_generator_mips.cc
@@ -5204,6 +5204,11 @@
case HLoadString::LoadKind::kDexCacheViaMethod:
fallback_load = false;
break;
+ case HLoadString::LoadKind::kJitTableAddress:
+ DCHECK(Runtime::Current()->UseJitCompilation());
+ // TODO: implement.
+ fallback_load = true;
+ break;
}
if (fallback_load) {
desired_string_load_kind = HLoadString::LoadKind::kDexCacheViaMethod;